例えば、コンタクトフォーム用プラグインは問い合わせページでのみ有効化する。
Thank you for reading this post, don't forget to subscribe!あなた(管理者)しか使わない管理画面用のプラグインは、Admin Pageのみで有効化する。
無頓着でいると、貴重な数ミリ秒を浪費してしまう。
無頓着であってはならないのです。
他のプラグインも、全てのページで有効化しているのは大きな浪費
✅ 塵も積もれば山となる
✅ 無頓着ではいられない
サイトの表示遅延・速度と利用者の離脱率には高い相関関係があります。
利用者が検索などでサイトを見つけて閲覧を開始したとしても、
サイトの表示速度が遅いとサイト離脱を促してしまうこともあります。
表示速度が2秒遅くなっただけで50%の利用者が直帰するという結果が出ています。
サイトのコンテンツが読み込まれ、利用者がブラウザで操作可能になるまでの時間は3秒以内が理想と言われています(現在ではもっとせっかちな人もいます)が、この3秒を超えると57%の利用者が離脱し、そのうちの80%の利用者はサイトへ再訪しないとも言われています。
Googleのブログでも、モバイルサイトで5秒以上ブログが表示されないと平均74%の利用者が離脱すると書かれています。
WordPressの機能を補完するプラグイン
WordPressサイトに利用できるプラグインは様々で、その利用目的も数多くあります。
その機能を大きく分けて整理してみると
- セキュリティ対策用プラグイン
- 運用・運営支援用プラグイン
- サイト開発支援用プラグイン
の様に大別できると思います。
プラグインの動作を制御する
1のセキュリティ策で利用するプラグインはサイト全体に必要なものです。
しかし、
2の運用・運営支援に使用するプラグインはどうでしょうか?
運用・運営支援で主なプラグイン
2.1. 画像圧縮(次世代フォーマット)対応
2.2. 画像最適化
2.3. キャッシュ処理
2.4. 画像遅延読み込み(Lazy Load)※01.
2.5. SEO内部対策 ※02.
2.6. コンタクトフォーム(問い合わせ)
2.7. アクセス状況把握(ヒートマップなど)
2.8. XML サイトマップ作成 ※01.
2.9. HTML/CSS/JavaScript等の縮小化 ※02.
2.10. エディタ拡張 ※02.
2.11. 記事投稿支援
などがあります。(レンタル サーバ側で可能なバックアップ機能等は除く)
※01. WordPress 5.5で ネイティブサポート予定でプラグインは不要になる
但し、サイトマップに最終更新日の出力は無い。
※02. 機能を持つテーマを採用するとプラグインの導入は不要になる
テーマCocoonでは、これら一通りの機能が備わっている。
大事なこと

