Case Study
WordPress to Next.js,
in Four Languages
A private-driver company ran a WordPress site that had grown for years: plugins on plugins, a rate list copied across pages, and four languages held together by an extension. We rebuilt it in Next.js, kept every page that earned traffic, and moved the domain and the mailboxes without a gap.
Type
Redesign / Migration
Client
Private-driver company (FR)
Scope
WordPress → Next.js, 4 languages, SEO continuity
Shipped
2026

115
Pages migrated
4
Languages · FR EN ES ZH
72
SEO articles carried over
87
Rates from a single source
301 / 410
Every old URL given a destination
0
Mail downtime at cutover
The problem
The site worked, and that was the difficulty. It brought in bookings, ranked on real queries, and could not be switched off for a rebuild.
Four languages held by an extension, with translations drifting apart page by page.
A rate list retyped on several pages, so a single price change meant hunting through the site.
Years of plugins, none of which anyone could safely remove.
Article URLs carrying query strings, tag archives and duplicates competing with the real pages.
A redesign that lost the existing rankings would have cost more than no redesign at all.
What we did
Inventory before design
We listed the pages that received traffic and the queries they ranked on. Those pages became constraints: same address, same subject, content kept and improved. Everything else was free to move.
Four languages, real routes
Each language got its own addresses and reciprocal hreflang, instead of an extension deciding at runtime. Adding a language is now a folder, not a plugin setting.
One source for 87 rates
The whole rate grid lives in one file, read by every page that displays it. A price changes in one place, in every language, and no page can contradict another.
A quote form that reaches a human
Server-side sending, honeypot and timing check, confirmation to the client and notification to the company. No plugin, no external form service.
The cutover
We tested on a staging domain, checked the redirects one by one, then moved DNS and the mailboxes on an agreed date. Mail is the part nobody thinks about and everybody notices: it was moved first, verified, and only then the site followed.