web-dev-qa-db-ja.com

#!を使用せずにGoogleにAJAXページをクロールさせる方法URL?

「AJAXアプリケーションをクロール可能にする」 に関するGoogleのアドバイスでは、ハッシュバンフラグメント(#!)を使用してクロールできないAJAX URLを作成するようアドバイスしています。 <meta name="fragment" content="!">をページ<head>に追加します。

誰かがこれで成功しましたか?ウェブマスターツールで「Fetch as Googlebot」を使用しているときに、GooglebotがページのHTMLスナップショットを取得するのを見つけることができません。

13
Yoga

googleフォーラムでこのスレッドを確認してください メタタグではなくハッシュで動作するAJAXクロール 。 Google Fetchツールに問題があります。

5
Panos

AJAXコンテンツのクロールを許可する前のセクションで、 Googleの状態


3。ハッシュフラグメントのないページを処理する

一部のページにはハッシュフラグメントがない場合があります。たとえば、ホームページをwww.example.comではなくwww.example.com#!homeにしたい場合があります。このため、ハッシュフラグメントのないページには特別な規定があります。

注:このオプションは、Ajaxで作成された動的なコンテンツを含むページにのみ使用してください。静的コンテンツのみを含むページの場合、クローラーに追加の情報は提供されませんが、Googleサーバーに余分な負荷がかかります。

ハッシュフラグメントのないページをクロール可能にするには、ページのHTMLの先頭に特別なメタタグを含めます。

メタタグの形式は次のとおりです:

<meta name="fragment" content="!">

これは、このURLのいバージョンをクロールする必要があることをクローラーに示します。上記の合意に従って、クローラーは一時的にpretty URLを対応するcorrespondingいURLにマップします。つまり、ページwww.example.comに配置すると、クローラーはこのURLを一時的にwww.example.com?_escaped_fragment_=にマッピングし、サーバーに要求します。サーバーは、www.example.comに対応するHTMLスナップショットを返す必要があります。このメタタグには1つの重要な制限が適用されることに注意してください。有効なコンテンツは「!」のみです。言い換えると、メタタグは常に正確な形式を取ります。<meta name="fragment" content="!">は空のハッシュフラグメントを示しますが、AJAXコンテンツを含むページです。


したがって、ヘッドレスブラウザーを使用して、?_escaped_fragment_=を含む「ugい」バージョンへのURLのマッピングを有効にする必要があります。

彼らは警告でフォローアップします:

www.example.com?_escaped_fragment_=のコンテンツが404コードを返す場合、www.example.com!のコンテンツはインデックス付けされません

そのため、同様にテストする必要があります。

4
Mike Hudson