Everything you need to know about migrating off WordPress.
Plain-English reference for what we do, how we do it, what it costs, and what your customer sees throughout. No jargon traps.
Overview
WordPressEscape moves WordPress sites to Hugo static deploys on Cloudflare's edge in days, not months. Every URL is preserved, every SEO signal is migrated, schema is upgraded if you've got none, and we hand off the Hugo source to you on day one — no vendor lock-in.
We've migrated 528,854 pages across the UC family of sites (the proof point). Average results: PageSpeed mobile 35→94, TTFB 800ms→30ms, CLS 0.3-0.6→0, zero URLs lost.
How it works
- 1Scan
Drop your URL into the public scanner. We crawl your sitemap, parse your HTML, fingerprint your WordPress install, score your SEO + Performance + Responsive design, and give you a migration spec — all in 60 seconds, no login.
- 2Sign up free
Email-only signup. We email you a magic link to set a password. Free dashboard with your scan results — no payment yet.
- 3Connect your site
Pick from 5 secure methods to grant us read access: WP Application Password, SFTP, backup upload, our migration plugin, or public crawl only. All credentials sealed via darkenvelope.io zero-knowledge encryption before storage.
- 4See your recommendations
Dashboard shows what we'd do for your site — migration package, SEO upgrade, responsive fix, path cleanup. Each is a click-to-purchase line item with transparent pricing.
- 5Click a recommendation → pay
Modal shows the work scope, industry-rate comparison, your savings. Pay only for the package you want.
- 6We migrate
Engineer queues your job. We mirror pages to Hugo, apply your brand CSS, port your schema, run iterative adjustment passes you approve via the dashboard.
- 7Verify + cutover
Final PSI test against the migrated site. DNS flip + 301 redirects. Zero downtime. You get the Hugo source files. Migration complete.
Scanner methodology
The free scanner is heuristic-only — pure HTML/header analysis, no Lighthouse API call, no rate limits, no Google dependency. Calibrated against real Lighthouse scores so the grades land within ~10 points of authoritative PSI. The full scan runs in 1-3 seconds for typical sites; UC's 528K-page site fans out to 535 child sitemaps in parallel and finishes in ~1.7s.
What we extract
- WordPress fingerprint — version, theme, child theme, page builder (Elementor / Divi / Beaver Builder / WPBakery / Gutenberg / Oxygen / Bricks), plugins inferred from URL patterns and runtime hints
- Active vs migrated — distinguishes sites currently running WordPress from sites that have been migrated but still leak
/wp-content/asset paths (we score the latter at 85% migration completeness) - SEO signals — title length, meta description length, schema entities (JSON-LD), OpenGraph + Twitter Card meta, canonical, hreflang, robots meta, viewport, lang attribute, image alt-text coverage, weak link text
- Performance heuristics — render-blocking resources, external script count, stylesheet bloat, HTML payload size, image overload, lazy-LCP detection, CF Email Obfuscation (the documented CLS killer)
- Responsive heuristics — viewport meta validity, fixed-pixel widths in inline styles, table-based layouts, modern framework detection (Tailwind / Bootstrap / Foundation / Bulma), srcset coverage, legacy
<font>tags - Sitemap reach — tries
/sitemap_index.xml,/sitemap.xml,/wp-sitemap.xml+ any sitemap referenced in robots.txt; parses each in parallel; uses whichever is richest
Deep crawl (Screaming Frog)
The free public scanner is a 2-second heuristic — perfect for the funnel. Once you connect your site, the dashboard exposes a real Screaming Frog deep crawl against the licensed Spider you'd otherwise pay £239/yr to run yourself.
What it inspects (every URL on your site)
- Status codes, response time, redirect chains, broken inlinks (3xx / 4xx / 5xx)
- Page titles — missing, duplicate, below 30 chars, over 60 chars
- Meta descriptions — missing + duplicate
- H1 tags — missing + duplicate
- Images — missing alt text, files over 100 KB, broken sources
- Canonicals — missing, mismatched, conflicting
- Indexability + Directives (noindex / nofollow / robots.txt / X-Robots)
- Structured data (JSON-LD entities discovered per page)
- Hreflang correctness
- Word count, thin-content distribution
Output is aggregated into a single per-customer summary.json the dashboard renders. Raw CSVs are kept for the engineer's deeper review during migration. Crawls re-run on demand (capped 30 min apart for self-serve, on demand for Managed+ tiers).
Self-serve crawls are capped at 5K URLs to keep the queue fast. Managed + Enterprise tiers run uncapped using our 7-instance parallel Screaming Frog cluster — the same one that crawls UC's 528K-page corpus in <4 hours.
Indexability Watch $29/mo · Subscription
We lost 100,000 indexed pages on our own site before we built this. We built it so you don't have to live through what we did.
Over six months, our 528,854-page corpus quietly bled out of Google's index — six figures of pages, gone, before anyone caught the pattern. By the time you see the dip in Search Console, the algorithm has already decided. Indexability Watch is what we wish we'd had. The Screaming Frog deep-crawl pipeline we just shipped is the engine that makes it possible.
The cadence: daily batch, Monday 7 AM digest
Bigger sites get a fresh Screaming Frog re-crawl every single day. Smaller tiers run weekly. Either way, your digest doesn't email you mid-week noise — it lands Monday at 7 AM in your inbox, built from a full week of data, ready to be the first calendar block of your work week. SEO/marketing teams plan Mondays. We meet you where the planning already happens.
Your weekly report isn't a snapshot. It's seven days of crawl differentials and seven days of GSC index movement, ranked by what mattered to your traffic — not by alphabetical URL.
What lands in the digest
- Ranked by business impact, not severity. "Page X dropped from index — it had 4,200 monthly visits last quarter" is actionable. "12 schema warnings detected" is noise. We pull traffic data from GSC and weight every issue by what it actually costs you in lost visits. Without that weighting, it's just another scan report — and we know it.
- Pages that fell out of Google's index this week — with the receipts (last GSC impression date, traffic delta, suspected cause)
- Schema regressions — silent rich-result loss, the #1 reason traffic disappears without explanation
- Broken inlinks, 4xx/5xx drift, redirect chains, accidental canonical changes, new noindex'd pages
- One-click fix. Every issue has an "Apply fix" button right in the email or one click into the dashboard. The friction between "we found a problem" and "the problem is fixed" is exactly where churn happens. We engineered that friction out.
The seed digest — your first email is never empty
The first email a Watch subscriber gets isn't the welcome — it's the first digest, and that email IS the entire trial. If it lands and you go "huh, didn't know that," we've got you for years. If it lands and says "no issues found," you'll churn at 90 days. So we seed your first digest with everything we found while migrating you. Day one, you get a real list of stuff your old WP setup was hiding.
Auto-fix on Managed+ tier — the moat
This is the version no competitor can match without rebuilding our entire pipeline. We don't just tell you, we fix it and email you the diff. Auto-fix only works because we control the Hugo source. Strattic, HardyPress, every "headless WordPress" wrapper — none of them can do this because they don't have your source. We do. Day one.
Token-refresh failure path
The silent killer of monitoring products: Google OAuth tokens expire, the digest skips a week, the customer never knows, then blames us when something slips. Within 24 hours of any GSC auth break we email you with a one-click reconnect. That's the kind of polish that turns a $29/mo product into a $29/mo product nobody churns from.
Phase status
Phase 1 (Screaming Frog re-crawl + summary diff) is wired now and runs against every connected site. Phase 2 (GSC delta + Monday-morning digest + traffic-weighted ranking) is the value unlock. Phase 3 (one-click + auto-fix) is the retention layer. Indexability Watch is bundled FREE for every customer until Phase 2 ships in beta. We won't charge for monitoring that's still half-built. When Phase 2 lands, your free 90 days roll over automatically.
ESC'dashboard +$189 once · bakes into migration
The Editor for Static Content. A WordPress-style admin UI that ships with every migration — no plugins, no PHP, no exploit surface.
Same features.
The average WordPress install runs 21+ plugins. We took the most-installed ones — Yoast SEO, Contact Form 7, Akismet, WP Rocket, Wordfence, Smush, UpdraftPlus, Site Kit, Mailchimp for WP, WPML, Stripe Payments, Redirection — and shipped their core functionality as native ESC'dashboard features. No marketplace, no version-conflict roulette, no abandoned-by-developer panic, no per-plugin licenses. Tens of millions of plugin installs covered. Not all of them — some plugins do specific things we don't replace (looking at you, full-WooCommerce-scale e-commerce). But for what 90% of customers actually use plugins for, it's all here.
Got a plugin you can't live without that we don't ship? We'll build it as a custom module just for you — scoped and quoted to your specific need. Yours, owned outright, integrated as a native tab in your dashboard. More on custom modules below ↓
Every non-technical customer asks the same question 48 hours after cutover: "Wait, where do I edit my pages now?" ESC'dashboard is the answer.
WordPress had one thing going for it nobody else matched: a familiar admin UI for non-coders. When we hand off Hugo source on day one, that's a feature for developers and a problem for everyone else. ESC'dashboard is the post-migration admin that looks and feels like WordPress — but writes to Hugo source files instead of a bloated MySQL database. Same workflow, 50× faster, no plugins to update, no PHP to break, no exploits to patch.
Forked from the same admin we built for our own UC family of sites — battle-tested across 528,854 pages of real production content. Stripped, rebranded, scoped to your subdomain.
Feature set — replaces every WordPress core function you actually used
Rich-text editor (writes Markdown under the hood). Draft / scheduled / published states. Revision history. Live preview against your real Hugo build. Bulk operations. Per-page SEO panel sits next to every editor — no plugin to install, no Yoast, no Rank Math.
Drag-drop uploads. Auto-resize + WebP/AVIF generation. Folder organization. Image picker for the editor. AI-generated alt-text on upload. CDN-served from Cloudflare's edge.
Drag-drop nav builder. Header / footer / sidebar / mobile menus. Multiple menus per site. Drop-down nesting.
301/302 manager. Bulk import from CSV. Loop detection. Live syncs to your Hugo deploy's _redirects file. Critical for keeping your migration's URL preservation intact when you rename or delete pages.
The Yoast/Rank Math replacement, baked into every page editor from day one. Title + meta description with character count + Google preview. Schema picker (FAQPage / Service / Product / Article / LocalBusiness / Recipe / Event / Review). OG + Twitter Card preview. Canonical override. Robots directives. AI-suggested fields where empty. Customer never installs an SEO plugin again.
Brand colors, fonts, logo, favicon. Header/footer markup. Global JS snippets (analytics, pixels). Site-wide schema (Organization, LocalBusiness). Default OG image + Twitter handle.
GSC + Bing Webmaster integration in-dashboard. Top queries. Top pages. Click-through rate trends. Sitemap submission. Indexing status per URL.
Cross-post new pages to Facebook, Instagram, X, LinkedIn, Threads. Schedule a queue. Same engine as our own UC social tab.
From day one of ESC'dashboard, every page you create has a built-in SEO panel — same workflow Yoast and Rank Math taught the world, but native to the dashboard. No plugin to install, no marketplace to babysit, no version-conflict roulette, no abandoned-developer panic. The same SEO tooling that powered our scanner now powers the customer's editor.
When a customer creates a new page, they see a side-panel with: title (60-char counter, Google preview), meta description (160-char counter, Google preview), schema type picker (FAQPage, Service, Product, Article, LocalBusiness, Recipe, Event, Review — same set Google's rich-result validator accepts), OG + Twitter Card with live preview of how the share-link will look on social, canonical override, robots (index/noindex/follow/nofollow). Every field maps directly to Hugo frontmatter on save — no plugin glue, no PHP, no DB row.
AI-suggested defaults. Hit "Auto-fill" and we generate a draft title (50-60 chars), meta description (140-160 chars), schema entities, OG image — all from the page's H1 + first paragraph + first image. Customer reviews and accepts. Same AI that powers the SEO Upgrade add-on, but live and per-page.
Schema validation in real time. The same rich-result validator we run on the public scanner runs INSIDE the editor — if a customer's Article schema is missing datePublished or their Product is missing price, they see the error before publish. Customer never gets a "Cannot continue validation process" GSC email again.
Plugin parity — what we replace, what we add, what we don't
The average WordPress install runs 21 plugins. Most of them exist because WP core is incomplete. We ship what most WP users actually need as core features — no plugin marketplace, no version-conflict roulette, no abandoned-by-developer panic. We're honest about what we don't do, too.
✓ Already shipped natively (replaces ~30M plugin installs)
| WordPress plugin | Installs | ESC'dashboard equivalent |
|---|---|---|
| Yoast SEO · Rank Math · AIOSEO | 13M + 2M + 3M | SEO panel (built in) |
| Redirection | 2M+ | Redirects panel |
| Smush · WP-Optimize · Imagify | 1M + 1M + 1M | Media library auto-optimization (WebP/AVIF) |
| Site Kit by Google | 3M+ | Search Console panel |
| Classic / Block Editor | 5M+ | Pages editor (rich-text → Markdown) |
| UpdraftPlus / All-in-One Migration | 3M+ | Git-based, automatic, every save |
| WP Rocket · LiteSpeed Cache | 4M + 5M | Irrelevant — Cloudflare edge IS the cache |
| Wordfence · Solid Security · Sucuri | 5M + 1M + 1M | Irrelevant — no PHP, no admin DB, no /wp-login |
| Really Simple SSL | 5M+ | Irrelevant — Cloudflare-managed |
⚡ Phase 2 — the top plugins we're cloning next
Ranked by install count of the WP equivalents. We're rebuilding each as a native ESC'dashboard feature — no plugin marketplace, no per-plugin license, included with the base $189.
| Feature | Replaces | WP installs | What we ship |
|---|---|---|---|
| 💳 Payment Gateways | Stripe · PayPal · Square · Authorize.net plugins | 5M+ combined | The Big Four — and only the Big Four. Stripe (modern SaaS default), PayPal (customer-trust play, international), Square (US retail/POS), Authorize.net (B2B + legacy). Connect your existing merchant account via API key. Drop checkout buttons (single product or simple cart) into any page. We orchestrate, your processor processes. Customer brings their own merchant account — we never touch your money flow. For SKU-heavy storefronts → see WooCommerce section below. |
| 📋 Forms | Contact Form 7 · WPForms · Gravity Forms | 10M+ combined | Drag-drop form builder, conditional logic, submissions stored, file uploads, email + webhook notifications, anti-spam built-in. |
| 📨 Newsletter signup | Mailchimp for WP · ConvertKit · MailerLite | 3M+ combined | Drop a signup block on any page. Connects to Mailchimp / ConvertKit / Beehiiv / native list. Double opt-in, GDPR consent, unsubscribe one-click. |
| 🛡 Spam Shield | Akismet · CleanTalk | 5M+ combined | Heuristic + AI scoring on form submissions and comments. No external API call needed; runs on the edge. |
| 📧 Email delivery (SMTP) | WP Mail SMTP · FluentSMTP | 3M+ combined | Transactional email via your SES / Postmark / SendGrid / Mailgun account. Open/click tracking. Bounce handling. |
| 📊 Analytics + Site Health | MonsterInsights · ExactMetrics + (no WP equivalent for Screaming Frog data) | 3M+ | Two halves: traffic + health. Traffic side: GA4 / Plausible / Fathom integrations — top pages, top sources, conversions, real-user metrics. Health side: Screaming Frog crawl data surfaced in-dashboard — broken links, redirect chains, response code distribution, missing meta/H1/canonical counts, schema coverage, indexability state. Same licensed Screaming Frog deep-crawl pipeline that powers Indexability Watch, no extra fee. No WordPress plugin gives you Screaming Frog data natively — Screaming Frog is a £239/yr desktop tool. We bake it into the dashboard. |
| 🌐 Multilingual | WPML · TranslatePress · Polylang | 2M+ combined | Per-page translations stored as Hugo language variants. AI-assisted bulk translate via Anthropic. SEO-correct hreflang. |
Phase 2 ships features as we hit demand — Payment Gateways and Forms first because every customer needs them. Each ships free into your existing $189 ESC'dashboard SKU when it lands.
⊘ Intentionally not in scope (and why)
- WooCommerce-scale e-commerce. Honest take: WooCommerce is a 7M-install fortress with thousands of extensions, variable products, subscription engines, multi-currency tax, B2B tiered pricing, abandoned-cart recovery, complex shipping zones. We don't try to be Shopify or WooCommerce. If you have a real storefront — multiple SKUs, inventory, subscriptions — use Shopify, BigCommerce, or Lemon Squeezy for that piece, and ESC'dashboard runs everything else. See the "Running WooCommerce?" section below for our exact migration playbook.
- Vulnerability scanners + login security plugins. WordPress is 30% of the internet AND the most-attacked CMS in the world — those plugins exist because WP itself is the threat surface. ESC'dashboard has no PHP execution, no admin DB to compromise, no XML-RPC, no
/wp-login, no plugin auth bypasses. Your admin URL is just a Cloudflare Access protected SPA pointing at your Hugo source repo. Scanners and Loginizer-style products have nothing to scan or protect. - Caching plugins. Cloudflare's edge IS the cache. WP Rocket / LiteSpeed / W3 Total Cache exist to make WordPress less slow; static sites are already as fast as the internet allows.
- Membership / LMS / forum plugins. MemberPress, LearnDash, BuddyPress, bbPress — these need real-time logged-in user state, role-based content gating, and dynamic interactions that pure static doesn't do. Use Memberstack, Outseta, Circle, or Discourse alongside ESC'dashboard.
Modules, not plugins.
We're not building plugins. We're building modules — native tabs that live inside the ESC'dashboard codebase, toggle on/off from a single Modules settings page, and never conflict with each other.
WordPress plugins are thousands of separate codebases with hooks, version conflicts, abandoned-developer panics, and "deactivate one by one to find what broke" debugging. ESC'd modules are conditionally-rendered React routes inside one app. Tested together. Updated together. Toggle hides the tab; no orphan code, no security surface, no breakage. No plugin hell. Ever.
Custom module builds — scoped to you, quoted to fit
WordPress has 60,000+ plugins. We're not rebuilding all of them. But every customer has 1-3 they genuinely can't live without: a job board, a directory, a portfolio gallery, a niche calculator, an industry-specific feature. When you need one we don't ship natively, we'll build it as a custom module — quoted to your specific scope, not from a fixed-price menu.
Every project is different. The same "directory listings" idea could be a simple weekend's work for one customer or a multi-week build with custom search and filtering for another. We'd rather understand your actual need and quote a fair price than slot you into a tier that under- or over-charges you. Use this as a rough self-classifier:
| Scope | Examples | Typical timeline |
|---|---|---|
| Simple | Custom meta fields · display widgets · simple form variants · social feed embeds | 3–5 days |
| Standard | Job boards · directories · portfolio galleries · event calendars · testimonial managers | 1–2 weeks |
| Complex | Database-heavy · real-time · multi-page UX · advanced membership · complex conditional forms · custom post type ecosystems | 2–4 weeks |
| Beyond | Anything that doesn't fit. Hand us your plugin, we audit the actual scope. | — |
How quoting works: tell us what you need at byebye@wordpressescape.com (or via the in-dashboard "Request a custom module" form once you're a customer). We audit the actual scope — what data lives where, what UI screens you need, what integrations matter — and give you a fair flat-rate quote within 48 hours. Quotes are good for 30 days. You decide.
Custom modules are yours — built into your ESC'dashboard, you pay once, you own the work product. We use whatever we learn building it to inform our roadmap, but we don't ship your custom module to other customers without your permission.
Module toggle — the UX advantage
Every ESC'dashboard ships with a Modules settings page. Each installed module has a toggle:
- ON → module's tab appears in your main nav. Settings active. UI rendered.
- OFF → tab hidden from nav. Code is conditionally not rendered. Settings preserved (flip back on anytime).
Compare to WordPress: deactivating a plugin doesn't actually remove its database tables, doesn't unhook its filters reliably, often leaves orphan settings, and any of the 60,000+ plugins can break any update of any other. ESC'd modules are conditional renders inside one tested app. Toggle off = invisible. Toggle on = there. That's it.
How we identify what needs a custom module
Built into the migration scan. Our deep crawl + WP fingerprint inventories every active plugin and classifies each:
- ✓ Native — already covered by ESC'dashboard's built-in features.
- ⚙ Custom build candidate — quoted per the table above.
- ⊘ Out of scope — needs a third-party platform (Shopify, Memberstack, etc.) we route to instead.
- ~ Inactive / unused — flagged but skipped (most WP installs have 5+ unused plugins).
You only pay for modules you confirm you need. The classifier is conservative — it asks rather than assumes. As our catalog grows over time, we may open a certified-partner program for custom builds — not on the v1 roadmap, but it's where we're heading.
Running WooCommerce? Here's how we migrate you.
WooCommerce sites are the hardest to migrate AND the slowest WP sites in the wild — Woo + WP + 21 plugins runs at 30-second TTFB on a busy day. Customers with stores have the most to gain from going static, but the highest switching cost. Three honest paths, pick the one that fits your size:
Best for ~80% of WC customers. Shopify has a built-in WooCommerce importer that pulls your products, customers, and order history. We migrate the marketing site (blog, content, landing pages) to Hugo via our standard flow. The store lives on Shopify at shop.yoursite.com (or as embedded Buy Buttons on your Hugo pages). You escape WordPress, get a battle-tested e-commerce platform for the store, get 5-day migration for everything else. What you give up: some Woo extensions don't have Shopify equivalents — we audit during scan and flag any blockers up front.
For customers who can't move the store right now. WooCommerce stays on a small WP install at shop.yoursite.com with only the cart/checkout/inventory pages running there. The apex marketing site, blog, content pages all go to Hugo + ESC'dashboard. You get SEO + speed + Indexability Watch wins on 95% of your traffic without touching the store. Stepping stone — most customers migrate the store within 12 months once they see how good static is.
For high-revenue stores ($1M+/yr through Woo) that want us managing the whole thing. We become your Shopify migration partner: full data migration (products + variants + customers + orders + reviews), custom theme rebuild matching your existing brand, payment reconfiguration, redirect map for every product URL. Quoted on scope — every store is different, so we audit your catalog complexity and give you a flat-rate quote within 48 hours. Send your store stats to byebye@wordpressescape.com.
All three paths preserve every product URL via 301s. Your existing customer-facing URLs keep working. Order history is preserved or archived (you choose). Email transactional templates get migrated to Shopify Liquid or routed through the ESC'd Email Delivery feature.
Pricing — one time, baked into migration
Add ESC'dashboard to any migration tier for +$189 one-time. That's it. No subscription, no monthly fee, no usage cap. As long as we're hosting your Hugo deploy on Cloudflare's edge, ESC'dashboard comes with it. Yours for the life of the site.
| SKU | Cost | Users | Best for |
|---|---|---|---|
| ESC'dashboard | +$189 once | 1 user | Solo founders, small businesses, almost everyone |
| ESC'dashboard Team | +$189 once + $49/mo | Up to 5 users + roles | Marketing teams, content shops |
| ESC'dashboard Pro | +$189 once + $149/mo | Unlimited users + API + audit log | Agencies, multi-author publications |
| ESC'dashboard Enterprise | Custom | SSO, multi-site, dedicated subdomain | Networks, multi-brand operators |
Why one-time and not recurring: ESC'dashboard runs on Cloudflare's edge with a per-customer build queue — marginal cost to host you forever is essentially zero, so we charge it once and call it done. Multi-user tiers add a small monthly because per-user auth + role enforcement + audit logging actually costs us something to run. Solo customers (the majority) pay nothing recurring and get the dashboard for life.
Custom modules are billed separately and quoted per scope. If you need a plugin we don't natively replace, we audit the actual work and give you a flat-rate quote within 48 hours — see custom module builds above. Independent of your tier.
The decision the customer actually makes
At checkout, you see two options:
- Migration — $499 (or whatever your tier is). You get Hugo source files and edit Markdown directly.
- Migration + ESC'dashboard — +$189 once, bundled into the same checkout. You get Hugo source files plus a WordPress-style admin to edit them. Forever.
For non-developers, ESC'dashboard is the obvious yes — $189 against the prospect of learning Hugo from scratch is a no-brainer. For developers who'd rather edit Markdown in VS Code, the $499 base tier ships clean. About 80% of non-technical customers add ESC'dashboard at checkout — most of them call it the difference between "I bought a thing" and "I bought a thing I can actually use."
Tagline candidates
For sales pages, post-migration emails, the waitlist screen — pick the ones that land:
- "Press ESC. Get a dashboard."
- "Already escaped WordPress? Here's your ESC'dashboard."
- "The dashboard you escape'd to."
- "Edit your site like WordPress. But without WordPress."
The full bundle math
Self-Serve migration $499 + ESC'dashboard $189 = $688 one-time. Add the recurring monitoring layer (Watch $29 + Auto-Fix $39 = $68/mo) and year-1 total is $1,504. Year-2+ is just $816/yr from $68/mo recurring.
That's a fundable ratio — 3x the migration value as recurring + add-on revenue, no per-customer maintenance burden. Custom modules are sold separately when needed; most customers never need one because the native + Phase 2 features cover ~80% of WP plugin use cases.
Grade definitions
Three independent scores, each 0–100 with letter grades A–F.
Signal completeness for search engines. Title length, meta description quality, schema coverage, OG/Twitter meta, canonical, sitemap, image alt-text, weak link text. Calibrated against Lighthouse SEO score.
Heuristic perf. Render-blocking resources, script bloat, stylesheet count, HTML payload, image practices, CF Email Obfuscation. Calibrated against Lighthouse Performance score within ~10 points.
Mobile/tablet/desktop/laptop layout health. Viewport meta, fixed-pixel widths, table layouts, framework detection, srcset coverage, legacy markup.
Each issue contributes a delta off 100. CRITICAL issues (page noindex'd, robots blocks all, Email Obfuscation on) hit hardest; HIGH issues (no schema, missing OG, weak link text) hit moderately; MEDIUM/LOW are minor.
Connection methods
Five secure ways to grant access. Pick whichever fits your security posture and host setup.
WP 5.6+ feature: a separate 24-character password scoped to one app. Generate in Users → Profile → Application Passwords. Revocable in one click. We use the WP REST API to pull pages, media, and metadata. NOT your wp-admin login password — they're different.
Upload a UpdraftPlus / All-in-One WP Migration / WPVivid export zip. We never touch your live site. Maximum privacy. Slower because manual.
Install our free plugin from the WP plugin directory, paste a one-time token, plugin pushes content to our endpoint. Most user-friendly.
For complex sites or restricted hosting. We strongly suggest a temporary SSH key created just for this engagement and revoked at end of migration. Engineer-managed.
No credentials. We crawl the sitemap and pull what's reachable without auth. Misses drafts, password-protected pages, custom field metadata, and original media files.
Migration stages
Six stages with explicit green-light gates between each. You approve every step.
- 01Scan
Baseline PSI + SEO + responsive grades captured. Sitemap walked. Brand spec extracted (colors, fonts, header/footer markup).
- 02Calibrate
5-10 test pages mirrored. CSS applied. Schema ported. You eyeball results.
- 03Adjust
Iterative pass loop (Mirror → CSS → SEO → Review). Pass count is open — we keep iterating until you green-light. No fixed cycle.
- 04Ramp
Approved? We migrate a 5K-page batch, validate, then continue.
- 05Migrate
Full corpus mirrored to Hugo via partitioned build (handles 500K+ pages cleanly).
- 06Verify
Final real-Lighthouse PSI test against the migrated site. Internal-link sweep. Schema validation. Cutover .htaccess + 301 redirects deployed. Hugo source handed to you.
Pricing
Migration tier scales with site size. SEO Upgrade and CSS Modernization (responsive / refactor / rebuild) are optional add-ons priced per-page with industry-rate transparency.
Migration tiers (one-time)
Volume discount is built into the ladder — your effective per-page rate drops as page count rises. The scanner auto-classifies your site so you see ONE recommended tier, never a menu.
| Tier | Pages | Price | Per-page | Touch model |
|---|---|---|---|---|
| Mini | 1–100 | $199 | $1.99/pg | Brochure sites · solo founders |
| Small | 101–500 | $399 | $0.80/pg | Service businesses · blogs |
| Self-serve | 501–1,000 | $599 | $0.60/pg | Niche publishers · mature shops |
| Self-serve+ | 1,001–5,000 | $899 | $0.18/pg | Same automation, larger pipeline |
| Self-serve XL | 5,001–10,000 | $1,499 | $0.15/pg | Same, more compute |
| Assisted | 10,001–50,000 | $5,999 | $0.12/pg | Engineer in the loop, Slack support |
| Managed | 50K–250K | $24,999 | $0.10/pg | Hand-holding, post-launch monitoring |
| Enterprise | 250K–1M | $74,999 | $0.075/pg | Multi-site, SLAs, account manager |
| Strategic | 1M+ | $249,999+ | custom | Custom retainer · multi-site networks · dedicated team |
Migration consultancies charge $20–$100/page for WP→Hugo work. We charge $0.075–$1.99/page across our tier ladder — between 25× and 1,000× cheaper depending on volume. The economics work because our pipeline is automated; marginal cost per page is pennies in compute. We undercut deliberately — the migration is the funnel, the recurring monitoring SKU ($29/mo Indexability Watch) is where the LTV math lives.
CSS Modernization add-on
What you get
- Real responsive layouts. We rebuild your CSS so the site renders correctly on phones, tablets, laptops, and desktops — not just "shrunk to fit."
- Modern image handling. Every image gets
srcsetandsizesattributes, picture-element fallbacks, lazy-loading, and WebP/AVIF generation so phones don't download desktop-sized files. - Cumulative Layout Shift (CLS) hunt. We chase down every reflow that's hurting your Core Web Vitals score and pin layout dimensions so nothing jumps as it loads.
- Modern CSS where appropriate. Flex/Grid replacing float-based layouts, custom properties for theming, container queries where they help, fewer overrides, fewer !important hacks.
- No new framework. We don't add Bootstrap or Tailwind on top — we clean up what's there. Your Hugo source stays portable.
Three complexity tiers, auto-detected
Per-page rate with $499 floor + $49,999 cap. Industry comparison shown directly in the checkout modal so you see the savings.
| Tier | Score | Our rate | Industry rate | Discount |
|---|---|---|---|---|
| Standard responsive | 65–79 | $35/page | $100–$300 | 65–88% |
| Refactor (spaghetti CSS) | 40–64 | $89/page | $200–$800 | 56–88% |
| Full rebuild (catastrophic) | 0–39 | $149/page | $1,000–$2,500 | 85–94% |
Why our pricing works at this rate: we use AI-assisted refactoring to detect repeated CSS patterns and apply fixes across templates, not page-by-page. A site with 500 pages and 10 templates only needs 10 templates worth of human review — not 500. Industry agencies charge per page; we charge per page but actually work per template. The savings get passed to you.
SEO Upgrade add-on
Auto-triggered when SEO score is below 80. Optional — uncheck the box at checkout if you don't want it.
What you get
- Structured data (JSON-LD schema) — Organization, LocalBusiness, FAQPage, BreadcrumbList, Service, Product, Article — whatever entities apply to your pages, generated and validated.
- Page titles + meta descriptions rewritten where they're missing, duplicate, too short (<30 chars), or too long (>60 chars). AI-assisted, you review the diff before publish.
- OpenGraph + Twitter Card meta on every page so links shared on social actually look like a real preview, not a naked URL.
- Viewport +
lang+ canonical + hreflang tags audited and corrected. - Image alt-text generation for every image missing alt — AI infers from filename + page context. You can override any of them.
- Sitemap regeneration — fresh XML sitemap split into clean chunks, submitted to Google Search Console + Bing Webmaster Tools automatically.
- Robots.txt + meta-robots audit — find accidental noindex tags and surface them for review.
| Pages | Price | Per-page |
|---|---|---|
| 1–100 | $99 | $0.99/pg |
| 101–500 | $199 | $0.40/pg |
| 501–1,000 | $399 | $0.40/pg |
| 1,001–10,000 | $1,499 | $0.15/pg |
| 10,001–100,000 | $4,999 | $0.05/pg |
| 100,000+ | $14,999 | $0.015/pg |
Industry equivalent: Yoast SEO Premium at $99/yr per site, plus a freelance SEO at $50–$150/hr to actually configure it (typically 8–20 hours = $400–$3,000 just for a small site). We bundle the whole thing one-time and let the AI handle the boilerplate.
Path Cleanup add-on
For sites already migrated to Hugo (by us OR by another vendor) that still leak /wp-content/ paths in HTML. About 85% of "migrated" WordPress sites we scan have this — they look migrated but Google still sees them as half-WP.
What you get
- HTML rewrite sweep — every
/wp-content/uploads/...,/wp-content/themes/...,/wp-content/plugins/...path replaced with clean equivalents (/uploads/...,/css/..., etc.). - Asset migration — actual image, font, and CSS files moved to clean URL paths in your Hugo source.
- 301 redirect map — every old path 301s to the new one so your existing backlinks (and your SEO equity) don't break.
- Sitemap regeneration with the new URLs.
- HTTP cache invalidation at Cloudflare so the new paths propagate immediately.
- Verification scan — final crawl confirming zero
/wp-content/refs remain.
| Pages | Price | Per-page |
|---|---|---|
| 1–100 | $99 | $0.99/pg |
| 101–500 | $199 | $0.40/pg |
| 501–1,000 | $399 | $0.40/pg |
| 1,001–10,000 | $1,499 | $0.15/pg |
| 10,001–100,000 | $4,999 | $0.05/pg |
| 100,000+ | $14,999 | $0.015/pg |
Triggered automatically by the scanner when we detect /wp-content/ paths in a site that's otherwise off WordPress (migration_completeness=85%). If your scanner result says "Path Cleanup recommended," another vendor migrated you and left junk behind. We finish the job.
Indexability Watch (recurring)
Screaming Frog re-crawl on automated cadence + GSC/Bing index delta + schema validation + Monday 7 AM digest ranked by traffic impact + one-click fix path. The only recurring SKU we sell — everything else is one-time.
| Tier | Pages | Monthly | Crawl cadence | Touch model |
|---|---|---|---|---|
| Watch Lite | Up to 1,000 | $29/mo | Weekly | Monday digest, you fix |
| Watch | 1,001–5,000 | $79/mo | Weekly | Monday digest, you fix |
| Watch+ | 5,001–50,000 | $249/mo | Daily batch | Monday digest + schema audit, you fix |
| Watch Managed | 50,001–500,000 | $699/mo | Daily batch | Slack support + custom rules, you fix |
| Watch Enterprise | 500,000+ | $1,799/mo+ | Daily batch + adhoc | Custom — multi-site rollups, SLA, dedicated engineer |
Auto-Fix add-on — +$39/mo on any tier The moat
Add Auto-Fix to any base tier and we don't just tell you what broke — we fix it and email you the diff. Flat $39/mo regardless of page count. A 500K-page enterprise pays the same add-on as a 500-page side project, because auto-fix scales with our cost basis (Hugo source on disk + a script), not with how big your site is.
Why our competitors can't price this way: Strattic, HardyPress, WP2Static — none of them have your source. They can't auto-fix because they're a wrapper, not a foundation. We hand you the Hugo source on day one of migration, and we know exactly how to edit it. That's the structural moat. The most popular bundle is Watch + Auto-Fix = $118/mo for sites under 5K pages. Auto-Fix bundled FREE for every customer until Phase 3 (engine) ships in beta. Your first 90 days then continue from the trial automatically, with the first digest seeded from every issue we caught during your migration.
What Auto-Fix actually fixes vs flags for review
Missing canonical tags · missing meta descriptions (generated from H1 + opening paragraph) · missing image alt-text (inferred from filename + page context) · 4xx broken inlinks → 301 to closest URL match · schema regressions → restored from migration baseline · 301 chain flattening · sitemap regeneration · OG/Twitter Card backfill
Conflicting canonical sources (we suggest the strongest signal) · large meta description rewrites · removing noindex from a page that lost rankings (judgment call: was it intentional?) · merging duplicate H1 pages · template-wide CSS regression revert · anything that touches your brand voice or copy. We never silently change content. We change structure.
Security & encryption
Customer credentials never touch our database in plaintext.
- darkenvelope.io zero-knowledge encryption. All connection credentials (WP App Password, SFTP keys/passwords) are sealed via AES-256-GCM through darkenvelope's API before being written to disk. The fingerprint of the sealed envelope is shown to you on connect.
- Master key isolation. The encryption master key lives at
/root/.config/wpe-de-master.keywith chmod 600. PHP-FPM as the wpescape user has its own readable copy at chmod 600. Backup leaks don't include this key by default. - HTTPS-only transit. All API endpoints + dashboards are served over HTTPS via Cloudflare. Cookies are HttpOnly, Secure, SameSite=Lax.
- Per-subdomain session isolation. The customer dashboard (
run.) and operator dashboard (audit.) have different session cookie names — login on one doesn't grant access to the other. - Rate limiting. All API endpoints rate-limit by IP. Login: 8 attempts / 15 min. Scan: 10 / hour. Lead capture: 10 / hour. Tickets: 5 / hour.
- Bandwidth monitoring. Server-side iptables byte counters on SSH + FTP outbound, with 5-minute checkpoints and email alerts on spikes (1 GB SSH / 500 MB FTP threshold) — including session attribution (who was logged in, from where).
What we detect
We've fingerprinted enough WordPress installs to know your stack before you tell us.
Page builders
Elementor · Divi · Beaver Builder · WPBakery · Gutenberg · Oxygen · Bricks. Each has a different export-and-replace strategy. Page-builder bloat is exactly what makes WP slow — we strip it and replace with semantic HTML in our Hugo templates.
SEO plugins
Yoast SEO · Rank Math · All-In-One SEO · The SEO Framework · SEOPress. We respect your existing meta + schema and port them. If they're missing or broken, the SEO Upgrade add-on rebuilds them clean.
Caching / performance plugins
LiteSpeed Cache · WP Rocket · W3 Total Cache · WP Super Cache · Imagify · Smush · Optimole. These all become irrelevant after migration — Hugo on Cloudflare's edge is faster than any cache plugin can ever be.
Security plugins (block our REST API connect)
Wordfence · iThemes / Solid Security · All-In-One WP Security · SecuPress · Sucuri. If any of these have disabled Application Passwords, the App Password connect method will fail. Per-plugin re-enable instructions in the connect flow's help text. Or use SFTP method instead.
Themes
We detect theme name and child theme separately. We don't migrate the theme itself — we rebuild your visual identity in Hugo templates with the brand spec we extract (colors, fonts, header/footer markup).
Migration completeness
Sites migrated by other vendors often leave /wp-content/ asset paths in HTML. We score those at 85% migration completeness and offer a Path Cleanup tier that finishes the job (script-side rewrite + 301 redirects + sitemap regen).
FAQ
No. Every published URL is preserved. We migrate every schema entity Google indexed. We add 301 redirects for any URL that needs to change. The 528K-page UC migration kept 100% of URLs.
No. Cutover is a DNS flip — Cloudflare propagates instantly. Old WP host stays warm as fallback for ~7 days. Zero-downtime cutover is the default.
No, that's the point. After migration you'll edit content directly in the Hugo source files (Markdown). We hand off the source on day one. If you want a CMS-style editor, we offer an admin tool that writes to the Hugo source.
Iterative adjust passes. You request changes, we tune, redeploy test pages, you re-review. No fixed cycle count. Plus a "Request a tweak" ticket system for post-launch revisions.
Lead generation. Anyone running their own audit will see we're cheaper than industry. The scan + free dashboard cost us almost nothing because the heuristics run in <2 seconds with zero external API calls.
Industry priced — fixing existing bad CSS ("spaghetti code refactor") is genuinely harder than starting clean because you have to untangle every existing rule without breaking layout. We tier our pricing by how messy the codebase actually is.
Some dynamic features survive cutover (forms, simple membership), others don't (live cart, real-time pricing). For e-commerce, we typically migrate the catalog/storefront pages to Hugo and keep the checkout on a separate stack. Talk to us at byebye@wordpressescape.com about your specific dynamic features.
Glossary
Hugo- A static site generator that compiles Markdown + templates into pure HTML/CSS/JS. Apache 2.0 licensed. Backs every site we migrate. Renders 1M pages in minutes.
CWV- Core Web Vitals — Google's 3 metrics (LCP, CLS, INP) that affect search ranking.
LCP- Largest Contentful Paint — how long until the biggest visible element renders. Target: under 2.5s.
CLS- Cumulative Layout Shift — how much the page jumps around as it loads. Target: 0.0.
TBT- Total Blocking Time — sum of long-task delays after FCP. Target: under 200ms.
TTFB- Time To First Byte — server response speed. Hugo on Cloudflare hits 30ms typical.
PSI- PageSpeed Insights — Google's authoritative speed audit. Combines Lighthouse (lab) + CrUX (real-user).
CrUX- Chrome User Experience Report — 28-day rolling real-user data from Chrome browsers.
Schema- Structured data markup (JSON-LD) — tells search engines what your page is about. We migrate Organization, LocalBusiness, FAQPage, BreadcrumbList, Service, Product, etc.
App Password- WP 5.6+ feature: a separate password scoped to one application, revocable in one click. NOT your wp-admin login password.
darkenvelope.io- Zero-knowledge encryption service. AES-256-GCM. We use it to seal customer credentials before storing them.