SEO & AI Search (GEO) Audit: llms.txt, AI Bots, Schema avatar

SEO & AI Search (GEO) Audit: llms.txt, AI Bots, Schema

Pricing

from $15.00 / 1,000 page auditeds

Go to Apify Store
SEO & AI Search (GEO) Audit: llms.txt, AI Bots, Schema

SEO & AI Search (GEO) Audit: llms.txt, AI Bots, Schema

Audit any website for Google SEO and AI search (ChatGPT, Perplexity, Claude, Gemini, AI Overviews): 50+ checks, AI crawler access in robots.txt, llms.txt, schema.org, broken links, SEO + GEO scores and prioritized fixes. $15 per 1,000 pages.

Pricing

from $15.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Dodi Abak

Dodi Abak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

Find out why a website doesn't rank in Google, and why ChatGPT, Perplexity, Claude, Gemini and Google AI Overviews don't cite it, with a fix for every problem. Give it a homepage or a list of URLs. For every page it returns an SEO score, a GEO score (Generative Engine Optimization, meaning AI search readiness) and a ranked list of issues, each with a plain-English fix. One extra row per site covers robots.txt rules for 18 AI crawlers, llms.txt, the XML sitemap and the top fixes across the whole site.

$15 per 1,000 audited pages ($0.015 per page). Site summaries, failed pages and bot-challenge pages are free. No browser and no proxies are needed, so a 10-page audit takes about 5–10 seconds.

What it checks (50+ checks)

