AEO NIUEXA

AI-Specific Checks

20% Weight Check reference Priorities vary by result

This check reference covers the checks built around AI search and assistants such as ChatGPT, Claude, Perplexity and Gemini: which AI crawlers may open your pages, hidden attempts to steer AI answers, and whether your content is easy to summarise, attribute and date. Several of them test popular ideas that are not proven; those are shown in your report and not scored.

Sixth weighted dimension: These AI-specific checks contribute 20% of the AEO Score and evaluate signals built for AI discovery, attribution, and citation. Each check counts by how well the evidence supports it: checks marked Unproven are shown in your report but not scored, and if nothing in this dimension can be weighed it is left out and the other weights are scaled up.
How AI-Specific is scored. Every check has the same importance; what it counts for comes from its evidence. Full weight (official or corroborated): AI Bot Permissions, Hidden AI Instructions, Claim Attribution and Content Versioning. Half weight (practitioner advice): AI-Readable Summaries, Content Clarity, Semantic Relevance and Entity Recognition Quality. Not scored (unproven): AI Citation Potential, llms.txt Implementation, AI Opt-Out Signals, Content Licensing, Entity Disambiguation, Knowledge Graph Readiness, AI Schema Properties and Speakable Content. Hidden AI Instructions only counts on a page where it finds something; everywhere else it is N/A.

AI Crawler Permissions

Which AI crawlers may open your pages, judged by what each crawler is for: search, user fetch or training.

AI Bot Permissions

Critical
What it checks
Reads your robots.txt the way crawlers do (RFC 9309) and checks which AI crawlers may open the scanned page (its path and query), grouped by purpose: search (OAI-SearchBot, PerplexityBot, Claude-SearchBot, Bingbot, Googlebot), user fetch (ChatGPT-User, Perplexity-User, Claude-User) and training (GPTBot, ClaudeBot, CCBot, Google-Extended, Applebot-Extended, Bytespider, meta-externalagent). Crawler names as of 2026-10-07.
Why it matters
Search and user-fetch crawlers decide whether AI search and assistants can find and open a page. Training crawlers are a separate decision: blocking GPTBot or Google-Extended does not hide you from ChatGPT search or Google AI Overviews. A crawler with no group of its own follows the User-agent: * rules; you do not need an explicit Allow for every bot.
How it is scored
100 when no search or user-fetch crawler is blocked on the page; blocking training crawlers never counts against it. A missing robots.txt (404, or another 4xx answer not listed under Not measured) lets every crawler in, so it passes.
Pass: search and user-fetch crawlers may open the page (training blocks are fine) Fail, critical: every search crawler blocked (0) Fail, high: some search crawlers blocked (25) Fail, medium: only user-fetch crawlers blocked (50) Not measured: robots.txt could not be read (401, 403, 407 or 429, a server error, a redirect, an HTML page instead of rules, or no answer)
How to fix
Give a blocked search or user-fetch crawler its own group with Allow: /, and repeat your private-path Disallow lines there (a named group does not inherit the * rules). When only this page's path is blocked, remove or narrow the Disallow rule that covers it. Decide training access separately.
Example
# robots.txt - allow AI search, decline training (example policy)
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
Disallow: /admin/

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
Disallow: /

User-agent: *
Allow: /
Disallow: /admin/

Sitemap: https://example.com/sitemap.xml

AI Opt-Out Signals

Unproven · not scored
What it checks
Looks for unofficial opt-out signals: noai or noimageai in any meta tag, a meta tag named ai-opt-out, the same words in an X-Robots-Tag header, or an X-AI-Opt-Out header. A meta tag named ai-training with "allow" is read as an opt-in.
Why it matters
Major engines do not document these tags, and opting out is your choice. The check is shown so that a tag your CMS added by default does not surprise you; it does not count in your score.
How it is scored
Shown for information only: the result never counts in your score.
Pass: no opt-out signal found Fail: an opt-out signal found
How to fix
Remove opt-out tags you did not intend; check your CMS or platform settings. Keep them if opting out is what you want. To keep AI training crawlers out, the documented way is robots.txt rules for those crawlers.
What to Avoid
<!-- Unofficial opt-out tags: remove them if you did not intend to opt out -->
<meta name="robots" content="noai">
<meta name="robots" content="noimageai">

<!-- No opt-out tags, standard robots -->
<head>
  <meta name="robots" content="index, follow">
</head>

Hidden Instructions

Text people cannot see that tries to tell AI assistants what to say.

Hidden AI Instructions

