Pingdom、GTmetrix、またはGoogle PageSpeed InsightsにWordPressウェブサイトの「Vary: Accept-Encoding ヘッダーを設定せよ」警告が表示されますか?これはHTTPヘッダーであり、クライアントがコンテンツの圧縮版を処理できるかをブラウザに伝える為、すべてのオリジンサーバの応答に含める必要があります。
たとえば、 gzip圧縮のない古いブラウザとgzip圧縮のある新しいブラウザがあるとします。Vary: Accept-Encodingヘッダーをご利用のない場合に、Webサーバー及びCDNが非圧縮版をキャッシュし、誤って新しい方のブラウザに配達する場合があり、WordPressウェブサイトのパフォーマンスが低下します。Vary: Accept-Encodingヘッダーを使用することにより、Webサーバ及びCDNが適切なバージョンを配達することを保証できます。
警告は、表示するツールまたはソフトウェアにより異なります:
- 「Specify a Vary: Accept-Encoding Header」(和訳:Vary: Accept-Encodingヘッダーを設定せよ)
- 「The following publicly cacheable, compressible resources should have a “vary: accept-encoding” header.」(和訳:次のパブリックキャッシュかつ圧縮可能なリソースには、 Vary: Accept-Encodingヘッダーを設定があるはずです。)
「Vary: Accept-Encoding ヘッダーを設定せよ」警告の処理方法については、次の手順に従ってください。
「Vary: Accept-Encoding ヘッダーを設定せよ」警告の処理方法
この警告については、独自のサーバー上にあるリクエストに限りしか処理できませんので、ご注意ください。サードパーティのリクエストでこの警告が発生している場合には、向こうのウェブサーバーが触れない為、仕方ありません。一方、彼らに本記事を送ってみても良いでしょう。Vary: Accept-Encodingヘッダーは、Kinstaのすべてのサーバーにデフォルトで追加されているため、Kinstaのお客様は、この警告が表示されるご心配は必要ありません。(下記参照)
ヘッダはWordPressのアセットにもオリジナルサーバーリクエストにも適用されます。アセットについてですが、CDNをご利用の場合には、CDNの多くでもデフォルトでVary: Accept-Encodingが適用されています。例えば、KeyCDN、Cloudflare、CloudFront等はそうです。WordPressのキャッシングプラグインの多くもそうです。
これでも処理が必要である場合、サーバーにコードを追加します。
Apacheで「Vary: Accept-Encoding ヘッダーを設定せよ」警告の処理方法
この警告をApacheで処理するには、FTP経由で.htaccessファイルに下記のコードを追加します。このファイルはサーバーのルートにあります。アクセス権限が正しく設定されている限り、Yoast SEOプラグインを使用しても.htaccessファイルを編集できます。
<IfModule mod_headers.c> <FilesMatch ".(js|css|xml|gz|html)$"> Header append Vary: Accept-Encoding </FilesMatch> </IfModule>
NGINXで「Vary: Accept-Encoding ヘッダーを設定せよ」警告の処理方法
この警告をNGINXで処理するには、設定ファイルに下記のコードを追加します。NGINXのすべての設定ファイルは/etc/nginx/
ディレクトリにあります。プライマリー設定ファイルは/etc/nginx/nginx.conf
です。
gzip_vary on
Vary: Accept-Encodingヘッダーを使用すると、gzip圧縮を確実に使用するようになる為、WordPressウェブサイトをスピードアップすることができます。それに、ヘッダーを正しく使用していないサードパーティのリクエストがない限り、Pingdom等のウェブサイトスピードテストツールを使用する際の点数も向上するはずです。(下記参照)