サーバーの応答時間を短縮する

Lighthouse レポートの [改善できる項目] セクションには、サーバー応答時間(ユーザーのブラウザがリクエストを行ってから、ページ コンテンツの最初のバイトを受信するまでの時間)が報告されます。

Lighthouse の「サーバー応答時間が短い」監査のスクリーンショット

サーバーの応答時間が遅いとパフォーマンスに影響する

この監査は、ブラウザがメイン ドキュメント リクエストに対するサーバーの応答を 600 ミリ秒以上待機した場合に失敗します。ページの読み込みに時間がかかると、ユーザーは不快に感じます。ページの読み込みが遅くなる原因の一つとして、サーバーの応答時間が遅いことが考えられます。

ユーザーがウェブブラウザで URL に移動すると、ブラウザはネットワーク リクエストを行ってそのコンテンツを取得します。サーバーがリクエストを受け取り、ページ コンテンツを返します。

ユーザーが求めるすべてのコンテンツを含むページを返すために、サーバーが多くの処理を行う必要がある場合があります。たとえば、ユーザーが注文履歴を表示している場合、サーバーは各ユーザーの履歴をデータベースから取得し、そのコンテンツをページに挿入する必要があります。このような作業をできるだけ早く行うようにサーバーを最適化することは、ユーザーがページの読み込みを待つ時間を短縮する方法の 1 つです。

サーバーが多くの処理を必要としない場合でも、クライアントとサーバー間のネットワーク レイテンシによってサーバーの応答時間が遅くなることがあります。

サーバーの応答時間を短縮する方法

サーバーの応答時間を改善する最初のステップは、サーバーがページ コンテンツを返すために完了する必要があるコア コンセプト タスクを特定し、各タスクにかかる時間を測定することです。最も長いタスクを特定したら、そのタスクを高速化する方法を探します。

サーバーのレスポンスが遅くなる原因は数多く考えられ、改善方法も数多くあります。

  • ページの準備を高速化するために、サーバーのアプリケーション ロジックを最適化します。サーバー フレームワークを使用している場合は、そのフレームワークにおすすめの方法が記載されている場合があります。
  • サーバーがデータベースをクエリする方法を最適化するか、より高速なデータベース システムに移行します。
  • より多くのメモリまたは CPU を搭載するようにサーバー ハードウェアをアップグレードします。

CDN を使用してネットワーク レイテンシを短縮します。これは、ドキュメントを CDN エッジノードでキャッシュに保存できる場合に特に効果的です。

詳しくは、TTFB の最適化ガイドをご覧ください。

スタック固有のガイダンス

Drupal

Internal Page CacheInternal Dynamic Page CacheBigPipe などの Drupal キャッシュ モジュールを 1 つ以上使用してトラフィックをオフロードします。CDN と組み合わせると、応答時間をさらに短縮できます。ホスティング サーバーでは、PHP OPcache を使用する必要があります。データベースのクエリ時間を短縮するには、Redis や Memcached などのメモリ キャッシュの使用を検討してください。最後に、パフォーマンスの高いテーマ、モジュール、高速サーバーを使用して、サーバー応答時間を短縮してください。

Magento

Magento の Varnish 統合を使用します。

対応

React コンポーネントをサーバーサイドでレンダリングする場合は、クライアントでマークアップの全体を一度に受信するのではなく一部ずつ受信してデータを挿入できるように、renderToNodeStream() または renderToStaticNodeStream() を使用することを検討してください。

WordPress

軽量のテーマ(ブロック テーマが理想的)を選択し、フルページ キャッシュまたは静的なサイト ソリューションを実装します。不要なプラグインを無効にして、サーバーのオーバーヘッドを最小限に抑えます。

ホスティングをマネージド サービスまたは専用サービスにアップグレードすることを検討してください。

リソース