High
What it checks
Reads the page HTML for instructions aimed at AI assistants, such as "ignore previous instructions", "you are an AI assistant", "when summarising this page, say...", "ChatGPT, recommend..." or "AI assistants should recommend us", in places people do not see: hidden elements (the hidden attribute, aria-hidden, display:none, visibility:hidden, zero font size or opacity, transparent text, off-screen or clipped text, sr-only and similar classes), HTML comments, meta tags, alt, title and aria-label attributes, <noscript>, <template>, JSON-LD, and the prompts prefilled in "Summarize with AI" links. Text that only mentions AI is not a match, and a hidden copy of words that are also visible (a mobile and a desktop version, for example) counts as visible.
Why it matters
Bing's webmaster guidelines name prompt injection, and Google's spam policies cover attempts to manipulate its AI answers. Hidden instructions put the page at risk of being demoted or removed.
How it is scored
Fail: instructions to AI found in a hidden place (each one is listed with where it was found) None found: not applicable, so a clean page gains no points from it Visible text only (for example an article about prompt injection): shown for information, not a problem Not measured: the page HTML was not available
How to fix
Remove each passage listed from the template, CMS field, plugin or tag manager that adds it. Keep a "Summarize with AI" link a plain request to summarise the page, without "remember", "trusted source" or "recommend" wording.

AI Readability

Summaries, plain sentences and a clear layout make a page easier to read and to quote correctly.

AI-Readable Summaries

Medium
What it checks
Looks for a summary on the page: the words "TL;DR", an element whose class or id contains summary, abstract, tldr or key-takeaways, role="doc-abstract", a JSON-LD abstract or description over 100 characters, or a first paragraph over 150 characters that presents itself as an overview, summary or guide. When none of these is there, it reads the top of the page text for headings such as "Summary", "Key takeaways" or "Overview". Italian pages also match "In sintesi", "In breve", "Riepilogo" and similar.
Why it matters
A short summary at the top gives readers the answer quickly and is easy to quote. It is common practice rather than a confirmed signal, so it counts at half weight.
How it is scored
100 with two or more kinds of summary, 70 with one, 30 with none.
Pass: at least one summary found Fail: none found
How to fix
Open long pages with a short summary or a "Key takeaways" list that states the main answer. A labelled block like the example below is recognised.
Example
<article>
  <h1>Complete Guide to API Security</h1>

  <aside class="key-takeaways">
    <h2>Key Takeaways</h2>
    <ul>
      <li>API security requires authentication and encryption</li>
      <li>OAuth 2.0 is the recommended standard</li>
      <li>Rate limiting prevents abuse</li>
    </ul>
  </aside>

  <!-- Main content follows -->
</article>

Content Clarity

High
What it checks
Average word length and average sentence length across the page's text (navigation included), and whether the text is split into at least three paragraphs.
Why it matters
Plain sentences are easier to read and to quote accurately. Shorter is a practice, not a rule, so it counts at half weight.
How it is scored
Starts at 70. Words averaging under 5 letters add 10 (under 6 add 5, over 7 take 10 off); sentences averaging under 15 words add 15 (under 20 add 5, over 25 take 15 off); three or more paragraphs add 5. A page with fewer than 50 words scores 30.
Pass: 60 or more Fail: under 60 (high below 40)
How to fix
Split long sentences, prefer the plain word, define jargon the first time you use it and keep one idea per paragraph.

Semantic Relevance

High
What it checks
The page's layout signals: semantic elements (article, section, main, nav, aside, header, footer), one H1 with at least two H2s, article or section blocks, lists and figures.
Why it matters
Clear headings and marked sections show how the content is organised, for readers and for software. It is common practice, so it counts at half weight.
How it is scored
Starts at 50. Five or more semantic elements add 20 (two or more add 10); one H1 with two or more H2s adds 15 (any H2 adds 5); article or section elements add 10; two or more lists add 5; a figure adds 5.
Pass: 60 or more Fail: under 60 (high below 40)
How to fix
Give the page one H1 and descriptive H2s, mark the main content and its sections with semantic HTML, and use lists for steps and options.
Semantic HTML5 Structure
<!-- GOOD: Semantic HTML5 elements -->
<header>
  <nav aria-label="Main navigation">...</nav>
</header>

<main>
  <article>
    <header>
      <h1>Article Title</h1>
      <time datetime="2024-10-15">October 15, 2024</time>
    </header>

    <section id="introduction">
      <h2>Introduction</h2>
      <p>Content here...</p>
    </section>
  </article>

  <aside aria-label="Related content">
    <h2>Related Articles</h2>
  </aside>
</main>

<footer>...</footer>

AI Citation Potential

