# On-Page SEO Audit & Checker

> On-Page SEO Audit & Checker is a paid API for AI agents from agent-data.centorprat.workers.dev, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-30).

Crawls up to 3 URLs per call and returns a scored, graded on-page SEO audit with prioritized fixes covering title, meta, headings, canonical, structured data, and more.

## Facts

- Endpoint: POST https://agent-data.centorprat.workers.dev/tools/on-page-seo-audit?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/on-page-seo-audit-checker-c2471b24
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GAyhpIhvYWiZDHJKK7Zu2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability on-page-seo-audit-checker-c2471b24 -d '<json body>'
```

Example prompt: Can you run an on-page SEO audit on https://mysite.com and https://mysite.com/pricing and tell me the score, grade, and top fixes I should make?

## When to prefer this

Choose this endpoint when you need a fast, keyless, structured on-page SEO audit for up to 3 URLs at once with no API key setup — ideal for agents checking SEO health before publishing, diagnosing ranking issues, or comparing pages. Prefer this over generic HTML scrapers when you specifically need scored SEO signals (title, meta, canonical, structured data, OG tags) rather than raw page content.

## Known failure modes

- URL is unreachable or returns a non-200 status — that URL's audit is skipped and not charged
- URL resolves to a non-HTML resource (PDF, image) — audit may be incomplete or skipped
- More than 3 URLs submitted — request rejected per maxItems constraint
- Malformed URL string — validation error returned
- Page is JavaScript-rendered SPA with no server-side HTML — crawl may miss dynamic content
- robots.txt disallows crawling — results may be partial or flagged

## How this service works

Pay-per-call data and tools for AI agents, $0.002-0.01 per call in USDC via x402 (Base, Polygon or Solana), no account or API key; MAX tiers ($0.05-0.25) run deeper jobs. Agent toolkit: web search, search + read top pages, any page as clean markdown with a prompt-injection check, which-x402-API-to-call recommender, seller check. Data: Google Maps places with contacts, YouTube video data and transcripts, job listings (Indeed, LinkedIn, 13 boards), Google Ads Transparency, TikTok comments, Pinterest, Airbnb, Redfin, AliExpress, app stores, live sports, website and SEO checks, Shopify store tech stacks, and onchain token / address risk checks.

## Output

Returns one SEO report per URL containing: an overall score and letter grade, pass/fail checks for title tag, meta description, H1/H2 headings, canonical tag, robots meta, Open Graph tags, structured data (JSON-LD/schema), image alt attributes, internal/external links, viewport meta tag, sitemap availability, and robots.txt; plus a prioritized list of actionable fixes ordered by impact.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 3,
   "description": "Pages to audit, e.g. [\"https://your-site.com\", \"https://your-site.com/pricing\"]. One SEO report per URL."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "url": "https://www.python.org/",
    "grade": "A",
    "score": 90,
    "checks": [
     {
      "check": "title",
      "detail": "Title (21 chars): Welcome to Python.org",
      "status": "pass"
     },
     {
      "check": "metaDescription",
      "detail": "Meta description (52 chars).",
      "status": "pass"
     },
     {
      "check": "h1",
      "detail": "5 <h1> tags (ideal: 1).",
      "status": "warn"
     },
     {
      "check": "indexable",
      "detail": "Indexable (no noindex).",
      "status": "pass"
     },
     {
      "check": "canonical",
      "detail": "No canonical link - duplicate-content risk.",
      "status": "warn"
     },
     {
      "check": "https",
      "detail": "Served over HTTPS.",
      "status": "pass"
     },
     {
      "check": "viewport",
      "detail": "Mobile viewport set.",
      "status": "pass"
     },
     {
      "check": "openGraph",
      "detail": "Open Graph tags present.",
      "status": "pass"
     },
     {
      "check": "structuredData",
      "detail": "Structured data: SearchAction, WebSite",
      "status": "pass"
     },
     {
      "check": "imageAlt",
      "detail": "All 1 images have alt text.",
      "status": "pass"
     },
     {
      "check": "contentLength",
      "detail": "1116 words of content.",
      "status": "pass"
     },
     {
      "check": "langAttribute",
      "detail": "html lang=en",
      "status": "pass"
     },
     {
      "check": "sitemap",
      "detail": "No sitemap.xml found.",
      "status": "warn"
     },
     {
      "check": "robotsTxt",
      "detail": "robots.txt found.",
      "status": "pass"
     },
     {
      "check": "favicon",
      "detail": "Favicon declared.",
      "status": "pass"
     }
    ],
    "onPage": {
     "h1": [
      "Functions Defined",
      "All the Flow You’d Expect",
      "Compound Data Types"
     ],
     "lang": "en",
     "https": true,
     "title": "Welcome to Python.org",
     "images": 1,
     "charset": true,
     "favicon": true,
     "headings": {
      "h1": 5,
      "h2": 9,
      "h3": 0,
      "h4": 0,
      "h5": 0,
      "h6": 0
     },
     "viewport": true,
     "canonical": null,
     "indexable": true,
     "openGraph": {
      "image": true,
      "title": true,
      "description": true
     },
     "robotsTxt": true,
     "wordCount": 1116,
     "metaRobots": null,
     "sitemapXml": false,
     "titleLength": 21,
     "twitterCard": f
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/on-page-seo-audit-checker-c2471b24/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data.centorprat.workers.dev](https://www.zero.xyz/host/agent-data.centorprat.workers.dev/llms.txt)
