AJAXリクエストからページにプルされるGoogleでコンテンツがインデックスに登録されることについて読んだ後、私はpushStateを使用してURLを変更でき、これによりGoogleがそれを検出できるようになることがわかりました。
私の質問は、現在のURLとしてpushStateを使用できますか?たとえば、サイトのホームページでAJAXリクエストを作成し、パラメータなしで状態をプッシュしますか?
window.history.pushState('','','');
URLが変更されない場合に、AJAXを介してページにロードされるコンテンツをGoogleにインデックス登録させるためにpushState
を使用する必要はありません。この場合、pushState
を使用する必要はまったくありません。
AJAXを完全に利用しているサイトをGoogleにインデックス登録させるには、次のことを行う必要があります。
pushState
を使用して、サイトをナビゲートするときにURL 人間の訪問者の場合を変更します。<a href
リンクを提供して、Googlebotがサイト上のすべてのコンテンツをクロールできることを確認してください。人間の訪問者の場合、これらのリンクのクリックを傍受し、AJAXを使用してコンテンツをロードし、pushState
を使用してURLを適切に変更できます。GooglebotではpushState
を使用する必要はありません。 pushState
は、人間の訪問者が次のことができるようにするために必要です。
クリックが発生する前に、ランディングページでpushState
を使用する必要はありません。実際、これを行うと、Googlebotがコンテンツを正しくインデックスに登録できなくなる可能性があります。訪問者が別のコンテンツに移行するときは、pushState
のみを使用してください。 Googlebotは、ページのonload
イベント中に必要なAJAX呼び出しを読み込んでレンダリングします。これを実現するためにpushState
を呼び出す必要はありません(その必要もありません)。
唯一の注意点は、Googlebotが最初の静的コンテンツのGooglebotがクロールするよりも、ページのレンダリングに時間がかかることです。 Googlebotがサイトをクロールし、AJAXが必要であることがわかる場合があります。あなたのページはレンダーキューに入れられます。 Googlebotが戻ってそのページのAJAXを取得してレンダリングを実行するには、最大2か月かかる場合があります。ページがレンダリングされると、Googleはコンテンツの読み込みにAJAXを必要とするページのコンテンツにインデックスを作成します。 AJAXとレンダリングを必要とするページのインデックス作成が遅くなり、Googleがページの更新を確認するのに時間がかかります。
他の検索エンジン(Bing、Yandex、Baidu)には、Googlebotほど高度なボットはありません。コンテンツを読み込むためにJavaScriptを必要とするページをインデックスに登録することはおそらくできません。