geolintv0.4.0AI-search readiness audit
https://duckduckgo.com/
HTTP 200text/htmlTTFB 58mstotal 296msrobots.txt 200llms.txt 2002026-09-17 12:55 UTC
Grade B
1 error·6 warnings·7 hints
38/52 checks passed

Categories

AI Crawler Access
100
✓ clean
llms.txt
84
2 warnings · 2 hints
Structured Data
90
1 warning · 2 hints
Citability
76
3 warnings · 3 hints
Technical Foundation
85
1 error

AI crawler access 51/51 allowed

BotPurposerobots.txtAccess
OpenAI
GPTBottraininghonored✓ allowed
OAI-SearchBotsearchhonored✓ allowed
ChatGPT-Useruser-fetchmay bypass✓ allowed
OAI-AdsBotmixedhonored✓ allowed
Anthropic
ClaudeBottraininghonored✓ allowed
Claude-Useruser-fetchhonored✓ allowed
Claude-SearchBotsearchhonored✓ allowed
anthropic-airetiredtrainingunverified✓ allowed
Claude-Webretiredsearchunverified✓ allowed
Perplexity
PerplexityBotsearchhonored✓ allowed
Perplexity-Useruser-fetchmay bypass✓ allowed
Google
Googlebotsearchhonored✓ allowed
Google-Extendedopt-outtraininghonored✓ allowed
Apple
Applebotsearchhonored✓ allowed
Applebot-Extendedopt-outtraininghonored✓ allowed
Meta
Meta-ExternalAgentmeta-externalagenttraininghonored✓ allowed
Meta-WebIndexersearchhonored✓ allowed
Meta-ExternalFetcheruser-fetchmay bypass✓ allowed
facebookexternalhituser-fetchunverified✓ allowed
FacebookBotretiredtrainingunverified✓ allowed
Amazon
Amazonbotmixedhonored✓ allowed
Amzn-SearchBotsearchhonored✓ allowed
Amzn-Useruser-fetchhonored✓ allowed
Mistral AI
MistralAI-Useruser-fetchunverified✓ allowed
MistralAI-Indexsearchunverified✓ allowed
MistralAI-Trainingtrainingunverified✓ allowed
Microsoft
Bingbotsearchhonored✓ allowed
DuckDuckGo
DuckDuckBotsearchhonored✓ allowed
DuckAssistBotuser-fetchhonored✓ allowed
You.com
YouBotsearchhonored✓ allowed
Moonshot AI
KimiBottrainingunverified✓ allowed
Kimi-Useruser-fetchunverified✓ allowed
Alibaba
TongyiBotmixedunverified✓ allowed
Exa
ExaBotsearchunverified✓ allowed
Tavily
TavilyBotsearchunverified✓ allowed
Timpi
Timpibotsearchunverified✓ allowed
ByteDance
Bytespidermixedunverified✓ allowed
Common Crawl
CCBottraininghonored✓ allowed
Cohere
cohere-aiuser-fetchunverified✓ allowed
cohere-training-data-crawlertrainingunverified✓ allowed
Diffbot
Diffbotmixedhonored✓ allowed
Webz.io
Omgilibotomgilibotretiredtraininghonored✓ allowed
webziotraininghonored✓ allowed
Webzio-Extendedopt-outtraininghonored✓ allowed
The Hive
ImagesiftBottraininghonored✓ allowed
Huawei
PanguBottrainingunverified✓ allowed
Kangaroo LLM
Kangaroo Bottrainingunverified✓ allowed
Allen Institute for AI
AI2Bottraininghonored✓ allowed
Ai2Bot-Dolmatraininghonored✓ allowed
NICT
ICC-Crawlertrainingunverified✓ allowed
Velen
VelenPublicWebCrawlertrainingunverified✓ allowed

Findings

✕Errors 1
✕ errortechnical/client-renderedTechnical Foundation
Content in the initial HTML

Page appears client-rendered — AI crawlers see an empty shell

A JS mount point (id="root"/"app"/"__next"…) is present but only ~5 words of text shipped in the HTML. Crawlers without a JS engine get almost nothing.

