Home / Tools / AI Search Readiness Checker

AI search visibility

AI Search Readiness Checker

Check if ChatGPT, Perplexity, Claude and Google's AI can read and cite your site: robots.txt rules for 17 AI bots, server-level blocking, llms.txt, sitemap, structured data and a 0-100 score with fixes. From $0.005 per site.

Run it on Apify API & MCP

Sample output

SiteScoreAI search bots blocked in robots.txtllms.txtSitemapWords in HTML
apify.com100noneyesyes1,590
stripe.com100noneyesyes1,992
hubspot.com98nonenoyes2,190
github.com94noneyesyes1,126
bbc.com68OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-Usernoyes2,700
example.com66nonenono25

Real rows from a test run on Oct 27, 2026, 6 of 41 fields shown. Sites change their robots.txt often; your results will differ. Two sites in the same test (nytimes.com, wikipedia.org) refused the request with HTTP 403, so they were reported as errors and not charged.

Output fields

From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.

FieldTypeDescription
sitestringHostname checked
urlstringURL submitted
final_urlstringURL after redirects
statusstringok or error
errorstringWhy the site could not be checked
http_statusnumberHTTP status of the page
readiness_scorenumber0-100 AI search readiness score
gradestringA-F grade
issues_criticalnumberCritical issues
issues_highnumberHigh-priority issues
issues_mediumnumberMedium issues
issues_lownumberLow issues
issuesarrayIssues sorted by severity, each with a fix
search_bots_allowedarrayAI search bots robots.txt allows
search_bots_blockedarrayAI search bots robots.txt blocks
training_bots_blockedarrayAI training bots robots.txt blocks (a choice, not scored)
botsobjectAllowed (true), blocked (false) or unknown (null) per bot
robots_statusnumberHTTP status of /robots.txt
robots_blocks_allbooleanrobots.txt blocks all crawlers from the whole site
firewallobjectHTTP status the server returned to each tested AI user agent
llms_txtbooleanA valid /llms.txt exists
llms_full_txtbooleanA valid /llms-full.txt exists
sitemapbooleanA sitemap was found
sitemap_urlstringSitemap URL found

Pricing

Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.

EventFree planBronzeSilverGold
Site checked main
Charged once per site checked (AI bot rules, server blocking test, llms.txt, sitemap, schema, readiness score and fixes). Sites that cannot be fetched are not charged.
$0.005$0.0045$0.004$0.0035

Examples on the Free plan: 100 site checkeds = $0.50, 1,000 site checkeds = $5, 10,000 site checkeds = $50. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-29).

Example input

This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.

{
  "sites": [
    "apify.com",
    "bbc.com",
    "example.com"
  ],
  "testServerBlocking": true
}

Use it from code, no-code or an AI agent

cURL (one request, returns rows)
curl -X POST \
  "https://api.apify.com/v2/acts/wrenfield-data~ai-search-readiness-checker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sites": ["apify.com", "bbc.com", "example.com"], "testServerBlocking": true}'
Python
# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/ai-search-readiness-checker").call(
    run_input={
    "sites": [
        "apify.com",
        "bbc.com",
        "example.com"
    ],
    "testServerBlocking": True
},
    max_total_charge_usd=1.00,  # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/ai-search-readiness-checker').call({
  "sites": [
    "apify.com",
    "bbc.com",
    "example.com"
  ],
  "testServerBlocking": true
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
MCP (Claude, Cursor, VS Code, any MCP client)
{
  "mcpServers": {
    "wrenfield-ai-search-readiness-checker": {
      "url": "https://mcp.apify.com?tools=wrenfield-data/ai-search-readiness-checker"
    }
  }
}

Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--ai-search-readiness-checker. More client setups on the MCP page.

n8n, Make, Zapier

Use the official Apify node or app, pick Run Actor, enter wrenfield-data/ai-search-readiness-checker and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.

For AI agents and code generators: this page as Markdown · OpenAPI 3 spec (run, run-sync and dataset endpoints).

FAQ

How much does AI Search Readiness Checker cost?

$0.005 per site checked on the Apify Free plan ($5 per 1,000), billed per result by Apify with no subscription. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.

Does a high score mean ChatGPT or Perplexity will cite my site?

No. The score measures technical access and clarity: whether the bots can fetch your pages and read what is on them. Being cited also depends on content quality, authority and what each engine decides for each question. A low score reliably means something blocks you; a high score means nothing technical does.

Does allowing a bot in robots.txt guarantee it can crawl my site?

No. A CDN or firewall can still block it. That is why the Actor also requests the page with three AI crawler user agents. Real crawlers may be verified by IP address, so a pass here is not proof and a block here is a strong warning.

Should I block training bots?

That is your decision. Blocking training bots (GPTBot, ClaudeBot, Google-Extended and others) does not affect whether search and answer bots can cite you, so the Actor reports them but does not score them. Note that Googlebot also feeds Google AI Overviews and AI Mode, so blocking it removes you from Google Search too.

Is llms.txt required?

No. It is a proposed convention for giving AI systems a Markdown map of your key pages. We report whether it exists and weigh it lightly, because no major AI engine has confirmed that it affects citations.

Why was my site reported as an error and not charged?

The site refused our request (HTTP 401, 403, 407 or 429), did not answer in time or returned a server error. Those checks are free.

Does it check my private pages or log in anywhere?

No. It requests public URLs only, never logs in, and refuses private network addresses.

Related tools

Compare and plan

Try AI Search Readiness Checker now

Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.

Open on Apify