ここで、
2.5と2.6の間に区切り線を設けた理由を、お伝えします。
2.5までは、ウェブサイトの全てのページに影響する(反映させる)ものです。
しかし、
2.6からは、特定のページでしか使わないものです。
それなのに、無頓着
それなのに、殆どのウェブサイト制作者は無頓着です。
伝えたいこと
何を、お伝えしたいかと言うと
ウェブサイトの反応を早くすることが、
ウェブサイトの利用者にとって大事なことです。
その為に、
2.1~2.4の様なプラグインを使うことは、あなたもご存知のことだと思います。
Pluginてんこもりは、論外ですが、
プラグインの導入数が多くなりにつれ、
それらのプラグインを読み込むために必要となる時間が長くなってきます。
これは、つまるところウェブサイトの反応を遅くする原因の1つになってくるのです。
あなた以外のウェブサイトの利用者にとって
サイトの反応が遅くなるのは、迷惑でしかないのです。離脱を促すことにも!
結論は、
特定のページでしか使わないプラグインは、
特定のページを開いた時にしか読み込ませる必要がありません。
逆に言うと、
コンタクトフォームプラグインは問い合わせページでのみ有効化する
例えば、コンタクトフォームプラグインは問い合わせページ以外では無効化※※する必要があります。
なぜなら、
他のページを開いたとき余計で不必要なもののために、
貴重な数ミリ秒を浪費してしまうからです。
(※※.Contact Form 7プラグインのjavascriptが読み込まれてしまう)
デフォルトの設定では、Contact Form 7 はその JavaScript と CSS スタイルシートをすべてのページにロードします。きっと、こんな無駄の多いやり方をやめて、コンタクトフォームを含むページにだけロードすればいいのに、と考えていることでしょう。その気持ちはよくわかりますが、技術的な困難があって、ページをロードする時点でそのページがコンタクトフォームを含んでいるかどうかを判断することがプラグインにとって難しいのです。ともあれ、多少状況を良くするような方法を提示することならできなくもありません。
もっとあります。
あなた(管理者)しか使わない管理画面用のプラグイン
全てのページで有効化しているのは浪費
塵も積もれば山となる
「管理画面ページで使用するプラグイン」
✅ アクセス状況把握プラグイン
✅ XML サイトマップ作成プラグイン
WordPress5.5で標準実装されたXMLサイトマップが最終更新日を出力しない。
✅ エディタ拡張プラグイン
例えば、Cocoonテーマでサポートされているものは導入しない。
✅ 記事投稿支援プラグイン
例えば、Cocoonテーマでサポートされているものは導入しない。
筆者がサイトに導入しているものは、現在のところ
✅ WordPress本サイト(8つのプラグイン)
✅ 趣味とWordPress実験サイト(9つ※03.のプラグイン)
※03. 9つ目が、今回お伝えする「Plugin Load Filter」日本発プラグインです。
Plugin Load Filter
「Plugin Load Filter」のインストール


このプラグインは、有効化すると wp-content/mu-plugins フォルダに plf-filter.php ファイルを設置して必須プラグインとして動作します。
mu-plugins フォルダやファイルを作成する権限がない場合には失敗する場合があります。

デフォルト(有効化後)では、全てのプラグインが全てのページで読み込まれます。

「フィルタ登録」で動作を制限するかしないかを設定
基本的な使い方は、「Page Type フィルタ」の設定のみで活用できます。
✅ Normal Mode:通常通りプラグインを有効化した時と同様の動作をする
デフォルトでは、全てのプラグインが全てのページで有効になっています(上図)
✅ Admin Page:管理画面にのみプラグインの効果が有効化される
✅ Page Type:PageTypeで設定したフィルタ以外ではプラグインは無効化される
管理画面で使用するもの
管理者(Adimin)権限でしか使わないプラグインは以下の様にフィルタを設定します
✅ 管理画面でしか使わないヒートマップ プラグインに対して指定しています。

「フィルタ登録」をクリックしなければフィルタが有効になりません

WordPress 5.5対応版の、plugin load filter V4.0.0で一時期不具合がありました。
2020/08/30現在V4.0.1で解消されています。
尚、V4.0.1では、少し表示が変わりました(下図参照)

ページタイプ(PageType)別に設定
(どのページでのみ有効化するか)
✅ 対象となるプラグイン(特定のページでのみの有効化でサイトの軽量化)

コンタクトフォームの「Contact」PageType設定例

投稿別に設定
(どの記事でのみ有効化するか)もありますが、ここでは省略します。
まとめ

設定は、ちょっと面倒かも知れませんが、うまく設定することが出来れば、プラグインの読み込みを減らし、ページ表示の高速化に役立てます。
WordPressで丁度良いプラグインを選択することは、意外に難しいのです。
有名であるとか・人気があるプラグインであっても、よくよく調べてみると、
■機能が重複している(プラグインに頼らなくてもテーマの方で実装している)
■重い(重くなったと感じたら)
■脆弱性が含まれている(有名なプラグインでも過去に何度も脆弱性を指摘された)
■更新が止まっている(最終更新が1年以上前)
などということも多々あります。
入れすぎるとサーバへの負荷も大きくなる上、管理も煩雑になります。
むやみにプラグインをインストールすることは避けて、必要な機能を持つプラグインのみに絞るということも大切です。
コメント