WordPressでサイトを構築すると、どうしてもプラグインが必要です。場合によっては、プラグインだらけとなり、サイト表示が重くなってしまいます。弊サイトでサイト高速化のために一部のプラグインを削除しました。その過程と効果をまとめます。
写真1. 高速で動く列車のイメージ(ウィーン中央駅で撮影)
重要このときの取り組みの後に以下の施策を追加しています。
- ブロックエディタ切替によるClassic Editorの削除
- 自作のHTMLマップ(自動更新)作成によるPS Auto Sitemapの削除
本記事の概要
本記事の概要は以下の通りです。
- プラグインを19から13に減らした(本記事執筆後に11に削減)
- 減らすプラグインは「重い」ものに照準を絞り、少ない工数で最大限の効果を得るようにした
- ロード時間は減少し、とりわけ今回の取り組み内容のプラグインが大きく寄与した
詳細は以下に記します。
復習:WordPressとプラグイン
WordPressはサイトを構築するための道具です。その道具には最小限の機能しかなく(その最小限も意外と高機能なことは別の話です)、機能を補う必要があります。機能に付加価値をつけるのがプラグインです。
あなたのパソコンや電話機でもそうですが、機能を付加するためにソフトやアプリケーションを導入すると、動きが重くなります。プラグインを導入すると一般に動きが重くなります。そのため、プラグインを導入せずに機能を付与することが重要なのです。
軽量化前のプラグイン一覧
写真2. 古い車両は重い(しなの鉄道線の車内から撮影)
軽量化前は以下のプラグインを活用していました。
- Advanced Editor Tools
- Akismet Anti-Spam
- All in One SEO
- Autoptimize
- bbpress
- Classic Editor
- Classic Widgets
- Contact Form 7
- Google XML Sitemaps
- Kattene
- List category posts
- PS Auto Sitemap
- Shortcodes Ultimate
- SiteGuard WP Plugin
- Table of Contents Plus
- TablePress
- WebP Converter for Media
- WP Multibyte Patch
- WP-Optimize
実に19ものプラグインです。弊サイトは爆速で表示するように心がけています(フォントの指定なしなど)が、それでも19のプラグインがあるとサイト表示速度は遅くなってしまいます。これは良くありません。
それぞれのプラグインの用途を改めてまとめます。
- Advanced Editor Tools:編集画面の高機能化
- Akismet Anti-Spam:セキュリティ対策
- All in One SEO:SEO対策のための多くの設定
- Autoptimize:適切なキャッシュ
- bbpress:掲示板機能を付与
- Classic Editor:編集画面の最適化
- Classic Widgets:設定画面の最適化
- Contact Form 7:メールフォーラム
- Google XML Sitemaps:構造化データをgoogleに送信するため
- Kattene:外部サービスの適切な表示
- List category posts:カテゴリとタグで記事を絞り込む
- PS Auto Sitemap:HTMLでのサイトマップを表示
- Shortcodes Ultimate:多くの装飾のため
- SiteGuard WP Plugin:セキュリティ対策
- Table of Contents Plus:記事内目次を表示
- TablePress:表を作成
- WebP Converter for Media:新しい画像形式に対応
- WP Multibyte Patch:日本語対応のために導入(WordPressはもともと英語)
- WP-Optimize:サイト内データを適宜整理(自動動作はしない)
プラグインの削除
では、19種類のプラグインのうちいくつかを削除してみましょう。現状把握→方針決定→実際の作業→効果確認の順で記します。
現状把握
では、これらのプラグインのどれが重いのでしょうか。WP3というプラグインがあり、表示速度にどのプラグインがどの程度関係しているか測定できます(測定のときだけWP3を入れれば、日常の表示速度に影響はありません)。
※現在はCode Profilerプラグインで同様の測定が可能です(WP3は使えなくなりました…)
Table of Contents Plusを削除した後にサイト速度を測定してみたら、以下の結果でした。
- プラグインロード時間:0.348秒
- ロード時間におけるプラグインの割合:64.5%
- All in One SEO:33%
※プラグインロード時間に対する割合であり、ロード時間における割合ではない(以下同じ) - Contact Form7:16%
- bbPress:14%
- Shortcodes Ultimate:9%
- Autoptimize:7%
- TablePress:5%
ロード時間が0.540秒であり、そのうちプラグインに占める割合が64.5%ということです。プラグインの削除により、ロード時間が短縮されることは容易にわかります。
では、前の章で示した19のプラグインのどれを削除したら良いのでしょうか。このような改善活動の原則は簡単にできそうで、効果が大きいものからやるというものがあります。この原則から考えると、All in One SEO、Contact Form7、bbPressとShortcodes Ultimateを削除すれば良さそうです。
All in One SEO
まず、ロード時間に最も大きな影響を与えているAll in One SEOを考えます。弊サイトではテーマにSimplicity2を導入しており、このテーマではSEOに関する多くの設定をすることができます。例えば、メタディスクリプション(記事の概要を書く欄)はテーマで設定できますし(幸いなことにテーマのメタディスクリプションの項目にも書いていた)、構造化データはGoogle XML Sitemapsで送信できます。さらに、Simplicity2の機能でGoogle AnalyticsトラッキングIDもプラグインなしで登録できます。
したがって、All in One SEOを削除しても機能的に問題ないことがわかり、ちゅうちょなく当該のプラグインを削除しました。当初は「必要なプラグイン」という解説を読んで導入していたのですが、結果的にAll in One SEOは不要だったのです。
Contact Form7
次に影響が大きいのは、Contact Form7です。このプラグインを活用すると、読者さまと私の間でのやり取りができます。お問い合わせページに関する内容ですが、個人情報を扱う関係上、自作のメールフォーラムは不安があります。そのため、今回は「簡単にできそう」な項目ではないと判断し、プラグイン削除対象にはしないことにしました。
bbPress
弊サイトでは2020年4月のサイトリニューアル以降、掲示板を設置していました。これは、掲示板に書き込む常連さんがいれば、書き込んだり、閲覧するために弊サイトを訪問してくれ、黙っていてもPV数が増えることを狙ったものでした。しかし、現実は甘くなく、2年間で1件の書き込みがあっただけでした。
このような状況では、掲示板があっても意味がないと判断し、2022年4月のサイトリニューアルに合わせて掲示板を撤去いたしました。それに合わせ、bbPressも削除しました。
とはいえ、読者さんどうしの交流の場については、今後も弊サイトの課題と考えております。
Shortcodes Ultimate
Shortcodes Ultimateを活用すると、デザインの幅が広がります。例えば、画像を横並びに配置したり、左に画像・右に文章というレイアウトを実現したり、枠で囲うなどです。
しかし、これらは私がCSSを多少習得するなかで、自分でレイアウトを組むことができました。横並びに配置するのはCSS Gridを活用することで可能ですし、枠で囲うことも同様です。
CSSを駆使し、必要な箇所にclassを入れました。Shortcodes UltimateによるショートからCSSのclassに置き換えることで、Shortcodes Ultimateを削除しました。
一時的にしか使わないプラグインの削除
プラグインのなかには、日常的には動作せずに、ある設定をするためだけのものがあります。弊サイトで採用していたプラグインでは、以下の2つが該当します。
- Classic Widgets
- WP-Optimize
1については、ヴィジェットを設定する場面だけ必要で、ヴィジェットの設定は普段からやりません(月に1回も使いません)。このため、必要な場面で1を導入すれば良いだけです。2については、サイトの下書きなどの必要ないデータを削除する場面で必要です。これも日常的に使いません。そのため、削除できます。
このような考えで、Classic WidgetsとWP-Optimizeも削除しました。
プラグイン削減後の効果
写真3. 線路を増設したように速度が上がったか?(小田急の複々線開業ダイヤ初日に撮影)
では、プラグインを削減した後の効果はどうでしょうか。19のプラグインから13のプラグインに削減した後のデータを示します。今回もWP3を一時的に導入し、同様に測定しています。
- プラグインロード時間:0.207秒
- ロード時間におけるプラグインの割合:54.7%
- WebP Converter for Media:32%
※プラグインロード時間に対する割合であり、ロード時間における割合ではない(以下同じ) - Contact Form7:25%
- Autoptimize:15%
- TablePress:7%
- SiteGuard WP Plugin:5%
- WP Multibyte Patch:5%
ロード時間は0.378秒となり、プラグイン削減前の0.540秒から0.162秒(30%)短縮しています。プラグイン削減前のプラグイン以外のロード時間は0.124秒で、削減後は0.094秒とわずかに短縮されています。
これらを表にまとめます(表1)。
表1. プラグイン削減前後のロード時間比較(単位:秒)
ロード時間(削除前) | ロード時間(削除後) | 効果 | |
---|---|---|---|
合計 | 0.54 | 0.378 | 0.162 |
プラグイン関係 | 0.348 | 0.207 | 0.141 |
プラグイン以外 | 0.192 | 0.171 | 0.021 |
プラグインの内訳を示しましたが、WebP Converter for MediaとContact Form7が新たな課題として浮き上がりました。また、カテゴリとタグで記事を絞るプラグイン(List category posts)なども今後の課題となりましょう。
サイト高速化に挑戦してみて
今回、2年ぶりにサイト高速化に挑戦してみました。前回の挑戦以降、レンタルサーバー(ロリポップ)の爆速宣言により、私が何もしなくともサイトは高速化されています。そのような外部要因はあるものの、ある程度のところでレベルアップをせねばならないと思い、2年ぶりに高速化に挑戦した次第です。
サイト表示速度が遅いと、サイトへの印象が悪くなってしまいます(場合によってはブラウザバックされてしまいます)。そのため、サイト高速化は必須と理解しています。今後も定期的にプラグインの見直しなどでサイト表示速度に気を配りたいと改めて決意したところです。