Technical SEO site crawl for indexing, links, metadata, and AI readiness.
This is the baseline technical SEO audit when you do not have a saved crawl yet. It follows same-origin links and optional sitemaps within explicit limits, then saves grouped findings that later reports can reuse without fetching the whole site again.
Run this report from the CLI, an MCP client, or application code. Every surface uses the same report definition and returns the same evidence. JSON is the source of truth; Markdown makes it readable without hiding dates, limits, warnings, or skipped work.
What this report helps you decide
What can the crawler discover and verify across this site scope?
- You need a technical baseline, issue inventory, or saved crawl for focused follow-ups.
- The start URL, page limit, and depth are appropriate for the site.
Command facts
- Report id
site-crawl- Execution
Local process- Outputs
JSON and Markdown- Example parameters
url, maxPages, maxDepth, saveReport- Agent discovery
seo reports describe site-crawl --json- Interactive prompts
Human CLI commands only
When this report is not the right tool
These cases need a different report, more evidence, or a human decision. Do not force this report to answer a question its data cannot support.
- The question is about one known URL and you do not need page discovery or a site-level baseline. Recommended report: Audit one page. Run the page audit. It fetches one URL and returns focused response, metadata, canonical, directive, link, structured-data, and content evidence.
- Clicks or impressions changed and you need to find which pages, queries, countries, or devices explain the movement. Recommended report: Review SEO performance. Run the search performance overview. It compares Search Console evidence and points to the segments and focused reports behind the movement. A crawl cannot explain search demand by itself.
Data sources and inputs
- Live site responses and discovered links. Provides the limited page set, redirects, response evidence, links, metadata, directives, and content extraction.
- robots.txt and sitemap discovery. Controls allowed fetches and adds eligible sitemap URLs when enabled.
- Optional Search Console and GA4 joins. Adds available first-party value to fetched landing pages without filling missing rows with zero.
What this report checks
- Fetches and extracts pages within the configured origin, depth, page, rate, inclusion, exclusion, robots, sitemap, and JavaScript settings.
- Runs maintained response, redirect, canonical, indexability, metadata, heading, link, structured-data, international, security, mobile, and content observations.
How it works
- Crawls same-origin pages within explicit depth and page bounds, applies shared rules, and preserves skipped, blocked, invalid, and partial states.
The JSON result keeps dates, thresholds, limits, skipped work, and source completeness beside the finding. Missing, partial, capped, filtered, and complete data remain different states.
Run the report from the CLI
Create and save a reusable technical SEO baseline. Agents and CI should inspect the live schema before their first run.
Run it from the CLI
seo crawl https://example.com --saveCheck the agent input schema
seo reports describe site-crawl --jsonRun it from an agent or script
seo reports run site-crawl --params '{"url":"https://example.com/","maxPages":100,"maxDepth":3,"saveReport":true}' --jsonProject profiles can fill supported property and analytics inputs for the human-facing commands. The catalog form shown here is explicit by design, so agents and CI jobs do not prompt or guess.
How an MCP agent should use it
Call seo_describe_report first so the agent sees when this report is useful and gets the current input schema. Then callseo_run_report with the validated parameters. Read the status, warnings, source limits, and skipped sections before acting on a finding.
Describe the report with MCP
{
"id": "site-crawl"
}Run the report with MCP
{
"id": "site-crawl",
"params": {
"url": "https://example.com/",
"maxPages": 100,
"maxDepth": 3,
"saveReport": true
}
}Use a follow-up report returned by the result instead of guessing the next tool. The local MCP server and CLI use the same report definition and evidence. Their outer transport envelopes differ.
Use the report in a TypeScript app
Install seo as a project dependency, then call the same report catalog used by the CLI and MCP. executeReportrejects an unknown report id or invalid parameters. Provider and runtime failures come back as structured results withisError set.
Install the library
npm install seoRun this report from TypeScript
import { executeReport } from 'seo/mcp'
const result = await executeReport(
'site-crawl',
{
"url": "https://example.com/",
"maxPages": 100,
"maxDepth": 3,
"saveReport": true
},
)
console.log(result)The TypeScript library guide also covers direct core functions, schema discovery, and the difference betweenexecuteReport and runReport.
What comes back and how to read it
- A compact technical summary with crawl status, page totals, grouped issues, top fixes, warnings, caveats, and source coverage.
- Optional limited page and issue inventories plus a local report id for comparisons and focused follow-ups.
- Read coverage, limits, failures, and robots evidence before issue counts. Prioritise conflicts that affect important pages and match publisher intent.
Start with dataStatus, source details, warnings, and caveats. Then inspect the observed evidence before derived findings or suggested actions.
What this report cannot tell you
- A local crawl is not Googlebot and cannot prove indexing. Pages outside discovery or limits remain untested.
What to do next
- Use top fixes for a compact action queue.
- Use affected URLs or a focused readiness report without rerunning the crawl.
Related reports
- Fix the most important technical SEO issues. Turn a long crawl report into a short list of technical SEO fixes ranked by evidence, reach, and effort.
- Find URLs affected by a crawl issue. Open the exact URLs behind a crawl finding and turn a summary count into a limited review or fix list.
- Compare two saved crawls. See which pages and technical issues appeared, disappeared, or changed between two saved crawl snapshots.
Sources behind the guidance
These primary sources define the provider data or search controls used in the interpretation above.
- Google robots.txt guidance
- Google canonical URL guidance
- Google guidance for crawlable links
- Google JavaScript SEO guidance
Browse all reports in Crawling and technical checks.