- Access 30%Can AI bots reach and read the pages?62
- Readiness 40%Can AI understand and quote them?48
- Visibility 30%Does AI actually cite the site?41
What's in the score +
- -25robots.txt blocks PerplexityBotRetrieval bots fetch pages to answer live questions.
- -10No /llms.txtA short guide for AI assistants to the site and its key pages.
- -36% of text needs JavaScript (weighted by pages)Worst: /buildings/{slug} at 78%.
The AI-readiness checks per template (structured data, freshness, verdict sentences, facts up front, empty values), weighted by pages.
- Claude3/6 cited
- ChatGPT · your key3/6 cited
- Perplexity · your key3/6 cited
- Gemini · your key1/6 cited
GEO = Access 30% + Readiness 40% + Visibility 30%. Parts that haven't run yet are left out and the weights rescaled.
Where to start
1 page type in the “fix first” cornerEach dot is a page type. Right = healthier, up = more pages, bigger = more issues. Top-left is where one fix helps the most pages.
Issues by page type
highmediumlowThe largest page types first. Fixing a page type's template fixes every page built from it.
All modules
Top fixes across the site
- 1highNo JSON-LD for the buildingAI3,940 pages
- 2high82% near-duplicate text across pagesSEO3,940 pages
- 3mediumKey answer buried below the foldAI3,940 pages
- 4mediumLCP 3.4s on mobileSEO3,940 pages
- 5lowTitles over 60 charactersSEO2,870 pages
Page types, by impact
A page type (template) is one layout used for many pages — like every building page. Fix it once and every page built from it is fixed.
- highNo JSON-LD for the building
Claude pulled the right address from 1 of 5 sample pages. Without structured data, AI answers can't reliably quote these pages.
Fix covers ~3,940 pagesJSON-LD · validated against schema.org{ "@context": "https://schema.org", "@type": "ApartmentComplex", "name": "{{building.name}}", "address": { "@type": "PostalAddress", "streetAddress": "{{building.street}}", "addressLocality": "{{building.city}}", "postalCode": "{{building.zip}}" }, "numberOfAccommodationUnits": {{building.units}}, "aggregateRating": { "@type": "AggregateRating", "ratingValue": {{building.rating}}, "reviewCount": {{building.reviews}} } } - mediumKey answer buried below the fold
Rent range first appears after ~600 words. Put a short summary block at the top.
Fix covers ~3,940 pages
- “How much is rent at {building}?”
- “Is {building} pet friendly?”
- “What do tenants say about {building}?”