CDNとクロール:コンテンツデリバリーネットワークがGoogle検索に与える影響

[レベル: 上級]

CDN を利用する際の Google 検索における利点と注意点を検索セントラルブログが解説しました。

クロールをトピックにして昨年 12 月に毎週連載した Crawling December シリーズの 4 話目(最終)のエピソードです。
過去 3 回のエピソードは次のとおりです。

  1. Googlebotはウェブページをどのようにクロールしレンダリングするのか?
  2. HTTP キャッシングの利点と Google がサポートする HTTP キャッシング
  3. ファセットナビゲーションのベストプラクティス

今回の CND の記事はすでに日本語訳が発行されています。
ここでは要点を紹介します。

CDN とは?

CDN (Content Delivery Network, コンテンツ デリバリー ネットワーク)は、ウェブサイトのオリジンサーバーとエンドユーザーの間の仲介役として機能します。

CDN の主要な目的は次の 2 つです。

  • コンテンツ配信の遅延を削減する
  • ウェブサイトのトラフィックを効果的に管理する

CDN はコンテンツをキャッシュし一時的に保存することで、オリジンサーバーが同じコンテンツを繰り返し提供することを回避します。
このキャッシュメカニズムにより、ユーザーの地理的に近いサーバーロケーションからコンテンツを配信でき、ウェブサイトの速度を向上させます。

たとえば、ウェブサイトがドイツでホストされている場合、オーストラリアのユーザーにオーストラリアのキャッシュから CDN はサービスを提供します。
こうすると、コンテンツ(キャッシュ)を配信するサーバーとユーザーが物理的に近い分だけコンテンツ配信が速くなります。

また、CDN はトラフィックモデルを使用して悪意のあるアクセス試行を検出してブロックし、トラフィックの過負荷や特定のセキュリティ脅威に対する保護を提供します。
4.2Tbps の DDoS 攻撃を Cloudflar(大手 CDN)がわずか 1 分ほどで自律的に軽減したという事例もあります。

CDN がウェブサイトに役立つ仕組み

次のような利点が CDN にはあります。

  • キャッシング: メディア、JavaScript、CSS、HTMLなどのリソースをキャッシュすることにより、サーバーの負荷と帯域幅の使用量を削減する。このキャッシングは、ページの読み込み時間を短縮し、コンバージョンを向上させる可能性もある
  • 大量のトラフィックからの保護: CDN は、悪意のあるトラフィックや過剰なトラフィックを識別してブロックすることに優れており、攻撃されてもサイトの可用性を確保する。また、特定のパターンや IP アドレスに基づいて、不要なクローラーやクライアントをブロックすることもできる
  • 信頼性: 一部の CDN は、オリジンサーバーがダウンしている場合でも静的コンテンツを提供できるため、ビジネスの継続性を確保できる

特に、トラフィックが多いサイトに CDN は役立ちます。
CDN を選択する際には、価格やパフォーマンス、信頼性、セキュリティ、サポート、スケーラビリティ、将来の拡張性などの要素を考慮する必要があります。

CDN がクロールに与える影響

CDN はクロールに役立ちますが、いくつかの問題を引き起こす可能性もあります。

たとえば、Google のクロールインフラストラクチャは IP アドレスによって CDN を利用しているサイトを識別し、より多くのリクエストをサーバーが処理できると想定するため、より高いクロール頻度を CDN は可能にします。
そのため、Google のクローラーは、CDN を利用するサイトに、より多くの同時リクエストを送信します。

ところが、CDN のキャッシュは、URL に初めてアクセスしたときは「コールド」(キャッシュがまだない状態)です。
CDN のキャッシュを「ウォームアップ」(キャッシュが保存された状態)するには、少なくとも 1 回はオリジンサーバーがコンテンツを提供する必要があります。
この初段階のサーバー負荷は、多くの新しい URL を配信するときに大きくなる可能性があります。

別の CDN ホスト名にリソースを分割すると、レンダリング効率が向上する可能性があります。
しかし、追加の接続オーバーヘッドにより、ページのパフォーマンスに悪影響を及ぼす可能性もあります。

メインホスト名に CDN を使用すると、重要なレンダリングリソースが CDN のキャッシュから提供される可能性が高いため、この問題を回避できます。
静的リソースに別のホスト名を使用することと、CDN でメインホスト名を支援すること、またはその両方を構成することを Google のクロール インフラストラクチャはサポートしています。

CDN が過剰に保護するケース

CDN が提供する大量のトラフィックからの保護は、正当なクローラーまでブロックすることがあります。
これは多くの場合、ウェブアプリケーションファイアウォール (WAF) が原因です。
サイトの検索結果での表示に影響を与える可能性があります。

こうしたブロックは、「ハード」ブロックまたは「ソフト」ブロックとして分類できます。

ハードブロック

ハードブロックには、次のものが含まれます。

  • HTTP 503/429 ステータスコード: これらは一時的なブロックを示し、意図しないブロックに Googlebot が反応する時間を与える
  • ネットワーク タイムアウト: これらは「ハード」エラーと見なされ、影響を受ける URL が Google のインデックスから削除され、クロール頻度も低下する可能性がある
  • HTTP 200 ステータスコードのランダムなエラーメッセージ: これらの「ソフトエラー」は、ハードエラーとして解釈された場合、URLが削除されたり重複として扱われたりする可能性がある

ソフトブロック

ソフトブロックは、多くの場合、ボットでないことを検証するインタースティシャルが原因です。
Google のクローラーは人間として識別されないため、ブロックされる可能性があります。
Googleのインデックスからコンテンツが自動的に削除されないように、自動クライアントには 503 ステータスコードを送信することが推奨されます。

ブロックをデバッグするには、Search Console の URL 検査ツールを使用して、レンダリングされスクリーンショットを確認します。
空のページ、エラー、またはボットチャレンジが表示される場合、CDN がクローラーをブロックしている可能性があります。
Google やその他のクローラーは、CDN 設定で許可リストに登録できるクローラーを識別するために、IP アドレスを公開しています。

要点を絞って解説するつもりでしたが、意外に長くなってしまいました。
それでも端折ったところがあります。
CDN を利用しているサイト、もしくは利用を検討しているサイトの管理者は元記事も読んでください。