Case study · Lead platform · Migration
Migrating a Florida Moving Leads Platform From WordPress to React
A Florida moving leads platform was running on WordPress and paying for it in load time, plugin maintenance and a sitemap that misrepresented the site to Google. We migrated the whole thing to React — 16 service and city pages, 9 blog articles, transactional email, DNS cutover — and identified the piano movers cluster as the highest-value opportunity on the site.
- Type
- Moving leads platform
- Scope
- 16 pages, 9 articles, DNS + email
- Stack
- WordPress → React
1. The client and the market
A Florida moving leads platform: a content and search property whose entire business is capturing moving intent across the state and routing it to carriers. Unlike a single moving company, the asset here is the site itself. Every page is inventory, every ranking is revenue, and a migration that damages either one damages the business directly.
The market rewards depth. Someone searching for a specific service in a specific city is worth far more than generic traffic, which means the site's value is concentrated in a long tail of service pages and city pages that each need to load fast, render correctly and stay indexed.
2. The starting situation
The platform was on WordPress, with the usual accumulated cost of that choice at scale: a plugin stack that had to be maintained and periodically broke, page templates that were slow on mobile, and a technical SEO layer that nobody fully controlled because it was spread across three different plugins.
The sitemap was part of the problem rather than part of the solution — it did not accurately represent the live URL set, which meant Google's picture of the site and the actual site had drifted apart.
- Slow mobile rendering on exactly the pages that carry commercial intent.
- Plugin-managed metadata with no single source of truth.
- A sitemap that did not match the real, canonical URL set.
- Transactional email tied to the hosting stack, with delivery nobody could verify.
3. What we found
Two findings shaped the project. The first is that the content itself was worth preserving carefully: 16 service and city pages plus 9 blog articles represented real accumulated equity, and a migration that treated them as a bulk export would have been the fastest way to lose it.
The second came out of keyword research during the content mapping. Piano movers — and specialty item moving generally — was a distinct, high-value cluster with genuine commercial intent, meaningfully less competition than general moving terms, and almost no proper coverage on the existing site. It was sitting inside general moving pages as a sentence instead of being treated as its own topic.
- Content equity concentrated in service and city pages that needed one-to-one URL preservation.
- Metadata and canonical handling that had to be rebuilt as code rather than plugin configuration.
- Piano movers and specialty moving identified as an underserved, high-ticket cluster.
- Email flows that would silently break at DNS cutover if not moved first.
4. What we changed
We rebuilt the platform on React and migrated it in a sequence designed so that nothing depended on a step that had not been verified yet.
- Rebuilt and migrated all 16 service and city pages with their URLs preserved one-to-one, so no redirect chain was needed where a page already ranked.
- Migrated the 9 blog articles with their internal linking rebuilt, rather than pasted, so the topical structure survived the move.
- Moved metadata into code: one canonical tag, one title and one description per route, controlled in the repository instead of three plugins.
- Configured transactional email on a dedicated sending setup with proper authentication records, tested before cutover so lead notifications did not go dark during the switch.
- Executed the DNS cutover with TTLs lowered in advance and the old environment kept warm, so the switch was reversible until the new site was verified live.
- Fixed the sitemap: generated from the actual route table at build time, so it can no longer drift from the live URL set the way the WordPress version had.
- Mapped the piano movers cluster into the content plan as a dedicated set of pages rather than a paragraph inside general moving content.
5. What happened
The migration completed with the URL set intact, transactional email verified as delivering, and a sitemap that is generated from the site's real routes at every build — which means the specific failure mode the platform had before is now structurally impossible rather than manually managed.
Operationally, the platform is no longer maintained through a plugin dashboard. Pages, metadata, redirects and the sitemap all live in the codebase, which makes adding the next twenty city pages a repeatable task rather than a project.
And the piano movers work gave the site a clearly defined next expansion: a high-ticket, low-competition cluster with a content plan attached, instead of another round of generic moving pages competing with the ones already there.
This case describes the work executed and the problems it solved. We don't attach traffic percentages to a migration when the honest answer is that the point of a migration is not to lose what you had.
Want the same look at your account?
Most of this work started with an audit. A manual, seven-point review of your Google Ads account, delivered in writing within 72 hours.
Get the $199 audit