AD5 WordPress Lab

WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い、遅い!?

WordPressのサイトが重い読み込みが遅いので高速化したい、という相談をよく受けます。

本シリーズでは、実際の高速化の実例を元に、事前調査から対応までの手順をご紹介します。

WordPressが遅い原因

経験上、WordPressが遅い原因の80%以上はプラグインの過剰使用です。

プラグインの多くはページにアクセスする度に何らかの初期処理を行っており、そのほとんどはその度にデータベースにアクセスします。

有効なプラグインの数が多すぎるのももちろんですが、単一のプラグインでも速度に大きく影響するものもあります。

WordPressの高速化のアプローチとしては、プラグインを利用してキャッシュを生成したり、画像を最適化する方法などがよく紹介されていますが、

私はまず、「プラグインを減らして本質的にスリム化する」というアプローチを推奨しています。

とはいえ、長く運用しているサイトであれば、どれが使っているプラグインなのか、止めた時にどんな影響があるのかわからない、というケースも多いでしょう。

それを、ひとつひとつ調査・検証しながら停止していくのは、非常に労力がかかります。

WordPressが遅い原因・重いプラグインの調査①

そこで、初めに、プラグインを停止することによってどれくらい速度改善が期待できるのか、検証することを考えましょう。

手っ取り早い方法のひとつは、Plugin Performance Profiler (P3) というプラグインを使用することです。

百聞は一見にしかず。実際に検証に使用したキャプチャをご覧ください。


プラグインがどれくらい読み込み速度に影響しているのか、特にどのプラグインが重いのかが、表示されます。

何と、プラグインの影響が80%以上、という結果が表示されました。

ということは、プラグインを全て停止すれば、表示速度が5分の1になる・・・?

この数字を、このまま真に受けるのは少し怖いですね。

とはいえ、ページにアクセスする度に、プラグインが100回近くもデータベースにアクセスしているというのは、衝撃です。

WordPressが遅い原因・重いプラグインの調査②

そこで、一時的にプラグインを全て停止して、速度を比較してみることにしました。

結果がこちら。

トップページ、固定ページ、個別投稿ページ(と管理画面)に、5回ずつアクセスして中央値を取りました。

もちろん、毎回キャッシュはクリアします。

計測値は、Google Chrome の Developer ツールを使い、Waiting (と Content Download)の時間を見ています。

停止前と再開後の両方を計測したのは、時間帯によるサーバ負荷の変化に、調査結果が影響されないようにするためです。

結果、80%とはいきませんでしたが、全てのページで Waiting の時間が半分以下になりました。

これは、プラグインの過剰使用によって、WordPressが重く、遅くなっていると言って良さそうです。

※プラグインを全停止する前には、データベースのフルバックアップを取っておくことをおすすめします。

プラグインの過剰使用で重くなったサイトの改善

言うまでもなく、使ってないプラグインは停止しましょう。

判断が難しい場合も多いと思いますが、こちらの記事を参考に、地道に取り組んでみてください。

 

問題は、使用しているプラグインです。

プラグインはできるだけ汎用的に使えるように作られているため、実現したいことに対して、機能や実装が冗長であることが多いです。

本当に必要な機能だけを、適切なテーマのカスタマイズで実装したほうが、当然高速になります。

次の記事以降で、よく使われるいくつかのプラグインを、テーマのカスタマイズに置き換えていく方法を解説していきます。

※「このプラグインの対応方法も知りたい」というご要望があれば、ぜひお寄せください。

Plugin Outbound Posts – 記事リスト内に外部リンクを挿入

Outbound Posts – 記事リスト内に外部リンクを挿入

投稿のリストの中に、見た目は他の投稿のリンクと同じように、外部リンクを差し込みたい、なんてことはありませんか? こんな風に・・・ Outbound Posts は、このような記事風の外部リンクを簡単に投稿できるプラグインです。 このプラグインを有効化すると、各記事の投稿画面に、「外部リンク」という欄が現
Column WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い、遅い!? WordPressのサイトが重い、読み込みが遅いので高速化したい、という相談をよく受けます。 本シリーズでは、実際の高速化の実例を元に、事前調査から対応までの手順をご紹介します。 WordPressが遅い原因 経験上、WordPressが遅い原因の80%以上はプラグインの過剰使用です。 プラグイン
Column WordPressにXMLサイトマップを独自実装するカスタマイズ

