AI-search readiness

Build a page machines can actually read

Discovery increasingly runs through systems that fetch a page, read it, and decide what it is about — without a person and often without executing your JavaScript. That puts weight on things that were always good practice and are now load-bearing: can it be crawled, is the content in the first response, is the structure legible, does the markup say what the page is.

No signup required to start — 10 audits a day without an account.

The 8 checks behind this

Each one is a check that runs, described by the engine itself. If a check changes, this page changes with it.

  • robots.txt

    robots_txt

    The origin /robots.txt, parsed to RFC 9309: consecutive user-agent lines share a group, the most specific group wins, and the longest matching pattern decides with Allow winning ties. Fails when the audited path is disallowed for Googlebot; warns when the file is absent or declares no Sitemap. Distinct from the robots meta tag: a disallow here stops the crawl, not just the indexing.

    Fixing it: Lets crawlers read the page, so every other signal on it can be seen.

  • X-Robots-Tag header

    x_robots_tag

    Indexing directives delivered in the response header rather than the markup, including any bot-name prefix. A noindex or none fails; nofollow warns. This is checked separately from the robots meta tag because the two disagree often and a header-level noindex is invisible in the HTML.

    Fixing it: Removes a header-level block that keeps the page out of the index entirely.

  • Server-rendered content

    render_dependency

    Visible text as a share of the response body, plus inline script share and server-rendered word count. Fails under 60 words alongside a script-heavy document, or below a 2% text ratio; warns below 5%. SEOAST executes no JavaScript, so this measures what a crawler sees before deciding whether to queue a rendered pass.

    Fixing it: Puts the content in the first response, where every crawler reads it, instead of behind a render pass that is neither fast nor guaranteed.

  • Structured data (JSON-LD)

    structured_data

    Every <script type="application/ld+json"> block: whether it parses as JSON, whether it declares an @type (walking arrays and @graph), and which types are present. A block that fails to parse is worse than no block at all, because it forfeits rich-result eligibility silently.

    Fixing it: Makes the page eligible for rich results. Eligible, not guaranteed — Google decides whether to show them.

  • Heading hierarchy

    heading_hierarchy

    The h1-h6 outline: how many h1 elements exist, whether any heading is empty, and whether the document skips a level (an h2 followed directly by an h4). Zero or multiple h1 elements and skipped levels both make the page outline ambiguous to crawlers and screen readers.

    Fixing it: Gives crawlers and screen readers an unambiguous outline of what the page covers.

  • H1 and title alignment

    h1_title_alignment

    Overlap between the meaningful terms in <title> and in the first <h1>, as a fraction of the smaller term set. At or above 0.5 the two describe the same topic; at or above 0.25 they are loosely related; below that the search result promises one thing and the page delivers another. Reports not_measurable when either element is missing or empty.

    Fixing it: Makes the search result and the page agree about the topic, reducing bounce.

  • HTML lang attribute

    html_lang

    Presence and shape of the lang attribute on <html>, checked loosely against BCP 47 (a two- or three-letter primary subtag plus optional script, region and variant subtags). Drives language targeting, hreflang consistency and screen-reader pronunciation.

    Fixing it: Tells search engines and screen readers which language the page is written in.

  • llms.txt (non-Google AI crawlers, not scored)

    llms_txt

    The site-root /llms.txt, reported for non-Google AI crawlers only. Google Search ignores llms.txt (Google's AI optimization guide), so this check carries a weight of 0 and never moves the score. Absence passes. A file that is not Markdown or has no H1 warns, because a broken published file is sloppy; a well-formed file without a 40+ character summary or links still passes.

    Fixing it: Removes a malformed file that non-Google readers may choke on. Google Search ignores llms.txt, so there is no Google effect.

How this works in practice

What this does not do

SEOAST does not query ChatGPT, Perplexity, Gemini or Google AI Overviews, and it does not monitor or measure whether any of them cite you. There is no "AI visibility score" here. What it measures is whether the foundations those systems depend on are in place — a smaller claim, and one that can actually be checked.

The single biggest signal is whether your content exists before the JavaScript runs

A page that assembles its copy on the client is at the mercy of a render queue that is neither fast nor guaranteed. SEOAST measures visible text as a share of the response, the inline script weight, and the server-rendered word count, and reports plainly when the answer is "there is almost nothing here until the JavaScript runs".

Google says there is no special AI optimization — so SEOAST does not invent one

Google’s documentation states there are no additional requirements to appear in AI Overviews or AI Mode, no special schema, and that Google Search ignores AI text files such as llms.txt. SEOAST therefore measures Search eligibility — can it be crawled, indexed and shown with a snippet — and reports llms.txt only for other AI crawlers, with a weight of zero.

What this will not do

These are foundational signals, not a measure of AI citation. No answer engine is queried at any point.

Questions

Will an llms.txt file improve my rankings?

Not in Google: Google states that Google Search ignores it. SEOAST reports the file for other AI crawlers and scores it zero, so it never changes your result.

Can you tell me if ChatGPT recommends my business?

No, and anything that claims to should be asked how. SEOAST measures whether your page can be crawled, read and interpreted. It does not query answer engines.

Does blocking AI crawlers hurt me?

SEOAST reports which AI crawlers your robots.txt blocks as a fact, not a verdict. Blocking them is a legitimate business decision and the report does not score you down for it.

  • Generative engine optimization (GEO) audit

    GEO audit for any URL. SEOAST checks the signals generative engines depend on — crawl access for AI bots, snippet eligibility, server-rendered content, structured data, and entity and trust signals — then ranks the fixes.

  • Answer engine optimization (AEO) audit

    AEO audit for any URL. SEOAST checks whether your answers can be extracted: question headings, direct answers beneath them, FAQPage and QAPage schema, heading structure, readability and server-rendered copy.

  • Technical SEO audit

    Run a technical SEO audit on any URL. SEOAST checks HTTP status, redirects, HTTPS, robots.txt, the robots meta tag, X-Robots-Tag, canonicals and your XML sitemap, then ranks what to fix first.

Audit your page

No signup required to start.