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

IssueSeverityDetail
Review dates outdatedHIGHLive reviews show 2023 publishDate despite April 2026 render — stale signal to AI crawlers
No llms.txtHIGHMissing machine-readable AI discovery file at domain root
No AI crawler policyHIGHrobots.txt has zero directives for GPTBot, ClaudeBot, PerplexityBot, Google-Extended
No FAQPage schemaMEDIUMFAQ content exists on page but not marked up — missed AI Overview extraction opportunity
No Person schema for techniciansMEDIUMAuthor entity missing — no E-E-A-T signal for local staff
No knowsAbout arrayMEDIUMCannot declare Sarasota-specific expertise (polybutylene, Florida code, limestone)
HTML bloat 514 KBMEDIUM~10x optimal payload size — slower AI crawler parsing
No sitemap.xml reference in robots.txtLOWSitemap 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.