WP 重量級サイトの表示速度改善策再び〜キャッシュプラグイン:Yasakani Cache 再実装とWEBフォントの圧縮・キャッシュ化

2年前に一旦表示速度の改善施策を施したものの、夏前のサーバー移転 & https化の際に相性の悪いキャッシュ系プラグインやサーバー設定を外してしまい、知り合いからも「重い」「表示遅い」と揶揄される(特にスマホ向け)我が家のブログですが、あまりにクレームが多いので今回検討を加えてキャッシュ系を再実装・再設定しました。

既に廻りからは「体感速度で倍以上表示速くなった!」と言われておりますが、いかんせん65個のプラグインを抱え、WEBフォント表示にこだわり、昔ながらのレイアウト構成で重量級な我が家のブログですから、見かけGtmetrix (https://gtmetrix.com/)のスコアは全く振るいません。

ページサイズが半端なく大きいです... ( ̄∇ ̄)

ページの統計情報
統計によると、インターネット上の中央値に当たるページを読み込むには、4 回のレンダリング ブロック リソースのラウンド トリップと最大 75 個のリソース(1 MB)が必要です。 PSI によると、このページを読み込むには、4 回のレンダリング ブロック リソースのラウンド トリップと 98 個のリソース(27.8 MB)が必要です。ラウンド トリップ回数やバイト数が少なくなると、ページの読み込みは速くなります。 
- Google  PageSpeed Tools Insights -による

昔ながらのレイアウト構成を変更する予定はないので、重量級のままどこまで体感表示速度を上げられるかが我が家のブログのずぼらなトコロだったりしますが、今回実施した施策は下記のとおりです。

キャッシュ系プラグイン最速のYasakani Cache

作者:
セルティスラボ

「Yasakani Cache」実はVer1.0の頃に実装試験したことがあって、それまでのWordPressキャッシュ・プラグインに比べてずば抜けて表示速度があがるのは確認済みでしたが、Ver2.0になってからサイト内の仕組みと相性が悪くなり仕方なく外しておりました。

今回Ver2.0.3となりサイトバックグラウンドにも修正を加えて、このキャッシュ効果が使えるようになりました。

我が家のサイトでは、WP Super Cache, W3 Total Cache, WP Fastest Cache等、現在WordPressで最強クラスのキャッシュ・プラグインを上回る表示速度を叩き出す「Yasakani Cache」です。

 

サーバー設定(.htaccess)で表示速度を改善する

現在、サーバー設定(.htaccess)での表示速度改善のための項目は次のとおりです。

  • WEBフォント圧縮
  • ブラウザ・キャッシュ 有効化
  • WEBフォント・キャッシュ 有効化
  • gzip圧縮
実装したコードと参考にさせていただいたサイト記事は下記のとおりです
 
# WEB FONT COMPRES
<IfModule mod_mime.c>
    AddType font/opentype         .otf
    AddType font/eot              .eot
    AddType font/truetype         .ttf
    AddType application/font-woff .woff
</IfModule>
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE font/opentype font/eot font/truetype application/font-woff
</IfModule>

# WEB FONT CATSH
<FilesMatch "\.(?i:(otf|ttf|eot|woff)(\.gz)?)$">
    ExpiresDefault A25920000
</FilesMatch>

# GZIP COMPRESS
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>