web-dev-qa-db-ja.com

ページからXMLサイトマップへのリンクを提供する必要がありますか?

XMLサイトマップは、「通常の」サイトページからリンクする必要がありますか?リンクする必要がないように、ボットが検索する標準のサイトマップの名前と場所はありますか?それをドキュメントルートに置いて、標準的な名前を付けることはできますか?

特定のWebクローラーに完全に依存していますか?

2
olegst

ドキュメント から:

検索エンジンクローラーに通知する

サイトマップファイルを作成してウェブサーバーに配置したら、このプロトコルをサポートする検索エンジンにその場所を通知する必要があります。これを行うには:

  • 検索エンジンの提出インターフェースを介してそれらに提出する
  • サイトのrobots.txtファイルで場所を指定する
  • hTTPリクエストを送信する

検索エンジンはサイトマップを取得し、クローラーがURLを利用できるようにします。

検索エンジンの送信インターフェースを介してサイトマップを送信する

サイトマップを検索エンジンに直接送信して、ステータス情報と処理エラーを受信できるようにするには、各検索エンジンのドキュメントを参照してください。

robots.txtファイルでサイトマップの場所を指定する

Robots.txtファイルを使用して、サイトマップの場所を指定できます。これを行うには、完全なURLを含む次の行をサイトマップに追加するだけです。

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

このディレクティブは、ユーザーエージェント行とは無関係です。したがって、ファイル内のどこに配置してもかまいません。サイトマップインデックスファイルがある場合は、そのファイルだけの場所を含めることができます。インデックスファイルにリストされている個々のサイトマップをリストする必要はありません。

Robots.txtファイルごとに複数のサイトマップファイルを指定できます。

Sitemap: http://www.example.com/sitemap-Host1.xml

Sitemap: http://www.example.com/sitemap-Host2.xml

HTTPリクエストを介してサイトマップを送信する

HTTPリクエストを使用してサイトマップを送信するには(検索エンジンが提供するURLに置き換えます)、次のURLにリクエストを発行します:/ ping?sitemap = sitemap_url

たとえば、サイトマップが http://www.example.com/sitemap.gz にある場合、URLは次のようになります。

<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz

/ ping?sitemap =の後のすべてをURLエンコードします。

<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.yoursite.com%2Fsitemap.gz

Wget、curl、またはその他の選択したメカニズムを使用して、HTTP要求を発行できます。要求が成功すると、HTTP 200応答コードが返されます。別の応答を受け取った場合は、リクエストを再送信する必要があります。 HTTP 200応答コードは、検索エンジンがサイトマップを受信したことのみを示し、サイトマップ自体またはその中に含まれるURLが有効であることを示しません。これを簡単に行う方法は、サイトマップを定期的に生成および送信する自動ジョブを設定することです。

注:サイトマップインデックスファイルを提供する場合、サイトマップインデックスファイルの場所を含む1つのHTTPリクエストのみを発行する必要があります。インデックスにリストされているサイトマップごとに個別のリクエストを発行する必要はありません。

1
John Conde