Step-by-Step Guide to Migrating from Drupal 9 to Drupal 10 or 11

12 months ago
Guide to Migrating from Drupal 9 to Drupal 10 or 11

With Drupal 9 reaching end-of-life, upgrading to Drupal 10 or 11 is essential for security, performance, and future-ready features. This quick guide covers everything—from preparing your site and checking module compatibility to executing a smooth, downtime-free migration. Read the full guide to make your Drupal upgrade seamless and secure.

Like any digital platform, Drupal also evolves over time, providing new updates, better security, and better tools for users and developers alike. If your website is still running on Drupal 9 or earlier, it’s probably missing out on a whole new world of features and performance improvements that are already possible with Drupal 10 and Drupal 11.

With Drupal 11 set to improve integration with modern systems, streamline admin workflows, and improve the content editing experience, updating your CMS is a smart move in 2025. In addition to keeping up with digital expectations, maintaining top-notch security, and maximising performance and scalability, it also unlocks better scalability and performance.

Whether you’re planning to do it in-house or thinking about using professional Drupal migration services, this guide will provide you with everything you need to know. Even if your site isn’t on an older version, upgrading to the latest release keeps you ahead of potential issues and lets you make the most of what Drupal has to offer.

Now, let’s walk through the step-by-step Drupal migration process so you can make informed, confident decisions for your website’s future.

Table of Contents

Getting Ready for the Move: A Practical Plan for Drupal Migration

You need a good understanding of your current setup before you can create a better, faster site. Here’s how to lay the groundwork for a successful upgrade.:

Start with a Full Site Review

Before you move on with anything, step back and take a proper look at your current Drupal website. Which version are you running, Drupal 7, 8, 9, or 10? Each version has different migration needs.

Make a list of:

  • All the content types, taxonomies, and user roles
  • Any contributed or custom modules and themes
  • SEO structures or third-party integrations

If you are still on Drupal 7, 8, or 9, you really need to upgrade. These versions are no longer supported, which means they are not getting updates, not getting security patches, and not getting fixes. If you are on Drupal 10, you have a bit more time; it is supported until at least late 2026. Either way, it makes sense to check compatibility for your modules and start planning for Drupal 11.

Tools like the Upgrade Status module can scan your site for deprecated code and help flag what needs updating.

Build a Clear Migration Strategy

After you’ve mapped your current solution, you then need to decide the direction of your migration. Typically, you have two options:

Upgrade Your Current Site.

This option is only available if you have maintained your site with minor releases.

Pros:

  • Keep your current structure and configuration
  • You will be down for a shorter time
  • You will make it easier for your teams to have continuity and preserve knowledge.

Cons:

  • Legacy code and technical debt carry over
  • Custom modules may break
  • Errors can sneak in if you’ve got complex dependencies

Construct a Brand-New Site and Migrate Content

It takes some effort, but it allows you to start from scratch with a modern setup.

Pros:

  • Leave behind old issues and messy code.
  • Redesign the architecture with performance in mind.
  • Adopt modern standards and best practices.

Cons:

  • Needs more time and resources
  • Content migration must be mapped carefully
  • Slightly more downtime during the switch
  • Once you choose the path, create a timeline, assign team responsibilities, and communicate the plan across your organisation.

Set Up Your New Drupal Environment

If you plan to test Drupal 11 without disrupting your live site, you should install it on a staging or development server. This will allow you to test without having to worry about interfering with your live site.

Set up the following required tools:

  • Migrate
  • Migrate Drupal
  • Migrate Tools
  • Migrate Drupal UI
  • Migrate Plus (for advanced migration tasks)

Confirm that all of the modules and themes you install are working with the most recent version. At this point, you should fix and clean any deprecated code in your custom theme or plugin.

Prepare Your Content and Structure

Use this opportunity to rework how your site is built. Don’t just copy and paste your old structure. Instead:

  • Define new content types and fields
  • Simplify taxonomies
  • Optimise user roles and permissions
  • Decide which content stays and which can be dropped

