Drupal 9 to 11 Upgrade: What Actually Costs Money

If you're running Drupal 9, you've got a deadline: November 2026. That's when Drupal 9 reaches end of life and stops receiving security updates.
You've probably gotten quotes for upgrading to Drupal 10 or 11. Maybe they range from £5,000 to £50,000. Maybe you're wondering what you're actually paying for and whether the quotes are reasonable.
Let me break down what actually drives cost in these upgrades, what's straightforward, and what gets expensive.
Why You Can't Just Stay on Drupal 9
First, let's be clear about why this matters.
After November 2026, Drupal 9 will no longer receive security updates. If a vulnerability is discovered - and they inevitably are - there won't be a patch. You'll be running a website with known security holes.
You might get away with it for a while. But eventually, something will happen: a security scan will flag your site, your hosting provider will send warnings, or worse, you'll actually get compromised.
This isn't optional maintenance. It's a deadline.
The Good News: Core Is Straightforward
Upgrading Drupal core itself - the foundation of your site - is typically straightforward.
Drupal 9 to 10, and 10 to 11, are designed to be incremental upgrades. If you're running Drupal 9 with no deprecated code warnings, upgrading to 10 can be as simple as updating composer files and running the update script.
Cost for just core upgrade on a simple site: £500-£2,000
This assumes no custom code, all contrib modules have compatible versions, and nothing breaks during testing.
Of course, most sites aren't that simple.
What Makes Upgrades Expensive
Custom Modules
If your site has custom functionality built specifically for you, that code needs to be updated.
The question is: how well was it written?
Well-written custom code that follows Drupal standards usually updates easily. The developer checks for deprecated functions, updates a few API calls, and it works.
Poorly-written custom code that took shortcuts or used undocumented APIs might need significant rewriting.
Cost range: £1,000 - £15,000+ depending on how much custom code you have and what state it's in.
How to estimate: If you have 5-10 small custom modules, expect £2,000 - £5,000. If you have complex custom functionality throughout the site, expect more.
Contributed Modules Without Updates
Most popular contributed modules have Drupal 10/11 compatible versions. But sometimes:
- A module you rely on hasn't been updated
- A module has been abandoned by its maintainer
- A module has been replaced by a different approach in newer Drupal
When this happens, you need to either:
- Find an alternative module and migrate your functionality
- Take over maintenance of the old module (usually not worth it)
- Rebuild the functionality in custom code
Cost range: £500 - £5,000 per problematic module, depending on complexity.
How to check: Look up each contributed module you use on Drupal.org and check if it has a Drupal 10/11 version.
Custom Theme
If your site uses a custom theme (which most do), it needs to work with the new Drupal version.
Minor theme updates are usually straightforward—update some Twig template syntax, check that CSS and JavaScript still work.
But if your theme is old, uses deprecated functions, or was built with outdated practices, it might need significant work.
Cost range: £1,000 - £8,000 for theme updates, depending on complexity and how outdated it is.
Alternatively: This might be a good time to redesign. If you're paying to update old theme code anyway, sometimes spending a bit more for a modern theme makes sense.
Testing
This is the cost everyone underestimates.
Upgrading the code might take a few days. Testing that everything still works—all your content types, all your views, all your forms, all your integrations, all your user workflows—takes longer.
For a typical site:
- Developer testing: 1-3 days
- Client testing and feedback: 1-2 weeks
- Fixing issues discovered during testing: 1-3 days
- Final verification: 1 day
Cost range: £2,000 - £8,000 just for proper testing and iteration.
You can skip thorough testing. But then you find problems after launch, which is much more stressful.
Hosting and Infrastructure Updates
Sometimes the upgrade requires updating your hosting environment:
- Newer PHP version
- Database upgrades (MySQL or PostgreSQL)
- Web server configuration changes
- Deployment pipeline updates
If your hosting is modern and well-maintained, this is usually included in the upgrade work.
If your hosting is old or hasn't been touched in years, this can add complexity.
Cost range: £0 - £3,000, depending on how outdated your infrastructure is.
What You Can Do to Lower Costs
Start From a Good Place
If you're still on Drupal 9, you can make the upgrade easier by:
Cleaning up before you start:
- Update all contributed modules to their latest Drupal 9 versions
- Fix any status report warnings
- Remove modules you're not using
- Document what custom functionality you actually need
This reduces surprises during the upgrade.
Choose Your Target Version Wisely
You can go:
- Drupal 9 → Drupal 10 → Drupal 11 (two steps)
- Drupal 9 → Drupal 11 (one jump)
Going to Drupal 10 first is more conservative. Going straight to 11 means one upgrade instead of two.
For most sites in 2026, I'd recommend going straight to Drupal 11. It's stable, it has long-term support, and you won't need another major upgrade for years.
Budget for What You Actually Have
A realistic budget accounts for:
- How much custom code you have
- How old your theme is
- How many contributed modules might be problematic
- How thoroughly you need to test
Small site (basic content, few customisations): £5,000 - £10,000
Medium site (custom functionality, custom theme): £10,000 - £25,000
Large site (extensive custom code, integrations, complex workflows): £25,000 - £50,000+
These are ranges, not quotes. Your actual cost depends on your specific site.
What Should Be Included
A good upgrade project includes:
- Audit - Reviewing your site to identify what needs updating
- Upgrade plan - Documenting the approach and potential issues
- Development environment setup - Creating a safe place to work
- Code updates - Actually updating modules, theme, and custom code
- Testing - Both developer testing and client testing time
- Documentation - Recording what changed and why
- Deployment - Moving to production safely
- Post-launch monitoring - Watching for issues after go-live
If a quote doesn't include all of these, ask what's missing.
Red Flags in Quotes
Be cautious if:
- The quote is suspiciously low
"£2,000 for a complete upgrade" probably means they haven't actually reviewed your site, or they're planning to cut corners. - There's no discovery phase
A proper quote requires at least a basic audit of your site. If they're quoting without looking, they're guessing. - Testing isn't mentioned
"We'll upgrade your code and deploy it" without testing time is a recipe for problems. - There's no buffer for issues
Upgrades always uncover some surprises. A quote with no contingency is unrealistic.
The Alternative: Rebuild
Sometimes clients ask: "Should we just rebuild the site instead of upgrading?"
Rebuilding makes sense if:
- Your current site has accumulated technical debt and is hard to maintain
- You want to fundamentally redesign the user experience
- Your content model needs significant changes
- The upgrade cost is approaching rebuild cost anyway
Upgrading makes sense if:
- Your site basically works and you're happy with it
- Your content model is solid
- Your team knows how to use the current system
- You want predictable cost and timeline
Rebuilds sound attractive but usually cost 2-3x what you expect and take longer. They're sometimes the right choice, but not because you're avoiding an upgrade.
Timeline Expectations
A typical Drupal 9 to 11 upgrade takes:
- Discovery and planning: 1-2 weeks
- Development and initial testing: 2-4 weeks
- Client testing and fixes: 2-3 weeks
- Final preparation and launch: 1 week
Total: 6-10 weeks from start to launch.
You can compress this if you have urgent deadlines, but rushing increases risk.
Getting Started
If you need to upgrade:
- Start now, not in October 2026
The closer you get to the deadline, the more rushed everything becomes. - Get a proper audit
Anyone quoting an upgrade should review your site first. - Budget realistically
A £3,000 budget for a complex site will either leave you with an incomplete upgrade or a nasty surprise invoice. - Plan for testing time
This isn't something that can be rushed. - Choose someone who's done this before
Drupal upgrades have patterns. Experience matters.
The Drupal 9 to 11 upgrade isn't optional, but it doesn't have to be painful. With realistic expectations and proper planning, most upgrades are straightforward.
Just don't wait until November.
Considering a Drupal 11 upgrade?
If you're still on Drupal 9, now is the time to plan your upgrade - not next autumn. I've guided plenty of sites through this. Let's talk about what your upgrade actually needs.