llms.txt, Schema, and robots.txt — Technical Checklist for AI Visibility
llms.txt gives LLMs a plain-text business summary; JSON-LD schema structures entity facts for parsers; robots.txt ensures crawlers can reach public pages. Together they improve grounding accuracy — but they do not replace reviews and listings as primary local AI signals.
Technical files are not magic — they are clarity
Local owners hear "add schema for AI" without a sequence. This checklist orders work by impact and dependency for AI visibility — not abstract SEO score chasing.
Reality check: Technical files help models represent you accurately. They rarely overcome weak reviews or chaotic listings. Do universal signals and technical work in parallel.
Checklist overview
| Priority | Item | Purpose |
|---|---|---|
| 1 | NAP match site ↔ GBP ↔ directories | Entity resolution before markup |
| 2 | JSON-LD LocalBusiness | Structured facts on homepage + location pages |
| 3 | llms.txt | Plain-language fact sheet for LLM crawlers |
| 4 | robots.txt audit | Ensure public pages crawlable |
| 5 | FAQ schema (selective) | Quotable Q&A matching buyer prompts |
| 6 | Core service pages | Crawlable HTML with geography + scope |
AIrecommend.ai ships items 2–3 in the Entity Profile Growth Engine module from verified client intake.
1. Align facts before markup
Schema with a wrong phone number scales errors. Before any technical deploy:
- Match NAP to Google Business Profile
- Sync Apple Business Connect and Bing Places
- Fix industry directories (Angi, Healthgrades, Avvo as applicable)
Listings guide: Apple Business Connect.
2. JSON-LD LocalBusiness
Place JSON-LD in <script type="application/ld+json"> on homepage and location/service pages.
Minimum properties:
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Example Plumbing Co.",
"image": "https://example.com/team.jpg",
"telephone": "+1-615-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Main St",
"addressLocality": "Nashville",
"addressRegion": "TN",
"postalCode": "37201",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 36.1627,
"longitude": -86.7816
},
"url": "https://example.com",
"areaServed": {
"@type": "City",
"name": "Nashville"
},
"openingHoursSpecification": [...],
"sameAs": [
"https://www.google.com/maps?cid=...",
"https://www.facebook.com/example"
]
}
Use the most specific @type your business qualifies for. Validate with Google's Rich Results Test — not for guarantee of AI placement, but to catch syntax errors.
Avoid: fake aggregateRating unless tied to a real on-page review widget with visible source; keyword-stuffed description fields.
3. llms.txt
Host at https://yourdomain.com/llms.txt. Plain text, UTF-8.
Suggested sections:
# Business name
> One-sentence factual description.
## Canonical facts
- Legal name:
- Address:
- Phone:
- Hours:
- Service area:
- License / credentials (if applicable):
## Services
- Service A: short factual scope
- Service B: ...
## Key URLs
- Homepage:
- Contact:
- Pricing / booking (if public):
## Policies
- Reviews: how customers leave feedback (no gating)
- Last updated: YYYY-MM-DD
Keep claims verifiable. Update when services or hours change. Perplexity and Claude-class retrieval benefit from concise, citable summaries.
Do not: hide llms.txt behind auth; stuff keywords; contradict GBP.
4. robots.txt audit
Common mistakes blocking AI-relevant crawlers:
User-agent: *
Disallow: /
Over-broad rules on staging copied to production. Audit:
/allowed for marketing site- Service pages not disallowed
- llms.txt and sitemap paths allowed
- Staging domains blocked via noindex + auth, not prod robots alone
Log robots.txt changes in deployment checklists.
5. FAQPage schema (selective)
Mark up real FAQs on service pages — questions customers ask AI:
- "Do you offer emergency service?"
- "What neighborhoods do you serve?"
- "Are you licensed and insured?"
Do not generate hundreds of thin FAQ pages for spam. 5–10 high-intent questions per core service suffice.
6. HTML fundamentals models still read
- Title tags with service + city where truthful
- One H1 per page matching user intent
- Visible NAP in footer matching schema
- Fast mobile load — retrieval may skip slow pages
Testing your stack
- Fetch
yoursite.com/llms.txtin incognito — 200 OK - View-source — JSON-LD parses as valid JSON
- Rich Results Test — no critical errors
- Search Console — no unintended disallow
- Scan AI visibility — check if mention rates move after 30–60 days alongside review/listing work
How this fits AEO / LLM SEO
Technical clarity supports AEO and LLM SEO but does not define them. Strategy guides: What is AEO? · How AI chooses businesses.
When models state wrong facts, technical fixes are part of AI reputation repair — trace listing conflicts before blaming the model.
AIrecommend.ai delivery
Entity Profile module (Growth tier) produces:
- Verified About copy
- llms.txt from intake
- JSON-LD pack aligned to GBP
Client approves before publish. Bundled with listings sync and monthly rescans.
Growth $4,997/mo · Dominance $9,999/mo — pricing.
Bottom line
Implement in order: facts → schema → llms.txt → robots audit → FAQ markup. Measure mention rates monthly. No vendor should sell schema alone as "AI domination."