パフォーマンスと速度約 7 分で読めます

WordPress 高速化:47項目のチェックリスト

計測、キャッシュ、データベース、画像、スクリプト、リリース時の確認までを網羅した、優先順位付きのチェックリストです。

サーバーからブラウザまでの階層的なパフォーマンス監査

要点

まず計測し、最大のボトルネックを直し、重要なフローを再テストします。このチェックリストには47の具体的な確認項目があり、危険なキャッシュ設定を勧めたり、どのサイトにも当てはまる読み込み時間を約束したりはしません。

根拠にもとづく順番でチェックリストを使う

この47項目のチェックリストは、WordPress サイトのための実務的な監査表です。特定の読み込み時間やスコアを約束するものではありません。ホスティング、コンテンツ、訪問者の端末、ビジネス要件はサイトごとに違います。問題のあるユーザー体験から出発し、関係する項目を選び、一度に一種類の変更だけを検証しましょう。

高度なサーバーチューニングより先に、計測で確認したボトルネックに取り組みます。小さなリクエストを減らせてもチェックアウトが壊れるなら、ラボのスコアが上がったとしてもそれは後退です。

基準値を決める

  1. トップ、記事、アーカイブ、商品、チェックアウトの代表的な URL を選び、ログイン中と匿名のセッションを含めます。
  2. 後の計測と比較できるよう、ホスティングのリージョン、端末、回線条件、ブラウザ、リリースのバージョンを記録します。
  3. 再現可能なラボテストを複数回実行し、最速の結果だけでなく結果の幅を残します。
  4. フィールドデータがあれば実ユーザーの LCP、INP、CLS を確認し、URL 単位のデータとオリジン単位のデータを区別します。
  5. ドキュメントのリクエストを調べ、DNS、接続、サーバー応答の遅延を切り分けます。
  6. 初回読み込み時だけでなく、遅い操作を再現しながらメインスレッドのトレースを記録します。
  7. 実際の LCP 要素と、それを表示するのに必要なリクエストの連鎖を特定します。
  8. 復元できるバックアップを作成し、変更後も動かなければならない主要なユーザーフローを決めておきます。

オリジンの処理を減らす

  1. サポート対象で、サイトと互換性のある PHP バージョンを使います。本番の前にステージングでアップグレードを検証します。
  2. OPcache の状態と容量を確認します。デプロイで明示的にキャッシュを無効化しない限り、タイムスタンプの検証を無効にしないでください。
  3. サーバー設定を変える前に、遅い PHP の処理経路と繰り返されるデータベースクエリをプロファイルします。
  4. ページ描画中のリモート API リクエストを見直し、適切なキャッシュと上限のあるタイムアウトを使います。
  5. ホスティング会社と永続オブジェクトキャッシュについて確認し、コンテンツ変更時の無効化を検証します。
  6. 公開 HTML は安全な場合に限りキャッシュし、認証済み、カート、チェックアウト、パーソナライズされたレスポンスは対象外にします。
  7. 異なる2人のユーザーが互いのキャッシュデータを受け取れないことを確認します。
  8. 同時実行数を増やす前に、代表的な負荷のもとで CPU、メモリ、ワーカーの飽和状況を調べます。
  9. スケジュールタスクの実行を検証します。WP-Cron をシステムのスケジューラーに移す場合は、実行漏れや失敗したジョブを監視します。
  10. インデックスを追加する前にクエリプランを確認し、書き込みへの負荷を評価して、代表的なデータのコピーでテストします。
  11. サイズの大きい自動読み込みオプションは、それを所有するプラグインとあわせて見直します。対象を絞った整理の前にバックアップを取ります。
  12. 大きなクエリはページ分割し、上限のないコレクションをメモリに読み込まないようにします。

描画と操作性を改善する

  1. 未使用のスクリプトやスタイルを削除するのは、メニュー、フォーム、チェックアウト、エディターの要件を確認してからにします。
  2. 互換性のあるスクリプトは依存関係の順序を保ったまま遅延させます。async は順序どおりの実行の代わりにはなりません。
  3. 描画をブロックするスタイルを調べます。クリティカル CSS を使う場合は、すべてのテンプレートと画面サイズでテストします。
  4. LCP 画像は JavaScript で後から挿入せず、初期 HTML で見つけられるようにします。
  5. LCP 画像は遅延読み込みにしないでください。高い取得優先度は選択的に使い、その後ウォーターフォールを確認します。
  6. 重い JavaScript は計測した単位に分割し、必要に応じて合間にブラウザへ処理を譲ります。
  7. レイアウトの読み取りと書き込みをまとめ、強制的な再レイアウトの繰り返しを避けます。
  8. 不要なサードパーティのウィジェットを削除し、任意のものは挙動と同意ルールが許す場合に限り遅延させます。
  9. 画像、埋め込み、広告の領域を、リソースが届く前に確保します。
  10. 代替フォントのメトリクスとレイアウトのずれを確認し、font-display を意図して使います。
  11. キーボード操作やモーション軽減の設定でも、操作要素を使えるようにします。
  12. 長いページや性能の低い端末でもテストします。トップページが速くても、すべてのテンプレートが速いとは限りません。

