Why I moved off WordPress

My WordPress site was slow. Mobile PageSpeed scores in the low 40s. Render-blocking scripts from plugins I could not remove without breaking functionality. Images that were technically optimised but still loading too slowly because the PHP rendering stack was adding latency before they even appeared.

I had tried the standard fixes. WP Rocket, Cloudflare, lazy loading, WebP conversion. Each one improved things marginally. The combined score still sat around 47 on mobile. That is below the threshold where Google's Core Web Vitals assessment moves from "needs improvement" to "good."

Next.js static site generation (SSG) meant my pages would be pre-built HTML served from a CDN edge node with no PHP processing on the critical rendering path. In theory, that is a 500-800ms latency improvement at minimum.

The theory was correct.

What improved immediately after migration

Work With John

Your site should be your best salesperson. If it is not, that is a fixable problem.

I work with US service businesses and B2B brands to build SEO systems that produce consistent, compounding leads. I will tell you exactly what is broken. No pitch.

Book a free strategy call

Mobile LCP (Largest Contentful Paint) dropped from 4.2 seconds to 1.1 seconds. Mobile PageSpeed score went from 47 to 81. INP (Interaction to Next Paint) improved from 320ms to 65ms.

These are not marginal improvements. They are the difference between "needs improvement" and "good" on every Core Web Vitals metric. Google's field data assessment moved from orange to green within 28 days of the migration.

The image optimisation in Next.js's Image component handled responsive images, lazy loading, and WebP conversion automatically. Things I had patched together with four separate WordPress plugins now worked correctly out of the box.

What the SEO risk actually was

Not the technology. The URLs.

My WordPress site had 6 years of accumulated content with URL structures that made sense when I built them and made less sense now. The migration was an opportunity to clean up URL structure. And it was a risk if I did not handle the redirects perfectly.

301 redirects from every old URL to the new URL are non-negotiable. Any URL that existed in Google's index without a redirect becomes a 404. Every 404 is a broken link in Google's index. Every broken link is a page that was previously ranking that no longer exists from Google's perspective.

I spent more time on redirect mapping than on any other part of the migration. I exported every indexed URL from Search Console before migration. I mapped each one to its new URL. I verified the redirects after launch using a redirect checker tool. I monitored Search Console's Coverage report daily for the first two weeks after launch looking for 404 errors.

The plugin ecosystem gap

WordPress's SEO ecosystem is 15 years old. Yoast and Rank Math handle sitemap generation, canonical tags, meta tags, schema markup, breadcrumb schema, and Open Graph tags automatically for every page type. The configuration is a UI. Non-developers can manage it.

In Next.js, I replicated all of this manually. Sitemap generation required a custom build script. Canonical tags required a component on every page template. Schema markup required JSON-LD blocks written by hand for each page type. Open Graph tags required a metadata configuration on each page or layout.

This is not a problem if you are a developer. It is significant additional work if you are not. And it is easy to miss edge cases: blog post pages that inherit incorrect schema, pagination pages without proper canonical handling, tag or category archives that need noindex treatment.

What I would do differently

Start the redirect mapping earlier. I began it two weeks before launch and it was not enough time to be thorough. I found 23 URLs after launch that had gone to 404 before I caught them. None of them had significant ranking authority, but the risk was there.

Test the SEO implementation before migration using a staging environment with Search Console's URL inspection pointed at the staging domain. This would have caught the pagination canonical issue before it affected the live site.

Plan for at least 6 months of SEO monitoring post-migration. The rankings dipped by 15-20% for about 8 weeks as Google reprocessed the site. They recovered and exceeded pre-migration levels by month 4. If I had not expected the dip, I might have panicked and made unnecessary changes during the recovery period.

Is it worth it for most businesses?

If your WordPress site has consistent Core Web Vitals problems that you have tried to fix and cannot resolve, yes. The performance gain from a static Next.js site is significant and durable.

If your WordPress site has good Core Web Vitals scores and your plugin setup is manageable, the migration risk and development cost outweigh the benefits. You are solving a problem you do not have.

The migration cost in developer time is real. The SEO risk during the transition period is real. The performance gain is also real. Whether the gain justifies the cost depends entirely on the severity of your current performance problems.

If you are considering a website migration or full rebuild with SEO baked in from day one, our website design service handles both the technical architecture and the SEO implementation.