SEO & AI Search (GEO) Audit: llms.txt, AI Bots, Schema
Pricing
from $15.00 / 1,000 page auditeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
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)
| Area | Checks |
|---|---|
| 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 |
| Indexing | HTTP 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 |
| Metadata | Title and meta description presence and length, lang, viewport, charset, favicon |
| Structure | H1 count, heading-level skips, JSON-LD validity and types, microdata |
| Content | Word count, thin content, reading time |
| Social | Open Graph (title, description, image), Twitter card |
| Links | Internal and external link counts, empty anchors, and optional broken-link checking (404/410/5xx/dead hosts, HEAD then GET to avoid false positives) |
| Performance | Time to first byte, HTML weight, compression, lazy-loading of images |
| Security | HTTPS, mixed content, HSTS |
| International | hreflang 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 Actor | Typical SEO audit Actors | |
|---|---|---|
| AI search readiness | GEO score, 18 AI bots, llms.txt, JS-only content detection | Classic SEO only |
| Output | Prioritized fixes in plain English plus a site summary | Raw metrics |
| Price | $0.015 per page, site summary free | $0.01–$0.04 per page |
| Speed | HTTP-only, ~1 s per page | Headless browser, slow |
| Agent-friendly | Compact topFixes arrays, stable issue ids, small input | Large, 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
topFixesit 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
noindexmistakes, 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
- Enter one or more URLs in Websites or pages to audit. A homepage is enough.
- 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.
- Optional: turn on Check for broken links.
- 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)
| Field | Meaning |
|---|---|
seoScore, geoScore, overallScore | 0–100 scores |
issues[], topFixes[] | All issues, most severe first, and the 5 most important fixes |
title, metaDescription, h1, headingCounts | On-page basics |
canonical, canonicalIsSelf, indexable, metaRobots, xRobotsTag | Indexing signals |
structuredDataTypes, author, datePublished, dateModified, hasFaqSchema, questionHeadings | Entity and E-E-A-T signals for AI answers |
wordCount, lists, tables, jsRenderedSuspected | Content and AI readability |
aiBotsBlockedHere | AI crawlers that robots.txt blocks for this URL |
internalLinks, externalLinks, brokenLinks[] | Links (broken links only when checking is on) |
ttfbMs, loadMs, htmlBytes, redirects, https | Speed 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
BLOCKEDrow. - 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.