Adjacent majors — the cleanest upgrade

Upgrade Drupal 11 to Drupal 12

Drupal 11 → 12 is the smoothest major upgrade Drupal offers — same architecture, mostly module updates and cleanup. The real question most people have isn't "how," it's "can I do this myself?" Here's the honest answer.

What the Drupal 11 to 12 upgrade involves

Because Drupal 11 and 12 share the same underlying architecture, this is a managed update, not a rebuild. For a typical site it's a matter of days, not months. The work is:

  1. Check readiness — run the Upgrade Status module to see which contributed modules have Drupal 12-compatible releases and where deprecated code remains.
  2. Update dependencies — bump your modules and themes to their Drupal 12-ready versions via Composer.
  3. Clear deprecations — fix any deprecated API usage in custom code (tools like Rector automate much of this).
  4. Bump the core constraint — move your drupal/core-* requirements to ^12 and resolve what Composer flags.
  5. Test & deploy — run database updates, QA on a staging copy, then deploy.

Can I upgrade Drupal 11 to Drupal 12 myself?

Short answer: yes — this is the path most likely to be realistic in-house. It's adjacent majors, so there are no architecture surprises. But "doing it yourself" now carries an assumption worth being honest about.

Modern Drupal is Composer-first. In Drupal 10 you could still install a module by uploading a ZIP through the admin UI. Drupal 11 removed that — module installation and updates now happen through Composer, a command-line tool. That single change is the biggest reason people who used to manage their own Drupal site suddenly can't.

To upgrade Drupal 11 yourself today, you (or someone on your team) realistically need:

If that describes you, Drupal 11 → 12 is genuinely achievable on your own. If it doesn't — if you've only ever managed the site through the admin interface, or your hosting has no terminal — you'll hit that wall fast. It isn't a reflection of your ability; it's a deliberate direction. Drupal has increasingly oriented toward professional developers, and tools meant to soften that (the Project Browser module, the Drupal CMS distribution) are still maturing.

And this only gets steeper the further back you start: see Drupal 10 → 12 and Drupal 9 → 12.

So should you?

If you have the command-line comfort and a cooperative host, the Drupal 11 → 12 upgrade is a reasonable in-house project. If any of the pieces above are missing — or you'd rather your team spend its time elsewhere — it's a small, low-risk engagement to hand off. Either way, staying current from here keeps every future upgrade this easy.

Want a second opinion on doing it in-house?

Tell us what you're running as well as any additional tech stack details. From there we can figure out together if an upgrade makes the most sense — or if there's another option best suited for you and your organization.

Tell us what you need →

Tell us what you need

Share your site and any additional tech stack details. We'll flag your Drupal version and hosting setup, and figure out together whether a DIY Drupal 11 → 12 upgrade is realistic for you — or better handed off. No obligation.

We'll email you back and may follow up if we spot significant issues worth fixing. No spam.

Drupal 11 to 12: frequently asked questions

Can I upgrade Drupal 11 to 12 myself?

Yes — it's the most DIY-friendly path (adjacent majors). The catch is it's Composer-only now: you need command-line access, Composer/Drush comfort, and a host that supports them. With those, it's very doable solo; without them, you'll get stuck.

Why can't I install modules through the admin UI anymore?

Drupal 11 removed ZIP-upload module installation that Drupal 10 still had. Modules are now managed through Composer on the command line. The Project Browser module is an emerging UI-based alternative, but it's still maturing.

How long does Drupal 11 to 12 take?

For a typical site, days rather than months — it's module updates, deprecation cleanup, and a core version bump, not a rebuild.

What if my host doesn't support Composer?

That's a common blocker. You'd either move to a host with terminal/Composer support, use a local environment like DDEV to build and deploy, or have someone handle the upgrade for you.