Lighthouse レポートの [最適化] セクションには、サーバー応答時間(リクエストを行ってからユーザーのブラウザがページ コンテンツの最初のバイトを受信するまでにかかる時間)が表示されます。
![Lighthouse サーバーの応答時間が短いことを示すスクリーンショット](https://developer.chrome.google.cn/static/docs/lighthouse/performance/server-response-time/image/a-screenshot-the-lightho-dee8ff91ad494.png?authuser=0&hl=ja)
サーバーの応答時間が遅いとパフォーマンスに影響する
この監査は、サーバーがメインのドキュメント リクエストに応答するまでブラウザの待機時間が 600 ミリ秒を超えると失敗します。ページの読み込みに時間がかかると、ユーザーは好まれません。サーバーの応答時間が遅いと、ページの読み込みが長くなる可能性があります。
ユーザーがウェブブラウザで URL に移動すると、ブラウザはネットワーク リクエストを行い、そのコンテンツを取得します。サーバーがリクエストを受信し、ページ コンテンツを返します。
ユーザーが必要とするコンテンツがすべて掲載されたページを返すために、サーバーは多くの処理を行う必要があります。たとえば、ユーザーが注文履歴を表示している場合、サーバーはデータベースから各ユーザーの履歴を取得して、そのコンテンツをページに挿入する必要があります。このような処理をできるだけ早く実行するようにサーバーを最適化することは、ユーザーがページの読み込みを待つ時間を減らす方法の一つです。
サーバーが多くの処理を行う必要がない場合でも、クライアントとサーバー間のネットワーク レイテンシのためにサーバーの応答時間が遅くなる可能性があります。
サーバーの応答時間を改善する方法
サーバーの応答時間を改善する最初のステップは、サーバーがページ コンテンツを返すために完了する必要がある主要な概念タスクを特定し、各タスクにかかる時間を測定することです。最も時間のかかるタスクを特定したら、そのタスクを高速化する方法を探します。
サーバーの応答が遅くなる原因はさまざまに考えられるため、次のような改善策が考えられます。
- サーバーのアプリケーション ロジックを最適化して、ページをより迅速に準備します。サーバー フレームワークを使用している場合は、フレームワークにそのための推奨事項が用意されていることがあります。
- サーバーでのデータベースのクエリ方法を最適化したり、より高速なデータベース システムに移行したりできます。
- サーバー ハードウェアをアップグレードして、より多くのメモリまたは CPU を搭載できます。
CDN を使用してネットワーク レイテンシを短縮する。これは、ドキュメントを CDN エッジノードでキャッシュに保存できる場合に特に効果的です。
詳しくは、TTFB の最適化ガイドをご覧ください。
スタック固有のガイダンス
Drupal
テーマ、モジュール、サーバー仕様はすべてサーバーの応答時間に影響します。より最適化されたテーマを探すか、最適化モジュールを慎重に選択するか、サーバーをアップグレードすることを検討してください。ホスティング サーバーは、PHP オペコードのキャッシュや、memcached や Redis などのメモリ キャッシュ システムを利用してデータベースへのクエリ時間を短縮し、最適化されたアプリケーション ロジックでページをより迅速に準備できるようにする必要があります。
Magento
Magento の Varnish 統合を使用します。
対応
React コンポーネントをサーバーサイドでレンダリングする場合は、クライアントを一度にすべてではなく、renderToNodeStream()
または renderToStaticNodeStream()
を使用して、クライアントがマークアップのさまざまな部分を受け取ってハイドレートできるようにすることを検討してください。
WordPress
軽量のテーマ(ブロックテーマが理想的)を選択し、ページ全体のキャッシュ保存または静的サイト ソリューションを実装します。不要なプラグインを無効にして、サーバーのオーバーヘッドを最小限に抑えます。
ホスティングをマネージド サービスまたは専用サービスにアップグレードすることを検討してください。