質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

PageSpeedInsightsにてgzip配信が認識されない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,484

yokoyamax

score 14

困っていること

数日前までgzip圧縮後のサイズで結果が返ってきていたのですが、
現状は、圧縮前のサイズが返ってきます。

before afterで何も変更はしておりません。

PageSpeedInsightsはLighthouseを使用しているという認識なのですが、
同じくChrome>デベロッパーツール>AuditsのLighthouseを使用すると、正しくgzip圧縮後のサイズで配信されています。

httpレスポンスヘッダーやその他、外部のgzip圧縮できているかを確認するツールで調べても
問題なく圧縮できているようです。

これはPageSpeedInsightsの一時的な問題、もしくは仕様変更という認識でよいのでしょうか?

なにか対処法がある場合にはご教授頂けますと幸いです。

現環境

サイトはSIRIUSというCMSで構成されています。
PC/SPでワンソースではなく、SPはサイト/sp/のようなディレクトリ構成です。

以下、.htaccessです。

PC

Header set Content-Security-Policy: upgrade-insecure-requests

RewriteEngine on

RewriteCond %{THE_REQUEST} ^.*/index.html

RewriteRule ^(.*)index.html$ http://xn--wlr53q.net/$1 [R=301,L]
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.xn--wlr53q\.net

RewriteRule ^(.*)$ http://xn--wlr53q.net/$1 [R=301,L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry)
RewriteRule ^(.*)\.js iphone/$1.js [L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://xn--wlr53q.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.xn--wlr53q\.net$
RewriteRule ^(.*)$ https://xn--wlr53q.net/$1 [R=301,L]

<IfModule mod_deflate.c>
  SetOutputFilter DEFLATE
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch \bMSIE\s(7|8) !no-gzip !gzip-only-text/html

  Header append Vary Accept-Encoding env=!dont-vary

  # 画像は再圧縮しない
  SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary

  # 圧縮設定
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/js
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/atom_xml
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

AddType image/svg+xml .svg .svgz
AddEncoding gzip .svgz
<ifModule mod_headers.c>
Header Set Vary User-Agent
</ifModule>

RewriteEngine Off
RewriteEngine On
<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 7 days"
ExpiresByType image/bmp "access plus 10 days"
ExpiresByType image/gif "access plus 10 days"
ExpiresByType image/jpg "access plus 10 days"
ExpiresByType image/jpeg "access plus 10 days"
ExpiresByType image/png "access plus 10 days"
ExpiresByType text/js "access plus 10 days"
ExpiresByType text/javascript "access plus 10 days"
ExpiresByType text/x-javascript "access plus 10 days"
ExpiresByType application/javascript "access plus 10 days"
ExpiresByType application/x-javascript "access plus 10 days"
</ifModule>

RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^$ iphone/redirect.php?f=index\.html [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^(.*)\.html iphone/redirect.php?f=$1\.html [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^(.*)\.css iphone/$1.css [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^img/(.*) iphone/img/$1 [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^(.*)/ iphone/redirect.php?f=$1/index\.html [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^(.*) iphone/$1 [L]

RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ m/redirect.php?f=index\.html [L]
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^(.*)\.html m/redirect.php?f=$1\.html [L]
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^img/(.*) m/img/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^(.*)/ m/redirect.php?f=$1/index\.html [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz

<FilesMatch "\.css\.gz$">
        ForceType text/css;charset=Shift_JIS
        AddEncoding x-gzip .gz
</FilesMatch>
<FilesMatch "\.js\.gz$">
        ForceType text/javascript;charset=UTF-8
        AddEncoding x-gzip .gz
</FilesMatch>

SP

<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 7 days"
ExpiresByType image/bmp "access plus 10 days"
ExpiresByType image/gif "access plus 10 days"
ExpiresByType image/jpg "access plus 10 days"
ExpiresByType image/jpeg "access plus 10 days"
ExpiresByType image/png "access plus 10 days"
ExpiresByType text/js "access plus 10 days"
ExpiresByType text/javascript "access plus 10 days"
ExpiresByType text/x-javascript "access plus 10 days"
ExpiresByType application/javascript "access plus 10 days"
ExpiresByType application/x-javascript "access plus 10 days"
</ifModule>
RewriteEngine Off
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^(.*)$ https://xn--wlr53q.net/$1 [R,L]
RewriteCond %{HTTP_USER_AGENT} !(iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry)
RewriteRule ^(.*)$ https://xn--wlr53q.net/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !redirect\.php
RewriteRule ^(.*?)$ redirect.php?nf=$1 [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz

<FilesMatch "\.css\.gz$">
        ForceType text/css;charset=Shift_JIS
        AddEncoding x-gzip .gz
</FilesMatch>
<FilesMatch "\.js\.gz$">
        ForceType text/javascript;charset=UTF-8
        AddEncoding x-gzip .gz
</FilesMatch>

その他、SVGを導入した際に画像と認識されない問題が発生した為、CMS発行元に問い合わせたところ、
SVGディレクトリに.htaccessを追加すればいいという助言を受け、以下をサイト/svg/とサイト/sp/svg/に置いています。

RewriteEngine Off

実現したいこと

PageSpeedInsights側の問題なのか、はたまた別の問題なのかを明確にしたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • Sohaya

    2019/02/05 15:59

    こちらこそ申し訳ございません。追記ありがとうございます。

    スタイルシートファイル(text/css)のみ gzip圧縮を解除して
    PageSpeed Insights の「使用していない CSS の遅延読み込み」に表示される
    ファイルのサイズを比較してみたところ、
    ---
    ファイル         gzip圧縮を設定 / 解除
    any theme/font-awesome.min.css 6KB / 27KB
    any theme/style.css        6KB / 23KB
    any plugin/site.min.css       2KB / 9KB
    ---
    自分の環境では gzip圧縮されたサイズで表示されました。

    yokoyamaxさん側で変更が何もなかったとのことなので
    “順次各アカウントに反映される”ようなマイナーアップデートが
    PageSpeed Insights 側にあった可能性も考えられますが、
    その場合 Googleフォーラムのほうが情報が集まりやすいかもしれません。

    キャンセル

  • Sohaya

    2019/02/05 16:11

    yokoyamaxさんの書かれているお困り事・疑問点についての直接的な解決法ではないのですが
    「使用していない CSS」なので 本当に使わないCSSファイルか確認のうえで
    不要なページでは そのファイルを読み込まないように調整するのもよいかと思います。

    キャンセル

  • yokoyamax

    2019/02/05 17:15

    詳しい検証、ご解説、誠にありがとうございます。
    本日、再度計測してみたところ、通常通りgzip圧縮後のサイズになっていました。
    ご指摘のようにGoogleフォーラムにて質問し、Google社員からの回答を待っている状態ですが、音沙汰がない状態です。

    私としましてもGoogle側のマイナーアップデートよりかは、サーバー側の問題な気がします。
    というのも、他にも外部からのクローラーやアクセスを受け付けないという問題が発生しています。

    一応、preloadや遅延読み込みで対策はしているので、現状が限界かなという感じです。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる