ExpressionEngine Website Upgrades and Maintenance

Your Friendly ExpressionEngine Experts. We'll get it sorted!

ExpressionEngine Template Code

ExpressionEngine is a Content Management System which allows total flexibility in both design, functionality and administration.

The content is structured in channels which you or your developer sets up to match your business function. This allows the database structure and the site structure to be aligned and attuned to the purpose of your website and the needs of its administrator.

ExpressionEngine is like a blank canvas enabling you to have complete freedom to create the online presence that reflect your brand and offering. ExpressionEngine developers know how database tables are created and how the system sits together, but although there is a common understanding, every installation is different.  Different channels, different design, different add-ons and different JavaScript.

All software is vulnerable to attack and this is why it is crucial that you keep your website up to date. New exploits (ways of causing damage to software) are discovered every day. Developers need to be on top of these and fix them as soon as possible. The developers of ExpressionEngine release security patches and software enhancements every month, so there is no reason why you should not keep your website as secure as possible.

Some CMS solutions offer automatic updates directly on the live site.  This sounds great, it is certainly cheap.  Well it is cheap so long as the update went smoothly; if it didn't, you could end up with a very embarrassing period of time with your customers!

Whether you have been hacked or you have suffered the results of an unattended update on a live server, the result is not nice.  Having your live site broken wastes time and can be very expensive depending upon the extent of the damage.  That is why we do all updates and upgrades on our development server and test thoroughly before the changes are put live.

We have been maintaining and upgrading ExpressionEngine websites since 2012, we know how best to approach upgrades, even when a site is in poor health and hasn't had an upgrade in years. We can also identify any front end markup, frameworks or JavaScript that has become deprecated.  Any additional considerations can be dealt with at the same time as the ExpressionEngine upgrade.

Why ExpressionEngine Maintenance Matters

Security

You may not be storing sensitive information on your website but you do want to be completely in control of what is shared.  Some hackers just want to cause inconvenience, they just want to make it obvious that they have managed to damage your site, but there are others that are more malicious and would try to get to your data for more nefarious reasons. It may seem boring to have to keep updating your website but believe me, you would much rather be bored than have all the stress and expense of fixing a site if it is damaged.

How is my site vulnerable?

Hosting

The first point of weakness is your hosting, this is why it is important to choose a trusted hosting provider; one which will prevent hackers from accessing your database or code base directly.

Database

You also need to choose sensible and secure user and password credentials for your database, the more random the name and password the better.  Most CMSs use industry standard databases such as mySQL or mariaDB; so long as your hosting provider can maintain the database at its LTS (Long Term Support) release, you should be fine.  However, being able to use the most secure version of a database also requires that the other software on your website is also kep tup to date.

Whilst we are on the subject of software, this is where more of the vulerabilities can come in and they appear when you don't do your end of the bargain and keep your website code up to date.

PHP

ExpressionEngine, like WordPress and other well known CMSs, runs on PHP. You need to keep your installation up to date.  To understand how secure the version of PHP is that you are running you can check here: https://www.php.net/supported-versions.php

Before you jump ahead and change your PHP version, which is done on your server, you need to check that the version of ExpressionEngine your site is running will support it.  The opposite could be said about changing your ExpressionEngine version, you need to check that you can run it on the version of PHP that you have installed on your server.  There's nothing tricky about this, you just need to be aware of it.

Another thing to look out for is that you ensure that the right PHP modules are installed on your server when you change PHP version, often these need to be installed manually.  Again, that is not tricky, you just need to remember to do it and how.

ExpressionEngine

Like PHP, Major ExpressionEngine releases are supported for a given amount of time.

Here is the list of ExpressionEngine versions, take a look to see if the version you are running is still being supported.  Of course, if you aren't actively keeping your ExpressionEngine installation up to date, this table of support dates is rather academic.

https://expressionengine.com/support/version-support

JavaScript

JavaScript is mostly used on the client side of your website, i.e. it is usually run by your browser, the application that you view your website with, e.g. Safari or Microsoft Edge.  Just because it is run on the client machine, doesn't mean that you don't need to keep it up to date as well.  Any piece of software can be a victim of malicious attacks.  Often developers will make use of JavaScript libraries, often open source, and these too need to be updated and when you update the library, you usually need to update the bespoke JavaScript that has been written for your site.

Frameworks

Often developers will use frameworks when developing a site; it speeds up development and makes the site more maintainable. You know what I'm going to say here don't you? Yes, you are getting the picture, frameworks also change.  It depends on what type of framework we are talking about, a framework such as Laravel provides functionality and most definitely needs to be kept up to date.  This is the versioning scheme for Laravel: https://laravel.com/docs/12.x/releases#versioning-scheme