Clean content equals better performance and a smoother user experience.

Run a Trial Migration First

Attempt a test migration before you move everything over. Migrate a small sample of content, it can be a few pages or blog posts, and/or basic user data, and see how it performs in your staging environment.

This will give you the ability to:

  • Identify errors early
  • Confirm content mapping
  • Make corrections in your migration scripts
  • Avoid unfortunate surprises at launch

Handle Complex Data with Care

Once your basic content looks good, move on to heavier elements like:

  • Custom blocks
  • Content relationships
  • Referenced nodes
  • SEO metadata and redirects

Test thoroughly, especially if you’re bringing across custom-built features or third-party integrations.

Do a Full Quality Check

Before you go live, perform a full QA sweep in the staging environment. Check:

  • Links and images
  • User access levels
  • Forms and menus
  • Site speed and mobile responsiveness

This is your chance to fix anything that feels off before the public sees it.

Launch and Monitor Closely

You should launch your final migration and release during a quiet window, preferably overnight or over the weekend, to prevent data loss.

Synchronise any content you’ve added since the test migration. If you go live, keep your development team on standby for 24–48 hours so that problems can be resolved quickly. Watch for missing content, broken links, or poor performance.

Budget and ROI: What Should You Expect?

Depending on your site’s size, custom development, and third-party systems, you can expect to pay much more for a Drupal website migration.

Websites that are small and simpler tend to require less effort and time, while websites that are more complex, with custom modules, integrations, or legacy architecture, will require more planning and development time.

It is important to note that while a migration project will require a significant investment up front, the long-term benefit will outweigh the initial costs.

You will improve your site’s performance, security, and maintenance by upgrading to Drupal 10 or 11. You will also decrease future costs due to improved compatibility and improved upgrade paths built into the newer versions.

Step-by-Step Migration Guide: Upgrading from Drupal 9 to Drupal 10 or 11

You may feel concerned about migrating from Drupal 9 to the latest version, but the process is much easier than going from Drupal 7 to 9, as it is much more streamlined. A well-thought-out migration strategy can minimize downtime and future-proof your platform. Let’s go through a clean, optimized migration.

Get Familiar With What’s New

Before making any changes, you need to consult the release documentation for Drupal 10 or 11. The release notes will have important information like what’s new, what’s been removed, and what’s been added. Knowing this ahead of time will save you some unplanned surprises.

Secure a Full Backup of Your Existing Site

Never start an upgrade without complete safety. You need to back up everything: your database, files, custom modules, themes, and settings. If anything breaks during the upgrade process, your safety net will allow you to restore your site quickly to its original stable state.

Ensure Your Drupal 9 Version Is Ready

It is recommended that you already use one of the final minor versions of Drupal 9-preferably 9.4.x or higher. Earlier versions will not support a direct upgrade path to Drupal 10 or 11.

Ensure that your host environment meets the technical requirements for either Drupal 10 or 11 (PHP 8.1+).

Review and replace any deprecated themes or modules you may be using. For example, CKEditor 4 over CKEditor 5, or the old Seven theme, to a modern theme such as Olivero.

Audit and Update Your Codebase

Now is the time to clean your custom code. Use tools like Drupal Rector to scan for outdated functions and prepare your modules and themes for the newer code standards. While you’re at it:

Replace unsupported tools (like Drupal Console).

Use Upgrade Status to check which contributed modules can be used with Drupal 10 or 11.

Make sure to update your modules with Composer and edit composer.json to include support for the new majors.

When you have cleared all the modules and dependencies, uninstall and remove Upgrade Status from your site.

Handle Any Default File Changes

A Drupal upgrade may overwrite files such as robots.txt and .htaccess. If you made custom modifications to these files, be sure to keep a record of them so you can reapply them once the new version is installed.

Prepare Your Codebase for Core Upgrade

It’s important to prepare your site’s backend before upgrading to Drupal 10 or 11. It’s a good idea to run a test update first to avoid surprises. This involves adjusting permissions, updating packages, and checking for conflicts. Once everything checks out, you can do the upgrade and update the database.

  • Adjust permissions
  • Add the required core packages via Composer
  • Run a dry run to check for conflicts

