web-dev-qa-db-ja.com

プロトコルに依存しないロボットのサイトマップ

最近、すべてのサーバーがHTTPおよびHTTPSを介してすべてを提供できるようにしました。ユーザーは http://www.example.com または https://www.example.com を介して任意のサイトにアクセスできます。すべてのページはバージョン間で同一であるため、 http://www.example.com/about.phphttps://www.example.com/about.phpと同じです など。

URLは相対であるため、1つの例外を除いてプロトコルに言及していません。言い換えると、ページにHTTPが読み込まれている場合、他のページ、画像、CSS、HTTPを介したJavascript、およびHTTPSを使用したJavascriptにリンクし、混合コンテンツの警告を回避します。

今、その例外について。 robots.txtにあります:

Sitemap: http://www.example.com/sitemap.php

どうやらこれ RLは絶対でなければなりません

問題は、Googleが https://www.example.com/robots.txt を読み取ったときにHTTPサイトマップを取得する場合に発生する問題です。 robots.orgのドキュメントには、複数のサイトマップを指定できると書かれていますが、HTTPとHTTPSの両方のサイトマップが同じページのリスト(HTTPとHTTPSの両方)を含むので良いと確信できない場合。

robots.txtのサイトマップは、HTTPおよびHTTPSを受け入れるWebサイトでどのように処理する必要がありますか?

思いついたいくつかのアイデア:

  • 両方のサイトマップを指定します(上記のとおり)。これが重複コンテンツの問題を引き起こすことを恐れています。
  • HTTPSサイトマップのみを指定してください。とにかく、すべての一意のページにアクセスできます。
  • HTTPおよびHTTPSを介して別のrobots.txtを送信する魔法の(Apache)方法を見つけてください。それも可能ですか?問題を引き起こす可能性はありますか?
2
Itai

http://www.example.com/sitemap.phpのサイトマップには、http://www.example.com/のURLのみを含めることができます。¹schemeおよびHost同じでなければなりません .

したがって、1)両方のプロトコルのサイトマップを提供し、2)robots.txtのSitemapフィールドを介して両方のサイトマップをリンクする場合、HTTPとHTTPSに別々のrobots.txtファイルを提供する必要があります。

#        http://www.example.com/robots.txt

Sitemap: http://www.example.com/sitemap.php
#        https://www.example.com/robots.txt

Sitemap: https://www.example.com/sitemap.php

(Apacheでこれを簡単に達成できるはずです。たとえば、 への回答を参照してください。robots.txtでHTTPSのみのクロールを禁止する方法はありますか?

ただし、検索エンジンに非正規バリアントのサイトマップを解析させるのはあまり意味がないため、通常はインデックスを作成したくないため、正規バリアントのみにサイトマップを提供したい場合があります(例:HTTPSのみ)。そのURLのいずれか。したがって、HTTPSが標準である必要がある場合:

  1. 各HTTPページで、canonicalリンクタイプを使用してHTTPSバージョンにリンクします。
  2. HTTPSのみでサイトマップを提供し、HTTPS URLのみをリストします。
  3. HTTPS robots.txtからサイトマップをリンクします(理想的にのみ)。

¹ cross submits が使用されている場合を除きます。

0
unor
http://www.example.com/about/
http://www.example.com/about
http://example.com/about/
http://example.com/about
https://www.example.com/about/
https://www.example.com/about

これらの種類の重複コンテンツは、Googleが長年前からすでに処理しています。そのため、最初に重複コンテンツの問題を心配しないでください。

サイトのHTTPバージョンとHTTPSバージョンを同時に提供することはまったく問題ありません。特に、サイトをHTTPからHTTPSに移行する場合、Stackoverflowもこれを過去に行いました。

ここでは、Googleはウェブページの1つのバージョンのみをインデックス化します。つまり、バージョンhttp://www.example.com/about.phphttps://www.example.com/about.phpの両方のインデックスを作成しません。ほとんどの場合、 デフォルトではHTTPSを選択します

また、サイトマップファイルをrobots.txtに追加する必要はありません。特に、Googleについて考える場合(ask.comではありません)、サイトマップをウェブマスターツールに送信するオプションが提供されるためです。したがって、検索コンソールにhttp://www.example.comhttps://www.example.comなどの2つのプロパティを作成し、そこに個別のサイトマップを送信します。

サイトマップ、robots.txt、その他すべてのことに真剣に取り組んでいる理由がわかりません。 Googleはサイトマップなしでウェブサイトをクロールし、インデックスに登録できます。たとえば、ウィキペディアにはサイトマップがありませんが、内部リンク構造が優れているため、クロールが頻繁に行われます。

0
Goyllo