WordPressから文句言われた。遅いって。で対策した。
WardPressが言うには
- 永続オブジェクトキャッシュの使用を使用してください
- ページキャッシュが有効になっていない
1.は無視することにした。色々調べたが、レンタルサーバでは普通無理らしい。レンタルサーバでないので自力でやることはできるが、、、、
2.はapacheの設定でキャッシュを有効にすることにした。このキャッシュがサーバ側・クライアント側と別れて色々あるらしいが、深くは考えないことにした。
apacheの設定変更
下記モジュールを有効にする。
コマンドでもできるはずだが、webminを使用した。
- Expires モジュール (mod_expires)
- Headers モジュール (mod_headers)
- cacheモジュール( mod_cache)
- cache_diskモジュール(mod_cache_disk)
- cache_socacheモジュール(mod_cache_socache) これは何かわからないが。。。。
モジュールを有効にして 設定変更 反映
cache cache_diskは/etc/apache2/mods-enabled/cache_disk.confで”CacheEnable disk /”がコメントアウトされているものを有効にする。
expires headersは”/etc/apache2/sites-enabled/ssl.conf”に下記を追加した。sslポートでアクセスするとここの設定に来るので。別件で、少なくともWordPressではこの設定がいらないと判明した。WordPressが(プラグインなどで)この設定を実施するので別途する必要がない。もともとコンテンツに合わせて調整するので、一括で設定するのは危険なんですよね。
ExpiresActive On
ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/svg+xml "access plus 1 weeks"
ExpiresByType image/webp "access plus 1 weeks"
ExpiresByType text/css "access plus 1 weeks"
ExpiresByType text/javascript "access plus 1 weeks"
ExpiresByType application/javascript "access plus 1 weeks"
ExpiresByType font/woff "access plus 1 weeks"
ExpiresByType font/woff2 "access plus 1 weeks"
<FilesMatch "\.(gif|jpe?g|png|svgz?|webp)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>
<FilesMatch "\.(css)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>
<FilesMatch "\.(js)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>
<FilesMatch "\.(woff2?)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>
apacheを再起動
systemctl restart apache2
結果
うまく行かない。少しは体感早くなったんだが。サーバ、遅いときが多いんだよね。
ページキャッシュは、ユーザーがアクセスするたびにページを読み込むのではなく、静的なページを保存して提供することで、サイトの速度とパフォーマンスを向上させます。
ページキャッシュの検出は、有効化されたページキャッシュプラグインの検索のほか、ホームページへのリクエストを3回行い、以下のHTTPクライアントキャッシュレスポンスヘッダーのうち1つ以上の検索で行います:
cache-control, expires, age, last-modified, etag, x-cache-enabled, x-cache-disabled, x-srcache-store-status, x-srcache-fetch-status.
サーバーの応答時間の中央値は1,426ミリ秒でした。推奨されるしきい値600ミリ秒以下の時間でなければなりません。
1個のクライアントキャッシュレスポンスヘッダーを検出しました: cache-control.
ページキャッシュについてもっと詳しく(新しいタブで開く)
結局WardPressのプラグイン(WP Fastest Cache)を入れて設定
- システムキャッシュを有効化
- 先読み
- 方式を選択
- Default
- コンテンツタイプ(以下のチェックをON)
- ホームページ
- 投稿
- カテゴリー
- タグ
- 先読み設定
- 一分あたりのページ数4
- 完了後に先読み再スタート
- 方式を選択
- Gzip(サーバーから送信されるファイルのサイズを減らす)
- ブラウザ キャッシュ(リピート訪問者のページ読み込み時間を減らす)
- Language 日本語
無事、警告が出なくなりました。でも、速度は生物だからまた出るかも。
備考
プラグインをいくつか導入してみたのだが、ファイルがすでにあると言って入らないものが、、、
直近おかしくなっていたのは、ファイルシステムが壊れていたのか、WPのVerUPでプラグインに不具合が発生したのかよくわからなかった。どうも色々ゴミが残ってるようだ。さてどうしたものか、どれがゴミかわからないんだよね。
後日談
まだまだありそう。
別件で壊して直してたら、、リンク参照 これに合わせて記事修正。応答時間も早くなった。
コメント