CLIENT
Roto-Rooter Sarasota — AI SEO Audit
Plumbing & Drain Cleaning · Sarasota, FL
Audited April 2026Auditor Einstein + TommySkills 11 / 11
Technical SEO

LLM Technical Readiness

Crawler access, render speed, schema completeness, chunkability, and AI-era infrastructure — llms.txt, robots.txt AI directives, and bot-access policies.

Overall LLM Readiness
6.4 / 10
Above average, AI-era gaps remain
TTFB
0.257s
Excellent — under 2s timeout
HTML Payload
514 KB
~10× bloated vs. optimal
Schema Blocks
5
LocalBusiness + Plumber dual-type
Technical Sub-Scores
8 factors · 8-Factor LLM Crawler Readiness Audit
AI Crawler Access
BotOwnerStatus
GPTBotOpenAIDefault allow
OAI-SearchBotOpenAIDefault allow
ClaudeBotAnthropicDefault allow
PerplexityBotPerplexityDefault allow
Google-ExtendedGoogleDefault allow
bingbotMicrosoftAllowed · 1s delay

No intentional AI crawler strategy — all bots operate under the default User-agent: * rule. No llms.txt file exists.

Schema Markup Audit
5 JSON-LD blocks detected on /sarasota/ — LocalBusiness + Plumber dual-typed
Present & Correct
  • LocalBusiness + Plumber dual @type
  • Address, geo, telephone, openingHoursSpecification (24/7)
  • 25 service offerings in hasOfferCatalog
  • knowsAbout linking Wikipedia + Wikidata
  • AggregateRating 4.8★ / 75 reviews embedded
  • Employee entity (Chris Ford, Debbie Ford, Manager)
Critical Issues
  • Broken review dates: "0009-09-20" and "Invalid date" — Google may invalidate entire review schema
  • No sameAs array on LocalBusiness
  • BreadcrumbList positions start at 0 (should be 1)
  • BreadcrumbList uses relative URLs instead of absolute
  • WebPage description is generic national tagline
  • Missing priceRange property
Industry-Scale Technical Findings
Hard data from enterprise-scale AI SEO research
1.13 BILLION Pages Lost to JS Rendering

An Alibaba-scale analysis found that 1.13 billion pagesfailed to be indexed by AI crawlers because they relied on client-side JavaScript rendering. Roto-Rooter's Angular SSR setup avoids this trap, but the lesson is brutal at scale: if it's not in the initial HTML, it does not exist to AI.

wp-json Endpoints Get 1.6× More GPTBot Traffic

Crawl log analysis shows GPTBot hits WordPress wp-json REST endpoints 1.6× more frequently than regular HTML pages. Structured JSON is preferred over rendered HTML — implication: serve a clean structured-data API endpoint alongside every key page.

Code Comments Leak Into Brand Analysis

LLMs read HTML comments that Google's crawler ignores. Developer notes like <!-- TODO: fix this hack --> end up in brand perception models. Audit and strip ALL HTML comments in production builds — they bleed into entity profiles.

Schema.org sameAs to Wikipedia

Adding a sameAs array on LocalBusiness pointing to Wikipedia, Wikidata, and other authoritative entity sources is reported to "work really really well" for entity disambiguation. Roto-Rooter Sarasota currently has zero sameAs on the LocalBusiness block.

13-Month Rolling CrUX / NavBoost Window

Google's NavBoost system uses a 13-month rolling Chrome User Experience window. A bad Core Web Vitals quarter follows the site for over a year. Bad performance compounds — fix it before it locks in.

514 KB HTML Payload — 6-10× Bloat

The Sarasota location page ships 514 KB of HTML — 6-10× larger than a well-optimized local service page. Multiplied across 500+ franchise locations this is a measurable crawl budget burn. Inlined CSS and Angular component markup are the main offenders.

Critical Schema Flags
Issues that may invalidate the entire review schema block
Broken Review Dates — CRITICAL

Two review entries render as "0009-09-20" and "Invalid date". Google's structured data validator will throw a hard error and may invalidate the entire AggregateRating block — meaning the 4.8★ rich snippet currently displaying could vanish overnight.

Server-Side Rendering Status

Good news: The site runs Angular with SSR (Angular Universal). All critical content — title, H1, meta description, phone number, address, 5 JSON-LD schema blocks, 108 internal links, and body content — is present in the initial HTML response. This is above-average infrastructure for a national franchise page and means AI crawlers do not need to execute JavaScript to reach content.

Bad news: The 514 KB HTML payload is ~10× larger than a well-optimized local service page. Bloat comes from inlined CSS, SVG assets, and Angular component markup. Multiplied across 500+ location pages, this is a significant crawl budget inefficiency.