If successful, proceed with:

  • composer update
  • composer install
  • Then update your database
  • Reapply read-only permissions

Final Checks After the Upgrade

When the upgrade is done, you now need to stabilise and tune your site to power everything that has been learned in this upgrade process:

  • Export your configuration to store your updated configuration that will occur during the upgrade.
  • The final steps would be to push your changes into version control (Git) and finally, use git diff to ensure everything is in sync.
  • Use PHPCS (PHP CodeSniffer) for your custom code to make sure you are adhering to the latest coding standards prescribed by Drupal.

Run your site’s test suite, e.g., PHPUnit, Behat, and verify that there have not been any breakages in any existing functionality during the upgrade.

Monitor logs in real time to catch any emerging issues:

  • bash
  • CopyEdit
  • Drush watchdog:tail

Don’t Forget User Testing

Test forms, navigation paths, login flows, and content displays manually in addition to automated tests. This step will help you detect any user-facing bugs that automated scripts may miss.

You’re Ready to Go Live!

With testing complete and adjustments made, you’re ready to launch your new Drupal 10 or 11 site. Make sure to:

  • Notify all stakeholders.
  • Pay attention to how the site performs in the early days following the launch.
  • Have your development team on standby for post-launch adjustments.

Essential Tools to Simplify Your Drupal Migration

With a wide range of reliable tools and modules designed to simplify the entire upgrade journey, migrating your Drupal site doesn’t have to be complex. These tools will ensure a smooth, efficient, and error-free migration from Drupal 7, 8, or 9 to Drupal 10 or 11.

Upgrade Status

It is always a good idea to check your current site for compatibility. Upgrade Status scans your existing setup and flags any modules, themes, or core components that may not work with newer Drupal versions. Moreover, it provides recommendations for updates or alternatives, making it a good place to start with your migration.

Core Migration Modules (Built-in)

Drupal core is made up of several key modules that help you easily handle site migrations:

Migrate

This is the foundation module for all of the site content and site configuration migration, as it handles all of the migration work.

Migrate Drupal

Provides migrations from previous Drupals, i.e., 6, 7, and 8, to newer versions.

Migrate Drupal UI

Provides a very simple one-page user interface (located at /upgrade) that provides a more intuitive method for providing upgrades, primarily for users coming from versions of Drupal 7.

Migrate Drupal Multilingual

Supports migrations involving multilingual content (still experimental in some versions).

Extended Migration Modules

If your migration has more complex data or external data sources, these modules extend the default migration tools:

Migrate Plus

This extends migrations’ support for additional data sources, improves configuration management, and provides more flexibility in mapping fields.

Migrate Tools

This adds useful Drush commands, and a UI to run and manage migrations, a handy tool for developers or technical site owners.

Migrate Source UI

This module allows you to upload files (like a CSV or XML file) as migration sources. This is valuable to people who need to import structured data.

Migrate Scheduler / Migrate Cron

For users of Cron jobs, these modules provide an automatic migration by leveraging a Cron job to schedule when the data should be extracted.

Drupal Rector

This handy developer tool takes your custom code and automatically replaces outdated functions with modern equivalents, so that you can make custom modules or themes compatible with Drupal 10 and higher while simultaneously reducing the amount of manual work involved in updating them.

Composer

The Composer package manager performs all the necessary work for you to update Drupal modules and dependencies correctly. Upgrade Status also integrates with Composer to ensure that everything has been updated properly and efficiently.

Other Developer-Focused Utilities

These Drush-based tools offer more control and flexibility for managing complex or structured Drupal migrations efficiently.

Migrate Run

A Lightweight Drush tool for running migration scripts without the extra overhead of Migrate Plus.

Migrate Manifest

This lets you run migrations based on a custom list defined in a manifest file, useful for structured migration planning.

Migrate Upgrade

