Technical SEO
LLM Technical Readiness
Server-side rendering, schema, robots.txt, llms.txt, and crawl-path audit for rotorooter.com/sarasota/
Overall LLM Readiness
6.4 / 10
Stronger than most local competitors
HTML Payload
514 KB
~10x target (50-80 KB)
Time to First Byte
0.257s
Well under 2s AI crawler timeout
JSON-LD Schema Blocks
5
Present but stale dates
Server-Side Rendering
8 / 10- Angular SSR confirmed (Angular Universal)
- TTFB 0.257s — excellent
- All critical content server-rendered
- Title, meta, H1, H2, schema all in initial HTML
Robots.txt / AI Crawlers
3 / 10- Zero AI crawler directives
- No GPTBot / ClaudeBot / PerplexityBot policy
- Generic disallows only (servlets, phone_call, rss)
- No crawl-delay, no sitemap reference
llms.txt File
0 / 10- File does not exist
- Industry-standard AI discovery file missing
- No machine-readable summary of site for LLMs
- Competitors beginning to adopt — window closing
Schema Markup
6 / 10- 5 JSON-LD blocks — more than competitors
- LocalBusiness/Plumber schema present
- Review dates invalid (2023 dates still live in 2026)
- No FAQPage schema
- No areaServed for neighborhoods
HTML Payload
4 / 10- 514 KB HTML — ~10x target (50-80 KB)
- Inlined CSS, SVG, Angular component markup
- SearchAtlas OTTO dynamic optimization script preloaded
- Bloat forces AI crawlers to parse more than needed
Meta & Canonical
8 / 10- Title tag complete
- Meta description with phone number
- Canonical tag correct
- No meta robots directives — relies on defaults
Internal Linking
7 / 10- 108 internal links — reasonable
- Navigation + content links present
- Limited anchor text variation
- No contextual cross-links to neighborhood pages (do not exist)
Structured Data Quality
5 / 10- AggregateRating present but stale (review dates from 2023)
- No hasCredential for Florida plumbing license
- No knowsAbout array with Sarasota specialties
- No sameAs linking to local profiles
Schema & Technical Issues
Discrete fixes — each addressable independently
| Issue | Severity | Detail |
|---|---|---|
| Review dates outdated | HIGH | Live reviews show 2023 publishDate despite April 2026 render — stale signal to AI crawlers |
| No llms.txt | HIGH | Missing machine-readable AI discovery file at domain root |
| No AI crawler policy | HIGH | robots.txt has zero directives for GPTBot, ClaudeBot, PerplexityBot, Google-Extended |
| No FAQPage schema | MEDIUM | FAQ content exists on page but not marked up — missed AI Overview extraction opportunity |
| No Person schema for technicians | MEDIUM | Author entity missing — no E-E-A-T signal for local staff |
| No knowsAbout array | MEDIUM | Cannot declare Sarasota-specific expertise (polybutylene, Florida code, limestone) |
| HTML bloat 514 KB | MEDIUM | ~10x optimal payload size — slower AI crawler parsing |
| No sitemap.xml reference in robots.txt | LOW | Sitemap discovery relies on common paths only |
Deep Technical Intel
Findings from 19 expert extractions applied to this audit
Alibaba: 1.13 BILLION pages lost to JS rendering
At scale, client-side rendering is catastrophic. AI crawlers timeout around 2 seconds. If it's not in the HTML, it doesn't exist.
wp-json endpoint discovery
1.6x more GPTBot crawl activity on wp-json endpoints vs HTML. WordPress sites are handing AI crawlers a faster path — non-WP sites should expose structured JSON too.
Code comments leak to LLMs
LLMs read HTML comments that Google ignores. Audit your templates — comments meant for developers are ending up in training data and inference context.
Schema sameAs Wikipedia tactic
Add
sameAs: ["https://en.wikipedia.org/wiki/..."] to your Organization schema. "Works really really well" for entity disambiguation in AI models.13-month rolling CrUX / NavBoost
Google's NavBoost uses a rolling 13-month window of Chrome UX data. Core Web Vitals fixes take months to propagate — start now.
514KB HTML payload bloat
6-10x larger than needed. Every extra KB pushes AI crawler timeouts closer. Strip inline styles, lazy-load non-critical DOM.
CRITICAL: Broken schema dates (0009-09-20, Invalid Date)
dateModified / datePublished failing validation invalidates the entire JSON-LD block. Google and AI crawlers discard everything in that schema. Fix before any other optimization.