web-dev-qa-db-ja.com

大規模な動的Webサイトのサイトマップ生成戦略

コンテンツが動的に変化する巨大なWebサイトのサイトマップファイル( https://www.sitemaps.org )を生成するシステムを導入する必要があります。これらは例の数字ですが、私はこれらの桁以上の何かを考えています:

  • 10,000,000ページ。
  • 毎日1,000のページが追加されます。
  • 毎日1,000ページの変更。

検索エンジンが最初にすべてのインデックスを作成した後の私の進行中のサイトマップの目標は次のとおりです。

  • できるだけ早く発見/索引付けされる新しいページ。
  • できるだけ早く発見/索引付けされるページを修正しました。
  • 変更されないページはめったに再クロールされません。
  • 検索エンジンが帯域幅を節約できるようにしてください。すべての新規/変更ページを1つのサイトマップファイルに配置します。

ウィキペディアやStackOverflowなどのサイトも同様の位置にあると思われることを付け加えます。

そのようなユースケースに適したアルゴリズムはありますか?

1
Jan Żankowski

サイトマップはあまり役に立ちません。 Googleがサイトマップにあるという理由だけでページのインデックスを作成することはほとんどありません。スタックオーバーフローは、XMLサイトマップのみを使用していた場合、すべての質問にインデックスを付けるのに問題がありました。 サイトマップパラドックス をご覧ください。どのページがサイトマップで変更されているかを伝えることも機能しません: GoogleはXMLサイトマップのlastmodタグをほとんど無視すると言います

あなたの1,000万ページのサイトについてはあまり知りませんが、インデックス化されたページのほんの一部しか取得できない可能性があります。 Googleは、あなたの評判のあるサイトにふさわしいと思われるページ数のみをインデックス化します。インデックスを作成する1,000ページごとに、他の一意のドメインからのリンクが必要であると推測します。すべてのページをインデックスに登録するには、自分のページにリンクする10,000の異なるサイトが必要です。それを行った大きなサイトはたくさんありますが、通常は達成するのに何年もかかります。

できるだけ多くのページをランク付けする場合、通常は、ディープページを他のディープページにリンクするのが最善の戦略です。これが、このサイトの各質問ページに「関連する質問」のリストがある大きな理由です。

サイトマップは、新しいページを比較的すばやくクロールするのに役立ちます。一般に、サイトマップに新しいページを追加することは、Googlebotにサイトマップを見てもらうための良い方法です。 Googleは、Googlebotがクロールするほとんどのものをインデックスに登録しません。新しいページをインデックスに登録する場合は、非常に人気のあるページの1つからリンクする必要があります。これが、このサイトのホームページに新しい質問のリストがある理由の大きな部分です。

変更されたページは通常、緊急のクロールとインデックスの再作成を必要としません。ページのコンテンツが大幅に変更されない限り、通常は、以前にキーワードがあったページのランキングが良好になります。 Googleは通常、数週間以内に人気の低いページでも変更を見つけます。特定のページをすぐに再クロールするようにリクエストできることを知っている唯一の方法は、Google検索コンソールの「fetch as Google」機能を使用することです。 1日に少数のリクエストに制限されているため、毎日変更される数千(または数十)のページに対して戦略は機能しません。

Googlebotが変更されていないページを再クロールするのを防ぐ方法はありません。 Googlebotは、人気度に基づいてページを再クロールする傾向があります。ホームページは1日に数回クロールされる場合がありますが、ディープページは数週間ごとになる場合があります。 Googlebotのこの動作を変更するためにできることは、私が知っていることは何もありません。 Googlebotは大量の帯域幅を使用します。検索エンジンのトラフィックが必要な場合は、そのための計画と予算を立てる必要があります。幸いなことに、帯域幅とホスティングはかなり安価です。

3

同様の状況があり、2つのファイルを作成しました。

  1. クエリ文字列のオフセットに基づいて、一度に50,000個のURLを読み込むサイトマップファイル。
  2. 合計レコードをカウントアップし、上記のファイルを指すURLを0、50k、100k、150kのオフセットで作成するサイトマップインデックスファイル。潜在的なURLの総数に達するまで。

次に、2番目のファイルをサイトマップインデックスとしてGoogleに送信します。

私自身の正気と組織のために、私はサイトでこれを数回行います。メインセクションは3つあるため、各セクションにサイトマップインデックスを作成します。また、サイトのメイン、ゲートウェイ、ページを含むURL専用の、動的ではない専用のサイトマップを作成します。

サイトマップとインデックスは50,000個のURLに制限されているため、この方法を調整して、私のサイトよりも大きなサイトに対応する必要があります。しかし、論理はスケーリングすると思います。

1
StephenCollins