SEO Audit

Audit a page for SEO: title, meta description, headings, image alt text, canonical, robots.txt, sitemap, Open Graph, schema.org and links.

Pay by wallet (x402) AI-generated seo-audit

Example

Input
{
  "url": "https://google.com"
}
Answer
{
  "url": "https://google.com",
  "checks": {
    "h1": {
      "count": 0,
      "values": [],
      "optimal": false
    },
    "links": {
      "ratio": 3.25,
      "external": 13,
      "internal": 4
    },
    "title": {
      "value": "Google",
      "length": 6,
      "optimal": false,
      "present": true
    },
    "images": {
      "total": 10,
      "with_alt": 0,
      "without_alt": 10
    },
    "sitemap": {
      "referenced_in_robots": true
    },
    "canonical": {
      "url": null,
      "present": false
    },
    "open_graph": {
      "image": false,
      "title": false,
      "complete": false,
      "description": false
    },
    "robots_txt": {
      "present": true
    },
    "schema_org": {
      "present": false,
      "json_ld_blocks": 0
    },
    "meta_description": {
      "value": null,
      "length": 0,
      "optimal": false,
      "present": false
    },
    "heading_hierarchy": {
      "count": 0,
      "structure": []
    }
  },
  "issues": [
    "Missing meta description",
    "No H1 tag found",
    "10 images missing alt text"
  ],
  "overall_score": 35,
  "prioritized_fixes": [
    {
      "fix": "Title is 6 chars. Aim for 30-60 characters.",
      "issue": "Title length not optimal",
      "priority": "medium"
    },
    {
      "fix": "Add a meta description between 120-160 characters",
      "issue": "Missing meta description",
      "priority": "high"
    },
    {
      "fix": "Add exactly one H1 tag per page",
      "issue": "Missing H1",
      "priority": "high"
    },
    {
      "fix": "Add descriptive alt attributes to all images",
      "issue": "Images missing alt text",
      "priority": "medium"
    },
    {
      "fix": "Add a <link rel='canonical'> tag",
      "issue": "No canonical URL",
      "priority": "low"
    },
    {
      "fix": "Add og:title, og:description, and og:image meta tags",
      "issue": "Incomplete Open Graph tags",
      "priority": "medium"
    },
    {
      "fix": "Add JSON-LD schema.org markup",
      "issue": "No structured data",
      "priority": "low"
    }
  ]
}

Inputs

FieldTypeRequiredWhat it is
urlstringYesURL to audit

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
checksobjectAlways (present in every successful answer)
issuesarrayAlways (present in every successful answer)
overall_scoreintegerAlways (present in every successful answer)
prioritized_fixesarrayAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "seo-audit",
    "inputs": {
      "url": "https://google.com"
    },
    "max_price_cents": 30
  }'

Limitations

  • Backlinks and domain authority are not assessed

    Analyses on-page SEO factors only — does not assess backlink profile, domain authority, or content quality

    What to do instead: Combine with domain-reputation for authority signals and google-search to check actual SERP positioning

  • Only the first 500 KiB of robots.txt is parsed

    Only the first 500 KiB of robots.txt is parsed. Directives beyond that limit do not appear in the result.