Skip to content

Drupal migration services that move your content and keep old links working.

Drupal migration services for universities, government agencies, nonprofits and companies moving from Drupal 7, 8, 9 or 10, or from another CMS, to Drupal 11. We map your content model and modules first, move everything with repeatable Migrate API runs, and give every old URL a 301 redirect.

  • Drupal 7 to 11
  • Drupal 8, 9, 10 upgrades
  • WordPress to Drupal
  • Migrate API
Example run on a placeholder site. Drupal 7 stopped getting security updates on 5 January 2025.
An old server tower and rack with blinking amber lights in a cramped closet
Still runningThe site still runs on Drupal 7, which stopped getting security updates on 5 January 2025.

Why Drupal sites get stuck on old versions.

Four problems that keep older Drupal sites where they are. Each one has a known fix.

  1. 01

    Drupal 7 is past end of life

    Drupal 7 reached end of life on 5 January 2025, and the Drupal project no longer publishes security releases for it. Drupal 10 follows on 9 December 2026. Any vulnerability found after those dates stays open unless someone patches it, and security reviews will flag the site.

  2. 02

    Modules with no Drupal 11 version

    Most Drupal 7 sites run many contributed modules and some custom ones. A few moved into core, some have Drupal 11 releases, and others were abandoned. Custom code written for Drupal 7 hooks such as hook_menu will not run on Drupal 11 without a rewrite.

  3. 03

    Years of URLs that will 404

    Old aliases, /node/123 paths, file links and pages other sites point to can all break when content types are merged, path patterns change or content gets new IDs. Without a redirect for each one, visitors land on 404 pages and the rankings those URLs earned can be lost.

  4. 04

    Content too big to copy by hand

    Thousands of nodes, files, users and translations do not move by copy and paste. Field collections, embedded media tags in body text and old text formats all need converting. A one-off script that cannot be rolled back and run again turns every mistake into manual cleanup.

We check all four in the free migration audit

The deliverable

What we map before the first migration run

Most migration problems start before the first line of code. This is the map we agree with you before any content moves.

6 components, every page

1
2
3
4
5
6
1

Content types mapped to Drupal 11

Every content type, field and vocabulary gets a target. Field collections usually become Paragraphs, and unused fields are dropped.

2

Module audit: replace, port or retire

Each module gets one decision: now in core, a Drupal 11 release, a replacement, a port of custom code, or retirement.

3

Old URLs mapped to redirects

Aliases and old system paths are matched to the new entities, so each one returns a 301 instead of a 404.

4

Theme rebuilt in Twig

Drupal 7 PHPTemplate files do not carry over. Templates are rebuilt in Twig, with the design kept or refreshed.

5

Repeatable migration runs with rollback

Import, roll back and import again on staging, as often as needed, until counts and spot checks match the source site.

6

Launch checklist

Content freeze, final delta run, redirect checks, caching, cron, search indexes and forms, signed off one item at a time.

The fix

Drupal migration, planned field by field and run until it is right.

Every retainer is built around the verticals it serves. Below is the work — and we'll tell you on the audit call which of these actually move the needle for your situation.

8
Workstreams
90d
First ranking move
Talk to a strategist
  • A content model audit that maps every content type, field, vocabulary, user role and file to its Drupal 11 target before any code is written
  • A module audit with one decision per module: use core, use the Drupal 11 release, replace it, port it, or retire it
  • Migrations built on the core Migrate API with migrate_plus and migrate_tools, kept as code in your Git repository
  • Repeatable runs on staging with drush migrate:import and drush migrate:rollback, checked against source record counts
  • Custom Drupal 7 modules rewritten for Drupal 11, using services, plugins and event subscribers where the old hooks no longer exist
  • A theme rebuilt in Twig from your current design or a new one, with CKEditor 5 text formats set up for editors
  • Every old URL mapped to a 301 with the Redirect module and Migrate Redirect Map, our contributed module on drupal.org
  • Drupal 8, 9 and 10 sites upgraded in place: Upgrade Status report, deprecated code fixed, then Composer and database updates one major version at a time

How we deliver

A phased rollout — not a 100-page strategy doc.

You see live work shipped every month, with quarterly executive reviews to recalibrate priorities.

1

Audit

Month 1

  • Content model and field mapping
  • Module audit: core, contrib, port or retire
  • URL inventory from aliases, redirects and analytics
  • Fixed quote and migration plan
2

Build

Months 2–3

  • Composer-managed Drupal 11 codebase
  • Migrations in code, with rollback
  • Custom modules ported
  • Twig theme and CKEditor 5 setup
