WordPressウェブサイトの全体的なスピードについては通常、フロントエンドのパフォーマンス及び最適化することによりページの読み込み速度を改善していくことに重点を置きます。しかし、ウェブサイトが読み込み始めるサーバー側も確認した方がいい場合もあります。今日は、TTFB(Time To First Byte、「最初の1バイトが到着するまでの時間」)の影響とそれを減らす方法についてご説明します。TTFBはよく見過ごされているパフォーマンス要素ですが、ウェブサイトのスピードを試験する際には考慮すべきです。

TTFBとは?

TTFBといのは「最初の1バイトが到着するまでの時間」(Time To First Byte)を指します。簡単に言えば、TTFBはブラウザがサーバーからのデータの最初のバイトを受け取るまでにかかる時間のことです。そのデータを受け取るまでに時間がかかるほど、ページを表示するのにかかる時間が長くなります。よくある誤解ですが、DNSルックアップ時間を使ってTTFBを計算することです。しかし、ネットワーキングにおけるTTFBの本当の計算にはネットワークレイテンシが含まれています。これには3ステップのプロセスが含まれ、その間のどこかでも遅延またはレイテンシが発生する可能性があり、合計TTFBが長くなります。

待ち時間ttfb

待ち時間(TTFB)

1. サーバーへのリクエスト

訪問者がウェブサイトにアクセスする際には、まずクライアント(ブラウザ)からサーバーにHTTPリクエストが送信されます。このステップでは、遅延を起こす要因がいくつかあります。DNSルックアップ時間が遅いと、リクエストの時間が長くなる可能性があります。サーバーが地理的に遠く離れていると、データの移動距離が長くレイテンシが発生する可能性があります。また、ファイアウォールのルールが複合だと、ルーティング時間が長くなる可能性があります。また、クライアントのインターネット速度も要因の一つです。

2. サーバー処理

リクエストが送信された後、サーバーはこれを処理して応答を生成する必要があります。このステップでは、遅延を起こす要因がいくつかあります。例えば、データベースコールが遅いこと、第三者スクリプトが多すぎること、最初の応答がキャッシングされていないこと、コードまたはWordPressテーマの最適化が正しくないこと、ディスクI/Oまたはメモリなどのサーバーリソースが不十分であること等です。

3. クライアントへの応答

サーバーがリクエストを処理した後、リクエスト(最初のバイト)をクライアントに送り返す必要があります。このステップは、サーバーのネットワーク速度とクライアントのネットワーク速度の両方に大きな影響を受けます。クライアントがWi-Fiホットスポットの遅いインターネットを使用している場合、それはTTFBに反映されます。

TTFBが大切でしょうか?

TTFB(最初の1バイトが到着するまでの時間)はウェブサイトの速度とは違いますので、ご注意ください。あくまでも応答性の測定値です。 TTFBが重要かどうかについては、ウェブ上で多くの議論があります。あまり重要でないと言っている方(CloudflareLittleBizzy)もいて、重要だと言っている方(GoogleのウェブパフォーマンスエンジニアであるIlya Grigorik)もいます。両方は、TTFBの重要性と計算の仕方についてのもっともな論点を提示します。

Mozは、検索ランキングとTTFBの相関についての詳細な研究を行いしました。しかし、そお結果は、TTFBの低いウェブサイトが単純に高速で、Googleのページスピードランキングの点数に影響しただけであるか判断しにくいです。

ただし、今回は重要性ではなく、改善かつ最適化する方法についてご説明したいと思います。すべての改善策はWordPressウェブサイトの全体的なスピードに反映され、TTFBにも影響します。当社の試験では、TTFBの長いウェブサイトが読み込み速度が遅く、ユーザーとしても遅く感じました。

1原則として、100ミリ秒未満のTTFBは素晴らしいです。Google PageSpeed Insightでは、サーバーの応答時間が200ミリ秒未満であることが推奨されています。300〜500ミリ秒の範囲は普通の結果です。600ミリ秒以上の場合は、サーバー上の設定が間違っているか、より良いウェブスタックにアップグレードする必要がある可能性があります。また、TTFBを削減する方法については、下記の推奨事項に従ってください。 なお、SSL/TLSネゴシエーションも重要な要素であることにご注意ださい。

TTFBの測定方法について

TTFBをテストするには、さまざまな方法があります。本記事ではいくつかをご紹介しますが、そのツールが出す結果がそれぞれ異なる場合がありますので、ご注意ください。1つを選択していただき、ベースラインを作成してください。

Google Chrome DevToolsを使用しTTFBを測定

DevToolsを使用しGoogle ChromeでTTFBを測定できます。ただし、ご自分のコンピューターから試験を行う際には、TTFBがネットワークレイテンシとインターネット接続の影響を受けることにご注意ください。データセンターからの試験を行う第三者のツール(下記参照)を使用する方が効率がいいかもしれません。

  • Chrome メニューから [More Tools] > [Developer Tools] を選択します。
  • ページ要素を右クリックして、[Inspect] を選択します。
  • キーボード ショートカットの Ctrl+Shift+I キー(Windows)または Cmd+Opt+I キー(Mac)を使用します。

