サイトマップ・URLリストのクローラー

SpiderHeadはリンクをたどるだけでなく、サイトマップに記載されたURLや指定したURLリストもクロールできます。サイトマップの内容とクロールで見つかった結果も突き合わせます。

できること

サイトマップ・URLリスト・URLファイルの各モード

sitemap-crawlは、1つのサイトマップをURLツリーに展開します。入力はサイトマップのURLでもサイトのルートでも構いません。ルートを指定した場合は、robots.txtのSitemap行を読み、見つからなければ/sitemap.xmlを試します。クロールでは、crawl-site --sitemapがサイトマップのURLを起点にして結果を突き合わせます。--sitemap-onlyはサイトマップ記載のURLだけを取得し、--urlsまたは--urls-fileはリンクをたどらずに指定したリストを取得します。

  • サイトマップインデックス、urlset、テキスト形式、gzip形式のサイトマップに対応
  • 複数のサイトマップにまたがる重複URLを報告

サイトマップとクロール結果の突き合わせ

監査では、サイトマップのURL集合とクロールで見つかったURL集合を比べます。サイトマップ内のリダイレクトするURL、リンク切れのURL、インデックス不可のURLと、サイトマップに載っていないインデックス可能なページを報告します。記載URLのレスポンスコードはクロールから得たもので、sitemap-crawlでは取得しません。

  • 内部リンクのないサイトマップ上のURL
  • URL集合の不一致

3ステップで、スキャンを1件保存

  1. サイトマップを読み取る

    サイトマップのURLを1つ指定します。サイトマップインデックス、子サイトマップ、テキストのリスト、gzipファイルを、URLのエントリまでたどって読み取ります。

  2. 記載された各URLを確認する

    sitemap-crawlはサイトマップファイルを読み取り、記載されたエントリ、重複したエントリ、不正なエントリを報告します。記載URLごとのレスポンスコードが必要な場合は、crawl-site --sitemapまたは--sitemap-onlyでクロールします。

  3. クロール結果と比較する

    監査でサイトマップのURLとクロールしたページを突き合わせ、一致しない箇所を指摘します。

この機能のチェック項目

チェック項目意味重要度根拠
SITEMAP_URL_4XX_5XXサイトマップのURLが4xxまたは5xxを返すCriticalサイトマップのURLとそのステータスコード
SITEMAP_URL_3XXサイトマップのURLが200ではなくリダイレクトするImportantサイトマップのURLとリダイレクトのステータス
SITEMAP_URL_NON_INDEXABLEサイトマップにインデックス不可のURLが載っているImportantサイトマップのエントリ
SITEMAP_DESYNCサイトマップとクロールしたURLの集合が一致しないImportantサイトマップの集合とクロール結果の集合
URL_NOT_IN_SITEMAPインデックス可能なページがサイトマップに載っていないTipクロールで得た正規URL
SITEMAP_STALE_LASTMODサイトマップのlastmodが古い、または定型的な値になっているTipサイトマップ内のlastmodの値
チェック一覧にある関連項目
SITEMAP_URL_NON_CANONICALSITEMAP_ORPHANSITEMAP_URL_DUPLICATEDSITEMAP_TOO_MANY_URLS

コマンド1つで実行

bash
seohead sitemap-crawl --url https://example.com/sitemap.xml

先にインストールします: インストールガイド。どのコマンドも、AIエージェント向けのMCPツールとして実行できます。

必要なもの

  • サイトマップのURL、またはサイトのルート
  • 比較する場合:--sitemapを付けて実行したクロール
  • 固定のリストを使う場合:URLを記載したTXT、CSV、XLSX、XMLファイル

制限事項

  • sitemap-crawlが読み取るのはサイトマップファイルだけで、記載された各URLにはリクエストしません
  • 不一致のチェックと孤立ページのチェックには、比較対象となるクロールが必要です
  • 非常に大きなサイトマップは上限で切り捨てられ、切り捨てたことが表示されます

よくある質問

読み取れるサイトマップの形式は?
サイトマップインデックス、urlsetファイル、テキスト形式のサイトマップ(1行に1URL)、gzipファイルです。gzipは.gzファイルでも、gzipエンコードされたレスポンスでも読み取れます。入れ子になったインデックスは最後までたどります。
サイトマップの代わりにURLのリストを渡せますか?
できます。クロール時に、crawl-site --urlsでカンマ区切りのリスト、--urls-fileでTXT、CSV、XLSX、XMLファイルを渡せば、リンクを探索せずにクロールします。保存済みスキャンにリストを追加するには、scan-import-urlsを使います。事前に検証済みのバックアップを作成します。
サイトに変更を加えますか?
いいえ。リクエストするのはサイトマップファイルと、クロールで指定したページだけです。サイトマップもページも編集しません。
サイトマップのコマンドだけで、不一致や孤立URLは見つかりますか?
見つかりません。これらのチェックにはクロールで得たURL集合が必要なので、クロールとサイトマップを突き合わせるとき(crawl-site --sitemap)に実行されます。このコマンド単体で返すのは、lastmodの値を含むURLツリーです。