Drupal 9 to 11 Migration Guide

Drupal 9 to 11 Migration Guide

Drupal 9 to 11 Migration Guide
Anandaakrishnan G A
29 March, 2025

Ready to move from Drupal 9 to Drupal 11? This step-by-step guide helps you prepare, test, and execute your upgrade with minimal risk — including module compatibility, theme updates, and custom code checks.

Upgrading from Drupal 9 to Drupal 11: What’s New, What Breaks, and How to Migrate Smoothly ⚙️

Drupal 11 is here, and if you're still on Drupal 9, it's time to get moving. With new improvements in performance, Symfony versioning, CKEditor 5, and better APIs — this upgrade is essential for keeping your site fast, secure, and modern. Let’s walk through how to prepare and upgrade your project without breaking things.

🧭 Why Upgrade from Drupal 9 to 11?

  • Drupal 9 is End-of-Life: Security updates will stop. Don’t risk it.
  • Drupal 11 = Faster: Performance boost, cleaner core.
  • Symfony 6.3+ and PHP 8.2+ compatibility.
  • CKEditor 5 replaces CKEditor 4. Huge editor improvements.
  • Deprecated APIs removed — your code stays cleaner and future-proof.

🧼 Step 1: Clean Up Your Drupal 9 Site

Before anything, clean up your project. Remove unused modules, themes, and deprecated code. Use:

composer outdated drupal/*

Then update your contrib modules:

composer update drupal/[module_name]

🧪 Step 2: Run Upgrade Status Check

Install and run the Upgrade Status module. It will scan your current setup and tell you if:

  • Your PHP version is compatible
  • Modules are ready for Drupal 11
  • Your custom code needs refactoring

🔍 Step 3: Check for Deprecated Code

Use Drupal Rector or phpstan-drupal to check for deprecated APIs and functions.

If you used drupal_set_message(), config_get(), or similar — it needs replacement.

🧱 Step 4: Test Custom Modules and Themes

Custom modules and themes must be updated to match Drupal 11 API standards. Focus on:

  • Theme YAML compatibility
  • Module service injection syntax
  • Routing and form builder changes

🔄 Step 5: Update Core and Dependencies

If you're ready, update your core using Composer:

composer require 'drupal/core-recommended:^11' 'drupal/core-composer-scaffold:^11' 'drupal/core-project-message:^11' --update-with-dependencies

Then clear cache:

drush cr

🚧 Step 6: Test Everything Thoroughly

Now run:

  • Functional Testing: Forms, content creation, search, login
  • Theming Checks: Layout, blocks, menu structures
  • Permission Audits: Ensure roles and access controls work

🧠 Bonus Tip: Use a Staging Environment

Never upgrade on your live server. Set up a clone of your Drupal 9 site, test the migration, fix the issues, then push to production when fully verified.

Need Help Upgrading to Drupal 11?

We’ve upgraded projects from Drupal 6, 7, 8, and 9 all the way to Drupal 11 for clients across UK, US, and India. From e-commerce to enterprise portals — we make it stable and seamless.

Let’s upgrade your site together — with no downtime 👇

Talk to a Migration Expert