A scan is a bounded crawl of a public base URL. It produces a report (HTML) and a structured artifact (JSON) that are designed to diff cleanly over time.
SEODiff is intentionally sample-based. Instead of crawling every URL, it samples a representative set of pages. This keeps runs fast and makes diffs more stable.
SEODiff groups sampled pages into templates (sometimes called “patterns”). This is what makes it useful for programmatic sites: a single template change can affect hundreds or thousands of URLs.
Every check emits machine-readable issue keys (for example schema_missing_required). Automation uses issue keys to decide pass/fail. Humans use the report to see examples, affected templates, and suggested fixes.
Scores are designed to be directional and stable. In automation, prefer explicit fail rules (fail_on, max_issue_rate) over gating on score alone.
SEODiff is strongest when it can compare a scan to a previous scan or baseline. This powers incidents in monitoring and (planned) regression-only gates in CI/CD.