変更前後のクロール比較

保存済みの2つの監査またはスキャンを、再クロールなしで比較します。新たに出た検出結果、消えた検出結果、宣言したURL移行での変化がわかります。

できること

4つの分類と1つのルール

検出結果はすべて、`entered`、`left`、`appeared`、`disappeared`のいずれかに分類されます。`left`は、両方のクロールがURLを取得できていて、検出結果が消えた場合です。`disappeared`は、後のクロールがそのURLを取得しなかった場合で、修正の証拠にはなりません。

  • 記録されたクロール設定が異なる場合は、--forceを付けない限り拒否されます。
  • ネイティブのクロールとScreaming Frogのエクスポートでは、見つかるURLの集合が異なる場合があります。比較するのは、範囲に互換性がある場合だけにします。
  • 後の実行でスキップされたチェックの分類には、警告が付きます。

サイト移行

URLが変わる前後を比較するには、ペアをurl-correspondence.v1ファイルで宣言し、--correspondenceで渡します。照合は完全一致です。SpiderHeadが、タイトルやリダイレクト、コンテンツからペアを推測することはありません。結果は、宣言したペアごとのページ情報と検出結果の差分をまとめた、リリースレビューになります。

  • origin_mapは、オリジン全体の移行に使います。
  • 1つの宣言に含められるのは、明示的なペア最大10,000件と、オリジン最大10,000件です。
  • これを超える宣言は拒否され、切り詰められることはありません。

大規模な監査と個別のURL

ページ数または問題の件数が10,000を超える監査では、--out-dirの明示が必要です。出力先には、NDJSONストリームとマニフェストを含む、新しいcompare.v2フォルダが作られます。gzip圧縮も任意で使えます。結果は、再計算せずにあとから読めます。

  • compare-readは、1つのストリームをフィルターと並べ替えを使ってページ単位で読みます。
  • compare-reportは、ページURLを含まないMarkdownのサマリーを書き出します。
  • compare-urlは、正確に指定した1つのURLについて、前後の情報を表示します。
  • compare-statusと--resumeで、中断したジョブを再開できます。

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

  1. それぞれの時点でスキャンを保存

    変更の前と後にcrawl-siteを実行するか、Screaming Frogの監査をインポートします。実行ごとに保存ファイルが1つ残り、あとから比較できます。

  2. 保存した2つのファイルを比較

    compare-crawlsは2つのファイルを読み、すべての検出結果を`entered`、`left`、`appeared`、`disappeared`に分類します。何も取得しません。

  3. 修正とページの欠落を見分ける

    `left`は、両方のクロールでURLを取得でき、検出結果が消えた状態です。`disappeared`は、URLが再確認されていないため、修正の証拠になりません。個別の検出結果の判定には、verify-fixesを使います。

この機能のチェック項目

チェック項目意味重要度根拠
BROKEN_PAGE_4XXページが4xxを返しています。差分では、`entered`(新たな不具合)か、`left`(両方のクロールで取得できたURLでの修正)かがわかります。Critical同じURLの、変更前と変更後の検出結果の行
SERVER_ERROR_5XXページが5xxを返しています。2つのクロールの間で、`entered`、`left`、`disappeared`の判定は同じ考え方です。Critical同じURLの、変更前と変更後の検出結果の行
TITLE_MISSINGページにtitle要素がありません。リグレッションは`entered`の行、修正は`left`の行に表れます。Critical同じURLの、変更前と変更後の検出結果の行
REDIRECT_CHAINリダイレクトチェーンが2ホップ以上あります。移行後に、チェーンが増えていないかの確認に役立ちます。Important同じURLの、変更前と変更後の検出結果の行
CANONICAL_MISSINGインデックス可能なページに、canonical URLがありません。テンプレートのリリースで、canonicalが抜けた箇所を検出します。Important同じURLの、変更前と変更後の検出結果の行
URL_NOT_IN_SITEMAPインデックス可能なページが、サイトマップにありません。リリースにサイトマップの更新が追いついているかがわかります。Tip同じURLの、変更前と変更後の検出結果の行

コマンド1つで実行

bash
seohead compare-crawls --before ./scans/before.sqlite --after ./scans/after.sqlite

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

必要なもの

  • 保存済みのaudit.json、またはscan.v1のSQLiteファイル2つ(--before、--after)
  • 任意:移行用のurl-correspondence.v1ファイル
  • 大規模な監査用の、新しい出力フォルダ(--out-dir)

制限事項

  • 検出結果が消えても、修正されたとは限りません。個別の検出結果の判定には、verify-fixesを使います。
  • 未測定またはスキップされたチェックは、検出結果が消えても修正の証拠になりません。
  • 宣言したペア以外のURLは、照合しません。
  • 既存の出力フォルダは拒否され、上書きされません。

よくある質問

compare-crawlsはサイトを再クロールしますか?
しません。保存済みの2つの監査ファイルまたはスキャンファイルを読むだけで、リクエストは送りません。選んだURLを再取得するコマンドは、verify-fixesです。
ネイティブのクロールとScreaming Frogのエクスポートは比較できますか?
範囲と設定に互換性がある場合だけ可能です。ネイティブのクロールとScreaming Frogでは、見つかるURLの集合が異なる場合があります。記録されたクロール設定が異なると、--forceを付けない限り、比較は拒否されます。
2回目のクロールからページが消えました。修正されたのでしょうか?
わかりません。検出結果が`disappeared`ということは、そのページが再確認されていないという意味です。両方のクロールでURLを取得でき、検出結果が消えた場合だけが`left`です。
大規模なサイトではどうなりますか?
ページ数または問題の件数が10,000を超える監査では、--out-dirの明示が必要です。出力は、NDJSONファイルとマニフェストを含む、新しいcompare.v2フォルダです。--compression gzipを付けると、ファイルを小さくできます。
サイト移行後に、旧URLと新URLを対応づけられますか?
オリジンとパスのペアを宣言したurl-correspondence.v1ファイル(--correspondence)がある場合だけ可能です。タイトルやコンテンツからペアを推測することはありません。
ディスクには何を書き出しますか?
小さな比較は、その場で結果を返します。--out-dirを指定すると、マニフェストとストリームごとのファイルを含む新しいフォルダを書き出します。外部には何も送信しません。