web-dev-qa-db-ja.com

XMLHttpRequest(xhr)を介してロードされたコンテンツ:Googleに認識させる方法

グーグル自体と 別の質問 によれば、グーグルのボットはクロールされたサイトでJavaScriptを実行し、レンダリングされたコンテンツのインデックスを作成します。

しかしながら、

[a]経験によれば [少なくともこの1社の] 、JavaScriptベースの機能のほとんどはGooglebotが理解できるようになりましたXMLHttpRequest APIによって外部ソースから取得したコンテンツのクロールに一貫して失敗します-またはこのAPIの上に構築された、またはこのAPIに関連するもの。この動作は、純粋なJavaScript、jQuery、AngularJS、またはその他の最新のJavaScriptフレームワークに存在します。 「外部」URLからコンテンツをプルする必要がある場合、またはREST AP​​Iエンドポイントを呼び出してデータを取得する必要がある場合は常に、適切にクロールされ、インデックスが作成されない可能性があります。

(強調鉱山)私たちが今直面しているこの行動:

  • クライアントのウェブサイトに統合する反応アプリがあります。そのランディングページは、それぞれのサブページ(<a data-reactid="0.1.2.3.4" href="/some/site/itemid/9876">)へのリンクを持つもののリストです
  • ランディングページは、Google検索コンソールで正しくレンダリングされます(「これは、Googlebotがページをどのように見たのか」と視覚的には「これは、Webサイトの訪問者がページをどのように見たか」です)
  • ランディングページのコンテンツは、Googleの検索結果で確認できます。
  • サブページのコンテンツは、近いうちにGoogleで見つけることができません(数週間後、サブページの一部のコンテンツがあります)

ここにデモのreactアプリがあります react/jsで生成されたリンクとサブページが正しくインデックスされています。主な違いは、前述のとおり、外部サーバーからサブページのコンテンツを取得することです。それを回避する方法はありません-私たちはコンテンツを持っていますが、それをレンダリングするウェブサイトにはjsスクリプトとそれをレンダリングする要素のみが含まれており、ウェブサイトをさらに制御することはできません。

上記の引用は正しいですか、何か不足していますか?

あなた自身が@titanic rub tree tigerを証明したように、Googleは実際にXHLHTTPRequest APIからコンテンツを解析することができます。ここでの問題は、サイトの解析ではなく、コンテンツが検索インデックスに更新されるまでにかかる時間に関係しています。コメントに基づいて、6週間後にコンテンツがインデックスに登録され、Googleにリストされるようになりますが、これは完全に不合理ではありません。

2