WordPressにXMLサイトマップを独自実装するカスタマイズ

WordPressに限らず、SEO対策に不可欠なXMLサイトマップ。 カスタマイズせずとも「Google XML Sitemaps」などのプラグインで瞬殺なわけですが、 多くのXMLサイトマッププラグインは、柔軟に設定できるように作られている分、 「このサイトでは要らない機能」がたくさん含まれることになるので、多少なりともリソー
Plugin AD5 LOYALTY – WordPressで会員制サイト作成

AD5 LOYALTY – WordPressで会員制サイト作成

当サイトで使用しているプラグインです。 WordPressのサイトを簡単に会員制サイトにすることができます。 ショートコードで簡単に会員登録フォーム、ログインフォームが設置可能で、全ての投稿に対して、会員用コンテンツと非会員用コンテンツを設定することができます。 ショートコートで簡単に会員登録フォーム
Column WordPressテーマ・プラグイン開発時のセキュリティ対策

WordPressテーマ・プラグイン開発時のセキュリティ対策

WordPressのテーマやプラグインを開発、カスタマイズする際には、脆弱性を生まないよう、セキュリティ対策を十分に考慮する必要があります。 CSRF対策 管理画面内外を問わず、WordPressにリクエストを送信するフォームや、データを更新するAJAXを実装する場合には、CSRF対策を施しましょう。 リクエストを送信する
Plugin Mobile Sticky Footer – スマホ用固定フッター

Mobile Sticky Footer – スマホ用固定フッター

Mobile Sticky Footerは、スマートフォンサイトに簡単に固定フッターを設置できるWordPressプラグインです。 選べる3タイプのレイアウト 複数ボタンタイプは2ボタンから5ボタンまで設定可能。 お問合せフォームやSNSへのリンクのほか、電話ボタンの設置も可能です。 リアルタイムプレビューつきの直感的な設定画
Column WordPressにメールフォームを自力で実装する

WordPressにメールフォームを自力で実装する

WordPressにメールフォームを実装する優秀なプラグインは沢山ありますが、 ほとんどのプラグインは非開発者向けに導入しやすさを重視して作られているため、 例えば入力項目を動的にするなど、少し複雑なことをしようと思うと、 詰んでしまいます。 WordPressにはメール送信処理やデータの保存などを簡単に実装できる
Plugin WP LOYALTY Checkout add-on – クレジットカード決済

WP LOYALTY Checkout add-on – クレジットカード決済

当サイトで使用しているプラグインです。 AD5 LOYATYのアドオンとして、決済機能を提供します。 決済サービスとして、カード決済手数料が3.0%〜と安く、個人事業主でも利用可能なPAY.JPと連携できます。 (別途PAY.JPのアカウントが必要です。)
Column WordPressのテーマファイル構成を本気出して考えてみた

WordPressのテーマファイル構成を本気出して考えてみた

エンジニアの端くれとして、たかがWordPressテーマであっても、綺麗なモジュール設計がしたいわけです。 そこで、以前作ったサイトのテーマをモチーフに、テーマファイルを再設計してみました。 対象にしたサイトは、ユーザーが会員登録し、PDFコンテンツを投稿でき、ダウンロード結果を集計できるなど、そこそこ高機
Column WordPressサイトにパンくずリストをプラグインなしで実装する

WordPressサイトにパンくずリストをプラグインなしで実装する

意外と大変なパンくずリスト WordPressサイトに限らず、SEOの面でも重要視されるパンくずリスト(breadcramb nav)。 WordPressでガチで実装すると意外と面倒ですよね。 個別投稿ページだけでも、 A. 標準投稿 HOME > 親カテゴリ > 子カテゴリ > 投稿名 B. 固定ページ HOME > 親ページ >
 
ログイン
メールアドレス
パスワード
会員登録
お名前
メールアドレス
パスワード
購入手続き
カード番号
有効期限 (MM/YY)
/
セキュリティコード (CVC)