3

Launch

Month 4+

  • Content freeze and final delta run
  • 301 redirects built and status-checked
  • Launch checklist sign-off
  • 404 watch after go-live

Why us, for this vertical

What we bring that the generic agency down the street doesn't.

A Drupal migration is mostly mapping and testing. These are the four things we do differently.

We wrote the redirect module

Migrate Redirect Map, our contributed module on drupal.org, builds 301 redirects from migrated content's old paths using the migration's own map tables. Old links keep working, and paths it cannot match are listed for review before launch.

Runs you can repeat

Every migration is code. We run it on staging, roll it back, fix the mapping and run it again until the counts match. The final delta run after the content freeze uses the same code, so launch day repeats a process you have seen work.

Current Drupal, current practice

We built acuative.com on Drupal 11, and the new site went live in October 2026. Every build uses a Composer-managed codebase, configuration exported to Git and a Twig theme, so the next major upgrade is routine work.

Timelines from real projects

We published a study of 29 real Drupal migration projects and how long each took from start to launch. Your own schedule comes from the audit of your site, with named milestones and a fixed quote before work begins.

FAQ

Got questions?

The same questions every prospect asks. Don't see yours? Tell us — answers within one business day.

Ask us anything

What does a Drupal 7 to Drupal 11 migration involve?

It is a rebuild plus a content move, not an in-place upgrade. Drupal 8 and later were rebuilt on a different architecture, so we build a new Composer-managed Drupal 11 site, port or replace modules and rebuild the theme in Twig. Then the Migrate API moves content, users, files, taxonomy, menus and URL aliases. Old URLs get 301 redirects, and the final run follows a short content freeze.

How much do Drupal migration services cost?

It depends on the number of content types and fields, the volume of content and files, how many custom modules need porting, contributed modules with no Drupal 11 release, languages, integrations, and whether the theme is rebuilt or redesigned. The free migration audit counts each of these on your actual site and ends with a fixed quote, so the price reflects your site rather than a guess.

How long does a Drupal migration take?

Sites with many custom modules, integrations or languages take longer; content-led sites on standard modules move faster. We published a study of 29 real Drupal migration projects with their start-to-launch timelines, which shows how widely they vary. After the audit you get a schedule with named milestones. Be wary of anyone who quotes a launch date before they have seen the codebase.

Should we move to Drupal 10 or Drupal 11?

Drupal 11. Drupal 10 reaches end of life on 9 December 2026, so a new build on 10 would need another upgrade almost at once. Moving between modern versions is far smaller than leaving Drupal 7: deprecated code is removed, contributed modules are updated and database updates run. A well-kept Drupal 11 site moves to Drupal 12 the same way.

We are on Drupal 8, 9 or 10. Is that a migration or an upgrade?

An upgrade, done in place, so your content and database stay where they are. We run Upgrade Status to find deprecated code and modules without a compatible release, fix custom code by hand and with Drupal Rector, update everything through Composer, run database updates and export configuration. Older sites step through each major version in turn. It is usually much less work than a Drupal 7 migration.

Will our search rankings survive the move?

Nobody can guarantee rankings, but the most common causes of lost traffic after a migration are missing redirects and missing content, and both are preventable. We inventory every old URL from aliases, the redirect table, the sitemap and analytics and map each one to its new page; Migrate Redirect Map builds the redirects for migrated content from the migration itself. After launch we test every status code, then watch 404s and rankings.

Can you migrate from WordPress or another CMS to Drupal?

Yes. The Migrate API reads from SQL databases, CSV, JSON and XML through source plugins in core and contributed modules such as migrate_plus. WordPress posts, pages, categories and media map to Drupal content types, taxonomy and media entities. The process is the same as a Drupal 7 move: a content model audit first, repeatable runs on staging, and a redirect for every old URL.

Who owns the code, and who supports the site after launch?

You own everything: the codebase in your Git repository, the migration code, the theme and every account. Nothing is licensed back to you. After launch we can stay on through a monthly Drupal support plan that covers security updates, tested backups and fixes, or hand over to your own developers with documentation and editor training.

Free SEO audit

Ready to plan your move to Drupal 11?

Get a free 30-minute audit. We'll walk through your current rankings, the keywords you're missing, and what we'd do in the first 90 days. No deck, no sales pitch.

Or email [email protected]

Field Notes

Get the next one by email

Research on Drupal, WordPress and search. Measured, not guessed. New pieces straight to your inbox.

Confirmed opt-in. One click to leave, any time.