備忘録5~ WordPressサイトをスピードアップ!
備忘録5~ WordPressサイトをスピードアップ!
Googleが提供するサイトURLを入れると、サイトスピードを計測する「PageSpeed Insights」
改善前の状態で測定した結果 モバイル3点、パソコン47点
ショックすぎて、スクショするのを忘れていましたが、遅すぎる・・・
改善しなければ・・・
画像関連
サイトスピード測定した時に「改善できる項目」として上げられている
「次世代フォーマットでの画像配信」「オフスクリーンの画像遅延読み込み」「効率的な画像フォーマット」「適切な画像サイズ」
この4つが画像処理に関連する項目で、点数に占める割合が大きくなっています。
画像ファイル自体は、画像圧縮サイトで圧縮済みでしたが、上記の項目で大幅に減点されているようでした。
EWWW Image Optimizer の導入
こちらのサイトを参考に導入を開始しました。
既存画像の圧縮を忘れずに行ってください。
忘れていたので効果がなかった・・・・
さらに、次世代フォーマットに対応させるため設定を追加しました。
webpのタブがなく、ベーシックタブ内に統合されていました。
遅延読み込みをオンにするのも忘れずに・・・
改善後の状態で測定した結果 モバイル43点、パソコン57点
だいぶマシになったか?
「適切な画像サイズ」
がまだでてくる・・・該当の画像をリサイズ済みの画像に切り替えと
<picture>
<source media="(min-width:769px)" srcset="large.jpg">
<source media="(max-width:768px)" srcset="middle.jpg">
<source media="(max-width:320px)" srcset="small.jpg">
<img src="middle.jpg" alt="test">
</picture>
ウインドウサイズでの画像読込の切り替えを設定。
これで、出なくなりました。
でも、点数は変わらない・・・
スクロールせずに見えるコンテンツのレンダリングをブロックしている JavaScript/CSS を排除する
Google先生から、このように指摘があり悩みました。
font iconや、前回までに挿れていたSNS フィード関連のCSSが多数リストアップされていました。
動きをつけるため入れていたAOS.jsやスライダーのslickもいました。
ヘッダーで読み込んでいたので、全てフッターに移行してみました・・・
変わりません!!orz
WordPress CSSとJSファイルの遅延読み込みというのを見つけ、設定してみました。
SNSフィード関連CSSは、フッターに移動されましたが、やはり効果がみられませんでした。
CSSの読み込みを停止したままに変更し、各CSSをインラインに変更しました。
改善後の状態で測定した結果 モバイル66点、パソコン77点
おお!改善が見られます!
ブラウザのキャッシュを活用する
Luxeritasで、高速化一括設定があるのを思い出し、設定してみました。
推奨設定で保存してみました。
横にhtaccessの設定があるようです
親切設計です。これをコピーして.htaccessに追記しました。
webpの項目がないのでそこだけ追加しておきます。
改善後の状態で測定した結果 モバイ74点、パソコン86点
結構改善されました!
もう少し・・・
CDNで読み込んでいた外部のCSSをpreload設定してみました
<link rel="preload" href="https://unpkg.com/aos@2.3.1/dist/aos.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link rel="preload" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link rel="preload" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
さらに、子テーマのフッターに直接書いていた<script sec="">を
function.phpに記述するように変更
function add_scripts() {
wp_enqueue_script( 'inview', get_home_url() . '/js/jquery.inview.min.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'anime', get_home_url() . '/js/anime.min.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'main', get_home_url() . '/js/main.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'scrollMonitor', get_home_url() . '/js/scrollMonitor.js', array( 'jquery' ), '20210211', true );
if ( is_home() || is_front_page() )wp_enqueue_script( 'camera', get_home_url() . '/js/camera.min.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'easing', get_home_url() . '/js/easing.min.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'aos', '//unpkg.com/aos@2.3.1/dist/aos.js', array( 'jquery' ), '20210211', true );
wp_enqueue_script( 'slick', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js', array( 'jquery' ), '20210211', true );
}
add_action('wp_print_scripts', 'add_scripts');
雑な記述ですが・・・とりあえずこれで読み込みはされます。
改善後の状態で測定した結果 モバイ88点、パソコン96点
とりあえずここまで・・・
サーバーの応答時間が残ったので、これは、おいおいサーバーの切り替えを検討する方向です。
今すぐにはどうにもならないので、これで終了です。
当初に比べたらかなり早くなったので満足です。