Six concrete gaps, each with the reasoning and the exact technical implementation.
Critical
No FAQ schema in place
Why it matters: AI assistants preferentially extract answers from FAQPage markup. Without that signal, existing content is largely skipped for customer questions.
The fix: Add FAQPage JSON-LD with the most common customer questions.
faqpage.jsonld
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does Example Ltd offer CNC milling for small batches?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Example Ltd manufactures CNC-milled parts in small batches from lot size 1, including drawing review."
}
},
{
"@type": "Question",
"name": "Does Example Ltd manufacture welded assemblies to EN 1090?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, Example Ltd is certified to EN 1090 and manufactures welded assemblies to customer drawing."
}
}
]
}
</script>
High
llms.txt missing entirely
Why it matters: Without llms.txt, AI crawlers must interpret content themselves and do so inconsistently. With llms.txt they get a machine-readable summary.
The fix: Provide an llms.txt with services, location, and contact.
llms.txt
# Example Ltd
> Metal fabrication: CNC milling, laser cutting, and welded assemblies to drawing, from lot size 1, certified to EN 1090.
## Services
- CNC milling (small batches and single parts)
- Laser cutting of sheet metal
- Welded assemblies to EN 1090
- Sub-assembly work
## Location
12 Example Street, 12345 Example City, Germany — info@example-company.com
## Key pages
- Services: https://example-company.com/services
- Contact: https://example-company.com/contact
High
No Organization markup
Why it matters: Without structured entity data, the AI cannot reliably attribute name, address, and contact to the company and tends to cite clearer sources instead.
The fix: Add Organization JSON-LD with name, address, phone, and e-mail.
organization.jsonld
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example-company.com/#organization",
"name": "Example Ltd",
"url": "https://example-company.com",
"email": "info@example-company.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Example Street",
"postalCode": "12345",
"addressLocality": "Example City",
"addressCountry": "DE"
}
}
</script>
Medium
Thin extractable text on the homepage
Why it matters: The homepage consists mostly of image tiles and slogans rather than body text. AI models extract facts from text, not images.
The fix: Add at least 300–400 words of descriptive body text about services and processes.
Medium
Services not machine-readable individually
Why it matters: “CNC milling,” “laser cutting,” and “welded assemblies” exist only as menu entries, not structured entries — the AI cannot reliably match them to specific queries.
The fix: Create a separate Service JSON-LD object for each service.
Low
robots.txt has no explicit AI crawler allowances
Why it matters: Without explicit Allow rules, some AI crawlers behave conservatively and crawl the site less often.
The fix: Add explicit Allow entries for GPTBot, ClaudeBot, PerplexityBot, and Google-Extended to robots.txt.
robots-addition.txt
# --- Explicitly allow AI/LLM crawlers (GEO) ---
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /