GEO / AEO Website Audit — AI Search Readiness
Pricing
$1.00 / 1,000 site auditeds
GEO / AEO Website Audit — AI Search Readiness
Audit public websites for GEO and AEO readiness: AI crawler access, robots.txt, llms.txt, sitemaps, Schema.org, social metadata, scores, and prioritized fixes.
Pricing
$1.00 / 1,000 site auditeds
Rating
0.0
(0)
Developer
Kunteper Koyu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
14 hours ago
Last modified
Categories
Share
Audit public pages for the technical signals used by AI search and answer engines. Get a practical 0–100 score, crawler policy checks, structured-data findings, and prioritized fixes for generative engine optimization (GEO), answer engine optimization (AEO), and technical SEO.
What you get
- HTTP status, redirects, title, meta description, canonical URL, Open Graph, and Twitter metadata
- Schema.org / JSON-LD detection with discovered
@typevalues robots.txtpolicy checks for GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, and Google-Extended- sitemap and
/llms.txtdiscovery - a score, letter grade, and actionable findings for every URL
- one clean dataset row per audited page, ready for export or API use
Common use cases
- audit a site before a GEO/AEO consulting engagement
- find pages that AI crawlers cannot access
- prioritize missing schema, metadata, sitemap, and
llms.txtwork - monitor client or portfolio sites on a schedule
- enrich SEO dashboards, reports, and content inventories
Quick start
- Click Try for free or Run.
- Add one or more public page URLs.
- Keep the default checks enabled and start the run.
- Open Dataset to view, filter, or export the results.
{"urls": ["https://example.com", "https://apify.com"],"concurrency": 10,"timeoutSeconds": 20,"includeSitemapCheck": true,"includeLlmsTxtCheck": true}
Example result
{"inputUrl": "https://example.com","finalUrl": "https://example.com/","statusCode": 200,"ok": true,"score": 82,"grade": "B","title": "Example Domain","canonicalUrl": "https://example.com/","hasSchemaOrg": true,"schemaTypes": ["Organization"],"hasSitemap": true,"hasLlmsTxt": false,"aiCrawlerPolicy": {"GPTBot": "allowed","ChatGPT-User": "unknown","PerplexityBot": "unknown","ClaudeBot": "unknown","Google-Extended": "unknown"},"findings": [{"code": "LLMS_TXT_NOT_FOUND","severity": "info","message": "llms.txt was not found at the site root."}],"checkedAt": "2026-07-09T03:00:00.000Z"}
Run by API
Set APIFY_TOKEN in your environment. Replace it with a secret-manager reference in production; never commit it.
cURL
curl -X POST \"https://api.apify.com/v2/acts/rtworule~ai-search-readiness-auditor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls":["https://example.com"],"includeSitemapCheck":true,"includeLlmsTxtCheck":true}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('rtworule/ai-search-readiness-auditor').call({urls: ['https://example.com'],includeSitemapCheck: true,includeLlmsTxtCheck: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("rtworule/ai-search-readiness-auditor").call(run_input={"urls": ["https://example.com"],"includeSitemapCheck": True,"includeLlmsTxtCheck": True,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Pricing
This Actor uses pay per event. A site-audited event costs $0.001 per stored result: 100 audited pages cost $0.10 and 1,000 cost $1.00 in event charges. Apify applies a $0.01 minimum run charge. Failed inputs that cannot produce a stored diagnostic row are not charged as a result event. The Actor respects the run's maximum total charge.
Integrations and automation
- schedule weekly audits in Apify and send dataset results to a webhook
- connect Make, Zapier, or n8n through the Apify integration or API
- export CSV/XLSX for client reports, Looker Studio, Sheets, or a data warehouse
- trigger a Slack or email alert when
score,grade, or crawler policy changes - use deterministic URL fields to compare current results with an earlier dataset
FAQ and troubleshooting
Does this guarantee AI citations or rankings? No. The score measures technical readiness signals; rankings and citations depend on content quality, authority, relevance, and engine behavior.
Why is metadata missing even though I see it in a browser? This is a fast HTTP/static-HTML audit. Metadata rendered only by JavaScript is not evaluated.
Why was a URL rejected? Only public HTTP/HTTPS destinations are accepted. URLs with credentials and local, private, reserved, or metadata-service destinations are blocked for safety.
Why is a crawler policy unknown? The site's robots.txt may not define a rule for that crawler, or the file may not be available.
A run timed out. What should I change? Reduce concurrency for a slow host or increase timeoutSeconds up to 60.
Responsible use, limitations, and support
The Actor reads user-provided public pages and same-origin root files (robots.txt, sitemap.xml, and llms.txt). It does not log in, bypass access controls, or collect private data. The HTML sample is capped at 256 KiB. Sitemap discovery does not crawl every sitemap URL. Users are responsible for the URLs they submit and their downstream use.
If a valid public page produces an unexpected result, open an issue from the Actor page with the run ID, affected URL, and expected behavior. Do not include credentials or sensitive data.