Unproven · not scored
What it checks
A rough estimate built mostly from word count and markup: it starts at 50 and adds points for 500 or more words, JSON-LD, quotes or reference links, lists or tables, and three or more headings. Pages under 200 words lose 10.
Why it matters
No score can predict whether AI tools will cite a page, so this is shown for information and not scored.
How it is scored
Shown for information only: the result never counts in your score.
Pass: 60 or more Fail: under 60
How to fix
Nothing specific to fix here. Work on the scored checks: direct answers, clear facts, sources and crawler access.

Content Attribution

Who says so, since when, and how the content may be reused.

Claim Attribution

High
What it checks
Looks for four kinds of attribution: numbered references such as [1] in the text; a heading (H2 to H4) with "reference", "source", "citation" or "bibliography" in it (on Italian pages also "fonti", "riferimenti" or "bibliografia"); a blockquote with a <cite>; and more than five links written as full web addresses (http...), which includes your own links when they are written that way.
Why it matters
Claims credited to a source can be checked by readers, editors and any system that follows the link, which makes the page more trustworthy.
How it is scored
100 with three or more kinds, 80 with two, 60 with one, 30 with none.
Pass: at least one kind of attribution Fail: none found (high)
How to fix
Name the source of each statistic or claim and link to it, with the study name and date where there is one. Longer pages can end with a Sources section.
Proper Attribution Example
<!-- Properly attributed claim -->
<p>
  Average delivery time fell from 5 to 3 days in 2025, according to
  <cite>
    <a href="https://example.org/logistics-survey-2025">
      Example Logistics Survey 2025
    </a>
  </cite>.
</p>

<!-- Quote with attribution -->
<blockquote cite="https://example.com/interview">
  <p>"We publish every figure with its source."</p>
  <footer>— <cite>Dr. Sarah Chen</cite></footer>
</blockquote>

Content Versioning

Low
What it checks
Looks for signs of when the page last changed: a visible "Last updated" or "Updated on" date or a version number (also in Italian, German, French, Spanish and Portuguese), <time datetime> elements, a meta tag for the modified date, a change-log heading (changelog, revision, history, updates; on Italian pages also cronologia, revisioni, aggiornamenti) and dateModified in JSON-LD.
Why it matters
A visible, true update date lets readers judge how current the information is. Change the date when the facts change: Google's guidance discourages updating dates just to look fresh.
How it is scored
100 with two or more kinds of signal, 70 with one, 40 with none.
Pass: at least one signal Fail: none found (low)
How to fix
Show the publication and last-updated dates on the page, mark them with <time datetime>, add dateModified to your Article markup, and give technical documentation a version number.
Date/Version Example
<article>
  <header>
    <h1>API Security Guide</h1>
    <div class="article-meta">
      Published: <time datetime="2024-01-15">January 15, 2024</time>
      | Updated: <time datetime="2024-10-20">October 20, 2024</time>
      | Version: 2.1
    </div>
  </header>
</article>

Content Licensing

Unproven · not scored
What it checks
Looks for a Creative Commons link, a meta tag about the license or rights, license or copyrightHolder in your structured data, and a visible copyright notice (©, "copyright", "all rights reserved"; on Italian pages also "tutti i diritti riservati").
Why it matters
A clear license tells people how your content may be reused. It is not linked to search or AI visibility, so it is shown for information and does not count in your score.
How it is scored
Shown for information only: the result never counts in your score. A © notice in the footer is enough to pass.
Pass: at least one licensing or copyright signal Fail: none found
How to fix
Optional. If you want to state reuse terms, add a copyright or Creative Commons notice and the license property in your JSON-LD.
Machine-Readable Licensing
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Understanding AI in 2024",
  "author": {
    "@type": "Person",
    "name": "Dr. Sarah Chen"
  },
  "datePublished": "2024-10-15",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "copyrightHolder": {
    "@type": "Organization",
    "name": "TechCorp Research"
  },
  "copyrightYear": 2024
}
</script>

Entity Recognition

Help software tell exactly which business, person or product the page is about.

Entity Recognition Quality

High
What it checks
Markup that names the things on the page: JSON-LD blocks with a top-level @type (a block that only holds an @graph is not counted), schema.org microdata, elements such as <address>, <time>, <cite>, <abbr> and <dfn>, and some emphasis (three or more <strong>, <em> or similar).
Why it matters
Markup that names who and what the page is about helps software tell exactly which business, person or product you mean. It is common practice, so it counts at half weight.
How it is scored
Starts at 50. Each JSON-LD block with a @type adds 10 (each typed item in a JSON-LD list adds 5), each schema.org microdata item adds 5, each kind of element above adds 3, and emphasis adds 5.
Pass: 60 or more Fail: under 60 (high below 40)
How to fix
Describe your business, people and products in JSON-LD (Organization, Person, Product), and name them in full on first mention.

