【備忘録】WordPressサイトの軽量化&高速化をいろいろ行ってみた | Knowledge Base

【備忘録】WordPressサイトの軽量化&高速化をいろいろ行ってみた

だんだんと表示が遅くなるWordpressのサイト。そうお感じになる方も多いのではないかと思います。

確かに最初は爆速!だったはず。なのに何で??って感じですよね。

WordPressはアクセスがあるたびにデータベースからデータを引っ張ってきて表示させるサイト作成ツールですから、管理上で何かを追加する、統一した何かをバサッと変更するなどという裏方作業は得意なのですが、せっかく作ったものを表示するとなると・・・HTMLで作ったサイトと比べたらデメリットが多いと思います。

今回は記事数が増えて行ったり、サーバーの性能の問題だったり・・・といった半ば仕方ない問題はひとまず置いといて、実際にこのサイトで速度改善のために行ったことと効果について紹介しておこうと思います。

現状の状況としては記事数1800件程度で、ドメインキングのサーバーでPプラン(以前100円だったもの)を使用、Lets Encryptを使ってSSL化しています。

テーマはSimplicity2+子テーマ使用。functions.phpへ若干の追記はあるもののそれほど大変なカスタマイズはしていません。

広告サービスはAmazonアソシエイト、Adsense、Admax、A8です。

Google Chromeの拡張機能

を使って計測した対策前のトップページの標準的な表示速度は7秒程度。これが今回の対策でいかに速くなるのかの検証記事です。

高速化関連の記事では全く広告表示もなく、カスタマイズもなく、プラグインも入っていないような場合でのものが多くありますが、このサイトは上記に加え、なんと43個ものプラグインが稼働しています。

そんなこんなでいろいろな方法を用いてサイトの高速化を図っていきますので、まだやってないことがある・・・なんてことがあれば参考にしてやってください。

不要なプラグインの停止①

至って私見ですけど、プラグインが少ないから・・で速く表示されるとは限らないんじゃ?と考えてます。確かに何かを読み込んで表示するわけですから影響がないと言えばウソになるわけですけど、それなら43個のプラグインが稼働している状態で、インストールしたて、記事も一切ない状態から+4秒程度で済むのなら、やりたいことが簡単に実現できるプラグインの使用は大変有意義だと思います。

とはいえ、これはなくても大丈夫じゃないの?というものやテーマの機能で代用できるもの、プラグインではなくコードをfunctions.phpなどへ追記することで必要な機能が実装できるものについては整理をすべきだなぁでやっていきました。

※プラグインのほとんどはこのサイトで紹介記事を書いていますが、すべてにリンクを張るとリンクだらけになってしまうので、どんな機能?どうやって使うの?と興味のある方はページ右上のサイト内検索から検索してみてください。

停止したプラグインとその後の対応など

  1. WPFront Scroll Top
  2. 機能としては画面上部に戻るボタンを表示するものなのですが、Simplicityにもともとある機能なので、画像と大きさのカスタマイズをして対処しました。

  3. ReviewPress
  4. プラグインやテーマの翻訳ファイルを購入いただいた方からレビューをもらえたら・・で設置したものの皆無だった(泣)ため不要だろうということで外しました

  5. Remove Dashboard Access
  6. 以前はユーザー登録者のみに提供するコンテンツなどがあったためログイン後プロフィール画面や管理画面へ行かないようにするために導入したもの。現在では機能が不要なため停止。

  7. Mivhak Syntax Highlighter
  8. Simplicityでのコード表示はそのままコピペすると改行がうまく表現されないといったことが発生したため、表示もきれいだしということで導入。ただこの類のプラグインは結構重いものが多く、このプラグインも同様だったためテーマの機能へ戻しました

  9. IP2Location Country Blocker
  10. GDPR対策としてEU圏の国からのアクセスを防止するために導入しましたが、コメントを使用していないこと、レビューを停止したこと、問い合わせフォームで同意を取るようにしたことなどから制限する必要がなくなったため外しました

  11. Expire Users
  12. ユーザーの登録有効期限を設け、期限が来たら自動でパスワード変更してくれる(ログインできないようにしてくれる)プラグインなのですが、このサイトでは不要な機能となったため停止。

  13. Custom Login Page Customizer
  14. 以前会員制コンテンツがあり、ログイン画面をカスタマイズする必要があったため使用。現在この機能は必要なくなったため停止。

  15. CBX RSS Feed for Custom Post Types
  16. カスタム投稿タイプの記事もRSSフィードに含めるためのプラグインでしたが、functions.phpへコード追記すれば済む話だったので停止。

  17. No Login by Email Address
  18. 標準のログインをユーザー名のみに限定するプラグイン。functions.phpへコードを追記することで実装できたので停止。

  19. WP Media Category Management
  20. メディアライブラリの画像にカテゴリー要素を追加するプラグイン。アイキャッチ画像を探すのに便利で使用していましたが、アイキャッチで使う画像のキャプションを「〇〇のアイキャッチ」とすることで検索から絞り込めることが分かったので停止。

  21. WonderPlugin Slider Lite
  22. ヘッダーに動きが欲しくて、不思議な動作をするスライダーを入れていましたが、カスタムヘッダーの高さを変えてオリジナルな画像を設定する方法へ変更しました。私のパソコンが貧弱なだけかもしれませんが、このプラグイン停止後はサイトを表示した際にCPUの使用率が上がって内臓ファンが大きく作動するということがなくなりました。サイトに動きを持たせるということでは有効ですが、スライダー系のプラグインを使う場合は閲覧する方の環境も含めて検討する必要がありそうですね。

  23. Super Socializer
  24. ソーシャルシェアボタンをおしゃれに挿入できるプラグインですが、それほど効果的でもなさそうなのでSimplicityテーマのデフォルトでいいかなということで外しました。

  25. Private content
  26. 登録ユーザーの権限に応じて本文内の表示/非表示を切り替えるプラグインでしたが、ログインのみ判定する場合今使用しているShortcode Ultimateで事足りるので外しました。

  27. Simple Download Monitor
  28. いろいろなファイルをダウンロードしてもらうためにこのプラグインを使用していましたが、不要となったため外しました

  29. WP File Manager
  30. FTPクライアントソフトなしでWordpressの管理画面からサーバー上のファイルを編集できるプラグインなのですが、もっぱらFTPでやってしまっているので外しました。

  31. Restrict Widgets
  32. ウィジェットを投稿タイプやカテゴリーなどの条件に応じて表示/非表示にできるプラグイン。広告表示などが定まらないときには結構使用していましたが、確認したら現状ではあまり必要性がなさそうなので削除しました。

