RestoExperts
A Memphis-metro restoration independent goes from D+ (50/100) to A- (91/100) in 44 days — 0 AI crawlers allowed to 7 of 7, Agent Ready score 2/10 to 10/10, zero service-page schema to A+.
The Starting Point
RestoExperts serves the Memphis metro — water, fire, mold, smoke, trauma, storm, biohazard, board-up, and content restoration across a 60-mile radius. Nine service lines. One website. And a Bodyne score scan on March 16, 2026 that returned D+ (50/100).
The scan surfaced three critical problems invisible from the outside:
The Wix rendering problem. The site delivered a JavaScript shell to search engines on first pass. All 22 service pages had zero visible title tags, meta descriptions, or body content for Google to index on the first crawl pass. RestoExperts ranked for its own brand name and position #7 for “mold remediation Memphis TN.” Every other commercial keyword — “water damage restoration Memphis,” “fire damage restoration Memphis,” “flood cleanup Memphis Tennessee” — went to franchises. Landmark Construction held #1 for water damage. Paul Davis held #1 for fire. SERVPRO held #1 for mold.
The schema gap. No LocalBusiness, Service, or FAQPage structured data on any revenue-driving page. Blog posts had schema. Service pages had none.
The AI crawler wall. Zero of the 7 major AI crawlers were explicitly allowed in robots.txt. Agent Ready score: 2/10. No WebMCP manifest. No llms.txt. No extractable data for AI systems.
What We Did
The engagement ran across three tracks. The rebuild launched April 28, 2026. The rescan ran April 29.
Track 1: Platform Rebuild
Wix’s platform blocked fixes at the root level. A custom robots.txt, an IndexNow key file, and llms.txt cannot be published on Wix. Server-side canonical control does not exist. The JS-rendering problem required a platform change, not a configuration tweak.
We rebuilt on Astro deployed to Cloudflare Workers — a static-first stack that serves at the edge, gives full control over every HTTP header, and publishes root-level files without platform restrictions.
The site launched April 28, 2026.
Track 2: Technical Sprint
Immediately post-launch, we ran the full Bodyne technical checklist. Sixteen fixes shipped same day:
- robots.txt AI unblock — 14 explicit
Allow: /directives for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Anthropic-AI, and 9 others - www → apex 301 redirect — Cloudflare redirect rule with correct path passthrough
- Canonical tags → apex — astro.config.mjs corrected; 39 hardcoded content-file canonicals bulk-updated
- GA4 live —
G-426242108wired to every page - GSC verified + sitemap submitted — 41-page sitemap indexed
- 11 area page titles unique — city-specific, under 60 chars
- 11 area meta descriptions unique — city-specific, under 155 chars
- Hub meta descriptions trimmed — services and areas hub pages brought under 165 chars
- Logo schema → ImageObject — corrected from bare URL string
- BreadcrumbList URLs → apex — propagated via company.json fix
- Blog duplicate-brand titles fixed — removed redundant suffix from 4 blog pages
- Contact form → production — Resend API secrets set in Cloudflare Worker env
Track 3: AIO Infrastructure
Schema deployed:
| Page type | Schemas |
|---|---|
| Homepage | Organization, LocalBusiness + EmergencyService, WebSite + SearchAction, Speakable, Review × 8 (ItemList) |
| Service pages (9) | Organization, Service, FAQPage (5 Q&As each), Speakable, BreadcrumbList |
| Area pages (11) | Organization, LocalBusiness + EmergencyService (city-scoped), FAQPage, Speakable, BreadcrumbList |
| FAQ page | Organization, FAQPage (22 Q&As across 5 categories) |
| About page | Organization, Person (Jason Adamson — owner, licensed GC) |
45 FAQ answers across 9 service pages — written in Memphis homeowner language, covering insurance handling, response time, rebuild vs. repair decisions, and how RestoExperts compares to franchise response.
8 real client reviews emitted as Review + ItemList schema on the homepage.
WebMCP manifest published at /.well-known/webmcp — valid, discoverable by AI agents.
llms.txt + llms-full.txt at site root — AI-crawler manifests describing services, service area, and contact info.
IndexNow — 23 pages submitted April 29, all returned 202 Accepted. Feeds Bing, DDG, Yahoo, and Yandex.
The Rescan Results
Bodyne rescanned April 29, 2026 — one day post-launch.
| Metric | March 16 | April 29 |
|---|---|---|
| Overall grade | D+ (50/100) | A- (91/100) |
| Agent Ready | 2/10 | 10/10 |
| AI crawlers allowed | 0 of 7 | 7 of 7 |
| WebMCP manifest | Not found | Present + valid |
| llms.txt | Not found | Present |
| Schema grade | Blog only | A+ |
| Local Signals | Not visible | A+ |
Three blockers remain — all external, none code:
- Title and description length — 29 titles over 60 chars, 18 descriptions over 155 chars. Content trimming task, not a build issue.
- External authority citations — 0.0 external links per page. Standard for a new build; grows as blog content accumulates references.
- GBP review count — 22 reviews at 4.8★ is below the local-pack competitive threshold (~25). NiceJob review generation is the lever.
Where Things Stand
The site launched April 28, 2026. Organic ranking data and AI citation tracking are accumulating. Bodyne does not quote performance numbers before the data exists.
What exists today: a site that search engines can crawl, AI engines can read and cite, and AI agents can interact with. The infrastructure the franchises have — schema, FAQPage content, structured data — is now live for an independent. That gap closes once and takes years for competitors to replicate.
Want to see where your restoration company stands across the same surfaces? Get your free score in 2 minutes. No credit card. No sales call.