GPTBot, ClaudeBot & PerplexityBot don't run JS: a site can rank #1 on Google and still be blank to AI. IsReady.AI scans like AI crawlers do: 32 checks, 0-100 score in ~5s. An AI assistant guides non-devs through every fix (WordPress too). Open source + CLI.
No reviews yetBe the first to leave a review for IsReady.AI
Maker
📌
Hi Product Hunt 👋,
It's Massimo, CTO at Smart Squad, a small software company in Italy.
The story: we kept seeing the same problem on sites we work on.
They rank fine on Google, but ask ChatGPT or Perplexity about them and…nothing!
The reason is very simple: GPTBot, ClaudeBot and PerplexityBot don't execute JavaScript....they read raw HTML.
So a beautiful client-side app/website can be #1 on Google and a blank page to (almost) every AI assistant — and no classic SEO tool will ever tell you!
Take for example Product Hunt itself: https://isready.ai/report/c22939... !
IsReady.AI shows you your site the way AI actually sees it:
- ⚡ 0–100 score in ~5 seconds with 32 evidence-based checks across crawler access, rendering, structured data, content (GEO) and trust.
- 🔎 Every finding = what we observed + why it matters + the exact fix.
- 🤖 An AI assistant that reads your report and walks non-devs through every fix (WordPress included)...or export a Markdown fix plan for Claude Code, Gemini CLI or Codex.
- 🛠 For devs: npx(bunx etc...) isreadyai your-app-domain, plus two GitHub Actions (score gate + automated fix PRs!, so you can get auto-fixed the issues)
How we make money: the scan, CLI and engine (MIT, open source) are free forever, and no signup required!
Pro (€19/mo) and Team (€49/mo) add the AI assistant, monitoring, complete deep scans, badges and automated fix PRs.
The quick scan takes on average less 5 seconds...I'd love to see your scores in the comments, especially the surprising ones.
Grazie, and have a nice day 💚
Report
How do the 32 checks decide their weight in the final score, and is that weighting based on how each factor actually shifts AI crawler behavior, or more of a general SEO best practices approach?
Each check has a weight (0–5) that sets how much it counts within its category.
Each category has a weight that sets how much it counts in the final score.
Specifically:
Structured data = ~30%
Crawler access = 25%
Rendering = 20%
Content (GEO) = 15%
Trust & security = 10%
As you probably guessed, these weights aren't random: we calibrated them together with Italian SEO and GEO experts, and we version them so that when we update the model, maintaining older scans intact and so comparable. We also measured the real LLM visibility of several partners web apps and websites, comparing older-generation models (trained before IsReady.AI optimization) with latest-generation ones (trained after); LLMs re-ingest sites over time as each new model is trained on a fresher crawl...and often (but not every time) read them live via retrieval (ChatGPT Search, Perplexity, Gemini, etc...)...so the comparison is a meaningful, though not lab-controlled, signal of the improvement.
Is it tuned to how AI crawlers actually behave, or is it "classic" SEO?
Honestly both...and we mark the boundary right in the code. Three concrete examples:
The two heaviest checcks (weight 5) are AI bots being allowed in robots.txt and anti-bot blocking (i.e. the things that literally remove you from GPTBot, ClaudeBot, PerplexityBot & co). Block them there and you almost vanish from AI answers!
llms.txt (which many reports flag as important) is weighted 0 on purpose: based on our own analysis and independent server-log studies, AI crawlers fetch it in only ~0.1% of visits, with no correlation to citations (SE Ranking, across 300k domains). We report it, but we won't inflate the score with an unproven signal.
The GEO category exists specifically for citablity in AI answers (depth, extractability, statistics/citations)...which is different from traditional SEO ranking.
We hope you find IsReady.AI useful and easy to use. Please don't hesitate to provide us with feedback.
Best regards,
MDL
Report
How do the 32 checks handle dynamic SPAs that lazy-load content based on user interaction, since that's a pretty common edge case for AI crawlers missing stuff?
Report
Maker
Hello Gökçe and thank you for the interest @gke1051485.
The 32 standard checks do not try to click through every possible SPA state but do follows all the hyperlinks in case of deep search. That is intentional, because the standard IsReady.AI score measures what non-rendering AI crawlers receive: raw HTTP, no JavaScript execution, no hydration, no user interaction.
So if important content only appears after a click, scroll, filter change, login wall, or client-side route that is not exposed as real HTML, we treat that as not reliably visible to AI crawlers. The scanner catches this indirectly through checks like empty HTML shell, noscript fallback, main content extractability, content depth, sitemap discovery and raw-link discovery.
For dynamic SPAs, the recommended fix is not “make the crawler smarter”; it is to expose important states as crawlable URLs, include them in the sitemap/internal links, and render meaningful content server-side or statically.
We also have a separate Smart Agent Readability score for browser-capable agents that can render pages and inspect the accessibility tree. But we keep that separate from the 32-check crawler score, because AI crawler visibility and browser-agent usability are related but not the same problem.
Thank you for your interest and question!
We hope you find IsReady.AI useful and easy to use. Please don't hesitate to provide us with feedback.
Best regards,
MDL
Report
Love that it emulates the actual bots instead of just rendering the page like a normal headless browser, that single decision is what makes the score trustworthy instead of guesswork.
Report
Maker
Hello Sefa @sefa1270776, thank you for the interest, and yes, that was one of the core design decisions.
Small but important caveat: we do not claim to impersonate OpenAI, Anthropic, Perplexity or Google bots, and we do not spoof verified crawler IPs. What we emulate is their observable fetching constraint: raw HTTP, no JavaScript, robots.txt rules per bot/purpose, AI user-agent response differences, short fetch budgets, redirects, noindex/snippet directives and anti-bot challenge signatures...
That is why the standard score is different from a normal headless-browser SEO audit. A page can look perfect in Chromium and still be almost blank to GPTBot or ClaudeBot if the content only exists after hydration.
For browser-capable agents, we measure that separately with Smart Agent Readability (which is frankly an edge-case since it's very recent). Keeping those two scores separate makes the result less flattering sometimes, but much more honest.
Thank you for your interest and comment!
We hope you find IsReady.AI useful and easy to use. Please don't hesitate to provide us with feedback.
How do the 32 checks decide their weight in the final score, and is that weighting based on how each factor actually shifts AI crawler behavior, or more of a general SEO best practices approach?
@znurkd3a
Hello Öznur and thank you for your question.
IsReady.AI score is a two-level weighted average (https://isready.ai/#faq):
Each check has a weight (0–5) that sets how much it counts within its category.
Each category has a weight that sets how much it counts in the final score.
Specifically:
Structured data = ~30%
Crawler access = 25%
Rendering = 20%
Content (GEO) = 15%
Trust & security = 10%
As you probably guessed, these weights aren't random: we calibrated them together with Italian SEO and GEO experts, and we version them so that when we update the model, maintaining older scans intact and so comparable.
We also measured the real LLM visibility of several partners web apps and websites, comparing older-generation models (trained before IsReady.AI optimization) with latest-generation ones (trained after); LLMs re-ingest sites over time as each new model is trained on a fresher crawl...and often (but not every time) read them live via retrieval (ChatGPT Search, Perplexity, Gemini, etc...)...so the comparison is a meaningful, though not lab-controlled, signal of the improvement.
Honestly both...and we mark the boundary right in the code.
Three concrete examples:
The two heaviest checcks (weight 5) are AI bots being allowed in robots.txt and anti-bot blocking (i.e. the things that literally remove you from GPTBot, ClaudeBot, PerplexityBot & co). Block them there and you almost vanish from AI answers!
llms.txt (which many reports flag as important) is weighted 0 on purpose: based on our own analysis and independent server-log studies, AI crawlers fetch it in only ~0.1% of visits, with no correlation to citations (SE Ranking, across 300k domains). We report it, but we won't inflate the score with an unproven signal.
The GEO category exists specifically for citablity in AI answers (depth, extractability, statistics/citations)...which is different from traditional SEO ranking.
We're also fully transparent on everything, considering that we are 100% opensource https://github.com/isreadyai/isreadyai, including our engine (which is already started to be used by others https://x.com/oldstackjournal/status/2075476316665844051?s=20).
Thank you for your interest and question!
We hope you find IsReady.AI useful and easy to use.
Please don't hesitate to provide us with feedback.
Best regards,
MDL
How do the 32 checks handle dynamic SPAs that lazy-load content based on user interaction, since that's a pretty common edge case for AI crawlers missing stuff?
Hello Gökçe and thank you for the interest @gke1051485.
The 32 standard checks do not try to click through every possible SPA state but do follows all the hyperlinks in case of deep search.
That is intentional, because the standard IsReady.AI score measures what non-rendering AI crawlers receive: raw HTTP, no JavaScript execution, no hydration, no user interaction.
So if important content only appears after a click, scroll, filter change, login wall, or client-side route that is not exposed as real HTML, we treat that as not reliably visible to AI crawlers. The scanner catches this indirectly through checks like empty HTML shell, noscript fallback, main content extractability, content depth, sitemap discovery and raw-link discovery.
For dynamic SPAs, the recommended fix is not “make the crawler smarter”; it is to expose important states as crawlable URLs, include them in the sitemap/internal links, and render meaningful content server-side or statically.
We also have a separate Smart Agent Readability score for browser-capable agents that can render pages and inspect the accessibility tree. But we keep that separate from the 32-check crawler score, because AI crawler visibility and browser-agent usability are related but not the same problem.
Thank you for your interest and question!
We hope you find IsReady.AI useful and easy to use.
Please don't hesitate to provide us with feedback.
Best regards,
MDL
Love that it emulates the actual bots instead of just rendering the page like a normal headless browser, that single decision is what makes the score trustworthy instead of guesswork.
Hello Sefa @sefa1270776,
thank you for the interest, and yes, that was one of the core design decisions.
Small but important caveat: we do not claim to impersonate OpenAI, Anthropic, Perplexity or Google bots, and we do not spoof verified crawler IPs.
What we emulate is their observable fetching constraint: raw HTTP, no JavaScript, robots.txt rules per bot/purpose, AI user-agent response differences, short fetch budgets, redirects, noindex/snippet directives and anti-bot challenge signatures...
That is why the standard score is different from a normal headless-browser SEO audit. A page can look perfect in Chromium and still be almost blank to GPTBot or ClaudeBot if the content only exists after hydration.
For browser-capable agents, we measure that separately with Smart Agent Readability (which is frankly an edge-case since it's very recent). Keeping those two scores separate makes the result less flattering sometimes, but much more honest.
Thank you for your interest and comment!
We hope you find IsReady.AI useful and easy to use.
Please don't hesitate to provide us with feedback.
Best regards,
MDL