web-dev-qa-db-ja.com

現在のURLへのプッシュ状態を含むAjaxリクエストはSEO対応ですか?

AJAXリクエストからページにプルされるGoogleでコンテンツがインデックスに登録されることについて読んだ後、私はpushStateを使用してURLを変更でき、これによりGoogleがそれを検出できるようになることがわかりました。

私の質問は、現在のURLとしてpushStateを使用できますか?たとえば、サイトのホームページでAJAXリクエストを作成し、パラメータなしで状態をプッシュしますか?

window.history.pushState('','','');
2
Paul

URLが変更されない場合に、AJAXを介してページにロードされるコンテンツをGoogleにインデックス登録させるためにpushStateを使用する必要はありません。この場合、pushStateを使用する必要はまったくありません。

AJAXを完全に利用しているサイトをGoogleにインデックス登録させるには、次のことを行う必要があります。

  • コンテンツごとに個別のURLを作成し、pushStateを使用して、サイトをナビゲートするときにURL 人間の訪問者の場合を変更します。
  • 訪問者がディープURLで開始すると、正しいコンテンツがロードされることを確認してください。
  • サイト内のすべてのURLへの<a hrefリンクを提供して、Googlebotがサイト上のすべてのコンテンツをクロールできることを確認してください。人間の訪問者の場合、これらのリンクのクリックを傍受し、AJAXを使用してコンテンツをロードし、pushStateを使用してURLを適切に変更できます。

GooglebotではpushStateを使用する必要はありません。 pushStateは、人間の訪問者が次のことができるようにするために必要です。

  • サイトのセクションへのブックマークを作成する
  • AJAXエクスペリエンスは、リンクをクリックするなどの通常ページの読み込みを引き起こすアクションを実行する場合でも維持します。

クリックが発生する前に、ランディングページでpushStateを使用する必要はありません。実際、これを行うと、Googlebotがコンテンツを正しくインデックスに登録できなくなる可能性があります。訪問者が別のコンテンツに移行するときは、pushStateのみを使用してください。 Googlebotは、ページのonloadイベント中に必要なAJAX呼び出しを読み込んでレンダリングします。これを実現するためにpushStateを呼び出す必要はありません(その必要もありません)。

唯一の注意点は、Googlebotが最初の静的コンテンツのGooglebotがクロールするよりも、ページのレンダリングに時間がかかることです。 Googlebotがサイトをクロールし、AJAXが必要であることがわかる場合があります。あなたのページはレンダーキューに入れられます。 Googlebotが戻ってそのページのAJAXを取得してレンダリングを実行するには、最大2か月かかる場合があります。ページがレンダリングされると、Googleはコンテンツの読み込みにAJAXを必要とするページのコンテンツにインデックスを作成します。 AJAXとレンダリングを必要とするページのインデックス作成が遅くなり、Googleがページの更新を確認するのに時間がかかります。

他の検索エンジン(Bing、Yandex、Baidu)には、Googlebotほど高度なボットはありません。コンテンツを読み込むためにJavaScriptを必要とするページをインデックスに登録することはおそらくできません。

1