FixUse server-side rendering, static generation or prerendering so the real content is in the first HTML response.

5 words of visible text
⚠Warnings 6
⚠ warningllms-txt/invalid-structurellms.txt
llms.txt is valid markdown with an H1

llms.txt serves HTML instead of markdown

The response looks like an HTML page — likely an SPA or 404 fallback rewrite. AI consumers expect plain markdown.

FixServe real markdown at /llms.txt and exclude it from HTML fallback/rewrite rules.

<!DOCTYPE html><html lang="en-US" class="no-js has-zcm  no-theme is-link-style-exp is-link-order-exp is-link-breadcrumb-
⚠ warningllms-txt/no-sectionsllms.txt
llms.txt has link sections

llms.txt has no ## sections and no markdown links

Without H2 sections containing markdown link lists, AI consumers get no curated entry points into your content.

FixAdd "## Docs", "## Guides" etc. sections with bullet lists of [Title](url) links to key pages.

⚠ warningschema/no-jsonldStructured Data
JSON-LD structured data present

No JSON-LD structured data on the page

AI engines use schema.org markup to identify entities, dates, authors and page types. Without it they fall back to unreliable inference.

FixAdd JSON-LD blocks describing the page (Article, Organization, BreadcrumbList, FAQPage as appropriate).

⚠ warningcontent/thin-contentCitability
Substantive visible text

Thin content — only ~5 words of visible text

Pages with very little extractable text give AI engines nothing to quote; they also correlate with client-rendered shells.

FixExpand the page with substantive, answerable content — explanations, specifics, Q&A.

5 words
⚠ warningcontent/no-h1Citability
Single descriptive H1

No <h1> on the page

The H1 anchors how machines understand and index the page topic.

FixAdd one descriptive <h1> that states what the page is about.

⚠ warningcontent/missing-datesCitability
Visible publication/modified date

No machine-readable publication or modified date found

Checked <time datetime>, article:* meta tags and JSON-LD datePublished/dateModified — none present.

FixExpose a date via <time datetime="…">, article:published_time meta or JSON-LD datePublished/dateModified.

ℹHints 7
ℹ hintllms-txt/no-summaryllms.txt
llms.txt has a summary

llms.txt has no blockquote summary

Per the spec, a "> ..." blockquote after the H1 carries the short description AI systems read first.

FixAdd a one-paragraph blockquote ("> ...") under the H1 summarizing what the site offers.

ℹ hintllms-txt/ai-manifestllms.txt
Emerging AI manifest files (agents.json, ai.txt)

No emerging AI manifest files found

Checked /agents.json, /ai.txt, /.well-known/ai-plugin.json — all absent. These conventions are early and entirely optional.

FixPrioritize /llms.txt; add agents.json or ai.txt only if they fit your AI distribution strategy.

ℹ hintschema/no-organizationStructured Data
Organization schema present

No Organization schema found

Without entity grounding, engines cannot connect this site to a known organization — weaker trust signals for citation.

FixAdd an Organization JSON-LD block (name, url, logo, sameAs links) at least on the homepage.

ℹ hintschema/no-breadcrumbStructured Data
BreadcrumbList schema present

No BreadcrumbList schema found

Breadcrumbs expose site structure to machines; without them a page floats without context.

FixAdd BreadcrumbList JSON-LD matching the visible breadcrumb trail.

ℹ hintcontent/no-question-headingsCitability
Question-shaped headings

No question-shaped headings (h2/h3 ending in "?")

Question headings map directly onto user prompts and make sections self-contained citable answers.

FixRewrite a few section headings as the actual questions your audience asks.

ℹ hintcontent/no-authorCitability
Author attribution

No author attribution found

No meta[name=author], rel=author, JSON-LD author or author/byline markup — the content looks anonymous.

FixAttribute the content: an author byline, meta[name=author] or a Person in JSON-LD author.

ℹ hintcontent/no-data-pointsCitability
Concrete data points

Few concrete data points found (0 numeric stats)

Percentages, growth figures and quantities give AI engines precise, attributable claims to quote.

FixAdd verifiable numbers — percentages, counts, benchmarks — near the claims they support.