A temporary redirect where a permanent one belongs.
Found by Redirect checker →
The URL redirects back to itself and never settles.
Found by Redirect checker →
Custom extraction from crawled pages
Content selectors and declarative extraction rules run over retained page bodies, and saved-scan source search finds which pages carry a marker such as a GTM snippet.
Search the saved HTML
Find every page that contains a string or pattern in a saved scan.
- scan-content-search
- Bounded, paged results
Three steps, one saved scan
Crawl once and keep the bodies
A saved scan keeps complete page bodies within the body-retention limit. Rules and searches then run on that copy, not on the live site.
Run extraction rules offline
Write rules as JSON with kind text, attribute, structured, presence or count, and operator equals, contains, matches or exists. Run them with seohead scan extract; nothing is fetched and the result is not saved.
Search the saved HTML for a marker
scan-content-search finds a literal string or a regex in raw HTML, head markup, body text or a CSS selector, and writes a local package. Read it 100 rows at a time with scan-content-search-page.
Checks in this feature
| Check | What it means | Severity | Evidence |
|---|---|---|---|
TITLE_MISSING | Title element is missing. A rule with kind text on the title selector finds the same gap across the saved scan. | Critical | docs/CHECKS.md registry row: severity critical, fix: add a unique, descriptive title. |
CANONICAL_MISSING | Indexable page has no canonical URL. A presence rule on link[rel=canonical] lists the pages that lack it. | Important | docs/CHECKS.md registry row: severity warning (mapped to Important). |
SCHEMA_VALIDATION_ERROR | Structured data validation errors. A structured rule with a JSON pointer lets you read the JSON-LD values behind the error. | Important | docs/CHECKS.md registry row: severity warning, source SF Structured Data Validation Errors. |
STRUCTURED_DATA_MISSING | Structured data is missing on pages where you expect it. A presence rule on the JSON-LD block shows the pages that have none. | Tip | docs/CHECKS.md registry row: severity notice (mapped to Tip). |
LOREM_IPSUM_PLACEHOLDER | Lorem Ipsum placeholder text appears in the page content area. A content search for the placeholder phrase finds it across the whole scan. | Important | docs/CHECKS.md registry row: severity warning, source crawl:lorem_ipsum_count. |
One command
seohead scan-content-search --scan ./scans/audit.sqlite --query gtm.jsInstall first: installation guide. Every command also runs as an MCP tool for AI agents.
