301→302301→302
A temporary redirect where a permanent one belongs.
Found by Redirect checker →
redirect loopredirect loop
The URL redirects back to itself and never settles.
Found by Redirect checker →
Import & compare

Verify SEO fixes

Recheck selected findings or URLs after a release. verify-fixes classifies each as resolved, persisting, changed or not verifiable, from the affected pages only.

Verify SEO fixes

Remediation ledger

Tasks move through states with recheck evidence, so a completed task is not mistaken for a fixed site.

Verify SEO fixes

Bounded

Whole-site and unmeasured checks cannot become fixed by a partial recheck.

How it works

Three steps, one saved scan

  1. Start from a baseline

    Point verify-fixes at the audit.json or SQLite scan you already have, then pick finding IDs or affected URLs.

  2. Recheck only the affected pages

    It refetches the selected URLs with the HTTP, robots and render policy recorded in the baseline. Whole-site checks are not rerun.

  3. Read the verdict per finding

    Each finding is marked resolved, persisting, changed or not verifiable, with a reason and the evidence in a new immutable JSON or Markdown file.

What it checks

Checks in this feature

CheckWhat it meansSeverityEvidence
BROKEN_PAGE_4XXPage returns a 4xx status; a recheck can show it fixed once the URL returns 2xxCriticalStatus code before and after, per URL
SERVER_ERROR_5XXPage returns a 5xx status; resolved only when the recheck gets a 2xxCriticalStatus code before and after, per URL
TITLE_MISSINGPage has no title element; a fix shows as resolved on the same URLCriticalBaseline and recheck finding rows for the URL
H1_MISSINGPage has no H1 headingImportantBaseline and recheck finding rows for the URL
CANONICAL_MISSINGPage has no canonical link elementImportantBaseline and recheck finding rows for the URL
REDIRECT_CHAINRedirect passes through two or more hops before the final URLImportantStatus per hop from the recheck
BAD_REDIRECT_TYPE302, 303 or 307 used where a permanent 301 is expectedTipStatus per hop from the recheck
How to run it

One command

bash
seohead verify-fixes --baseline ./report/audit.json --urls https://example.com/old-page

Install first: installation guide. Every command also runs as an MCP tool for AI agents.

Learn more

From the blog and glossary

FAQ

Questions

Verify SEO fixes
No. It only sends read requests to the URLs you select. The output is a new verification file in the folder you name with --out-dir.
No. It checks only the affected pages you selected. Whole-site and unmeasured checks cannot become fixed from a partial recheck; they come back not verifiable.
You need a baseline: a saved audit.json or a SQLite scan. To check without network requests, pass --after with an existing audit and it works offline.

Check your redirects locally