A Drush-only module to help upgrade older Drupal sites directly from the command line.

Why Upgrading to Drupal 11 Is a Smart Move?

There is a substantial improvement in functionality, performance, and developer experience with Drupal 11. This release offers a much smoother upgrade path for organisations that still use old versions of Drupal 7, 8, and 9.

Here are some reasons why it’s worth switching to Drupal 11:

Better Performance with Modern PHP and Symfony

The minimum requirements of Drupal 11 use PHP 8.1+, which is an incredible upgrade for the essential performance enhancements, memory fatigue, and processing speed. Additionally, with Symfony 6, developers benefit from security improvements, enhanced debugging capabilities, and a clean and solid code base.

Modern Front-End Development with JavaScript and SDCs

By reducing reliance on jQuery and adopting ES6+ syntax, Drupal 11 continues its progression towards modern JavaScript standards. Single-Directory Components (SDCs) help developers manage UI elements more effectively by gathering HTML, CSS, and JS files under one directory.

Simplified Site Building

This new feature allows site builders to quickly apply great pre-configured functionality. If you want to add a blog, event calendar, or contact form, Recipes provides you with reusable configurations that will save you time and make it easier.

Improved Content Authoring and Layout Control

Experience Builder and CKEditor 5 allow content teams to easily build engaging pages. CKEditor 5 introduces collaborative editing and a cleaner interface, and Experience Builder allows teams to develop beautifully laid out pages from structured content with very little effort.

A Fresh Look for Sites and Admins Alike

Drupal 11 introduces modern, accessible themes:

  • Olivero, the new default front-end theme, replaces Bartik; it features a clean design that is responsive and meets WCAG AA-level accessibility standards.
  • Claro, the new admin theme, adds modern usability, keyboard navigation, and a mobile-first approach to the user interface.

AI-Powered Personalisation and Automation

AI integration is a feature of Drupal 11. It provides websites with opportunities to customise content based on how users interact with the website in real-time.

This includes:

  • Personalisation for content recommendations
  • Automatic tagging and categorisation
  • Chatbots to give users live support
  • Predictive analytics for better business decisions

Stronger Security and Compliance

Security is at the core of Drupal 11. With advanced role-based access controls, automated updates, and compliance with global data privacy laws, the platform helps protect your users and your brand.

Improved Developer Tooling and Workflow

The enhancements to configuration management, CLI improvements, and improved debugging experience aim to decrease development friction. The Starterkit theme generator also provides theme developers with a good place to build from without worrying about backwards compatibility issues.

Content Governance and Collaboration Tools

From taxonomy moderation and revision history to the Workspaces module, Drupal 11 strengthens content governance. Multiple teams can collaborate on content drafts, test versions in different environments, and push changes live more confidently.

Discover and Extend with Project Browser

The new dashboard Project Browser makes it easy for users to explore and install contributed modules without leaving the site. This makes it easy for teams to grow the functionality without needing in-depth technical knowledge.

Long-Term Cost Savings and Future-Proofing

A Drupal upgrade reduces technical debt, lowers maintenance costs, and increases scalability. A Drupal 11 upgrade also makes it easier to integrate Drupal 11 with future CRMs, marketing platforms, and artificial intelligence systems.

Challenges Faced When Migrating from Drupal 7,8 to 10 or 11

It is a major upgrade to move from Drupal 7 or 8 to Drupal 10 or 11, and while it opens the door to a faster, more flexible platform, it is not without its challenges. Here are eight major ones, with suggestions about how to overcome them.

Unclear Project Scope

It is common for teams to run into last-minute issues when they fail to define what’s within and outside the scope, including SEO redirects, backups, user training, and testing. Setting a clear, detailed scope upfront ensures all functional and business-critical areas are covered before the start of the project.

Skipping a Full Site Assessment

There’s a risk of delays, overruns, and missing key features post-launch if you don’t audit your Drupal 7 or 8 site first. If you don’t understand your existing modules, content types, custom code, and integrations, you run the risk of delays, cost overruns, and missing key features. An accurate technical assessment will help you upgrade more smoothly.

