web-dev-qa-db-ja.com

#!を使用したGoogleインデックスページ私たちには何もありませんが

当社は、AngularJSとそのルーティングを使用して Single Page Application を開発しました。 GoogleはJavaScriptを使用してサイトを適切にインデックス付けしましたが、一部のページのインデックス付けがあまりうまくいかなかったため、HTMLのみのバージョンを開発しました。

ここに投稿されている Ajax Crawling Specification をフォローしており、<meta name='fragment' content='!'>タグと正規のURLがあります。 http://www.example.com/foo/barからhttp://www.example.com/?_escaped_fragment_=/foo/barが取得されることを期待しています。

ただし、AJAX仕様をロールバックすると、すべてのページが2回インデックス化されることがわかりました。1つはhttp://www.example.com/foo/barのJavaScriptバージョンで、もう1つはhttp://www.example.com/#!/foo/barの新しいバージョンです。これは、コンテンツが重複しており、サイトを誤って表示しているため、私たちにとって有害で​​す。

こことGoogleプロダクトフォーラムで同様の質問を探しましたが、何も思いつきませんでした。

11

疑わしい場合は、rel="canonical"を使用してください。これは、<link rel="canonical" href="http://blog.example.com/dresses/green-dresses-are-awesome" /><head>に入れるのと同じくらい簡単です。 詳細については、Googleを参照してください。

これにより、ボットが両方の「バージョン」をクロールするのを防ぐことはできませんが、Google(および他のSERP)に正規のドキュメントのインデックスのみを作成するように指示します。

2
Phil Tune

JavaScriptについて本当に理解していません。
Googleインデックスでは、@ philtuneが言うように、<head>の正規URLを使用します。ただし、http://www.example.com/foo/barhttp://www.example.com/?_escaped_fragment_=/foo/barからフェッチされることを期待できない場合。

Google Fetchcanonical urlを取得しました。

この場合、URLはhttp://www.example.com/foo/barです。Googleはhttp://www.example.com/foo/barもインデックスします。

ページのGoogleインデックスが必要な場合は、<head>に次のスクリプトを追加します。

 <meta content = 'index、follow' name = 'googlebot' />

Google Fetchを使用して再度フェッチします。

Note
googleはウェブサイトをクロールし、フォローしてクロールし、ページ上のすべてのリンクをフォローします。あなたのページにhttp://www.example.com/?_escaped_fragment_=/foo/barのようなリンクがあり、http://www.example.com/foo/barにリダイレクトする場合、http://www.example.com/foo/barhttp://www.example.com/?_escaped_fragment_=/foo/barにリダイレクトされるため、Googleはhttp://www.example.com/foo/barにインデックスを付けます。

1
mitchell