Drupal

Drupal 7 to Drupal 10 Migration: A Practical 2026 Guide

June 16, 2026 6 min read By TOP CMS

Drupal 7 reached official end of life on January 5, 2025. No more core security fixes from the Drupal Security Team, no more guaranteed contrib support. If you are still on it in 2026, you are running an unpatched CMS, and that is the real reason to move, not because a newer version exists. This guide is how we actually run a Drupal 7 to 10 migration: what it costs, how long it takes, what breaks, and when the honest answer is “don’t migrate to Drupal at all.”

First, drop the word “upgrade”

There is no in-place upgrade button from Drupal 7 to Drupal 10. The architecture changed completely between Drupal 7 and Drupal 8, and everything since has built on that new foundation. A Drupal 7 to 10 migration is a rebuild: you stand up a fresh Drupal 10 site, recreate the content model, and move your content and users into it with the migration system. People who expect a one-click update are the ones who get hurt, because they budget for an afternoon and discover a project.

How long it actually takes

Acquia quotes 16 to 30 weeks for enterprise D7 to D10 rebuilds, and for a large government or higher-ed site that is realistic. Most sites are not that. A straightforward brochure or content site with a few content types and a clean theme is more like 4 to 8 weeks. A site with heavy custom modules, a complex editorial workflow, or thousands of pages with messy data sits in the middle, 8 to 16 weeks. The variable that moves the number most is not content volume, it is how much custom code and how many abandoned contrib modules you are carrying.

What it costs

We scope these as fixed-price projects after an audit, because hourly open-ended migrations are how budgets blow up. Rough brackets we have seen and quoted:

  • Small content site (clean theme, standard content types, low custom code): $6,000-15,000.
  • Mid-size site (custom content model, some integrations, moderate custom modules): $15,000-40,000.
  • Large or regulated site (government, higher-ed, CiviCRM, complex workflows, heavy custom code): $40,000-150,000+.

The single biggest cost driver is custom and contrib code that has no Drupal 10 equivalent. Migrating content is mostly a solved problem; rebuilding bespoke functionality is where the hours go.

The three real paths, and how we choose

Most guides describe one migration method. In practice we pick between three approaches at the audit stage.

Standard rebuild with the Migrate API. The default for most sites. Fresh Drupal 10, recreate the content types and fields, then use Migrate Drupal (in core) to move content, users, taxonomy, and files. Best when your content model is worth keeping and your custom code is modest.

Retrofit for heavy custom code. If you have a pile of custom Drupal 7 modules that still encode real business logic, the Retrofit tooling (backed by the Drupal Association) lets some D7 code run on Drupal 10 with a compatibility layer, buying time. We treat it as a bridge, not a destination, but it can cut the rebuild cost on code-heavy sites.

Replatform to something else. The path nobody selling Drupal services mentions. If your Drupal 7 site is a content site that never used Drupal’s real strengths (complex content modeling, granular permissions, multilingual at scale), a rebuild on WordPress is often cheaper to build and far cheaper to maintain afterward. We build both, so we will say it plainly: not every Drupal 7 site should become a Drupal 10 site.

What breaks in the move

The predictable casualties of a Drupal 7 to 10 migration:

  • Contrib modules without a D10 version. Some D7 favorites were never ported or were replaced by something with a different name and different behavior. Each one is a decision: find the modern equivalent, rebuild the feature, or drop it.
  • Your theme. Drupal 7 themes do not run on Drupal 10. The front end is rebuilt, usually on a modern base theme or a custom theme using Twig. Plan for design and front-end work as part of the budget, not an afterthought.
  • Custom modules. Anything written for Drupal 7’s hook system needs rewriting for the object-oriented, Symfony-based Drupal 10.
  • URL structure and SEO. Paths and aliases change unless you plan for them. We map old URLs to new ones with redirects before launch so you do not torch your rankings, a step we see skipped constantly.

CiviCRM and other elephants

If your Drupal 7 site runs CiviCRM (common for nonprofits and associations), the migration is its own project. CiviCRM has its own upgrade path that has to be coordinated with the Drupal rebuild, and getting the sequence wrong corrupts data. Same goes for Drupal Commerce stores and any site with a real integration to an external CRM, ERP, or payment system. These are not blockers, but they need to be on the table at the audit, not discovered in week six.

How we run a migration, step by step

  1. Audit. Inventory every content type, module, and integration. Flag what has a D10 path, what needs rebuilding, what gets dropped. This is what makes a fixed price possible.
  2. Content model on Drupal 10. Build the content types, fields, and taxonomy fresh, cleaning up the cruft D7 sites accumulate over a decade.
  3. Migrate content and users. Run the Migrate API, validate counts and relationships, fix the data that does not map cleanly.
  4. Theme and front end. Rebuild the design on Drupal 10, mobile-first, with the editorial experience your team actually uses.
  5. Redirects and SEO. Map old paths to new, set canonical tags, preserve metadata.
  6. Staging, QA, launch. Everything validated on staging, then a planned cutover with a rollback plan.

Do this before you call anyone

Two things make every quote you get more accurate and cheaper. Pull a list of your enabled modules (the admin module page) so a developer can assess the contrib situation fast. And decide honestly whether your site needs Drupal’s complexity at all, because that answer changes the whole project. If you are not sure, an audit will tell you.

Where we fit

We run Drupal 7 to 10 migrations as fixed-scope projects after a paid audit, and we will tell you at the audit if replatforming is the smarter spend. If you are weighing whether to stay on Drupal or move elsewhere entirely, that is a conversation worth having before the rebuild, not after.

Budgeting a rebuild off Drupal 7? Our guide to how much a Drupal website costs breaks down build versus ownership figures.

Got a related project?

Send a quick brief — we'll suggest the best path forward.

Contact Form Demo