適切なサイズのリソースを配信する

  1. 画像の幅は、表示される領域と想定されるピクセル密度に合わせて選びます。
  2. 決まった削減率を当てにせず、実際のファイルで AVIF、WebP、既存の形式を比較します。
  3. レスポンシブな srcset の候補と、レイアウトを反映した sizes の値を用意します。
  4. 画面外の画像は遅延読み込みにし、適切な場合は非同期デコードを使います。
  5. 重要なラベルや説明は HTML で残します。画像内の小さな文字は読みにくいためです。
  6. フォントはセルフホストするなどしてリクエストを最小限にし、サイトに必要なウェイトと文字セットだけを読み込みます。
  7. リクエストのウォーターフォールを確認したうえで、本当に重要なリソースだけをプリロードします。
  8. テキスト系リソースが gzip や Brotli で配信されているか確認し、圧縮済みの画像を再圧縮しないようにします。
  9. バージョン付きの静的リソースには長期キャッシュを使い、内容が変わったら URL を変更します。
  10. 動画は意図して読み込みます。CSS で非表示にするだけでは、ダウンロードが止まる保証はありません。

リリースを検証する

  1. 最適化を有効にしたら、ログイン、検索、お問い合わせフォーム、カート、チェックアウトをテストします。
  2. 編集したページで、キャッシュヘッダーとコンテンツの無効化を確認します。
  3. 同じ条件で基準のラボテストを繰り返し、改善と後退の両方を記録します。
  4. フィールドの指標は時間をかけて追います。リリースは移動する集計期間にすぐには反映されません。
  5. パフォーマンス予算を設定し、変更履歴を残して、後の劣化をリリースと結びつけられるようにします。

よくある質問

最初に何を直すべきですか?

最初のドキュメントが遅いなら、オリジンとキャッシュの挙動をプロファイルします。ドキュメントはすぐ届くのにメインコンテンツの表示が遅いなら、LCP リソースと描画経路を調べます。読み込み後のクリックが重く感じるなら、操作中の JavaScript とレイアウト処理を調査します。この区別を監査メモに明記しておきましょう。

Lighthouse のスコアが低いと、決まった順位のペナルティを受けますか?

Lighthouse のスコアが一定の数値を下回ると Google で決まったペナルティを受ける、という公開されたルールはありません。スコアは技術的な改善点を探すために、フィールドデータは実際の訪問者を理解するために使いましょう。

すべての WordPress サイトに47項目すべてを適用する必要がありますか?

いいえ。チェックリストで関係する調査項目を見つけ、重要なカスタマージャーニーに影響しているボトルネックを優先してください。会社案内のサイトと、アクセスの多い WooCommerce ストアでは要件が異なります。各項目が該当するのか、後回しにするのか、不要なのか、その理由を記録しましょう。

キャッシュやスクリプトの設定を変えたら何をテストすべきですか?

メニュー、検索、フォーム、ログイン、そして該当する場合はチェックアウトを確認します。別々のセッションでテストし、コンテンツを編集・公開取り消しして無効化を確かめ、元の基準値とパフォーマンスを比較します。最適化によって必要な操作が壊れた場合に備え、ロールバックできるようにしておきます。

出典と参考資料

あわせて読みたい

TTFB と Core Web Vitals の診断やレスポンシブ画像の配信について詳しく読む。

Paul Edward

執筆:Paul Edward

PHP、Laravel、WordPress、AI を活用した Web システムを手がけるシニアフルスタック Web デベロッパー。

Paul について詳しく

Leave a Reply

Your email address will not be published. Required fields are marked *

簡単な確認を読み込んでいます…(JavaScript が必要です)

続けて読む

プロジェクトブリーフ ステップ 1/2 · 依頼内容

何を作りたいですか?

最初はひと段落あれば十分です。私に合わない仕事であれば正直にお伝えし、より適した方をご紹介します。

依頼内容

当てはまるものをすべて選んでください。

プラットフォーム

「わからない」でもまったく問題ありません。

何を作りたいですか?使う人のために、それは何をする必要がありますか?声に出して話すように書いてください。

0 / 1200

2 ステップ、1 分以内。