実に16個ものプラグインを停止&削除しました(凄い数・・・)。で表示速度に対する効果は・・・3.5~4.5秒位。これだけのプラグインを削除するとさすがに速度は上がりますね。プラグインを極力使用しないというのはあながち間違いではなさそうです。ただこれだけのことを行うために記事もたくさん修正して・・・とすごく苦労した割には思ったよりも効果がなかったというのが結論でした。

でもこれで約40%の速度改善。単位が小さいと効果が薄く感じられますが割合にしたらすごい効果だと思います。

フロントエンドでの表示速度改善としては前述した通りの結果でしたが、バックエンド(管理画面側)のもっさり感はかなり解消されました。

ゴミデータの徹底排除

広告表示や外部データ表示の高速化

いろいろと高速化作業をして、スピードテストしてみるとまだまだ改善点が指摘されています。なんだろうと思って各項目を見ると・・・それらのほとんどは外部のデータを読み込むものに対することでした。

特に多かったのが「忍者Admax」「A8.netのローテーションバナー」「ブログ村のランキングパーツ」でした。

忍者Admaxについては非同期コードが提供されているのでそれに交換することでほぼ解決できたのですが

その他は・・・。でもくじけてはいけません。ローテーションバナーを生成するのを内部で処理すればいい!ということで

で改善、これでA8.netのローテーションバナー問題も解決、しかも同サイズなら他のサービスの広告も入れれるのでなお〇。

最終的には「ブログ村のランキングパーツ」が残りました。これについてはユーザーからの提案としても何度か投げかけられてるみたいですけど対応されていない模様。どうしても・・・という場合には外すしかないかも知れませんね。

最後に

どうでしたか?これだけ具体的にサイトの改善について書いているサイト(大っぴらに暴露しているサイト)はないのでは?と思います。

表示速度の計測ツールで表示される改善案としてはサイトのものというよりもほとんどが広告とブログ村のパーツに関するものになりました。広告はサイト維持のため仕方ないとして、ブログ村のパーツはそろそろ外した方がいいのかなぁ・・・と思ってます(改善の提案がされているようですがまだ対応されないor対応される予定がなさそうなので)。

これによって訪問いただける方により親切になったのはもとより、何となくGoogle Adsenseの収益が上がり気味になったような・・・余分なソースがなくなったことと、表示速度の改善効果なのかもしれません(本当にそうなのかは疑問ですが・・・)。

Googleでは表示速度も検索順位決定の要素としているようですから、サイトが遅い・・・と感じている方は試してみてはいかがでしょうか??

余談ですが、この大幅なプラグイン削除で今まで管理画面内でのテーマ編集で「何かうまくいかなかったようです・・・」のロールバックがなくなりました。

で書いていますが、どうやら何かのプラグインが原因だったようですね(リンク先記事同様に特定できず・・・残念)

トップへ戻る