This is one of the most common questions Karl gets asked, and the honest answer is: it depends. Not because that is a convenient way to avoid giving a straight answer, but because the cost of an ExpressionEngine upgrade is genuinely driven by factors that vary enormously between installations.
What follows is a straightforward breakdown of what those factors are, so you can arrive at a realistic sense of what an upgrade might involve for your specific site.
The biggest factor: which version you are starting from
EE version 7 is the current version. The further from that you are starting, the more complex the upgrade path.
- EE 6 to EE 7. This is typically the most straightforward upgrade. The database structure and template syntax are largely compatible. Most well-maintained add-ons have EE7 versions. For a site without heavy custom code, this is often a relatively contained piece of work.
- EE 5 to EE 7. Somewhat more involved. There are breaking changes between versions that require template and configuration work. Add-on compatibility needs careful auditing.
- EE 4 or 3 to EE 7. These upgrades run through multiple sequential database migrations and require more comprehensive template work. Custom add-ons are more likely to need rewriting or replacing.
- EE 2 to EE 7. This is the most complex category. EE 2 required PHP 5, which itself is long past end of life. The database structure, template syntax, and add-on architecture all changed significantly across the versions between EE 2 and EE 7. This is a serious migration project, not a simple update.
Add-on complexity
Every add-on your site depends on needs to be audited for EE7 compatibility. Most add-ons from established developers have current EE7 versions available. The complications arise when:
- An add-on has been abandoned by its developer and has no EE7 equivalent, requiring either a replacement or a custom rewrite
- The site uses bespoke add-ons written by the original agency, which need to be audited and updated individually
- A large number of add-ons are in use, each requiring individual compatibility testing
A site with three or four well-supported add-ons from active developers is a very different proposition from a site with fifteen add-ons, three of which are custom-built and two of which have been abandoned.
Custom template and code complexity
ExpressionEngine template syntax has evolved across versions. Sites that were built with a lot of complex template logic may require more thorough template work during an upgrade, particularly from EE 2 or 3 where the syntax differences are more significant.
Similarly, if the site has custom PHP modules or extensions, these need to be reviewed and updated for compatibility with current EE and PHP 8.
What is typically not negotiable
Regardless of the starting version, any properly executed EE upgrade should include:
- A full database backup before any migration steps
- Upgrade work carried out on a staging environment, not on the live site
- Thorough testing of all key functionality before go-live
- A clear rollback plan if something unexpected occurs at go-live
An upgrade that skips these steps in order to reduce cost is an upgrade that is likely to cause problems.
Getting an accurate estimate
The only way to give you an accurate cost for your specific upgrade is to look at the site. Karl will carry out a proper audit of your EE installation before providing a cost estimate, covering the EE version, add-on inventory, custom code, and template complexity. That audit gives both parties a clear picture of what the upgrade involves and what it will cost, with no surprises.
If you would like an honest assessment of what upgrading your ExpressionEngine site would involve and cost, get in touch.