web-dev-qa-db-ja.com

Googleはescaped_fragmentページのインデックスを作成しました

私のサイトは単一ページのWebアプリです。 AJAXアプリケーションをクロール可能にする に基づいた提案に従っています。

私のURLは次のようになります:

http://domain.com/#!pages/contactUs

私の理解は:

http://domain.com/#!chair/12http://domain.com/?_escaped_fragment=chair/12に移動します

このプロジェクトではサーバー側のスクリプトを使用していないため、アプリケーションの状態でHTMLページを作成し、次のようなフォルダーに配置しました。

http://domain.com/htmlFiles/1.html

Apacheでは、_escaped_fragment_=を含むリクエストを適切なhtmlページに転送しました。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=chair\/([\w]*)
RewriteRule ^(.*)$ htmlFiles/%1.html? [R=302,L]

転送は正しく機能し、_escaped_fragment URLが使用されている場合は適切なページが表示されます。

Googleに送信したサイトマップは次のようになります。

<url>
<loc>http://domain.com/#!pages/contactUs</loc>
<lastmod>2012-12-30</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>

問題はこれです。HTMLファイルを含むhtmlFilesフォルダ全体(http://domain.com/htmlFiles/1.html)がGoogleでインデックス付けされます。これらのページは、実際のページに含まれるコンテンツをGoogleに示すためだけにあります。

私のウェブサイト全体が

http://domain.com/

これらのページは検索結果に表示されないはずです。彼らがきれいなURLのみをインデックスに登録すると言っていましたが、それでも、他の何かを妨げるかどうかはわかりませんので、これらのページを削除するのは嫌です。

302は正しいリダイレクトではなく、代わりに301を使用する必要があるのでしょうか?

また、そもそもこのリダイレクト方法に何か問題がありますか?

2
DMin

Googleの仕様で正確に指定されているように、コンテンツを提供するために?_escaped_fragment_ =を呼び出したときに302リダイレクト(ただし、301リダイレクト)を使用することはできません。実装で見られる問題は、HTMLファイルに、リダイレクトされたページに関連するリンクや、他のHTMLファイルを直接指すリンクが含まれている可能性があることです。たとえば、HTMLファイルにhttp://yourdomain.com/htmlFiles/1.html(または1.htmlのように相対的なもの)を指すhrefがある場合、このページはGoogleによってインデックス付けされます。

手短に言うと、サイトマップから始めて、Googleはページを正しくインデックス付けする必要がありますが、GoogleがHTMLファイルによって提供されるリンクを使用する場合、Googleはおそらく元の#とは関係なく直接インデックス付けします! urls。

ここには、問題を解決するためのさまざまな解決策があります。

  1. リダイレクトを使用しないでください。あなたの場合、それは不要だと思われますが、HTMLファイルがリクエストされたときにGoogleに直接送信できます。 Apache書き換えルールのRフラグを削除するだけです。さらに、このソリューションは、リダイレクトメカニズムにより、Googleとサーバー間の不要なラウンドトリップを回避します。これにより、ユーザー(およびGoogle)の帯域幅とCPUサイクルが節約されます。

  2. HTMLファイルのさまざまなhrefに正しいリンクがあることを確認してください。すべてが#を指している場合!バージョン、それは動作するはずです。

  3. 各HTMLファイルに、#!のコンテンツへの正規リンクを追加します。 ( http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=139394 )。これにより、Googleが正しいURLをインデックスに登録するのに役立ちます。

注:これらのソリューションはそれぞれ個別に機能する必要がありますが、それらの一部とすべてを組み合わせることもできます。

2
Yannick