Specbee: Upgrading from Drupal 10 to the all-new Drupal 11 (and what’s new)

Drupal 11 has arrived! Okay, it’s been a month, but we were too busy exploring its new features to write the blog right away. With improved CKEditor integration, performance boosts, a redesigned Field UI, and updated taxonomy term revisions, this version builds on the success of Drupal 10. It introduces new tools and workflows designed to simplify development, improve performance, and streamline content management—making it easier than ever to create and maintain high-quality digital experiences.
In this article we’ll talk about what makes Drupal 11 so exciting and even walk you through the upgrade from Drupal 10. Dive in!

What’s introduced in Drupal 11
Drupal 11, the latest major release of the Drupal Content Management System, brings powerful new features that enhance the capabilities of developers, site builders, and content owners. This version focuses on modern technologies and best practices to make sites more efficient, scalable, and easier to maintain.
Key improvements in Drupal 11 include enhancements to the developer experience, performance boosts, and advanced tools for content creators. With these updates, Drupal 11 empowers users to build and maintain optimized digital experiences with greater ease.
Below are the major features and enhancements you can expect in Drupal 11 compared to Drupal 10:

Faster real and perceived page performance including interface previews and lazy loading.
New Experimental Recipes API.
Single Directory Components (SDC) – used to create UI components.
Symfony 7 under the hood (replacing Symfony 6).
Decoupled menu support improved with Linkset support.
Content editing is streamlined with automatic formatting.
Menu, taxonomy, block and permission management made easier.

What’s removed
Several Drupal core modules and themes are deprecated in Drupal 10 and removed in Drupal 11. While they are no longer included in Drupal 11, you can still install and use them if needed:

Actions UI
Book
Tracker
Forum
Statistics
Tour

How to Upgrade from Drupal 10 to Drupal 11
Platform requirements
This version of Drupal 11 requires specific conditions to be met in your environment. Please ensure you check the following requirements:

Update to PHP 8.3
Update to Drush 13
Database: It requires MySQL 8.0+ or MariaDB 10.6+. Otherwise, use the mysql57 module to use Drupal 11 on MySQL 5.7.8+ and MariaDB 10.3.7+.
Symfony 7
jQuery 4
PHPUnit 10
Composer 2.7.7
Web server – As of Drupal 11.0.0, it does not support using Microsoft IIS. Other web server requirements remain unchanged. 

Upgrade to the latest Drupal 10
Drupal sites running version 10.2.x or earlier must first upgrade to version 10.3.0 or later before updating to Drupal 11. This is necessary because all core updates introduced prior to version 10.3.0 have been removed.
Upgrade Status + Drupal Rector
Run a deprecation scan using the Upgrade Status module in conjunction with Drupal Rector to identify and address deprecated code before upgrading your Drupal site.

The screenshot below shows the upgrade status report for Drupal Core version 10.1.

Here is a snapshot of the upgrade status report after upgrading Drupal core to the latest version, 10.3.

Update platform requirements as needed
Drupal 11 requires PHP 8.3 and the MySQL database driver requires MySQL 8.0.
While Drupal 11 does not currently use MySQL 8-specific syntax, future versions will. If you cannot upgrade to MySQL 8.0 immediately, you can use the MySQL 5.7 backport module as a temporary solution.

Upgrade Contributed Packages
Upgrade contributed modules & themes to the latest compatible version using Composer. For example:
composer require drupal/package_name:^x.y –no-updateWhere, ^x.y is the latest available version of the package.
For packages without Drupal 11 compatibility, use composer require with mglaman/composer-drupal-lenient and apply necessary patches using cweagans/composer-patches.
Update Custom Code
Use Upgrade Status and Drupal Rector to assess the readiness of your custom modules and themes for Drupal 11. Replace any code that was deprecated in Drupal 10 and removed in Drupal 11.
Update Core to Drupal Core
The following provides instructions for updating from Drupal 10.3.x to Drupal 11.x.

Temporarily grant write access to protected files and directories:

chmod 777 web/sites/default
chmod 666 web/sites/default/*settings.php
chmod 666 web/sites/default/*services.yml
Update the required versions of the core-recommended packages. Use the –no-update option to prevent issues with mutual dependencies during the update process:

composer require ‘drupal/core-recommended:^11’ ‘drupal/core-composer-scaffold:^11’ ‘drupal/core-project-message:^11’ –no-update
Upgrade drush to version ^13:

composer require ‘drush/drush:^13’ –no-update
Perform upgrade to the core using:

composer update

After successfully running composer update without errors, verify that you can also run composer install.
Update the database using drush: 

drush updatedb
Once complete, restore read-only access to the sites/default directory:

chmod 755 web/sites/default
chmod 644 web/sites/default/*settings.php
chmod 644 web/sites/default/*services.yml

For a detailed guide on upgrading, please visit https://www.drupal.org/docs/upgrading-drupal/upgrading-from-drupal-8-or-later/how-to-upgrade-from-drupal-10-to-drupal-11.
Final thoughts
No need to stress though! Drupal 10 isn’t going anywhere for a while. It will remain supported until Drupal 12 arrives, which is expected around mid to late 2026. But the fact that there are so many exciting updates and features in Drupal 11 means that moving from Drupal 10 to Drupal 11 is an opportunity you won’t want to miss. Transitioning now will set you up for future success and make the most of what Drupal 11 has to offer. Thinking about making the jump to Drupal 11? Our Drupal experts are just an email away!