WordPressのパフォーマンスを改善する実践チェックリスト【10項目で高速化】
「WordPressサイトが遅い…」って感じたことありませんか?以前、PageSpeed Insightsでスコア40台を叩き出して愕然としたことがありました。表示速度が遅いとユーザーの離脱率は上がるし、SEOにも悪影響なんですよね。でも、何から手をつければいいのかわからないという人も多いと思います。
そこで今回は、実際にWordPressサイトの高速化に取り組んだときに使ったチェックリストを10項目にまとめてみました。全部やる必要はないけど、上から順にやっていくだけでかなり改善される、、はず!
目次
1. 画像最適化(WebP変換・遅延読み込み・適切なサイズ指定)
サイトの表示速度に一番影響が大きいのが画像です。何も考えずにアップロードしていると、1枚で数MBなんてこともざらにあります。
WebP変換
まずはJPEG/PNGをWebPに変換すること。WebPはGoogleが開発した画像フォーマットで、同品質でJPEGより25〜35%程度ファイルサイズが小さくなります。WordPressなら「EWWW Image Optimizer」や「ShortPixel」といったプラグインを入れれば、アップロード時に自動変換してくれます。
遅延読み込み(Lazy Load)
WordPress 5.5以降はネイティブで画像のlazy loadingに対応しています。imgタグにloading="lazy"が自動付与されるので、特に何もしなくてもOK。ただし、ファーストビューに表示される画像(ヒーロー画像やアイキャッチ)にはlazy loadを適用しない方がいいです。LCP(後述)に悪影響が出るので。
適切なサイズ指定
imgタグにはwidth属性とheight属性を必ず指定した方がいいです。これがないとブラウザがレイアウトを確定できず、CLS(Cumulative Layout Shift)が悪化します。WordPressのメディアライブラリ経由で挿入すれば基本的に自動で付くけど、カスタムHTMLで書く場合は要注意です。
- EWWW Image OptimizerなどでWebP自動変換を設定する
- ファーストビュー画像のlazy loadを無効にする
- width / height属性が付いているか確認する
2. キャッシュ設定(ブラウザキャッシュ・ページキャッシュ)
キャッシュはWordPress高速化の基本中の基本です。設定するだけで体感速度が劇的に変わります。
ブラウザキャッシュ
.htaccessに以下のような設定を追加して、静的ファイルのキャッシュ期間を指定します。
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
ページキャッシュプラグイン
WordPressは動的にページを生成するので、アクセスのたびにPHPが実行されてデータベースに問い合わせが走ります。ページキャッシュプラグインを使えば、生成済みのHTMLを保存して次回から即座に返せるようになります。
おすすめのキャッシュプラグインはこのあたりです。
- WP Super Cache:シンプルで初心者向け。Automattic公式。
- W3 Total Cache:設定項目が多く上級者向け。CDN連携も充実。
- WP Fastest Cache:UIがわかりやすく、無料版でも十分使える。
どれか1つ入れるだけでTTFB(Time to First Byte)が大幅に改善されます。
3. 不要プラグインの整理
「プラグインは何個まで入れていいの?」という質問をよく見かけるけど、正直なところ数の問題ではないんですよね。軽いプラグインなら30個入れても問題ないし、重いプラグイン1個で致命的に遅くなることもあります。
判断基準
プラグインを整理するときの判断基準はこんな感じです。
- 最後に更新されたのはいつか?:1年以上更新がないプラグインはセキュリティリスクもあるので削除候補。
- 本当に使っているか?:「いつか使うかも」で有効化したまま放置しているプラグインは無効化→削除。
- 機能が重複していないか?:SEOプラグインが2つ入っているとか、キャッシュ系が複数入っているとかは要注意。
- テーマの機能で代替できないか?:最近のテーマはかなり高機能なので、プラグインなしで実現できることも多い。
「Query Monitor」というプラグインを一時的にインストールすると、各プラグインがどれだけクエリを発行しているか可視化できるので便利です。遅いプラグインを特定したら、代替手段がないか探してみると良いです。
4. データベース最適化
WordPressは長く使っていると、データベースにゴミが溜まっていきます。定期的に掃除すると、クエリの実行速度が改善されます。
リビジョンの制限
WordPressはデフォルトで記事のリビジョン(編集履歴)を無制限に保存します。100回編集した記事があれば100個のリビジョンがDBに残っているんですよね。wp-config.phpに以下を追加して制限しておくのがおすすめです。
// リビジョンを5個に制限
define('WP_POST_REVISIONS', 5);
// リビジョンを完全に無効化する場合
// define('WP_POST_REVISIONS', false);
トランジェント(一時データ)の削除
トランジェントはプラグインやテーマが一時的にキャッシュするデータです。期限切れのトランジェントが大量に残っていることがあります。「WP-Optimize」プラグインを使えばワンクリックで削除できます。
WP-CLIが使える環境なら、コマンドでも削除可能です。
# 期限切れトランジェントの削除
wp transient delete --expired
# すべてのトランジェントを削除
wp transient delete --all
他にも、スパムコメントの削除、投稿のゴミ箱を空にする、未使用のタグの削除なども効果がありました。
5. PHP・MySQLバージョンの確認
意外と見落としがちなのがサーバーサイドのバージョンです。古いPHPやMySQLを使っていると、それだけで処理速度が遅くなります。
- PHP:8.1以上を推奨。PHP 7.4と8.2では処理速度が2〜3倍違うベンチマーク結果もある。
- MySQL:8.0以上、またはMariaDB 10.6以上を推奨。
WordPress管理画面の「ツール」→「サイトヘルス」で現在のバージョンを確認できます。レンタルサーバーの管理画面からPHPバージョンを変更できることが多いので、対応しているなら最新の安定版に上げておくと良いです。ただし、プラグインやテーマの互換性は事前に確認しておいた方がいいですね。
6. CDNの活用
CDN(Content Delivery Network)は、世界中に分散したサーバーからコンテンツを配信する仕組みです。ユーザーに物理的に近いサーバーからファイルが配信されるので、表示速度が向上します。
Cloudflare(無料プランあり)
個人サイトならCloudflareの無料プランで十分です。設定手順はざっくりこんな感じです。
- Cloudflareでアカウント作成
- ドメインを追加
- ネームサーバーをCloudflareに変更
- SSLをFull(Strict)に設定
- キャッシュルールを調整(wp-admin等は除外)
Cloudflareは単なるCDNだけでなく、DDoS対策、SSL、画像最適化(Polish機能)など、セキュリティとパフォーマンスの両方をカバーしてくれます。実際にCloudflareを導入してから、特に海外からのアクセスが明らかに速くなりました。
7. レンダリングブロックリソースの最適化
ブラウザがページを表示するとき、CSSやJavaScriptの読み込みが終わるまでレンダリングがブロックされることがあります。PageSpeed Insightsで「レンダリングを妨げるリソースの除外」と警告が出るやつですね。
CSSの最適化
- クリティカルCSS:ファーストビューに必要なCSSだけをインライン化し、残りは非同期で読み込む。「Autoptimize」プラグインで設定可能。
- 未使用CSSの削除:使っていないCSSルールを削除してファイルサイズを減らす。Chrome DevToolsの「Coverage」タブで未使用CSSを確認できる。
JavaScriptの最適化
- defer / async属性:scriptタグにdefer属性を付けると、HTMLの解析をブロックせずにJSを読み込める。
- 不要なJSの削除:使っていないプラグインのJSが読み込まれていることがある。「Asset CleanUp」プラグインでページごとに不要なCSS/JSを無効化できる。
8. Core Web Vitals(LCP, FID, CLS)の改善
Core Web VitalsはGoogleが提唱するユーザー体験の指標で、検索順位にも影響します。3つの指標を押さえておきます。
LCP(Largest Contentful Paint)
ページの中で最も大きなコンテンツ(通常はヒーロー画像やメインの見出し)が表示されるまでの時間です。2.5秒以内が目標。
- LCP要素の画像をpreloadする
- LCP画像にlazy loadを適用しない
- サーバーレスポンス時間を短くする(キャッシュ・CDN)
INP(Interaction to Next Paint)
ユーザーの操作(クリック、タップなど)に対するレスポンスの速さです。FID(First Input Delay)の後継指標として2024年3月から正式導入されました。200ミリ秒以内が目標。
- 重いJavaScriptを分割・遅延実行する
- メインスレッドをブロックする長いタスクを減らす
- サードパーティスクリプト(広告、アナリティクス等)の影響を最小化する
CLS(Cumulative Layout Shift)
ページの読み込み中にレイアウトがガクガクとずれる現象のスコアです。0.1以下が目標。
- 画像や動画にwidth/height属性を指定する
- Webフォントの読み込みでレイアウトがずれないように
font-display: swapを設定する - 広告枠のサイズを事前に確保する
9. PageSpeed Insightsの読み方と対処法
PageSpeed Insightsは便利なんですが、結果の読み方を間違えると的外れな対策をしてしまいます。ポイントを押さえておきます。
フィールドデータ vs ラボデータ
PageSpeed Insightsには2種類のデータがあります。
- フィールドデータ:実際のユーザーのアクセスデータ(過去28日間)。これがGoogleの検索順位に影響する本当のデータ。
- ラボデータ:Googleのサーバーからテストした結果。テスト環境の条件で変動するので参考程度に。
スコアの数字に一喜一憂するより、「改善できる項目」セクションに表示される具体的な提案に注目した方がいいです。提案は推定節約時間の大きい順に並んでいるので、上から順に対処していくのが効率的です。
よくある警告と対処法
- 「次世代フォーマットでの画像の配信」→ WebP変換(セクション1参照)
- 「レンダリングを妨げるリソースの除外」→ CSS/JSの最適化(セクション7参照)
- 「使用していないJavaScriptの削減」→ 不要プラグインの整理(セクション3参照)
- 「サーバーの応答時間が長い」→ キャッシュ設定(セクション2参照)
- 「適切なサイズの画像」→ 表示サイズに合ったリサイズ(セクション1参照)
10. 実際にやってみた結果(Before / After)
最後に、実際に上記のチェックリストを実践した結果を紹介します。すべてを一度に実施したわけではなく、段階的に改善していきました。
実施した内容
- EWWW Image Optimizerで既存画像をすべてWebP変換
- WP Fastest Cacheでページキャッシュを有効化
- 使っていないプラグイン5個を削除
- wp-config.phpでリビジョンを5個に制限
- PHPを7.4→8.2にアップデート
- Cloudflare無料プランを導入
- AutoptimizeでCSS/JSを最適化
PageSpeed Insightsのスコア変化
以下はモバイルのスコアです。
- Before:パフォーマンス 45 / アクセシビリティ 82 / ベストプラクティス 75 / SEO 85
- After:パフォーマンス 88 / アクセシビリティ 95 / ベストプラクティス 100 / SEO 100
パフォーマンスのスコアが45→88と大幅に改善しました。体感でも明らかにページの表示が速くなったし、Google Search Consoleの「ウェブに関する主な指標」でもすべてのページが「良好」になりました。
特に効果が大きかった施策
- ページキャッシュの導入(+15〜20ポイント):これだけで最も効果がありました。TTFB が劇的に改善。
- 画像のWebP変換(+10〜15ポイント):画像が多いページほど効果が顕著でした。
- PHPバージョンアップ(+5〜10ポイント):サーバーサイドの処理が全体的に速くなりました。
まとめ
WordPressのパフォーマンス改善は、一つひとつの施策は地味だけど、積み重ねると大きな差になります。今回紹介した10項目をチェックリストとして使ってもらえれば嬉しいです。
改めてチェックリストをまとめておきます。
- 画像をWebPに変換し、適切なサイズとlazy loadを設定する
- ブラウザキャッシュとページキャッシュを設定する
- 不要なプラグインを整理する
- データベースを最適化する(リビジョン制限・トランジェント削除)
- PHP・MySQLを最新の安定版にする
- CDN(Cloudflare等)を導入する
- レンダリングブロックリソースを最適化する
- Core Web Vitals(LCP, INP, CLS)を意識する
- PageSpeed Insightsの「改善できる項目」を上から潰す
- Before/Afterを記録して効果を確認する
最初から完璧を目指す必要はなくて、まずはキャッシュと画像最適化から始めて、余裕があれば他の項目も順番に取り組んでみるのが良さそうです。きっとスコアも体感速度も変わる、、はず!
今回は以上です!