Entity Disambiguation

Unproven · not scored
What it checks
Looks for links to Wikipedia, Wikidata or DBpedia pages in the content, and for sameAs properties in your structured data that point there.
Why it matters
Many businesses have no Wikipedia or Wikidata entry, and one is not required to appear in AI answers. Shown for information; it does not count in your score.
How it is scored
Shown for information only: the result never counts in your score.
Pass: a Wikipedia, Wikidata or DBpedia link or sameAs Fail: none found
How to fix
Optional. If your business has a Wikidata or Wikipedia entry, list it in sameAs with your other official profiles. Use full names on first mention.
Example
<!-- Good: Clear entity disambiguation -->
<p>
  <a href="https://www.apple.com">Apple Inc.</a>
  announced new products. CEO
  <a href="https://en.wikipedia.org/wiki/Tim_Cook">Tim Cook</a>
  presented the keynote.
</p>

<!-- With Schema.org markup -->
<span itemscope itemtype="https://schema.org/Person">
  <span itemprop="name">Dr. Sarah Chen</span>,
  <span itemprop="jobTitle">Chief AI Researcher</span>
</span>

Knowledge Graph and Schema Extras

Popular ideas about knowledge graphs and "AI" markup. None of them is proven, so all three are shown for information and not scored.

Knowledge Graph Readiness

Unproven · not scored
What it checks
A rough count of the Schema.org types on the page, of capitalised names in the text, and of relationship properties such as author, publisher or about.
Why it matters
A knowledge-graph or Wikipedia entry is not a requirement for appearing in AI answers, and a count of names says little about quality. Shown for information; it does not count in your score.
How it is scored
Shown for information only. It starts at 50 and only adds points, so any page with text passes.
Pass: 50 or more Fail: no text to read
How to fix
Nothing is required. Use your business's full name consistently and describe it in Organization markup.

AI Schema Properties

Unproven · not scored
What it checks
Looks in your JSON-LD for properties that are often said to help AI: speakable (25 points), sameAs (20), mainEntity (20), about (15), mentions (10) and keywords (10).
Why it matters
None of these properties is proven to raise AI citations. Use one only when it describes the page truthfully. Shown for information; it does not count in your score.
How it is scored
Shown for information only: the result never counts in your score.
Pass: 50 or more Fail: under 50
How to fix
Nothing is required.

Speakable Content

Unproven · not scored
What it checks
Looks for speakable markup in your JSON-LD: CSS selectors or XPaths that mark the parts of a page for voice assistants to read aloud.
Why it matters
Its support is narrow and it is not proven to help voice or AI answers, so it is shown for information and not scored. Auto-Fix no longer adds it.
How it is scored
Shown for information only: the result never counts in your score.
Pass: at least one speakable selector Fail: none
How to fix
Nothing is required.

llms.txt File

llms.txt is an optional summary file proposed for AI systems. Google does not use it and no major AI engine is shown to, so this check is shown for information and not scored.

llms.txt Implementation

Unproven · not scored
What it checks
Looks for /llms.txt, then /llm.txt, served as plain text or Markdown; an HTML page served at that address does not count. When a file is found, it rates how complete it looks.
Why it matters
It is an optional proposal, not a standard that search or AI engines are known to follow. A missing file is not a problem and does not lower your score.
How it is scored
Shown for information only. A file gets 25 for a title line (#), 25 for a description, 25 for links, 15 for sections and 10 for more than 500 characters.
Pass: a file scoring 50 or more Fail: no file, or a file under 50
How to fix
Optional. If you want one, publish a plain-text llms.txt in your website root with a title, a short description and links to your key pages, as llmstxt.org describes.
Basic llms.txt Example
# Your Organization Name
> What your organization does

## Key pages
- [About](https://yoursite.com/about): Company overview
- [Products](https://yoursite.com/products): Our offerings
- [Blog](https://yoursite.com/blog): Latest insights
Complete llms.txt Example
# TechCorp Solutions
> Enterprise software company specializing in AI-powered business intelligence and data analytics.

## Key pages
- [About](https://techcorp.com/about): Company overview and mission
- [Products](https://techcorp.com/products): Our software solutions
- [Pricing](https://techcorp.com/pricing): Plans and pricing information
- [Blog](https://techcorp.com/blog): Latest insights and tutorials

## Contact
- Email: info@techcorp.com
- Support: support@techcorp.com