ネットワークウィンドウを起動して、ウェブサイトの性能を確認できます。

Google ChromeのDevtoolsのTTFB

Google ChromeのDevtoolsのTTFB

WebPageTestを使用しTTFBを測定

WebPageTestでもTTFBを測定することができます。自社の用語集によると、DNS、ソケット、SSLネゴシエーションに必要な目標時間は+ 100ミリ秒です。目標未達成の場合は100ミリ秒ごとに成績を一つ減らします。ご覧のとおり、テストの対象ウェブサイトの結果は0.256秒(256ミリ秒)のTTFBででした。

WebPageTestのTTFB

WebPageTestのTTFB

Pingdomを使用しTTFBを測定

ChromeとWebPageTestでは、TTFBと呼ばれていますが、Pingdomでは「待機」(Wait)時間と呼ばれています。Pingdomの使い方については、こちらの詳細な記事をご覧ください。

Pingdomツールでの待機時間

Pingdomツールでの待機時間

GTmetrixを使用しTTFBを測定

GTmetrixでは、Pingdomと同様に、TTFBは待機時間と呼ばれています。GTmetrix使い方についても、こちらの詳細な記事をご覧ください。

GTmetrixを使用しTTFBを測定

GTmetrixを使用しTTFBを測定

KeyCDNのツールを使用しTTFBを測定

KeyCDNには、14カ所から同時にTTFBを測定できる、優れたウェブパフォーマンステストツールがあります。ご覧のとおり、TTFBは米国では短く、海外でははるかに長いです。これは、当社のサーバーが物理的に米国にあるためです。レイテンシと距離がTTFBに影響することが確認できましたね。

KeyCDN のTTFBテスト

KeyCDN のTTFBテスト

記の他にも、Sucuri Performance ToolまたはByteCheckなど、TTFBが測定できるツールがいくつかあります。ご存じかもしれませんが、Google Analyticsにも平均応答時間を表示する部分があります。[行動] > [サイトの速度] > [速度についての提案]をクリックしてください。

Google AnalyticsのTTFBレポート

Google AnalyticsのTTFBレポート

ワードプレスサイトのTTFBを減らす4つの方法について

さて、WordPressウェブサイトのTTFBを減らす方法についていくつかの方法をご説明します。

1. 高速なWordPressホスティング会社を利用する

TTFBを減らす最初の方法は、高速なWordPressホスティング会社を利用することです。第三者共有ホスティング会社のTTFB(アリゾナ州フェニックス)とKinstaのTTFB(アイオワ州カウンシルブラフス)を比較しました。デフォルトのTwenty Seventeenテーマを実行し、まったく同じ設定を利用しました。Kinstaには現在、Google Cloud Platformの20カ所ともご利用いただけますので、訪問者のいる場所の近くにウェブサイトを配置するように場所を戦略的に選択するのは大切です。

Kinstaでは、すべてのホスティングプランを対象にGoogle Cloud Platformのプレミアムティアネットワークが利用可能になっています。Google Cloudのスタンダードティアネットワークを採用しており、スピードが低いプロバイダーも多いです。

共有ホスティング会社のTTFB

全地域の平均TTFBは520ミリ秒で、米国とカナダのみの平均TTFBは240ミリ秒でした。

共有ホスティング会社のTTFB

共有ホスティング会社のTTFB

KinstaのTTFB

全地域の平均TTFBは412ミリ秒で、米国とカナダのみの平均TTFBは164ミリ秒でした。Kinstaをご利用いただく場合には、ヨーロッパまたはアジアでもWordPressウェブサイトをホストすることができます。Google Cloud のデータセンタのカ所についてはこちらのリストをご覧ください。

マネージドWordPressホスティングのTTFB

マネージドWordPressホスティングのTTFB

したがって、より高速なホスティング会社を使用するだけで、世界全体のTTFBが20%減少しました。また、米国とカナダのみのTTFBが32%減少しました。思いやり心を持って作られたアーキテクチャのあるWordPressホスティング会社を利用することは、TTFB削減には不可欠です。訪問者のいる場所の近くにウェブサイトを配置するように場所を慎重に選択することもポイントです。あなたの顧客が米国にいる場合には、ヨーロッパでサーバーをホストするのは効率よくありません。(ただし、CDNを使ってある程度その影響をなくせます。)

2. CDNを使用する

TTFBを減らすもう1つの簡単な方法は、コンテンツ配信ネットワーク(CDN)を使用することです。全国または世界中の訪問者のいるウェブサイトの場合には、CDNがTTFBを大幅に減少することができます。上記にもご説明したように、サーバーの場所は非常に重要です。その影響をお見せするのに当社のCDNプロバイダであるKeyCDNの簡単なテストを行いました。各テストは5回実行し、平均を出しました。

