web-dev-qa-db-ja.com

JSアプリケーションを使用して構築されたWebサイトは、GoogleのAJAXクロール仕様に従ってインデックス化されなくなりました。問題は何ですか?

Googles AJAX Crawling spec(https://developers.google.com/webmasters/ajax-crawling/docs/getting-started)に準拠する必要がある2つのサイトがあります。

1つのドメイン(http://auroraliveaboard.com)は以前にインデックス付けされていたため、すべての検索結果が失われました。別のドメイン(http://acs-germany.de)はインデックスに登録されず、1か月半の間仕様に準拠した後、何も変更されず、結果は表示されません。

私のアプリケーションには、#!を使用するためのリンクが含まれています。次の形式で作成されます。

http://tld.com/#!locale/page

次のリクエストをターゲットとする正しいHTMLスナップショットを提供するための書き換えルールが用意されています。

http://tld.com/?_escaped_fragment_=locale/page

このスナップショットは、単にDOMをnodeJSインスタンスにダンプし、出力されたHTMLを新しいタグでラップすることで生成されます。

この時点で、クローキングが発生していないことが明らかになります。各ページのDOMを単純にダンプしているため、JSが有効になっているブラウザーで表示されるとおりです。

静的ページの代わりにJSアプリを使用する理由は、この議論の一部ではありません。

私は、グーグルがもはやページのインデックスを作成しない理由と、考えられる解決策に関心があります。私は仕様に完全に準拠していると確信しています。すべてのリンクを含むサイトマップも送信しました。何も変わっていません。サイトマップは、両方のドメインの「sitemap.txt」として存在します。

誰かが問題についていくつかの光を当てるのを助けることができれば、私は非常に感謝します!ありがとう!

2
DLeonardi

AFAIK、auroraliveaboard.comおよびacs-germany.deサイトは、あなたが説明した AJAX Googleのクロールスキーム を正しく実装していません。

Auroraliveaboard.comに関しては、エスケープされたフラグメントURLは常に同じコンテンツを返すようです。たとえば、 http://auroraliveaboard.com/?_escaped_fragment_=en_routes は、 http://auroraliveaboard.com/#!en_routes のスナップショットを返しません。

Acs-germany.deに関しては、書き換えルールが機能しない場合があります。たとえば、 http://acs-germany.de/?_escaped_fragment_=en/news は、( http://acs-germany.de/snapshots/en/news.html にリダイレクトされますが、存在しません) 。また、「フラグメント」パスの名前を「スナップショット」に変更したようです。 ご覧のとおり Googleはこれらの推定古いページの一部にインデックスを付けましたが、リダイレクトされたURLを使用してスナップショットを取得しようとしました(例 http://acs-germany.de/fragments/de/news.html#! en/news の代わりに http://acs-germany.de/#!en/news )。なぜ機能しなかったのかを説明できます。

1
check_ca