AEO & AI Visibility Audit: LLM SEO, GEO + llms.txt Checker
Pricing
$5.00 / 1,000 page auditeds
AEO & AI Visibility Audit: LLM SEO, GEO + llms.txt Checker
GEO audit + llms.txt checker + AI search readiness (AEO, LLM SEO): can ChatGPT, Perplexity, Claude and AI Overviews cite your pages? 0-100 AI visibility score per URL, llms.txt validation, robots.txt for 14 AI bots, noindex, broken FAQ schema. 5 free, then $0.005/page.
Pricing
$5.00 / 1,000 page auditeds
Rating
0.0
(0)
Developer
Umair Saleem Mohammad Saleem
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Security
Limited permissionsShare
Answer first: this AI visibility checker runs an AEO audit / GEO audit (LLM SEO audit) on a list of URLs and tells you whether each page can be found, read and quoted by ChatGPT search, Perplexity, Claude and Google AI Overviews / AI Mode, in other words whether the page is able to get ChatGPT visibility. Every page gets an AEO score from 0 to 100, an A-F grade and a ranked fix list. It checks llms.txt and llms-full.txt, runs a per-URL robots.txt check for 14 AI bots (search bots such as OAI-SearchBot, ChatGPT-User, PerplexityBot and Claude-SearchBot kept separate from training bots such as GPTBot, ClaudeBot, Google-Extended and CCBot), and flags noindex / nosnippet, invalid JSON-LD, missing FAQ schema and JavaScript-only pages. The first 5 pages of every run are free, then $0.005 per page.
| Quick facts | |
|---|---|
| Best for | AEO audit, GEO audit, AI visibility / ChatGPT visibility check, LLM SEO audit, generative / answer engine optimization, llms.txt checker, "does robots.txt block GPTBot / OAI-SearchBot / ClaudeBot?", pre-publish checks |
| Input | A list of page URLs or bare domains (up to 5,000) |
| Output | One row per URL: aeoScore, grade, topFixes, aiSearchBotsBlocked, aiTrainingBotsBlocked, hasLlmsTxt, noindex, faqDetected, schema types, answer-first and heading signals |
| Price | First 5 pages free every run, then $0.005 per page. No start fee. Failed pages, PDFs/JSON and invalid URLs are free |
| Needs | No API keys, no LLM calls, no proxies |
| Not included | Full-site crawl (use site-seo-aeo-audit), live ChatGPT/Perplexity citation tracking, backlinks |
What it checks
- AI crawler access for this exact URL (robots.txt, RFC 9309 rules):
*wildcards,$anchors, longest-match wins,AllowbeatsDisallowon ties, repeated groups for the same bot are merged, path rules such asDisallow: /blog/count for pages under/blog/. robots.txt is read from the domain the URL redirects to (e.g.wikipedia.org→www.wikipedia.org)- AI search / answer bots: OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User, Googlebot, Bingbot
- AI training bots: GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, meta-externalagent
- noindex / nosnippet / max-snippet:0 in meta robots,
googlebotmeta and theX-Robots-Tagheader (these hide a page from AI Overviews and answer engines even when robots.txt allows it) - llms.txt checker: is
/llms.txtpublished (HTML soft-404s, empty files, JSON errors and redirects to the homepage don't count), does it start with an H1, how many links it has, and is/llms-full.txtpublished - Structured data: JSON-LD (including
@graph) and microdata types; invalid JSON-LD blocks are counted, and the schema types they lose are named (e.g. a broken FAQPage block), with the usual cause (raw line break, tab or trailing comma) - FAQ detection: FAQPage / HowTo / QAPage schema, 3+ question headings, or 3+ question-style
<details>accordions - Answer-first content: the first real paragraph of the article / main content is a 15–70 word direct answer (promo banners and cookie text above the article are skipped)
- Question-style H2/H3 headings ("How…", "What…", "Can…", "…?")
- Quotable lists and tables, exactly one H1, meta description length, word count, JavaScript-only pages (AI crawlers mostly don't run JS)
- Freshness and E-E-A-T: published/modified dates and author signals
- Canonical mismatch (AI engines cite the canonical URL) and bot protection (a firewall that returns 403 to non-browser user agents)
Score breakdown (100 points)
| Signal | Points |
|---|---|
| AI search bots allowed for this URL, and the page is not noindex / nosnippet | 16 |
| AI training bots allowed in robots.txt | 4 |
| Valid JSON-LD / microdata schema present | 12 |
| Answer-first opening paragraph (15–70 words) | 12 |
| FAQ / HowTo / QAPage schema, 3+ question headings or 3+ question accordions | 10 |
| 2+ question-style H2/H3 headings | 10 |
| 300+ words of server-rendered content | 8 |
| Quotable list or table | 7 |
| Meta description 70–160 characters | 6 |
| Exactly one H1 | 5 |
| Published / modified date | 4 |
| Author signal | 3 |
| /llms.txt published | 3 |
Grades: A 85+, B 70+, C 55+, D 40+, F below 40. Every missed signal becomes a plain-English fix in allFixes; high-impact warnings (bot protection, robots.txt 5xx, canonical pointing elsewhere, JavaScript-only content, a broken FAQPage/Product/Article JSON-LD block) go to the top, and the first five go in topFixes.
Pricing (pay per event)
- First 5 successfully audited pages in every run are free
- Then $0.005 per
page-auditedevent ($5 per 1,000 pages) - No actor-start fee. Pages that fail to load (HTTP errors, timeouts, bot challenges), non-HTML files (PDF, JSON, images) and invalid URLs are listed with
status: "error"and never charged - Duplicate URLs (including
#fragmentvariants) are removed before the run, so you never pay twice for the same URL - Set a max charge per run and the actor stops cleanly at your limit. Tested on 19 Oct 2026: a $0.016 cap with 10 parallel fetches stopped after 5 free + exactly 2 billed pages (run
yUWMEkL3HbtXbPzfq)
| Pages audited | You pay* |
|---|---|
| 5 | $0.00 |
| 25 | $0.10 (5 free + 20 × $0.005) |
| 100 | $0.475 |
| 500 | $2.475 |
| 1,000 | $4.975 |
*This assumes every page loads. Failed pages are free.
Example result (real run, 19 Oct 2026)
Run 99yC0H4ibejRdkDKN (build 0.1.12): five real pages. This named public sample is the stable download linked below (the earlier 21 Oct sample dataset expired under Apify free-plan retention and returned record-not-found).
| Page | AEO score | Grade | AI search bots blocked | AI training bots blocked | llms.txt | Top fix |
|---|---|---|---|---|---|---|
| plausible.io/blog/google-analytics-cookies | 97 | A | none | none | no | Publish /llms.txt for AI agents |
| stripe.com | 68 | C | none | none | yes (308 links) | Add an FAQ block with FAQPage schema |
| www.bbc.com/news | 64 | C | OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User | 6 of 6 | no | Unblock AI search bots in robots.txt for this URL: OAI-SearchBot, ChatGPT-User, Perplex… |
| docs.apify.com/platform/actors | 61 | C | none | none | yes (467 links) | Add JSON-LD schema (Article/Product/Organization) |
| www.nytimes.com | 44 | D | OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User | 6 of 6 | no | Unblock AI search bots in robots.txt for this URL: OAI-SearchBot, ChatGPT-User, Perplex… |
What this shows: BBC News and The New York Times block AI search bots in robots.txt, so ChatGPT search and Perplexity cannot cite those URLs whatever the content quality. Stripe and Apify docs already ship /llms.txt (hundreds of links) and still leave FAQ / schema gaps. A high content score alone is not enough if search bots are blocked.
The bbc.com/news row (some fields left out):
{"url": "https://www.bbc.com/news","status": "ok","aeoScore": 64,"grade": "C","topFixes": ["Unblock AI search bots in robots.txt for this URL: OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User","AI training bots blocked in robots.txt: GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, meta-externalagent (allow them if you want to be known by ChatGPT/Claude models)","Rewrite the meta description to 70-160 characters (now 249)","Show published/updated dates (article:modified_time or dateModified)","Add author / E-E-A-T signals"],"schemaTypes": ["WebPage","NewsMediaOrganization"],"jsonLdBlocks": 1,"jsonLdInvalid": 0,"aiSearchBotsBlocked": ["OAI-SearchBot","ChatGPT-User","PerplexityBot","Perplexity-User"],"aiTrainingBotsBlocked": ["GPTBot","ClaudeBot","Google-Extended","Applebot-Extended","CCBot","meta-externalagent"],"robotsTxtStatus": "ok","hasLlmsTxt": false,"noindex": false,"nosnippet": false,"canonicalMismatch": false,"answerFirst": true,"firstParagraphWords": 29,"questionHeadings": 10,"faqDetected": true,"faqSource": "question-headings","h1Count": 1,"wordCount": 1363,"likelyClientRendered": false,"metaDescriptionLength": 249,"httpStatus": 200,"fetchedWith": "aeo-checker-ua","billed": false}
Download the whole sample: JSON · CSV · Excel. Dataset name: aeo-readiness-checker-sample-2026-10-19-v011 (public read by ID).
Output field guide
| Field | Meaning |
|---|---|
url | The URL as you entered it (normalized; bare domains get https://) |
status | ok, or error for pages that could not be audited (not charged) |
error | Why it failed: HTTP status, timeout, network/TLS error, bot challenge, not an HTML page, invalid URL |
aeoScore, grade | 0-100 score and A-F grade (null on error rows) |
topFixes, allFixes | Ranked plain-English fixes (top 5, and all) |
aiSearchBotsBlocked | AI search / answer bots that robots.txt blocks for this URL's path |
aiTrainingBotsBlocked | AI training bots that robots.txt blocks for this path |
aiBotsBlocked | Both lists combined (kept for older integrations) |
robotsTxtStatus | ok, missing-404, html-soft-404, server-error (5xx) or unreachable |
hasLlmsTxt, llmsTxtHasH1, llmsTxtLinks, hasLlmsFullTxt | llms.txt found (real text file), starts with # Title, number of Markdown links, llms-full.txt found |
noindex, nosnippet | From meta robots / googlebot meta / X-Robots-Tag |
canonicalUrl, canonicalMismatch | The canonical link and whether it points to a different page |
schemaTypes, jsonLdBlocks, jsonLdInvalid, jsonLdInvalidTypes | Schema types found, JSON-LD blocks, blocks that fail to parse, and the types inside those broken blocks (lost to parsers) |
faqDetected, faqSource | FAQ found, and how: schema, question-headings or details-accordion |
answerFirst, firstParagraphWords | Opening paragraph of the article/main content is a 15–70 word answer, and its length |
hasDates, hasAuthor | Published/modified date and author signals found |
questionHeadings, h1Count, wordCount, metaDescriptionLength, title | On-page structure signals |
likelyClientRendered | Under 50 words in the HTML plus an app shell (#root, #__next…) or 3+ scripts: content probably needs JavaScript |
finalUrl, httpStatus, redirected | Where the URL ended up after redirects |
fetchedWith, botProtectionSuspected | browser-ua when the page refused our bot user agent (403/429) and was fetched with a browser user agent instead |
htmlTruncated | The page was over 5 MB; only the first 5 MB were analysed |
billed | Whether this row was charged (false for the 5 free pages and for errors) |
The SUMMARY record in the key-value store has pagesAudited, averageAeoScore, byGrade, pagesFree, pagesBilled, pagesFailed, invalidUrls, duplicatesRemoved, notProcessed, stoppedAtSpendLimit and maxTotalChargeUsd.
Input example
{"urls": ["https://example.com/blog/what-is-aeo","https://example.com/pricing","example.com/faq"],"maxConcurrency": 5}
Paste up to 5,000 URLs. Bare domains like example.com/faq are checked as https:// with an http:// fallback. maxConcurrency runs 1–20 parallel fetches (default 5); robots.txt, llms.txt and llms-full.txt are fetched once per domain.
Who it's for
SEO and AEO/GEO agencies auditing clients, content teams checking pages before publishing, site owners who want to know if robots.txt blocks GPTBot, OAI-SearchBot or ClaudeBot, and AI agents running audits through the Apify MCP server.
Use cases
- AEO/GEO audits and client reports
- Pre-publish checks for ChatGPT and AI Overviews citations
- Finding robots.txt rules that block AI search bots on one section (e.g.
/blog/) but not the rest - Catching a stray
noindex/nosnippetthat hides pages from AI Overviews - Checking whether a domain has a valid llms.txt and llms-full.txt
- Ranking which pages to restructure first
- Batch checks from Claude or Cursor via MCP
How it compares (live Apify Store prices, verified 19 Oct 2026)
List prices on the Apify Free plan and 30-day user counts, read from the Apify Store API on 19 October 2026 (about 20:10 Asia/Riyadh). Some actors charge less on higher plans. "Cost for 100 pages" assumes one site and every page loading.
| Actor | Price | Extra fees | Cost for 100 pages | Users (30 days) | Focus |
|---|---|---|---|---|---|
| cygnix_labs/aeo-readiness-checker (this) | $0.005 / page, first 5 free every run | none | $0.475 | 1 | Content-level AEO score + per-URL robots.txt for 14 AI bots (search vs training) + noindex/nosnippet + llms.txt/llms-full.txt, fix list |
| jtpalms/seo-ai-readiness-audit | $0.002 / page | $0.003 / site | ~$0.20 | 1 | SEO basics + AI-bot / llms.txt flags |
| siteverdict/siteverdict-ai-search-readiness | $0.004 / page | $0.03 / site, add-ons extra | ~$0.43 | 1 | Site-level AI-bot matrix, render checks |
| fayoussef/seo-geo-aeo-audit | $0.0045 / result | none | ~$0.45 | 12 | Combined SEO + GEO + AEO scores, HTML report |
| bovi/ai-visibility-audit | $0.0045 / result | tiny start fee | ~$0.45 | 3 | AEO / GEO consultant-style audit |
| aiqlabs/seo-audit-tool | $0.005 / result | tiny start fee | ~$0.50 | 3 | On-page SEO, redirects, AI crawler access |
| digivibetech/ai-search-citation-readiness | $0.009 / page | none | ~$0.90 | 1 | llms.txt, AI bots, schema, FAQ/HowTo, author/date |
| burly_bat/ai-search-readiness-audit | $0.009 / URL | tiny start fee | ~$0.90 | 0 | 13 AI crawlers, llms.txt, JSON-LD, PASS/WARN/FAIL |
| dltik/geo-site-audit | $0.01 / page | tiny start fee | ~$1.00 | 5 | AI crawler access, llms.txt, schema |
| crawlwise/seo-audit-ai-search | $0.01 / page | tiny start fee | ~$1.00 | 1 | SEO basics + AI bot access + llms.txt |
| wheaten_steelpan/geo-site-auditor | $0.02 / page | $0.02 start | ~$2.02 | 1 | GEO/AEO crawl + fix list |
| lofomachines/geo-technical-audit | $0.035 / result | $0.02 start | ~$3.52 | 11 | GEO schema, semantic HTML, E-E-A-T |
| foxlabs/geo-auditor | $0.04 / page | tiny start fee | ~$4.00 | 2 | GEO technical audit, citability |
Re-checked 21 Oct 2026 (Store API, ~11:50 Asia/Riyadh): newer page auditors list at aiqlabs/seo-ai-visibility-auditor $0.005 / result, tori-tic/aeo-readiness-checker $0.01 / URL, atalaya-ai/ai-search-readiness-auditor $0.01 / page + $0.02 / site, and wheaten_steelpan/geo-site-auditor $0.02 / page + $0.02 start. Prompt-based AI visibility trackers (khadinakbar, highbrow_fame) charge $0.05-$0.09 per check.
Honest take. jtpalms and siteverdict are cheaper per page for big runs, and fayoussef and bovi charge $0.0045 per result; they mostly grade SEO basics plus bot flags. Because the first 5 pages are free on every run, this actor is cheaper than siteverdict, fayoussef and bovi for runs up to about 50 pages (and cheaper than jtpalms up to 9 pages), and it weights content-level answer-engine signals (answer-first opening, question headings, FAQ/HowTo schema, quotable lists) plus per-URL AI-bot rules split into search vs training bots. Among dedicated GEO/AEO page auditors (digivibetech and burly_bat at $0.009, dltik and crawlwise at $0.01, wheaten_steelpan, lofomachines and foxlabs at $0.02-0.04) it has the lowest list price.
For AI agents / MCP
When an agent should call this actor: the user gives specific URLs or domains and asks for an AEO or GEO audit, AI search visibility or readiness, whether pages are ready for ChatGPT / Perplexity / AI Overviews, whether robots.txt blocks GPTBot, OAI-SearchBot or ClaudeBot, or whether a site has llms.txt. For a whole website from one URL, call cygnix_labs/site-seo-aeo-audit instead.
Connect the Apify MCP server with only this actor enabled (works in Claude, ChatGPT, Cursor, VS Code, Codex and any MCP client):
https://mcp.apify.com?tools=cygnix_labs/aeo-readiness-checker
Or search for it with the default server: search-actors keywords such as AEO audit, GEO audit, llms.txt checker, AI visibility, LLM SEO, AI search readiness, AI search visibility.
Example call-actor input:
{"urls": ["https://example.com/","https://example.com/pricing","https://example.com/blog/what-is-aeo"],"maxConcurrency": 5}
What to read from the result: each dataset row has status, aeoScore (0-100), grade, topFixes (up to 5, plain English), aiSearchBotsBlocked (blocking these removes the page from AI answers), aiTrainingBotsBlocked, noindex, nosnippet, hasLlmsTxt, schemaTypes, faqDetected and answerFirst. Rows with status: "error" were not charged. The SUMMARY key-value record has totals, pagesBilled and stoppedAtSpendLimit.
Cost control for agents: send 5 URLs or fewer for a free check; 100 URLs cost $0.475. Pass maxTotalChargeUsd in callOptions to hard-cap spend. This actor is pay-per-event, so it also works with Apify agentic payments (no Apify account needed for the agent).
Example prompt: "Run an AEO audit on these 10 URLs, tell me which pages block OAI-SearchBot or PerplexityBot, which have noindex, whether the site has llms.txt, and the top 3 fixes per page."
FAQ
Is this an AI visibility / ChatGPT visibility tracker? It is the step before one. Trackers ask ChatGPT or Perplexity prompts and count brand mentions ($0.02-$0.09 per check on the Store). This actor checks whether your pages can be crawled, read and quoted at all (AI bot access, noindex, schema, answer-first structure, llms.txt), for $0.005 per page. Fix these first, then track.
Does it query ChatGPT or Perplexity? No. It audits the on-page and crawl signals those engines rely on, so it is fast and cheap. To measure actual citations, pair it with an AI-visibility tracker.
What is the difference between AI search bots and AI training bots? Search / answer bots (OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User, Googlebot, Bingbot) fetch pages to answer a user's question and cite them. Training bots (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, meta-externalagent) collect text for model training. Blocking search bots removes you from AI answers, so it costs 16 points; blocking only training bots costs 4. Many publishers block training bots on purpose. In the sample above, bbc.com and nytimes.com block both kinds.
How does the robots.txt check work? It follows RFC 9309, the rules Google documents: the bot's own group (or * if it has none), merged when a bot appears in several groups, * and $ patterns, the longest matching rule wins and Allow wins ties. It checks the path of each URL, so Disallow: /blog/ blocks /blog/post but not /pricing. A 404 robots.txt means everything is allowed; a 5xx robots.txt is reported because crawlers may then treat the whole site as blocked.
Why is my page noindex / nosnippet flagged? A noindex tag (meta robots, googlebot meta or the X-Robots-Tag header) keeps a page out of search, and nosnippet or max-snippet:0 stops Google AI Overviews and other engines from quoting it. Either one loses the 16 access points even if robots.txt allows every bot.
How is the llms.txt check done? It fetches /llms.txt and /llms-full.txt on the final domain. It only counts as present if it's a real text file at that path: HTML soft-404 pages, empty files, JSON error bodies and redirects to the homepage don't count. It also reports whether the file starts with an H1 (# Site name, as the llms.txt proposal says) and how many links it lists.
What about malformed JSON-LD? Blocks that fail to parse are counted in jsonLdInvalid and listed as a fix, and they don't count as schema, because parsers skip them. jsonLdInvalidTypes names what was lost (for example FAQPage), and a broken FAQPage, HowTo, Product or Article block is moved to the top of the fix list. The usual cause is a raw line break or tab inside a text value, which many CMS FAQ plugins produce. Microdata (itemtype) is read too.
JavaScript-heavy sites? It reads server-rendered HTML, the same way most AI crawlers do. Pages with almost no text in the HTML plus an app shell are flagged likelyClientRendered with a fix to server-render or prerender them.
What if a page is down, blocks bots or isn't HTML? If the site answers our bot user agent with 403/429, the actor retries once with a browser user agent, audits the page and sets botProtectionSuspected (your firewall may be blocking AI crawlers too). Pages that still fail, Cloudflare challenges, timeouts (20 s), PDFs, JSON and images are listed with status: "error" and the reason, and you are not charged. Pages over 5 MB are analysed on their first 5 MB (htmlTruncated).
Does it handle redirects, www and http? Yes. It follows redirects (http → https, non-www → www) and reads robots.txt and llms.txt from the final domain. finalUrl shows where the page ended up.
Can I cap my spend? Yes. Set a maximum charge per run in the run options, and the actor stops cleanly at your limit, even with 20 parallel fetches. SUMMARY.stoppedAtSpendLimit tells you if it stopped early.
Is there a free allowance? Yes. The first 5 successfully audited pages in every run are free, and only pages after that are charged.
What is the difference between AEO and GEO? AEO (answer engine optimization) is about pages being picked as the direct answer; GEO (generative engine optimization) is about being cited by generative AI search such as ChatGPT, Perplexity and AI Overviews. The checks overlap almost entirely: crawler access, extractable answers, structure and trust signals. This actor scores both with one 0-100 AEO score.
Is llms.txt worth it? It is cheap to publish and coding agents read it, but studies in 2026 show AI search crawlers rarely request it. That is why it carries only 3 of 100 points here, while AI search-bot access and indexability carry 16.
Integrations
Run it via the Apify API, schedule weekly runs, or send results to Google Sheets, Make, Zapier, n8n, Slack or webhooks.
Changelog
- 0.1.13 / 0.1.14 (2026-10-21): Accuracy fixes from real-site checks. (1) The opening paragraph was sometimes taken from a promo banner above the article (semrush.com scored "not answer-first" from an 8-word banner; healthline.com was credited for a 19-word community ad): it is now read from
article, thenmain, then the body. (2) JSON-LD with a raw line break inside a string (healthline.com's FAQPage) is now diagnosed: the lost types are named injsonLdInvalidTypesand the fix moves to the top. (3) JavaScript-only pages now get the "server-render it" fix first (excalidraw.com had it missing fromtopFixes). (4) Meta description check now matches its own 70-160 advice. New fieldshasDates,hasAuthor. New 21 Oct sample; Store text targets AI visibility / LLM SEO searches. - 0.1.12 (2026-10-19): README: real sample from run 99yC0H4ibejRdkDKN with a public dataset, field guide, comparison re-verified on 19 Oct 2026, new FAQs. Price lowered to $0.005/page (from $0.008); first 5 pages still free.
- 0.1.11 (2026-10-19): Spend cap fix: parallel workers could push and charge one or two pages past
maxTotalChargeUsd; now the budget is reserved before each billed page. - 0.1.10 (2026-10-19): Reliability and accuracy release. robots.txt is now checked per URL path with RFC 9309 rules (
Disallow: /*,$, longest match, merged groups were missed before) and read from the domain after redirects; 14 AI bots split into search vs training (the score now weights search bots 16 and training bots 4, instead of 20 for any bot); noindex/nosnippet/X-Robots-Tag; llms.txt no longer counts empty files, HTML soft-404s without an<html>tag or JSON; llms-full.txt; invalid JSON-LD counted; microdataitemtypewith a trailing slash no longer counts as schema; FAQ accordions; words in lists and tables are now counted correctly; JavaScript-only page flag; canonical mismatch. PDFs, JSON and other non-HTML responses are now errors and not charged (before they were scored and billed). Bot-protected pages are retried with a browser user agent; pages over 5 MB are capped; bare domains,#fragmentduplicates and invalid URLs are handled; error rows now havestatus: "error"andaeoScore: nullinstead of 0/F; richer SUMMARY. - 0.1.9 (2026-10-19): Real 5-page sample run (plausible.io) with a downloadable public dataset, comparison re-verified with two new $0.009 rivals.
- 0.1.8 (2026-10-18): README and Store text rewritten answer-first, "For AI agents / MCP" section, AEO vs GEO and llms.txt FAQ.
- 0.1.7 (2026-10-16): Named Store comparison, bot-blocking rule explained, default memory 1 GB.
- 0.1.6 (2026-10-16): Cost table, score breakdown, FAQ, MCP link.
More SEO and AEO tools by Cygnix Labs
- Website SEO Audit + AEO/GEO Checker (full-site crawl)
- Internal Link Audit & Orphan Page Finder
- Content Decay Audit (Search Console)
- Keyword Cannibalization Checker (Search Console)
- Keyword Clustering + Content Briefs
- Search Intent Classifier
- Done-for-you SEO + AEO service (Kuwait/Gulf agencies & businesses): skills.cygnixlabs.com
- Free local SEO MCP server: cygnix-seo-mcp (
npx -y cygnix-seo-mcp)
Questions or a feature request? Open an issue on this actor's Issues tab. We answer within 24 hours.