CDNなしのTTFB

まず、CDNを無効にしてテストを行いました。合計読み込み時間は1.45秒、アセットの平均TTFBは約136ミリ秒でした。

CDNを入れる前のTTFB

CDNを入れる前のTTFB

CDN付きのTTFB

次に、CDNを有効にしてテストを再実行しました。ご覧のとおり、合計読み込み時間は788ミリ秒に下がり、平均TTFBは今や37ミリ秒です!CDNこそ違いを生み出しますね。それに、テストを実行するのに場所をストックホルムにしたことも非常に重要なポイントです。なぜでしょうか。それはもちろん、結果がどれぐらい改善したかを示したいと思っていたからです。ストックホルムにはCDN POPがありますので、ストックホルムからコンテンツが配信されています。

ダウンタイムまたはWordPressの異常に悩んでいますか。Kinstaは時間を節約するために設計されたホスティングソリューションです!当社のフィーチャーをご確認ください。
TTFBを入れてからのCDN

TTFBを入れてからのCDN

注:Cloudflareをご利用の場合は、TTFBが少し長くなる場合があります。その理由は確か、オーバーヘッドが増えたこと、または完全なプロキシサービスが実行されていることです。 Cloudflareには、ファイアウォールまたはその他のCDNプロバイダにはない機能が追加されています。そこで、あなたに最も適切な方法をご自分で判断する必要があります。あなたのウェブサイトが完全に最適化されていない場合には、TTFBが若干長くてもCloudflareを利用する価値があるかもしれません。

なお、Cloudflareのページキャッシングを使用してTTFBを下げる方法については、WP Bulletの記事をご参照ください。これには、追加のセットアップとテストが必要になることがあります。各環境がそれぞれ異なるため、必ずご自分のテストも実行してください。

3. WordPressキャッシング

3つ目で、おそらく最も簡単なTTFB削減方法のひとつは、WordPressウェブサイトでキャッシュを利用することです。多くの方がキャッシングが読み込み時間削減だけに役立つと考えていますが、実際にはサーバーの処理時間を短縮することによりTTFB削減にも役立ちます。そこで、キャッシングを実行したままと実行していないままのテストを行いました。各テストは5回実行し、平均を出しました。

キャッシングを実行していないまま

Pingdomを使用してスピードテストを行った結果、キャッシュを実行しないとウェブサイトの読み込み時間は1.17秒、TTFBは560ミリ秒でした。

キャッシングを実行していないままのTTFB

キャッシングを実行していないままのTTFB

キャッシングを実行したまま

次にキャッシングを有効にし、Pingdomスピードテストを再度行った結果、キャッシュを実行しないとウェブサイトの読み込み時間は643ミリ秒、TTFBは57ミリ秒でした。

キャッシングを実行したままのTTFB

キャッシングを実行したままのTTFB

ご覧のとおり、キャッシングを有効にすることにより、TTFBを90%削減することができました!Kinstaのキャッシングについてはこちらをご参照ください。当社では、サーバーレベルのキャッシングがある為、キャッシュプラグインは必要ありません。 マネージドWordPressホスティング会社をご利用のない方には、無料のCache Enablerプラグインをお勧めします。

4. プレミアムDNSプロバイダを利用する

最後に、DNSもTTFBに影響します。影響度を正確に計算するのは難しいですが、総計のDNSルックアップ時間を確認すると、高速なプロバイダもあって低速なプロバイダもあることがわかります。SolveDNSスピードテストツールを使用しいくつかテストを行いました。NameCheapの無料DNSを使用するドメインとその応答時間の例は下記のとおりです。

無料のNameCheapのDNS

無料のDNSスピード

無料のDNSスピード

次に、Amazon Route 53のプレミアムDNSを使用した例です。ご覧のとおり、AmazonではDNSルックアップ時間が大幅に短縮されています。プレミアムDNSプロバイダの方はスピードが速いのは一般的です。Cloudflareは無料で、パフォーマンスも優れているものです。

Amazon Route 53のDNS

AmazonのプレミアムDNSのスピード

AmazonのプレミアムDNSのスピード

プレミアムDNSプロバイダーを使用する理由についての記事を是非ご確認ください。KinstaはAmazon Route 53と提携し、すべてのお客様に無料でご利用いただけます。

まとめ

データベースのキャッシング、ディスクI/O、スワップの使用状況、RAM、PHPの設定、MySQLの設定、ネットワークの設定、TLSのオーバーヘッドなど、TTFBを減らすために最適化または修正できるものは数多くあります。ただし、上記ご紹介した対策は割と実施しやすく、影響度も最も大きいものです。次回TTFBを減らすように依頼されるときに、高速なWordPressホスティング会社、CDN、キャッシングとDNSが最も大切であることを覚えておいてください。それらのボトルネックを修正または改善することにより、TTFB削減ができるはずです。

あなたのTTFBの経験は何ですか。 是非聞かせてください。

.

2.3K
シェア