AreaChecks
AI search (GEO)robots.txt access for OAI-SearchBot, ChatGPT-User, GPTBot, Claude-SearchBot, Claude-User, ClaudeBot, PerplexityBot, Perplexity-User, Google-Extended, Googlebot, Bingbot, Applebot-Extended, meta-externalagent, Amazonbot, CCBot, Bytespider, DuckAssistBot and MistralAI-User (search bots and training-only bots reported separately) · /llms.txt and /llms-full.txt presence and format · content visible without JavaScript (most AI crawlers don't render JS) · schema.org entities · author and dates (E-E-A-T) · question-style headings and FAQ · lists and tables · summary lead paragraph
IndexingHTTP status, redirect chains, noindex in meta and X-Robots-Tag, canonical (missing, multiple, pointing elsewhere), XML sitemap (index-aware, URL count), Sitemap line in robots.txt, Googlebot/Bingbot blocked, robots.txt 5xx
MetadataTitle and meta description presence and length, lang, viewport, charset, favicon
StructureH1 count, heading-level skips, JSON-LD validity and types, microdata
ContentWord count, thin content, reading time
SocialOpen Graph (title, description, image), Twitter card
LinksInternal and external link counts, empty anchors, and optional broken-link checking (404/410/5xx/dead hosts, HEAD then GET to avoid false positives)
PerformanceTime to first byte, HTML weight, compression, lazy-loading of images
SecurityHTTPS, mixed content, HSTS
Internationalhreflang code validity and self-reference

Every issue has an id, a severity (critical, high, medium or low), a category, a message and a fix. Scores start at 100 and drop by 20, 10, 4 or 1 points per issue, depending on severity.

Why this one?

This ActorTypical SEO audit Actors
AI search readinessGEO score, 18 AI bots, llms.txt, JS-only content detectionClassic SEO only
OutputPrioritized fixes in plain English plus a site summaryRaw metrics
Price$0.015 per page, site summary free$0.01–$0.04 per page
SpeedHTTP-only, ~1 s per pageHeadless browser, slow
Agent-friendlyCompact topFixes arrays, stable issue ids, small inputLarge, noisy output

Use cases

  • SEO and GEO agencies: run a client audit in seconds, export to CSV or Sheets, and send the fix list.
  • AI agents (MCP): "Audit acme.com for AI search" works as a single call. The agent gets scores and topFixes it can act on or explain.
  • Site owners: check that ChatGPT, Perplexity and Google AI Overviews can actually read and cite your site, and whether robots.txt blocks them by accident.
  • Monitoring: schedule weekly runs to catch noindex mistakes, broken links, missing canonicals or a robots.txt change that blocks AI search.
  • Lead generation for agencies: audit prospects' sites and lead with concrete findings.

How to use it

  1. Enter one or more URLs in Websites or pages to audit. A homepage is enough.
  2. Set Max pages per site. Pages are picked from the sitemap first, then from internal links. Set it to 1, or turn off Discover more pages, to audit only the exact URLs you entered.
  3. Optional: turn on Check for broken links.
  4. Click Start. Use the Pages, Site summaries, All issues or AI search readiness view, or export JSON, CSV or Excel.

Input example

{
"startUrls": [{ "url": "https://apify.com" }, { "url": "https://example.com" }],
"maxPagesPerSite": 10,
"checkBrokenLinks": true
}

Output example: a page row (shortened)

{
"type": "page",
"url": "https://example.com/",
"status": "ok",
"seoScore": 58,
"geoScore": 82,
"overallScore": 70,
"critical": 0, "high": 2, "medium": 6, "low": 2,
"topFixes": [
"[high] Add a 70–160 character summary. Search snippets and AI answers often quote it.",
"[high] Add one H1 that states the page topic in plain words.",
"[medium] Add <link rel=\"canonical\" href=\"…\"> pointing to the preferred URL to avoid duplicate-content splits."
],
"issues": [
{ "id": "description-missing", "severity": "high", "category": "metadata", "message": "Missing meta description.", "fix": "Add a 70–160 character summary. Search snippets and AI answers often quote it." }
],
"title": "Example Domain",
"wordCount": 25,
"structuredDataTypes": [],
"jsRenderedSuspected": false,
"aiBotsBlockedHere": []
}

Output example: a site summary row (free)

{
"type": "site",
"url": "https://vite.dev",
"pagesAudited": 3,
"siteSeoScore": 91,
"siteGeoScore": 94,
"blockedAiSearchBots": [],
"blockedAiTrainingBots": [],
"llmsTxt": { "found": true, "url": "https://vite.dev/llms.txt", "bytes": 3528, "looksValid": true, "linkCount": 6 },
"aiBots": [{ "agent": "OAI-SearchBot", "owner": "OpenAI", "purpose": "search", "allowedOnHomepage": true }],
"topFixes": [
"[medium] (3 pages) Add JSON-LD: Organization + WebSite on the homepage, Article/BlogPosting on posts, …",
"[low] (site-wide) Add /robots.txt with a Sitemap: line and explicit rules for AI crawlers."
]
}

Pages that can't be audited get a free row such as {"status": "error", "errorCode": "HTTP_404"}. The other error codes are TIMEOUT, UNREACHABLE, NOT_HTML, BLOCKED (the site served a bot challenge) and INVALID_URL.

A run summary is also saved to the key-value store record OUTPUT.

Main output fields (page rows)

FieldMeaning
seoScore, geoScore, overallScore0–100 scores
issues[], topFixes[]All issues, most severe first, and the 5 most important fixes
title, metaDescription, h1, headingCountsOn-page basics
canonical, canonicalIsSelf, indexable, metaRobots, xRobotsTagIndexing signals
structuredDataTypes, author, datePublished, dateModified, hasFaqSchema, questionHeadingsEntity and E-E-A-T signals for AI answers
wordCount, lists, tables, jsRenderedSuspectedContent and AI readability
aiBotsBlockedHereAI crawlers that robots.txt blocks for this URL
internalLinks, externalLinks, brokenLinks[]Links (broken links only when checking is on)
ttfbMs, loadMs, htmlBytes, redirects, httpsSpeed and security

Pricing

Pay per event: $0.015 per audited page ($15 per 1,000). You are never charged for site summaries, error rows or bot-challenge pages. The run stops cleanly at your Max cost per run.

Examples:

  • 1 homepage: $0.015.
  • A 50-page site audit: $0.75.
  • 100 client homepages: $1.50.

FAQ

What is GEO? Generative Engine Optimization: making your content easy for AI answer engines (ChatGPT search, Perplexity, Claude, Gemini, Google AI Overviews, Copilot) to crawl, understand and cite. The GEO score covers crawler access, content that is readable without JavaScript, structured data, author and date signals, and answer-friendly formatting.

Should I block GPTBot or CCBot? That's your call. They are training crawlers. This Actor reports them separately and only flags blocked search and user-fetch bots as a problem, because blocking those removes you from AI answers.

Does it run JavaScript? No, and that's deliberate. Most AI crawlers don't run JavaScript either, so the audit sees what they see. If your content only appears after JavaScript runs, the content-js-only issue tells you.

Is it polite to websites? Yes. It identifies itself with the user agent SEO-GEO-Audit/1.0, uses at most 3 parallel requests per site, and skips discovered pages that robots.txt disallows. URLs you enter are always audited.

Can I use it from an AI agent? Yes. It works through the Apify MCP server and the API. Input is a list of URLs, and the output has stable issue ids and short topFixes.

Limitations

  • Core Web Vitals (LCP, CLS, INP) need a real browser and are not measured. TTFB, HTML weight and compression are reported instead.
  • Sites behind aggressive bot protection may return a challenge page. You get a free BLOCKED row.
  • Keyword rankings and backlinks are out of scope.

Support

Found a false positive or want a new check? Open an issue on the Actor's Issues tab. Fixes usually ship within a few days.