From WordPress Spaghetti to 98 PSI — A B2B Migration That Kept Every SEO Equity Point
[REPLACE WITH REAL DATA BEFORE PUBLISHING — numbers below are illustrative.]
Client snapshot
Client: B2B SaaS (12-year-old company, 200+ pages, multi-product catalog) — name withheld pending approval
Industry: B2B SaaS — workflow / collaboration tools
Engagement: Full WordPress migration + performance rebuild + care plan continuation
The problem
A 12-year-old WordPress site that had accumulated 47 active plugins (many doing overlapping things), 3 abandoned theme parents, custom CSS layered over 4 previous design refreshes, and a database that hadn’t been optimized in years. The PSI score was 32 on mobile, 51 on desktop. LCP was 8.7 seconds. Every plugin update brought small breakages. The marketing team avoided publishing content because every change risked something.
Meanwhile, the site had real SEO equity: 200+ ranking pages, 8 years of indexed blog content, and high-authority backlinks. The migration could NOT lose any of it.
State before AJD: PSI mobile 32, desktop 51. 47 active plugins. Page weight 3.8 MB. Bounce rate 71%. Time on page averaging 28 seconds (signaling visitors leaving before content loaded).
The approach
- SEO inventory + preservation map — Before touching anything: scanned every ranking page, recorded every URL slug, captured every Yoast meta value, exported all redirects, mapped every internal-link source. The migration plan started with “what must NOT change in Google’s eyes” before “what we want to improve.”
- Hello Elementor + 4-plugin stack — Replaced the bloated theme + 47 plugins with: Hello Elementor (lightest WP theme), Elementor + Pro Elements, Yoast SEO, FlyingPress (caching + critical CSS + delay JS), ShortPixel (WebP). That’s it. Everything else was either replaced by Elementor native widgets or removed as duplicate functionality.
- Elementor performance experiments all enabled — Improved CSS Loading, Optimized Assets Loading, Optimized DOM Output, Inline Font Icons, font-display: swap. These alone cut ~30% of render-blocking work.
- Content audit + consolidation — Of 200+ pages, 60 were duplicates or thin content. Merged where useful, 301-redirected the rest. Kept every URL that had any organic traffic or external links.
- Image optimization sweep — All images converted to WebP + AVIF, properly sized, lazy-loaded, with explicit width/height to prevent CLS. ShortPixel handled the bulk conversion.
- Yoast meta preservation — Every per-page Yoast title + description + schema setting carried over via export/import (not regenerated from defaults). Nothing in SERP changed for the client’s existing rankings.
- Staged rollout — Built on a staging subdomain, ran parallel Lighthouse audits comparing live vs staged for 2 weeks, then DNS-cut over a weekend. Pre-warmed FlyingPress cache on cutover.
The outcomes
PageSpeed Insights (mobile): [32] → [98]
PageSpeed Insights (desktop): [51] → [99]
Active plugins: [47] → [4]
Page weight: [3.8 MB] → [820 KB] (–78%)
LCP (mobile): [8.7s] → [1.4s]
Bounce rate: [71%] → [38%]
Organic search traffic (3 months post-launch): Held steady, then +[22%] as Core Web Vitals signal compounded
Lost search rankings: [0] (every monitored keyword held or improved)
Time to migrate: [10 weeks] (4 audit + plan, 4 build, 2 staging/cutover)
Ongoing engagement
The client is on AJD’s monthly care plan. Quarterly content audits keep the 200+ pages aligned with current intent. Plugin updates are tested on staging before going live. Lighthouse audits run weekly via phantom’s automated watcher — any score drop triggers a review within 24 hours.
Have a WordPress site that’s holding back your business? Schedule a free discovery call →
Related services: Website Development · SEO & Site Optimization · Website Maintenance & Care Plans