Underestimating Complex Content Structures

A Drupal 7 site usually has deeply nested or referenced content structures, which cannot be migrated cleanly by default. When ignored, this complexity can lead to broken links, missing data, and poor user experiences. A carefully mapped content type and relationship in advance helps prevent downstream issues.

Poor Module Strategy

Not every Drupal 7 or 8  module has a simple match in Drupal 10 or 11. Some may have been deprecated, replaced, or re-organised completely. Underestimating the complexity of a simple switch will lead to problems for you. You need to check your module list, find a supported replacement for each, and then ensure the replacements will be compatible with your website before the upgrade.

Managing the Learning Curve

Drupal’s newer versions have numerous new concepts. Developers and content editors will require time to adapt to the new content management workflows in Drupal. Training resources are available for developers, content editors, and website administrators – online courses, official documentation, and testing or development sandbox environments all help acclimate your team before the final switchover.

Reworking Custom Modules and Themes

Custom modules and themes built for Drupal 7 won’t work out of the box on newer versions. These often need to be rewritten or undergo some heavy mods to work in the coding standards and API for Drupal 10 or 11.

Strengthening Site Security

Security can’t be compromised. Keep all modules updated, enforce proper access controls, and perform security audits. Ensuring a clean and secure build of your Drupal 10 or 11 site protects both your data and your users.

Final Words: Future-Proof Your Drupal Site with Confidence

A Drupal site upgrade isn’t just a technical requirement; it’s also an opportunity for your audience to receive modern, accessible experiences. Whether you’re moving from Drupal 9 or making the leap from an earlier version, this process allows you to restructure your site architecture, implement new features, and stay on top of the latest web standards.

But the success of any migration to Drupal depends on a thoughtful plan, deep platform knowledge, and a steady hand. Even though some upgrades may appear straightforward, they are characterized by hidden complexities such as custom modules, integrations, and accessibility needs that require professional assistance.

Talk to our Drupal experts today.

Frequently Asked Questions

Q1) What are the key performance improvements in Drupal 10 and 11 compared to Drupal 9?

It includes upgrades of Symfony 6/7, improved caching layers, faster Twig rendering with Twig 3, and lazily loading images by default. Drupal 10 and 11 offer significant performance enhancements under the hood. In turn, your site will load faster, have less server strain, and be more SEO-friendly and scalable.

Q2) How does CKEditor 5 improve content authoring over CKEditor 4?

As part of Drupal 10, CKEditor 5 is included, which provides a modern, MS Word-like authoring experience. This version enables real-time collaboration, better media embedding, rich formatting options, and improved mobile compatibility. There are no additional modules required to manage basic styling or media management anymore, so content editors can work faster and with fewer limitations.

Q3) Will upgrading to Drupal 10 or 11 break my headless or decoupled architecture?

Generally, Drupal 10 and 11 continue to provide REST, JSON:API, and GraphQL integrations. However, some deprecated fields or schema changes may impact custom decoupled setups. Ensure smooth frontend-backend communication by validating endpoint compatibility and testing API consumers thoroughly before upgrading.

Q4) What tools can help automate regression testing during a Drupal upgrade?

It is important to use automated testing tools, such as Nightwatch.js (which comes built-in into Drupal), Behat, and PHPUnit for backend testing, to avoid regressions when upgrading. By simulating user interactions, testing business logic, and ensuring stability across updates, these tools reduce the risk of post-upgrade surprises.

Upgrade to Drupal 10 or 11 with Confidence

Discover the step-by-step process to migrate from Drupal 9 without hassles. Ensure better security, faster performance, and future-ready features—start your upgrade today!

Talk to Our Expert!

Introduction

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

AI Cost Factors

Detailed explanation of cost factors.

Development Team

Team size and expertise related costs.

Timeline

Project timeline and sprint details.

Final Cost

Final estimated cost summary.

Chat With Us
I've reviewed the website and have a few questions.
Chat With Us