Guide · Checklist

llms.txt, JSON-LD, citable facts: the technical checklist for AI visibility

AI systems read websites much like crawlers: they see the delivered HTML, look for unambiguous entities and prefer statements that can be cited. This checklist discloses the eight criteria the free QueryHalo check uses to score a homepage – including weights and thresholds, so you can reproduce the check without us.

QueryHalo is a one-time AI visibility audit: 6 neutral buying questions go to 3 AI models (GPT, Claude, Gemini) and all 18 answers are documented with the competitors they name. The website check is free; the full report costs €29 once (3 audits €59, 10 audits €149), usually takes 1–3 minutes and arrives as PDF and JSON.

The eight criteria at a glance

All criteria are checked on the homepage's server HTML, i.e. without executing JavaScript. The thresholds are deliberately achievable: they describe fundamentals, not perfection.

The eight criteria of the QueryHalo website check, total 100 points, scored on the homepage's server HTML
CriterionPointsFull points when …Partial points
Page title (title tag)14the title has at least 20 characters7 for a shorter title, 0 without a title
Meta description12the description has at least 80 characters6 for a shorter description, 0 without
Primary heading (H1)12the first H1 has at least 12 characters6 for a shorter H1, 0 without H1
Structured entity data (JSON-LD)20a JSON-LD block contains the type Organization, Corporation, LocalBusiness, Product, SoftwareApplication or Service8 if JSON-LD exists without these types; 0 without JSON-LD
Brand name in page text12the detected brand name appears in the visible text4 if not
Citable facts20at least four numbers with a unit or currency appear in the text5 points per fact
robots.txt reachable8/robots.txt answers with status 2004 if unreachable
llms.txt (optional)2always – the file is a hint, not a criterion

1. Page title and 2. Meta description

The title tag is the shortest description of your page and is read by search engines and models alike as the entity name. Name the offer and the brand, for example “AI Visibility Audit: Does ChatGPT Recommend You? | QueryHalo”. 20 characters earn full points; 30–60 characters are customary for search results.

The meta description is the citable summary: offer, audience, region and one verifiable difference in 110–155 characters. It does not influence rankings directly but is often adopted as a summary. Full points from 80 characters.

3. Primary heading

Exactly one H1 per page that connects category, benefit and audience. “Welcome” is not a heading a model can use. Check in the source that the H1 is in the HTML and not generated by JavaScript.

4. Structured entity data in JSON-LD

JSON-LD is the most direct way to tell a machine who you are. Mark up the company as an Organization (name, URL, address, contact) and the offer as Product, Service or SoftwareApplication with Offers – price, currency, availability. Use the same name in text, title and JSON-LD; diverging spellings split one entity into several.

The check grants full points as soon as one of the types Organization, Corporation, LocalBusiness, Product, SoftwareApplication or Service appears as a string in the JSON-LD. Validate your markup with the Schema.org validator and the Google Rich Results Test; both are free.

5. Brand name in the visible text

Sounds trivial but fails often: the company name is in the logo as an image, in the footer as a graphic, and nowhere else. Models read text. Name the brand in the homepage copy, ideally in a sentence that says what it is: “QueryHalo is a one-time AI visibility audit …”. The check detects the brand name from JSON-LD, og:site_name or the title and looks for it in the text.

6. Citable facts

Models prefer statements that can be repeated as a number with a unit: prices (“€29”), quantities (“18 answers” counts only with a recognised unit, “3 models” does not), periods (“for 12 years”), shares (“67%”), customer counts, locations, turnaround times. Four such facts on the homepage earn full points. Vague superlatives (“leading”, “innovative”) do not count – neither in the check nor in model answers.

Good places for facts: a short definition sentence under the H1, a price, a dated “last updated” note, concrete service limits.

7. robots.txt and AI crawlers

A reachable robots.txt is the prerequisite for crawlers to know what they may do. For AI visibility it is worth looking at the crawlers the model providers document: GPTBot and OAI-SearchBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot, Google-Extended (controls use for Gemini training separately from Googlebot), Applebot-Extended and Bingbot. Blocking these crawlers is a deliberate decision against visibility in the respective systems – that can be right, but it should be a decision, not an accident.

QueryHalo explicitly allows these crawlers on queryhalo.app and blocks only the report and API routes. The check verifies only that the file is reachable, not its content.

8. llms.txt – optional but cheap

llms.txt is a proposal by llmstxt.org: a Markdown file at /llms.txt that explains to a machine in a few lines what the website is and links the most important pages. No major model provider has committed to reading the file; that is why the check always grants the 2 points and treats the file as a hint. The effort is small, and the file forces you to explain your offer in one paragraph – that alone is useful. See queryhalo.app/llms.txt for an example.

Order of implementation

  1. Deliver title, description and H1 in the HTML – one afternoon, biggest impact per hour.
  2. Put a definition sentence with four facts under the H1 and name the brand in the text.
  3. Add Organization plus Product/Service/SoftwareApplication as JSON-LD and validate.
  4. Review robots.txt; decide deliberately which AI crawlers are allowed.
  5. Add llms.txt, then repeat the check.

Frequently asked questions

Why is llms.txt worth only 2 points?+

Because no major model provider has documented reading the file. We do not want to penalise anyone for a missing file whose effect is unproven; that is why the 2 points are always granted. The check still shows whether it exists.

Is JSON-LD on a subpage enough?+

The check reads only the homepage, because it is the page crawlers and models see most often. Mark up the organization on every page and the specific offer where it is described.

How do I check what a crawler sees?+

Fetch your homepage with curl or “view page source”. What is not there does not exist for the check and for many crawlers. The free QueryHalo check does exactly that and shows the eight criteria with points.

Sources