Migration cost
WordPress to Next.js Migration Cost: What Sets the Price and How Quotes Work
Ask ten studios what a WordPress to Next.js move costs and you will get ten numbers and no reasons. Here are the reasons: the eight things that make a migration bigger or smaller, how an honest quote is built, and what staying put costs over five years.
October 8, 2026 · 9 min read
The short answer
A WordPress to Next.js migration costs what the work inside it costs: the number of page templates, how much content is trapped in a page builder, whether there is a store, the integrations, custom features, design changes, the content model and the redirect map. A fair quote follows a free audit and fixes the price for a written scope. Our builds start at $1,750.
On this page
Why two ten-page sites can get very different quotes
Picture two plumbing companies, each with a ten-page WordPress site. The first runs a lean block theme. Its pages are written in the block editor, its contact form sends one email, and nothing else happens. The second runs Divi with two add-on packs, a booking plugin that talks to the dispatch software, a financing calculator built from three plugins, and a blog of four hundred posts with shortcodes in every one. Same page count on the menu. Very different jobs.
That is why a migration price quoted by the page is usually wrong in one direction or the other. Pages are the visible part. The cost lives in the decisions under them: how many distinct layouts the site really has, where the words are stored, what the plugins quietly do, and how many old addresses Google still remembers. Each of those can be counted before anyone signs anything, which is the whole point of the audit described further down.
A quote is a count of decisions, not a count of pages.
Eight drivers you can count yourself
Every migration quote we write is built from the same eight inputs. None of them is mysterious, and you can estimate most of them from your own dashboard in an afternoon.
| What gets counted | Pushes the cost up | Keeps it down | |
|---|---|---|---|
| Pages and templates | Distinct layouts, not menu items | Every page designed as a one-off | A few repeating page types: service, location, post |
| Builder cleanup | Pages whose content sits inside builder data or shortcodes | Elementor, Divi or WPBakery layouts nested many levels deep | Content written in the block editor or plain fields |
| Ecommerce | Products, variations, orders, customer accounts | Subscriptions, custom pricing rules, many extensions | A small catalog with simple shipping |
| Integrations | CRM, booking, payments, inventory, email marketing | Plugins that sync data both ways | One form that sends one email |
| Custom features | Calculators, portals, member areas, search filters | Logic spread across several plugins nobody documented | Features that can be dropped or simplified |
| Design work | Keep the current look or change it | A full redesign with new navigation | A faithful port of the existing design |
| Content model | Fields each page type needs in the CMS | Content that must be split, rewritten or merged | Content that already lives in tidy custom fields |
| Redirects | Old URLs that change, including ones only Google remembers | Years of category, tag and date archives | A site whose URLs can stay exactly as they are |
Two of these deserve a closer look because owners underestimate them every time: builder cleanup and redirects. The first decides how much hand work the content needs. The second decides whether your search traffic survives the move, and it is covered in full at WordPress to Next.js redirects and URL structure.
The builder tax: where hidden hours hide
A page written in the block editor is stored as HTML with small comments marking each block. A script can read it, keep the headings and paragraphs, and drop the rest. A page built in a visual builder is a different animal. Elementor keeps its layouts as JSON in post meta, a tree of containers and widgets with the words buried in settings. Divi and WPBakery store pages as long chains of shortcodes. Getting clean content out means walking that structure, widget by widget, and deciding what each piece is for.
The work scales with how the site was built, not how big it looks. Fifty pages made from three saved templates are cheap to extract. Ten pages each built by hand, with sliders inside tabs inside columns, are not. If your site runs on a builder, the theme pages explain what is involved: Elementor to Next.js, Divi to Next.js, Avada to Next.js and Bricks to Next.js.
Inside a fixed quote: audit, scope, phases
Hourly billing on a migration rewards the slow and punishes the client for surprises the studio should have found. We quote a fixed price for a written scope instead, and we can only do that because the counting happens first.
- 1
Free audit
We crawl the site, list every URL Google knows, open the plugin list and write down what each plugin actually does. Start with the free site audit or the quicker website health check.
- 2
Written scope
Page types, features, integrations, the content model and the redirect plan, each named. What is out of scope is written down too, so nobody discovers it on an invoice.
- 3
Fixed quote
One price for that scope. If you later want something outside it, you get a separate quote for that piece before any work starts.
- 4
Phased payments
Payment tied to milestones you can see: structure approved, design approved, site built on a preview address, launch.
- 5
Launch and handover
The site goes live with every old URL kept or redirected, and your team edits in Athena CMS from day one.
Large sites can also be split into phases that ship separately. A common order is the money pages first (home, services, contact), then the blog, then the store. Each phase has its own scope and price. Another route runs a Next.js feature beside WordPress before the whole site moves, which the WordPress to Next.js development page describes.
The third option
Athena CMS, with AI agents on staff.
Not a theme and not a blank Next.js repo. The content system we put behind every custom site: plain fields, a real preview, every version kept, and AI agents that handle the chores a plugin only nags you about.
- PicassoImages
- ApolloSite analysis
- AresCompetitor watch
- PrometheusContent holes
- AtlasPage depth and structure
- DelphiAI search visibility
and 12 more agents. Two come with Athena; the rest are monthly add-ons.

