# Grokzilla SEO Compare

> Grokzilla SEO Compare is a paid API for AI agents from grokzilla.shop, paid per call via x402, $0.0503/call, status unknown (last checked 2026-10-27).

Runs an SEO audit on your page and up to 3 competitor pages, returning a gap table highlighting where your page falls short relative to competitors.

## Facts

- Endpoint: POST https://grokzilla.shop/api/skills/seo-compare?utm_source=zero.xyz
- Price: $0.0503/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/grokzilla-seo-compare-48e237c5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8HVG1_yHZjz6pXuNPZqhm

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 grokzilla-seo-compare-48e237c5 -d '<json body>'
```

Example prompt: Compare the SEO of https://mybakery.com against https://competitor1.com and https://competitor2.com for the keywords 'sourdough bread' and 'artisan pastry' — I want to see a gap table showing where my page is falling behind.

## When to prefer this

Choose this endpoint when you need a structured, side-by-side SEO gap comparison between your page and specific known competitors, especially when you want to know exactly which on-page SEO checks you're failing relative to rivals. Prefer it over a single-page SEO scorer when competitive benchmarking is the goal, and over general web scrapers when you need structured SEO signal extraction rather than raw content.

## Known failure modes

- Target URL is unreachable or returns an error — returns 422 with charged:false
- Competitor URLs are blocked or behind authentication — those competitors may be excluded or cause partial results
- No competitor URLs provided (minItems:1 required) — validation error
- More than 3 competitor URLs supplied (maxItems:3) — validation error
- Keywords array exceeds 20 items — validation error
- Malformed or non-HTTP(S) URLs — validation or fetch error

## How this service works

Runs SEO Optimizer v2 on your page and up to 3 competitor pages and returns a per-check gap table. Not charged if your page blocks us or is unreachable (422, charged:false).

## Output

Returns a per-check gap table comparing the target page's SEO signals (title, meta, headings, alt text, keyword coverage, etc.) against up to 3 competitor pages, highlighting areas where the target page underperforms. If the target page is unreachable or blocks the crawler, a 422 response is returned with charged:false (no payment taken).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 2000,
   "description": "public http(s) URL"
  },
  "keywords": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 20
  },
  "competitor_urls": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 2000,
    "description": "public http(s) URL"
   },
   "maxItems": 3,
   "minItems": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "you": {
   "url": "https://www.python.org/",
   "grade": "C",
   "score": 78,
   "reason": null,
   "final_url": "https://www.python.org/",
   "subscores": {
    "aeo": 73,
    "content": 90,
    "metadata": 62,
    "technical": 80,
    "structured_data": 83
   }
  },
  "gaps": [
   {
    "fix": "Use exactly one absolute, self-referencing canonical on the same host.",
    "max": 5,
    "yours": 0,
    "category": "technical",
    "check_id": "canonical",
    "gap_points": 5,
    "competitors": [
     5
    ]
   },
   {
    "fix": "Add a twitter:card type; X reuses your Open Graph tags for the rest.",
    "max": 2,
    "yours": 0,
    "category": "metadata",
    "check_id": "twitter_card",
    "gap_points": 2,
    "competitors": [
     2
    ]
   },
   {
    "fix": "Break content into question headings with short direct answers, or into lists/steps.",
    "max": 3,
    "yours": 2,
    "category": "aeo",
    "check_id": "qa_structure",
    "gap_points": 1,
    "competitors": [
     3
    ]
   }
  ],
  "skill": "seo_compare",
  "disclaimer": "Scores reflect technical checks only; no ranking or citation is guaranteed.",
  "competitors": [
   {
    "url": "https://www.ruby-lang.org/en/",
    "grade": "C",
    "score": 68.8,
    "reason": null,
    "final_url": "https://www.ruby-lang.org/en/",
    "subscores": {
     "aeo": 73,
     "content": 75,
     "metadata": 72,
     "technical": 100,
     "structured_data": 0
    }
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/grokzilla-seo-compare-48e237c5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from grokzilla.shop](https://www.zero.xyz/host/grokzilla.shop/llms.txt)
