On this page
In April 2026, the Unlimited Charters family (7 brands, 528,315 pages) came off WordPress + WooCommerce + 21 plugins and shipped as a single Hugo corpus served from Cloudflare's edge. Existing URLs were preserved via a hand-audited 301 map, schema was upgraded across every page, and a 4-tier partitioned nightly rebuild keeps the whole corpus fresh in about 7 hours. Six months later, Google indexes ~167K pages (up 10x from the 17K low earlier that year), reviews stand at 4.7 stars across 1,200+, and every sister brand is now built on the same stack. Wordpress Escape is the productized version of this same playbook.
The before - WordPress at the breaking point
Unlimited Charters was running a classic WordPress stack: parent + child theme, WooCommerce, 21 active plugins (Elementor Pro, LiteSpeed Cache, Yoast SEO Premium, MasterSlider, Wordfence, Imagify, Live Composer, Mega Main Menu, WP All Import - the whole soup). The 7-brand family (unlimitedcharters.com plus Baltimore Trips, District Charters, Philly Charters, UC Churchways, US Bus Trips, plus Stretch XL Freight) shared theme and plugin code across cPanel users on one server.
Three things were happening at once:
- Silent de-indexing. Roughly 100,000 pages had dropped out of Google's index. Google's March and August 2026 spam updates hit thin, WP-generated doorway content hardest. The corpus went from ~444K spun Gen-1 pages down to ~17K indexed at the low.
- Security debt. On August 8, 2026 a coordinated auth-bypass campaign compromised five WordPress installs on the same server (mu-plugin backdoor, C2 IP 77.90.36.8, typosquat CDN vvordpress.net). Unlimited Charters was cleaned; a sister site had to be fully retired. Every incident was WordPress-shaped.
- Speed floor. PageSpeed on mobile hovered in the 30s and 40s despite stacked caching. Every plugin update risked another CLS regression.
The math was simple: any single one of those problems justified a migration. All three at once made it the only defensible call.
The migration - five days, zero URL loss
The engagement ran on the exact playbook Stretch LLC now productizes for outside customers. In order:
- Full URL inventory. A saturating Screaming Frog crawl surfaced all 528,315 HTML URLs across the 7 brands, tagged by template family (Gen 1 doorway, Gen 4 city hub, service page, state page, spun long-tail).
- Template consolidation. The five WordPress template families collapsed into three Hugo layouts. All 528K Gen-1 pages migrated onto a single V2 city template.
- 301 map, not guesswork. Every source URL either mapped 1:1 to its Hugo output or got an explicit 301 in .htaccess. No 404-then-recover pattern - Google punishes that.
- Schema upgrade. Every page emits a full @graph: LocalBusiness, Service, Product, FAQPage, BreadcrumbList, Organization. Rich results eligibility jumped from partial coverage on a handful of Gen 4 hubs to universal.
- Partitioned build. A 4-tier nightly rebuild runs the full 528K-page corpus in ~7 hours, staged so the freshest pages ship first and the deep long-tail ships overnight.
- Cloudflare edge. Origin serves static HTML; Cloudflare's edge fronts it globally. TTFB dropped from ~800ms to ~30ms on Fastly-adjacent PoPs.
- DNS cutover after verification. A staging origin proved every URL rendered and every schema block validated before the DNS flip. Rollback was a single record change.
Elapsed engineering time: five days. Industry standard for a corpus this size is three to six months.
The results - six months later
Numbers that matter, six months after the April 2026 cutover:
- 528,315 pages migrated in place. Every URL preserved.
- ~167,000 pages currently indexed by Google - a 10x recovery from the 17K low earlier in the year.
- 4.7 stars, 1,200+ reviews on the main brand across Google + review platforms.
- Six sister brands (Baltim, District, Philly, UCW, US Bus, Stretch XL) all now serve from the same Hugo stack - no per-site theme drift, no per-site plugin auditing.
- PageSpeed 90+ mobile across every template. Baltimore Trips specifically went from PSI 35 to PSI 99.
- Zero CLS incidents, zero GSC coverage errors introduced by the migration, zero URLs lost.
Just as important: the security-incident risk profile went to zero. There is no wp-admin, no plugin auto-updates, no xmlrpc.php, no unauthenticated REST endpoints. Every page is a static HTML file behind Cloudflare.
The August 2026 spam update was a bloodbath for stacked-plugin WordPress corpora. Sites that stayed on WP with thin doorway content lost visibility. The UC family - same content, now served as clean static HTML with proper schema - kept ranking and grew back into the index.
What made it actually work
Migrations of this size fail in predictable ways. Here is what UC did that most agency engagements do not:
- Same team, no vendor handoff. The engineers running the migration were the same team that would own the site afterwards. Nothing got "thrown over the wall." This is Stretch LLC's default engagement model, not an upsell.
- llms.txt authored from day one. A hand-written /llms.txt tells Perplexity, Bing Copilot, Claude and ChatGPT what the site is about, so LLM search cites the right pages. WordPress plugins do not do this correctly; static generation makes it a one-line file.
- Schema.org @graph everywhere. Not per-page Yoast toggles, not partial coverage - every URL gets a validated @graph. Rich results eligibility is a template concern, not a per-post one.
- Canonical + robots + og:image discipline. Every page has an absolute canonical, an explicit robots directive and a valid og:image. This is where WordPress plugins usually leak.
- Nightly re-crawl + auto-fix loop. A daily Screaming Frog run compares against the previous crawl. Regressions email the owner within 15 minutes. This is what Wordpress Escape's Indexability Watch add-on is.
None of this is exotic. It is standard-issue static-site engineering - but it does not exist inside a WordPress plugin ecosystem, because the incentives are backwards.
Get the same treatment - 4 tiers
Wordpress Escape productizes exactly this playbook. Four tiers, priced against site size:
| Tier | Price | Best for |
|---|---|---|
| DIY | Free playbook + open-source tooling | Solo devs / internal IT teams that just want the recipe |
| Assisted | $5,000 - $15,000 | 1-week sprint. SMB sites, 1K-50K pages, single domain |
| Managed | $25,000 - $50,000 | Mid-market, 50K-500K pages, includes 90-day monitoring + one round of post-launch optimization |
| Enterprise / Family | $100,000+/yr retainer | Multi-site holdings (like UC's 14 cPanel users), shared layouts, ongoing new-content onboarding |
The 528K-page proof point is deliberate. If a 30K-page prospect looks at UC and thinks "that is overkill for me," the Assisted tier closes without negotiation. Nobody argues that their site is bigger than 528K.
The full technical war-story write-up of this migration walks through every trap: template consolidation, redirect map audits, the CLS regressions the first build shipped, the Cloudflare cache settings that actually matter. Different tone than this case study - insider war stories, not marketing.
Frequently asked questions
How long did the actual migration take?
Five engineering days end-to-end, from URL inventory through DNS cutover. Industry standard for a corpus of this size is three to six months.
Did Unlimited Charters lose Google rankings during the migration?
No URLs were lost and no rankings dropped due to the migration itself. The index count is currently ~167K pages, up from a 17K low earlier in the year - 10x recovery. The dip that preceded the migration was Google de-indexing thin WordPress doorway content.
How is the 528K-page corpus kept fresh without WordPress?
A 4-tier partitioned nightly rebuild runs the whole corpus in about 7 hours. Fresh pages ship first; deep long-tail ships overnight. Editors change source markdown; the build handles the rest.
Who runs Unlimited Charters' Hugo stack now?
The same team that built the migration. That is the point of Stretch LLC's engagement model - no vendor handoff, no throw-it-over-the-wall. The playbook is productized at wordpressescape.com for outside customers.
Can Wordpress Escape do this for a smaller site?
Yes. Most engagements are 1K-50K pages, priced at the Assisted or Managed tier. The 528K case study is the anchor, not the minimum.
Run the same audit we ran before migrating UC
The free 60-second audit shows your real PageSpeed score, page count, SEO gaps and the exact WordPress features you would need replaced. Then Wordpress Escape rebuilds you on Hugo, keeps every URL, and hands you the source on day one - the same way UC was rebuilt.
Scan my site free