Of lesser importance security wise is the use of frameworks for styling, e.g. Tailwind or Bootstrap. Whilst these do not pose as big a risk security wise, there is a lot of new functionality that you will not get the benefit of if you don't grab the latest versions.  Eventually, really old styling will stop being supported by newer browsers, so there is still no room for complacency there either!

Performance

ExpressionEngine runs on PHP and there are improvements in PHP in every new version, not to mention improvements in speed. To make use of the latest versions of PHP, you need to have code that runs on that version and to have code that runs on that version, you need to keep ExpressionEngine up to date.

The other benefit of keeping your CMS up to date is that you get all the latest new features and bug fixes.  It really is a win win.

Search

Maintaining a clean code base is also important when it comes to your search rankings. Google and other search engines promote well constructed sites because well constructed sites run smoothly and speedily.

Our Process

For new customers who are needing support with their ExpressionEngine website, we provide an initial audit and health check.  We look at the versions of your database, PHP installation, ExpressionEngine version, JavaScript versions and any frameworks that the site is using.  We then provide you with a report on what is needed on a sliding scale, we will give you an honest breakdown of what you need to do urgently down to what is of lesser importance.  It isn't just about security, it is about useability, browser compatibility and search.

All work is done on a development server where it is thoroughly tested before the changes are deployed to your live site.

For our existing clients, we keep their sites regularly updated so that they can focus on their business rather than worrying about website software.

In either case, we feel it is important to keep our clients updated on each step of the process.

Case Studies

Upgrading from ExpressionEngine version 2

Upgrading from ExpressionEngine 2 is quite a big jump, so this upgrade did not work smoothly on the first attempt.  Don't worry, we always do upgrades on a development machine first so the issues we encountered were not live issues! The problem was that the Add-ons were not compatible with the latest version of ExpressionEngine but the updated version of the Addons were not compatible with ExpressionEngine version 2! Chicken and egg type of scenario!

There was a bit of trial and error but we could easily roll back and start again.  The solution in the end was to upgrade to version 3 before moving on to version 5 and then version 7.

The other problem was that some Addons were now so old that they were no longer supported so we had to look for appropriate replacements.  This just meant that we had to replace the addons and do some work on the templates which used them.

Compressed JavaScript

Sometimes people part with their original developer and are no longer able to get hold of the source code, there is no source control repository, just FTP access to their website.  This is unfortunate as uncompressing JavaScript or CSS does not always produce very developer friendly code which makes it more time consuming to change.

We have had a client with this issue a number of times, the choice is to work around the code, not touching it but working with it or to replace it. For the short term it is usually most cost effective to leave that code untouched but when a significant change to the site is required; that is a good time to review and replace.  Often it is using deprecated libraries anyway, the lack of original source code just escalates its replacement.

Common Issues we solve

  • pages that do not render correctly due to JavaScript errors
  • pages that load too slowly due to inefficient templates
  • add-ons that no longer work correctly
  • removing unused components that are detrimentally affecting website performance
  • lost access to the CMS
  • 404 errors (page missing errors)
  • Badly implemented templates
  • Poor client side code which results in bad page renders or poor performance
  • Broken forms
  • Broken navigation / menu items
  • Broken integrations with 3rd party software
  • Unused templates clogging up the Admin System
  • Lost links / broken navigation in the CMS
  • DNS or domain name configuration
  • Redirecting of old URLs

FAQs

How often should I update ExpressionEngine?

There isn't a definitive answer for this question as not all of the incremental updates will be pertinent to your installation.  However, I would not leave an upgrade for more than 4-6 months. There will be a lot of changes during this time and usually the longer you leave it to upgrade, the more work will be needed to implement the upgrade.  We have a close eye on what is being released so we can identify which releases are most important to a client.

Will updates break my site?

They can, which is why we never deploy changes to a site without testing on a development server first.  Any issues can then be resolved before the changes go live.

Do you work with older versions?

We have done a number of upgrades from version 2. As of time of writing, we haven't come accross an ExpressionEngine version 1 site but if you have one, we up for the challenge!

How much does ExpressionEngine maintenance cost?

That really does depend on the complexity of the site; how many add-ons, which add-ons, front end libraries and 3rd party integrations.

Why Choose Us?

We are full stack developers with over 25 years development experience and we've been working with ExpressionEngine since 2012.  We have written and maintained add-ons, JavaScript so you can be confident that we can fix anything that it is broken or create something to replace it.

Take a look at our testimonials to see what our customers are saying.

We offer a flexible service plan to suit your requirements.

Do you have an ExpressionEngine site that is in need of a new developer to look after it? Contact us and find out how we can help you.