Audit page (full)
audit_pageRun a full AI-SEO audit on any URL. Get categorized findings with severity, fix instructions, and a 0-100 composite score covering all SEO dimensions.
Instructions
Full AI-SEO audit of a single URL: returns categorized findings (info/warning/error) with severity, fix instructions, and a 0-100 composite score plus per-dimension subscores.
Read-only. Fetches the URL once and runs every sub-audit (schema, robots, technical, sitemap, AI-Overview eligibility) against the response. No writes, no third-party APIs, no auth required, no rate limits beyond polite per-host throttling.
Deterministic, rule-based scoring; no LLM calls. Same URL + same input flags returns the same score.
Supports render: "static" | "headless". Default static (fast, raw HTML only). Use headless for React/Vue/Angular SPAs — adds 3-10s and requires the optional playwright-core peer dep plus a one-time npx playwright install chromium.
When to use: the default entry point for audit any page. Use this instead of calling check_technical / audit_schema / check_robots / check_sitemap / score_ai_overview_eligibility individually unless you specifically need only one dimension - this tool composes all of them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to audit. Must be a fully-qualified http(s) URL that returns HTTP 200 (redirects are followed). The tool fetches this URL once and runs every sub-audit (schema, robots, technical, sitemap, AI-Overview eligibility) against the response. | |
| render | No | Rendering mode. `static` (default) fetches raw HTML via HTTP — fast (<1s) but misses JS-rendered content typical of SPAs (React/Vue/Angular landing pages). `headless` spins up Playwright Chromium, waits for networkidle, and audits the rendered DOM — adds 3-10s per audit and requires `playwright-core` installed plus a one-time `npx playwright install chromium`. Use `headless` when the static audit shows `content_quality: "spa_empty"` or you know the target is JS-rendered. | static |
| respect_robots | No | If true (default), the tool checks robots.txt before fetching and skips disallowed paths, returning a robots_blocked finding instead. Set to false ONLY for auditing your own site where you've intentionally blocked crawlers and need the audit to bypass that block. | |
| generate_report | No | If true, return a standalone HTML scorecard in the `report_html` field. The HTML is self-contained (no external dependencies) and can be saved as a .html file or pasted to Gist/CodePen. Default false to keep audits cheap. | |
| include_raw_html | No | If true, return the full raw HTML in the response under `raw_html`. Default false. Set true only when you need to inspect markup that wasn't captured by the structured findings; the payload can be large. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL that was audited. | |
| grade | Yes | Letter grade derived from the numeric score. | |
| score | Yes | Composite 0-100 AI-citation score. | |
| findings | Yes | All findings emitted by the sub-audits, deduplicated. | |
| raw_html | No | Full raw HTML response. Present only when include_raw_html=true. | |
| fetched_at | Yes | UTC ISO-8601 timestamp of the fetch. | |
| score_caps | Yes | Hard blockers that capped the composite score (e.g. noindex, AI bots blocked). Empty when none fired. | |
| report_html | No | Self-contained HTML scorecard. Present only when generate_report=true. | |
| content_quality | Yes | Classification of the fetched HTML's readiness. spa_empty means audit results are degraded. | |
| citation_verdict | Yes | Prepended block summarizing whether AI assistants will cite this page and why. | |
| dimension_scores | Yes | Per-dimension 0-100 subscores. The composite score is a weighted blend of these. | |
| platform_readiness | Yes | Per-engine readiness derived from the dimensions; engines reward different signals. |