ODDBRAIN.JP | The splash Ideas

サイトがなんか遅いっぽいので対策してみた

GTmetrixSpeedTest Image

もともとサーバのチューニングとか全くと高速化といったことは全くと言っていいほどしていないんですが、WordPressにしたことでめっきりスピードが落ちてしまったので出来るとこからかいつまんで対策をしていきました。
それより前に一時でもuptimeのLoadAverageが5を超える状態を何とかすべきでは…

やったこと一覧
・jsを非同期で読み込みさせる
・一部画像の圧縮
・Expiresの設定
・KEEP-ALIVEを有効にする
・opensslを1.0.2jにアップデート(HTTP/2に関連して)

#jsを非同期で読み込み
これは<script>タグに

defer async

を追加するだけで実現できます。あまり古いブラウザは対応していないでしょうが、そんなブラウザまでサイトを対応させるつもりはないので新しいので見てください(バッサリ)

#一部画像の圧縮
アバター画像を圧縮してみたのですが、まだ圧縮しろって怒られてます。9割くらい減ったと思うんですけどね。Twitterの画像とかGoogleAdsの画像を圧縮しろってのは無理な話なんでGoogleさん察してください。

#Expiresの設定
再読み込みの削減にはこの設定がいいらしいのでとりあえず.htaccess1にweeksで設定してみました。いろいろ弄る際はこれ切らないと面倒ですね。これまたGoogleの何やかんやがExpires短いじゃないか!と怒られましたがGoogleさん、察してください。 コメントアウトはそのうち使うかなぁと残してあるだけ。(シンプルでいろ的なルールには反しますけど)
.htaccess

#CACHE SETTING
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 weeks"
#ExpiresByType text/html "access plus 2 hours"
#ExpiresByType text/css "access plus 1 days"
#ExpiresByType image/gif "access plus 1 weeks"
#ExpiresByType image/jpeg "access plus 1 weeks"
#ExpiresByType image/jpg "access plus 1 weeks"
#ExpiresByType image/png "access plus 1 weeks"
#ExpiresByType image/x-icon "access plus 1 weeks"
#ExpiresByType text/javascript "access plus 1 days"
</IfModule>

cf, Apacheのmod_expiresというキャッシュモジュールを使ってWEBサイトを高速化しよう

#KEEP-ALIVEを有効にする
これも.htaccessにかくやつですね。本当はhttpd.confに書いてしまうのもいいのかもしれませんが、まずはこっちに書いて運用上問題なければってことで。
.htaccess

#KEEP ALIVE
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>

cf, WordPressのページスピードを1秒でも早くするためにやってみたこと

#opensslを1.0.2jにアップデート
HTTP/2を使えば早くなるかなぁと思ったのですが、それより前にサポート切れるopensslをアップデートしなければ!みたいな記事を見つけたので急きょそちらの作業をすることに。自分でmake installするのは毎回上手くインストールできるか不安です。案の定今回もちょいちょい躓きました。いろいろ見てたら参照サイトメモするの忘れてしまった。Qiitaだったのは覚えてるんだけど…
cf, 事前予告されていた OpenSSL のアップデートが公開されたので OpenSSL 1.0.2a を入れた件

パトラッシュ、HTTP/2入れる前に眠くなっちゃったよ。

とりあえずここまでやった成果としてGTmetrixのPageSpeed ScoreがD(68%)→C(70%)、PageLoad Timeが5.3s→3.5sになりました。2秒も早くなったら大したもんですよ(自画自賛) まあ、GoogleSpeedTestのスコアは6点くらいしか改善しなかったんですけどね。CSSの読み込みとかgzip圧縮とかまだまだやることありますね。Googleは1秒以内にページを表示させろとか言ってますけど、まだまだ先は遠そうです。