Skip to main content
Back to all blogs
Drupal

Drupal 9 to 10 Migration: A Step-by-Step Guide for Smooth Transition

REEA Digital Team5 min read
Share:
Drupal 9 to 10 Migration: A Step-by-Step Guide for Smooth Transition

As one of the most capable open-source enterprise content management systems (CMS), Drupal provides a flexible, security-hardened foundation for complex digital platforms. With Drupal 9 having reached end-of-life, migrating to Drupal 10 (and preparing your architecture for Drupal 11) is essential for ongoing security advisories and modern editorial tooling. This step-by-step guide outlines a structured migration workflow to ensure a smooth, zero-downtime upgrade.

Why Upgrade to Drupal 10?

Before beginning the technical migration, it is helpful to understand the architectural and operational benefits of upgrading to Drupal 10:

Modernized Content Authoring: CKEditor 5 replaces CKEditor 4, delivering a faster, more intuitive rich-text editing and media management experience.
Ongoing Security & Community Support: Because Drupal 9 has reached End-of-Life (EOL), upgrading ensures your platform continues receiving official Drupal Security Team advisories and module updates.
Refined User Interfaces: Modern default themes—Claro for administration and Olivero for the front end—improve accessibility (WCAG compliance) and editorial usability.
Modernized Technology Stack: Built on Symfony 6, PHP 8.1+, and Twig 3, Drupal 10 delivers faster execution performance, stronger type safety, and a clean upgrade path to Drupal 11.

Upgrading keeps your digital platform secure, performant, and aligned with modern PHP engineering standards.

Pre-Migration Checklist

Before initiating your migration, complete these essential preparatory steps:

Audit Existing Modules & Themes: Inventory contributed modules and custom code to check Drupal 10 readiness.
Full Site and Database Backup: Create an archive of core files, databases, and custom assets before proceeding.
Verify System Requirements: Confirm PHP 8.1+, database engine, and server stack meet Drupal 10 prerequisites.
Evaluate Module Compatibility: Use the Upgrade Status module to identify obsolete extensions and replacements.
Schedule Maintenance Windows: Plan communication with stakeholders and schedule a temporary maintenance window.

Step-by-Step Migration Process

Step 1: Perform a Core Upgrade and Update Contributed Modules

Drupal 9 to Drupal 10 Migration Process Roadmap: Step-by-Step Pipeline for a Successful Enterprise Upgrade
Drupal 9 to Drupal 10 Migration Process Roadmap: Step-by-Step Pipeline for a Successful Enterprise Upgrade

Ensure your site is on the latest release of Drupal 9. Run the Upgrade Status module to verify contributed module dependencies and apply available Drupal 10 updates.

Step 2: Custom Code Evaluation and Rector

Audit custom modules and themes for deprecated functions. Use Drupal Rector to automatically modernize APIs and refactor outdated syntax.

Step 3: Test Migration Locally

Spin up a local staging environment with Docker, DDEV, or Lando. Test your database updates and verify layouts, plugins, and third-party integrations.

Step 4: Execute Drupal 10 Update

Update your composer.json dependencies and run database migrations:

bash
composer update --with-all-dependencies
drush updb
drush config:import
drush cr

Step 5: Post-Upgrade Verification

Perform thorough functional testing across all user roles, checking checkout funnels, contact forms, and content editing workflows.

Step 6: Deploy Upgraded Site Live

Put the production site in maintenance mode, deploy code and database updates, clear caches, verify functionality, and disable maintenance mode.

Post-Migration Tasks

Once the migration is complete, carry out the following post-launch tasks:

Check Performance: Monitor server response times, database query execution, and cache hit ratios.
Update Documentation: Revise internal user manuals and technical documentation for new Drupal 10 workflows.
Train Editors: Conduct training for content editors on CKEditor 5 and updated administrative features.
Establish Routine Maintenance: Set up a scheduled maintenance cadence for security patches and module upgrades.

Tips for a Smooth Migration

Act in Advance: Plan your migration well before Drupal 9 End of Life.
Use a Non-Production Environment: Thoroughly test updates in staging before applying them to production.
Engage the Community: Leverage drupal.org issue queues and community resources for guidance.
Maintain Comprehensive Records: Document every configuration change and custom patch for future reference.
Leverage Automation: Use tools like Drupal Rector and Drush to streamline repetitive migration tasks.

Upgrading from Drupal 9 to Drupal 10 protects your site from vulnerabilities and unlocks modern editorial capabilities. Note: For enterprise platforms looking further ahead, Drupal 11 is now generally available, building upon Drupal 10's foundation with PHP 8.3+ support, recipe-based site building, and streamlined headless architectures.

Frequently Asked Questions

Answers to common questions about upgrading from Drupal 9 to Drupal 10.

What is the process for upgrading from Drupal 9 to Drupal 10?

The process for upgrading from Drupal 9 to Drupal 10 involves checking your current site for compatibility, updating contributed modules and themes, and using the upgrade status tool to identify any issues. After resolving any identified problems, you can proceed with the upgrade using Composer to ensure a smooth transition to the latest version.

Are there any major differences between Drupal 9 and Drupal 10?

Yes, there are several differences between Drupal 9 and Drupal 10. Notably, certain modules and themes that were deprecated in Drupal 9 have been removed in Drupal 10. Additionally, Drupal 10 introduces new features and enhancements, including updated CKEditor 5 support, improved user interface elements, and enhanced performance.

How can I check the compatibility of my modules before upgrading to Drupal 10?

You can check the compatibility of your modules by using the upgrade status tool provided by Drupal. This tool will generate a report indicating which modules are compatible with Drupal 10, which need to be updated, and which may not be supported in the new version.

What PHP version is required for the Drupal 10 upgrade?

Drupal 10 requires PHP 8.1 or higher. It is essential to ensure that your server environment meets this requirement before initiating the upgrade process from Drupal 9 to Drupal 10.

Will my custom modules still work after the Drupal 10 upgrade?

Custom modules may require updates to ensure compatibility with Drupal 10. You should review your custom code for any deprecated functions or APIs that were removed in Drupal 10. Testing your custom modules in a staging environment before the final upgrade is advisable.

Back to all blogs
Share:
LET’S TALK

Let’s discuss your project.

Tell us what you need to build or improve. We’ll discuss your goals and a practical next step.

Request a call

We’ll contact you to arrange a call.