web-dev-qa-db-ja.com

GooglebotはWebサイト上の新しいページをどのように見つけますか?

GoogleがWebサイト上の新しい記事やコンテンツをどのように識別するのか疑問に思っていました。

すべてのウェブサイトでそうするために使用する方法は何ですか?

4
neo

Googleは、概念的に、HTML DOMパーサーを使用します。これにより、WebページのHTMLが基本構造に分解され、各HTMLタグにIDが付与されます。このIDは、HTMLタグの開始から終了までの順序を表し、liタグなどのHTML要素間の依存関係は、ulタグ、ネストなどのHTML要素間の親子関係に依存します。 liタグ、h1などのヘッダータグに続くpタグなど、HTML要素間のコンテンツブロック関係。この構造は、XMLなどの従来の言語を使用して表されます。

HTMLからXMLへのパーサーは非常に長い間存在していたことに留意してください。

要素が分解されると、aタグをさらに要素に分解できます。ページが解析されるたびに、最初に行われることは、すべてのリンクがリンクテーブル内のインデックスに格納されることです。このリンクテーブルは、URLテーブルとの関係を持つリレーショナルテーブルです。 URLテーブルにはページのURLが保存されますが、リンクテーブルはURLテーブル内のレコードとリンクテキストを単純に関連付けます。リレーショナルデータベースに精通していない場合、これは完全に意味をなさない場合があります。そのため、各テーブルはスプレッドシートのようなものです。 1つのシートにはURLがあります。 1つのシートには、URLシート内のリンクテキストとレコードへの参照があります。

インデックス内のリンクには3つの基本要素があります。ソースURL(参照)、ターゲットURL(参照)、およびリンクテキスト。リンクが(ソース)から解析されたページのみがインデックス内にURLを持つインデックスに格納されている場合、つまりターゲットURLがまだフェッチされていない場合、それはダングリングリンクです。リンクが指すURL(ターゲット)は、フェッチキュー内に配置され、ページのフェッチ、インデックス付けなどが行われます。ターゲットページをフェッチできない場合、リンクは壊れており、壊れたリンクとしてインデックス内に残ります。参照。

これは再帰的なプロセスです。つまり、開始と終了が繰り返し行われます。ページの取得、ページの解析、ページのインデックス作成。検索エンジンの場合、これらのプロセスは個々の独立したプロセスに分割されます。一部の検索エンジンプロセスはキューベースです。つまり、キュー(リストまたはデータベース)からレコードを取得して処理します。つまり、トリガーベースは、トリガーイベントがプロセスを開始することを意味します。データベース全体。

ページはURLのキューから取得されます。ページがフェッチされて保存されると、ページを解析するためのトリガーイベントが設定されます。ページが解析されると、リンクを処理するプロセスなど、他のさまざまなプロセスがトリガーされます。各トリガーベースのプロセスはリアルタイムと見なされます。これをバッチベースで定期的に実行されるPageRankアルゴリズムと比較してください。

このプロセスはクロールと呼ばれます。これは、ウェブをクロールするクモのようなものです。各ページがフェッチされ、解析され、フェッチされるキューに追加されたターゲットURLをリンクするため、ほとんどのページは非常に簡単に発見されます。リンクのない残りのページについては、サイトマップが役立ちます。通常、サイトにサイトマップを用意する必要はありませんが、サイトのすべてのページを適切に取得できることを検索エンジンに知らせるのに役立ちます。サイトマップは主に、サイトを適切にクロールできるかどうかを監査するために使用されます。ターゲットリンクを持たないサイトマップ内にリストされているページの場合、サイトマップから読み取ったURLがフェッチキューに送信され、検索エンジンが任意のサイトからフェッチできる限り多くのページを確保します。

それだ。これは非常に長い間存在していた単純なプロセスであり、驚くほどうまく機能します。

ページは定期的に再取得されます。これは、Time To Liveを意味するネットワークコンセプトTTLに基づいています。これは単に秒を表す数字です。たとえば、5分は300秒で、24時間は86400秒です。 Webページの開始TTL時間は誰にもわかりませんが、このTTLは、ページングごとに長い期間または短い期間から調整されます。ページが変わるかどうか。どの変更が価値があるかを判断するアルゴリズムを使用して、ページコンテンツが変更されるか、テンプレートコンテンツが変更されるかを判断するプロセスがあります。つまり、サイドバー内のリンクは、ページ内のTTL時間を短縮することはできませんが、コンテンツ内の変更は短縮されます。

これは、検索エンジンがページの新鮮さを部分的に判断する方法であるため、知っておくことが重要です。もちろん、新しいページも新鮮です。ページが頻繁に変更される場合、TTL時間をトリガーとして使用してより頻繁にフェッチされます。 TTL時間を短くすると、ページの再取得、解析、インデックス作成などの頻度が高くなります。ページを再取得するたびに、TTL時間を短縮してページの頻度を決定します取得する必要があります。 TTLの短縮と延長により、ページの変更頻度に応じて適切にページを取得できます。最大TTLがあります。たとえば、変更されないページは、最大TTLを使用してチェックされます。これにより、検索エンジンは任意のページをタイムリーに処理できます。

新鮮さTTL時間は各ページに存在し、そのページでのリンクの検索方法に影響します。 TTL時間の短いページは、TTL時間の長いページよりも速くリンクが見つかります。

これがこの回答にとって重要な理由は、リンクが原因です。多くの場合、新しいページには他のページへのリンクがありますが、これらのページも新しい可能性があります。ブログはその代表例です。写真を撮っていますか?これらのリンクは、リンク検出をより高速にする前と同じようにフェッチキューに送信されます。

5
closetnoc

新しいページがある場合は、おそらくそのページへのリンクがあります。 Googleはページに頻繁にアクセスし、リンクをキャッチします。新しいコンテンツの問題であれば、リンクを調べるほど頻繁にGoogleがコンテンツを調べるとは思わないため、時間がかかる場合があります。これがサイトマップを推奨する理由です。ページに大きな変更がある場合は、サイトマップを更新して、ページのコンテンツが変更されたことをGoogleに通知できます。

ログファイルを検索して、googlebotがページにアクセスする頻度を確認できます。 Googleウェブマスターツールでも同じ情報を確認できます。

つまり、リンクのないページにはアクセスできないため、サードパーティからリンクされていない限り、Googleがそのページの存在を知る方法はありません。

1
Rob

次のようにしてこれを行います。

  1. サイトマップで新しいリンクを確認する
  2. 既存のインデックス付きページでは、インデックスが再作成されると、そのページのすべてのリンクがクロール/インデックス付けされます。したがって、可視性のために既存のページに新しいリンクを配置できます
  3. その速度は、サイトのクロール速度に依存します。 Googleがこれらの新しいページのインデックス作成を開始するまでに数時間から数日かかる場合があります。
0
abhinsit