Five years of staying put, itemized
The migration quote is only half the comparison. The other half is what the current site will cost if nothing changes, and that number is rarely written down because it arrives in small, separate bills. Here is what goes on that side of the ledger, using list prices verified on the vendors' own sites as of October 2026.
- License renewals. Divi's yearly plan is $89. GP Premium for GeneratePress is $59 a year. Kadence Pro is $299 a year, priced per site. Bricks Starter is $79 a year. Those are theme-level costs before the builder add-ons, form plugins and SEO upgrades that renew beside them. The Divi and Kadence pricing pages break the plans down.
- Support windows. ThemeForest themes such as Avada sell a $69 Regular License with 6 months of vendor support; after that, support is a paid extension.
- Emergency fixes. The update that broke the header, the form that stopped sending, the malware cleanup. Nobody budgets for them, and everybody pays for them. Our theme repair work exists because they keep happening.
- Hosting muscle. Keeping a heavy WordPress stack fast often means a bigger hosting plan, a CDN add-on and a caching layer, each with its own bill.
- Update time. Someone has to test theme, builder and plugin updates before applying them. If that someone is you, your hours count too.
| Staying on WordPress | Next.js with Athena CMS | |
|---|---|---|
| Theme and plugin licenses | Several, renewing on different dates | None; features are part of the build |
| Update testing | Every week, on a live site or a staging copy | Dependencies pinned and tested in a build before deploy |
| Emergency repairs | Unpredictable, usually after an update | Rare; nothing installs itself on the live server |
| Hosting | PHP, database and caching, sized for the heaviest page | Static pages from a CDN; included in our hosting and maintenance plans |
| Upkeep chores | A plugin and a renewal for each | Handled by Athena's agents, such as Argus and Aegis |
We do not put a dollar total on the right-hand column because it depends on the plan you choose. The longer version of this math, with the categories laid side by side, lives in WordPress vs Next.js cost and the five-year cost guide.
When spending less means staying on WordPress
Some sites should not migrate, and a quote that ignores this is a sales pitch. If your site is a small brochure, your team edits it happily, it loads well on a phone and it brings in the leads you need, the cheapest good answer is to keep it healthy. A theme speed tune-up or a lighter theme through a theme migration costs a fraction of a rebuild.
The math tips the other way when the site earns money through speed and search, when each new feature means another plugin and another renewal, or when the last three repair bills add up to a meaningful share of a new build. If you are not sure which side you are on, our guide on whether to leave WordPress walks through the signs, and the free audit will tell you plainly.
Paying for the move without draining the account
A migration is a one-time project with a long tail of savings, which makes it a reasonable thing to spread out. Financing is available for website projects through website financing, and for WordPress work specifically through WordPress financing. Phased scopes help too: each phase is priced and paid on its own.
After launch, the site lives on one of our hosting and maintenance plans: monthly, no long contract, with tested updates, off-server backups, security and uptime monitoring, and small edits included. The editing side is covered by Athena, and the move itself is described step by step at switching from WordPress. If you want a new design and structure along with the new platform, that is a Next.js rebuild, and it is quoted the same way.
Questions people ask before they call
It depends on the page types, builder content, store, integrations, custom features, design changes, content model and redirects, so past our $1,750 starting price we do not publish a single number. We audit the site for free and give you a fixed quote for a written scope. Larger projects can be phased or financed through website financing.
Up front, a new WordPress theme build usually costs less. Over several years the gap narrows, because a Next.js site has no theme or plugin licenses to renew and far fewer emergency repairs. Compare both with the categories in WordPress vs Next.js cost before deciding.
Builders store content inside layout data rather than as plain text. Elementor keeps it as JSON in post meta and Divi as nested shortcodes, so each page has to be unpacked and mapped to clean fields. Pages made from a few templates are cheaper than hand-built one-offs. See Elementor to Next.js.
No. After the free audit we write a scope and quote one price for it. If you want something outside that scope later, you get a separate quote before work begins. Payments are tied to milestones such as design approval and launch, and the timeline comes with the quote.
Yes, but usually for less machinery. Static pages are served from a CDN without a PHP server or database working on every visit. Our hosting and maintenance plans cover hosting, tested updates, backups, monitoring and small edits on a monthly basis with no long contract.
Keep reading
- Migration timelineHow Long Does a WordPress to Next.js Migration Take? The Phases and What Stretches ThemHow long a WordPress to Next.js migration takes depends on a few drivers. See each phase, what you must supply, and how the old site stays live until cutover.
- Astra migration guideAstra to Next.js: Migrate an Astra Site Layer by Layer, Rankings IntactMigrate Astra to Next.js without losing rankings: what happens to astra-settings, Site Builder layouts, Spectra blocks and Elementor pages, step by step.
- Kadence migration guideKadence to Next.js: Moving Kadence Blocks, Shop Kit and MembersKadence to Next.js, step by step: parse Kadence Blocks, map the global palette, rebuild Hooked Elements, move Shop Kit stores and members, keep every URL.
- GeneratePress migration guideGeneratePress to Next.js: Leaving the Cleanest Theme in WordPressGeneratePress to Next.js: why GP sites cost less to move, how Elements, hooks and GenerateBlocks CSS migrate, and the URL plan that keeps your rankings.
- Leaving BlocksyBlocksy to Next.js: Moving the Customizer, Content Blocks and Shop ExtrasMove a Blocksy site to Next.js: Customizer settings, header builder, Content Blocks, Post Types Extra fields and Shop Extra features, mapped one by one.
- Leaving Hello and ElementorHello Elementor to Next.js: Migrating a Site That Lives Inside ElementorMigrate a Hello Elementor site to Next.js: Theme Builder headers and templates, Site Settings globals, popups, forms and submissions, with every URL kept.
- Everything in WordPress to Next.jsSee the section
Get a fixed quote you can actually read
Send us your site. We will count the templates, plugins and URLs, then come back with a written scope and one price, or tell you to stay on WordPress if that is cheaper and better.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.
