web-dev-qa-db-ja.com

デスクトップおよびモバイルサイトの画像を圧縮するか、サイズを調整しますか?

http://marcjschmidt.de/blog/2013/10/25/php-imagepng-performance-slow.html を見ていましたが、ドキュメントの終わりに向かって、チャートから何かを学びました最後に。

画像に非常に高い圧縮を使用すると、処理時間(TTFBを含む)が長くなり、ダウンロード時間が短くなります。

低圧縮を使用している場合は逆です。

ここでの問題は、低すぎる圧縮を選択すると、人々が私のサイトに画像をロードするのにかなり時間がかかることです。高すぎる圧縮を選択すると、TTFB(最初のバイトまでの時間)値が高くなると考えられます。その値が高すぎる場合、Googleは画像の読み込み速度が遅いと感じるかもしれません。

現在、私のサイトのデスクトップバージョンでは、80%のJPEG品質でフルサイズの画像を使用しています。モバイルサイトでは、66%の品質を使用しています。

いずれかのサイトで画像の品質を上げる(圧縮を減らす)場合、ダウンロードするデータが増え、データ使用量が高く請求される人もいるかもしれません。私の他のオプションは、画像サイズをさらに調整することですが、小さすぎると訪問者が不満を言うかもしれません。

それでは、最善のことは何ですか? JPEG画像の品質を異なる値(より最適な値)に調整しますか?または、画像を縮小して苦情がないように祈りますか?

1
Mike

この記事は、サーバーがすべてのクライアントのコンテンツをその場で圧縮する必要があり、毎回圧縮する必要があることを示唆しているため、誤解を招きます。それはサイクルの無駄です。

両方の長所を活用してください:

画像を圧縮1回可能な限り良好(pngout、zopflipng、irfanview webjpgプラグイン)にし、画像のサーバー側圧縮をオフにして、事前に圧縮された画像を提供します。 generateイメージを事前に圧縮できない場合は、停止してください。

ステップ1:画像を可能な限り圧縮します。 1つのイメージが数分間続く場合でも、最後のバイトを抑制します。

ステップ2:.htaccessを使用してサーバーに画像のサーバー圧縮は不要であることを伝えます

RewriteRule "\.jpg$" "-" [T=image/jpeg,E=no-gzip:1]
RewriteRule "\.gif$" "-" [T=image/gif,E=no-gzip:1]
RewriteRule "\.png$" "-" [T=image/png,E=no-gzip:1]

またはグローバル(その後、すべてを事前に圧縮する必要があります)

SetEnv no-gzip 1

(jpgの代わりにjpegのような他のエンディングがある場合は、それも追加してください)。

クライアント側の解凍時間は無視できます。実際、圧縮が優れているほど、解凍は高速になります。

1
Thorsten S.