Skip to content

WordPress engineering and migration

Two situations bring people to this page. One is a WordPress estate that has become slow, fragile or risky to change. The other is a product that outgrew the CMS it was built in. We take both, and we will tell you which one you have.

01Capabilities

The work an ageing WordPress estate actually needs

WordPress is very good at one job, publishing and managing content, and it usually ends up doing four or five jobs beyond that. These are the shapes of work we take on, including the one that ends with moving off it.

  • Editorial

    Content platforms editors can actually run

    Custom blocks, editorial workflow, roles and multisite structure, built so the people publishing every day do not need a developer. This is the case where WordPress genuinely beats anything we would write from scratch, and it sits inside our web development work.

  • Integration

    Custom plugins and the systems either side

    The connective work between WordPress and a CRM, an ERP, a payment provider or an identity system, done as versioned plugins rather than edits to a theme. The engineering here is retries, idempotency and what happens when the other side is down. See platforms development and integration.

  • Rescue

    Performance, security and the fear of deploying

    Plugin sprawl, a page builder generating markup nobody can style, an unpatched core and a database full of orphaned options. Most of what gets described as a WordPress problem is an operational problem, and it responds to maintenance and support rather than to a redesign.

  • Migration

    Moving a product off the CMS

    When the CMS has become the constraint, we move the content model, preserve the URL surface with a real redirect map, and rebuild the parts that were never a content problem in the first place. That is legacy modernization work, and it is a job we take on in full.

03Fit

A content site, or an application that happens to have content?

The useful question is not whether WordPress is good. It is whether you have a content site, or an application that happens to have content in it. WordPress is excellent at the first and becomes a liability at the second. Each row below names the build or the platform that fits, from WordPress to Magento or Moodle, with the reasoning in each.

Six situations, and what we would tell you in each
Your situationWhat we recommend
A content site: editors publishing every week, and the pages are the product Use WordPressNothing we would build from scratch beats it on editorial ergonomics. Rebuilding that layer is spending money to end up with something worse.
An application that happens to have content: user state, permissions, workflow, calculations Application firstBuild the application, and leave the CMS holding the content beside it. WordPress used as an application framework becomes a database with strong opinions.
A store with a large catalogue or per-customer contract pricing Different pageNot a plugin. That decision sits on Magento or Shopify, and it turns on catalogue complexity rather than on what your marketing site already runs.
The site is slow and carries thirty plugins, but the content model still fits Clean up firstCut the plugin surface, fix caching, and get a real deploy path first. Migration is the expensive way to buy what a cleanup delivers.
Courses, cohorts and certification tracking, currently on a plugin Different pageLook at Moodle or a bespoke build. Learning platforms outgrow WordPress plugins earlier than anything else we meet.
You want a decoupled front end on Next.js For product front endsWorth it when the front end has real product requirements. Not worth it as a page-speed wish, because you then operate two systems and a preview problem.

Scope

What we own on WordPress work is the judgement about which situation you are actually in, and everything downstream of it. That means the upgrade path, the plugins you become dependent on, and whether your team can still change the site after we stop. unicrew has been building and rescuing content platforms since 2012, with 100+ senior in-house engineers across six countries. We work under an ISO 27001:2022 certified information-security management system. Where extending what you have is the cheaper answer, that is the route we recommend.

WordPress is the right fit for a content site. For an application with some content in it, we build the application first and keep the content in WordPress beside it. Either way, the logic lives in versioned code your team can review and test.

Yaroslav HavrylivSenior Engineering Manager, unicrew

04Delivery

Where we start when somebody else built it

Inherited WordPress is the normal situation rather than the exception. This is the order we work in, and step two is the one people want to skip.

  1. Inventory the plugins and the custom codeWhat is running, what is abandoned upstream, and where business logic is hiding in a theme's functions file. An unmaintained plugin with database write access is a risk you are carrying whether or not anyone has written it down.
  2. Get it into version control and a real deploy pathEditing on production is the root cause of most of what looks like a WordPress problem. Until there is a repository, a staging environment and a way to roll back, every improvement we make is one file transfer away from being undone.
  3. Close the security positionCore, plugin and PHP versions, users holding more rights than their job needs, and anything unmaintained that touches the database. This is not optional work you schedule for later; it is the floor everything else stands on.
  4. Then decide, extend or move, in writingYou get a written recommendation covering the content model implications, the URL and redirect consequences, and the smallest change that solves the problem. Extending WordPress and moving off it are costed side by side, so the choice rests on the numbers.

05Stack

The four decisions sitting next to this one

What a WordPress build is made of and what it is most often traded for, each with its own page.

06Questions

The questions that decide fix or move

Answered the way we would answer them live, including the ones where a cleanup beats a migration.

Yes, and on an existing estate it often makes sense, because your people hold the context. Every developer comes with ownership of the result: an architect outside the delivery team reviews the design before plugin work starts, and the code goes through the same QA and test automation practice as our own projects. Team extension is managed teams; handing over the outcome is web development.

It depends on whether the CMS is the constraint or the operations are. If the content model still fits and the pain is speed, plugin conflicts and fear of deploying, that is operational, and a migration will faithfully reproduce it somewhere new. If you are writing application logic into hooks, the CMS is the constraint and moving is the right answer. We put that judgement in writing first.

Yes, and it is a large share of the WordPress work we do. We start from what actually runs rather than from the handover document: plugin inventory, custom code, the database, the scheduled jobs, and whatever integration nobody mentioned. The first stretch goes into version control, staging and a rollback path, so feature work lands on a foundation you can trust.

A normal theme unless you have a specific reason. Going headless with Next.js buys a front end you can build like an application, and it costs you preview, the editor's confidence about what a change will look like, and a second system to operate. That trade is worth making for real product requirements. It is not worth making to fix page speed.

A scoping call with an engineer rather than a salesperson. For an existing site we ask for read access to the repository, or failing that the file tree and the plugin list, because an hour in the code beats three spent describing it. What comes back is a written read on what we would do first and what we would keep. Most engagements start within two to four weeks.

Three shapes, and which one fits depends on how settled the scope is. Time and materials is billed hourly and quoted per project, which suits work still moving. Fixed price is outcome based and quoted per project, and we offer it once the first read is done, because a fixed number on an estate nobody has opened is a guess with a contract around it. Team extension is billed monthly per engineer.

Is the CMS the constraint, or is it the way you run it?

Send us the site and the plugin list. You will get an engineer's read on where the constraint really sits, and whether a cleanup or a migration fixes it.

Book a scoping call

Thank you

Thanks for your message. We will get in touch with you shortly.