web-dev-qa-db-ja.com

BingBotとGoogleBotのAjaxコンテンツのスナップショットを生成する

JavaScriptを使用してコンテンツが動的に生成されるWebサイトがあります。検索エンジンのインデックス作成を目的として、ページのスナップショットも提供しています。

ここではいくつかの例を示します。

これらのリンクのいずれかのHTMLソースを表示すると、noscriptタグ内にコンテンツが指定されていることがわかります。これは、ユーザーに表示される動的なJavaScript生成コンテンツのミラーであり、検索エンジンクローラーが処理するために配置されています。

GoogleBotはnoscriptコンテンツを正しく処理して検索結果に表示しますが、BingBotはページのインデックスを作成していません。

Google結果

Bingの結果

サイトマップが送信されたことを確認し、約4日間待機しました。

問題をどのように解決しますか?理想的には、シンプルでエレガントなので、ノースクリプトでやりたいと思います。別の方法として、標準のマークアップでコンテンツを追加し、CSSを使用して非表示にすることもできますが、ブラウザーにとっては不要な余分な作業であるため、可能であればそれを避けたいと思います。

この問題に関する洞察はありますか?具体的には、BingBotがnoscriptタグ内のコンテンツを処理しないという証拠はありますか?

2
Noel Abrahams

私の場合、私は完全にAjax化されたコンテンツを設計しましたが、ボットが適切にクロールすることは難しいことがわかりました。だから私はそれを再設計します。ページを初めて開いたとき、表示されるコンテンツはjavascriptイベントを使用して作成したものとまったく同じです。要するに、各コンテンツは独自のURLを取得し、サイトマップへのすべてのURLをリストしました。最後に、ほとんどのURLがクロールされ、インデックスが作成されることがわかりました。

たとえば、私のサイトを見ることができます:learn.servloci.com

さらに、site:[given url]をキャッシュとして使用して確認できます。

1
Vikas Avnish

noscriptタグがGoogleで機能することに少し驚いています。 Googleは クロール可能なAJAX の標準をリリースしました。このページには、クローラーが追加パラメーターを使用してURLからスナップショットを取得するメタタグがあります。

Bingはこの標準もサポートするようになりました ですので、これを実装すると、GoogleとBingの両方でコンテンツのインデックスが作成されます。

0