Drupal 10 end of life (9 December 2026): upgrading to Drupal 11
Drupal 10 reaches end of life on 9 December 2026, the same week Drupal 12 is released. Here's what changes in Drupal 11, how the upgrade runs, and the tools that do most of the work.
As of 28 October 2026. Dates and requirements are from drupal.org, linked at the bottom.
In 30 seconds
- What happens: drupal.org says "No new releases of Drupal 10 will be made after" 9 December 2026. That includes security releases.
- Why it matters: on 14 October 2026 Drupal fixed a critical remote code execution flaw (SA-CORE-2026-014). Drupal 10.6 got the fix; versions that were already end of life didn't. After 9 December, Drupal 10 is in that position too.
- Who: roughly as many sites report running Drupal 10 as Drupal 11 (drupal.org usage statistics, October 2026).
- What to do: upgrade to the latest Drupal 11 before 9 December. Drupal 12 is the next step after that, not a shortcut: it can only be reached from Drupal 11.
1. The dates
| Version | Status |
|---|---|
| Drupal 10 (10.6.x) | Security fixes until end of life on 9 December 2026 |
| Drupal 11 | Supported "until mid-late 2028, at least until the release of Drupal 13" |
| Drupal 12 | Release planned for the week of 7 December 2026 |
- Drupal 10.5 and older already get no security fixes; 10.6 is the last Drupal 10 minor release.
- Acquia ends support for Drupal 10 on its products and services on the same day, 9 December 2026.
- Drupal 12 needs PHP 8.5 and can't be installed over Drupal 10. Drupal's own advice is to update "to the latest release of Drupal 11 prior to updating to Drupal 12".
2. What changes on the server
| Component | Drupal 10 | Drupal 11 | Drupal 12 |
|---|---|---|---|
| PHP | 8.1+ | 8.3+ | 8.5 |
| MySQL | 5.7.8+ | 8.0+ | 8.0+ |
| MariaDB | 10.3.7+ | 10.6+ | 10.11+ |
| PostgreSQL | 12+ | 16+ | 18+ |
| SQLite | 3.26+ | 3.45+ | 3.45+ |
| Composer | 2.3.6+ | 2.7.0+ | Latest 2.x |
| Web server | Apache, nginx, IIS | Apache, nginx (no IIS) | Apache, nginx |
The PHP jump is usually the first hurdle: Drupal 11 needs PHP 8.3 or newer. Our PHP 8.2 end-of-life guide covers what breaks in PHP 8.3 and 8.4. Use Drush 13 for Drupal 10.2+ and Drupal 11.
3. What breaks going from Drupal 10 to 11
- Six core modules were removed and now live in contrib: Actions UI, Activity Tracker, Book, Forum, Statistics and Tour. If you use one, install the contrib version while you're still on Drupal 10.
- Symfony 7 replaces Symfony 6, which affects custom code that extends Symfony classes.
- Front-end libraries: jQuery 4 and jQuery UI 1.14, jQuery Form removed, and a newer CKEditor 5 and Twig. Custom themes and JavaScript are where this shows up.
- Microsoft IIS is no longer supported.
- Higher database minimums (see the table above).
- PHPUnit 10, which breaks custom test suites written for PHPUnit 9.
Plan ahead for Drupal 12
Drupal 11 already deprecates modules that Drupal 12 removes, including Ban, Contact, History, Search, Shortcut, Toolbar and the Migrate Drupal modules, plus the Claro and Olivero themes. You don't need to act on these for Drupal 11, but don't build new things on them.
4. Step by step
- Get to Drupal 10.6 first. drupal.org requires 10.3 or later for the upgrade, and 10.6 is the only Drupal 10 line still getting security fixes.
- Install Upgrade Status and work through its report: contrib modules that need a Drupal 11 version, deprecated code in your custom modules and theme, and server requirements.
- Replace removed core modules with their contrib versions, and update contrib modules to releases that support Drupal 11.
- Fix custom code, using Drupal Rector for the mechanical changes.
- Move the server to PHP 8.3+ and the newer database version, on a staging copy. If that means leaving MySQL 8.0, see our MySQL 8.0 → 8.4 guide.
- Run the upgrade with Composer, as in drupal.org's guide:
composer require 'drupal/core-recommended:^11' 'drupal/core-composer-scaffold:^11' 'drupal/core-project-message:^11' --no-update, update Drush, thencomposer updateand the database updates (drush updb). - Test forms, search, editor and media, user login and anything with custom code, then deploy and keep an eye on the logs.
5. Tools that help
- Upgrade Status (free, drupal.org): the official readiness report. It checks deprecated code, Twig templates, module info and server requirements. It only looks one major version ahead and reports problems rather than fixing them.
- Drupal Rector (free): rewrites deprecated code automatically, with coverage up to Drupal 11.4. It skips complex cases and can disturb formatting, so review what it changes.
- Project Update Bot (free): posts automated compatibility patches in contrib modules' issue queues, so a fix for a lagging module often already exists. Drupal labels these patches "use at your own risk": test them.
- PHPStan with phpstan-drupal (free): static analysis for custom code. The older drupal-check wrapper hasn't had a release since 2024; its own README points to using PHPStan directly.
- Drush 13 (free): the command-line tool for running the update steps.
Sources
- Drupal: core release schedule
- Drupal: security advisory SA-CORE-2026-014 (14 October 2026)
- Drupal: announcing Drupal 12 platform requirements
- Drupal 11.0.0 release notes
- Drupal 12.0.0-beta1 release notes
- Drupal: how to upgrade from Drupal 10 to Drupal 11
- Drupal: deprecated and obsolete modules and themes
- Drupal: PHP requirements
- Drupal: database requirements
- Drupal: usage statistics for core
- Upgrade Status module
- Drupal Rector
- Project Update Bot (Project Analysis)
- phpstan-drupal
- Drush: installation and supported versions
- Acquia: Drupal 10 end-of-life FAQ
