Skip to content
EE Forge eeforge logo

Case Study: Newsroom

A news site was dealing with a severe drop in readership and subscriptions as well as constant "site unavailable" messages for users. Automated attacks against the site were wreaking havoc and preventing legitimate users from reaching the site. After a few months of struggling with the issues I was enlisted to solve the underlying problems.

Handling excessive automated traffic

The first step was addressing the excessive automated traffic that was overloading the server thereby preventing access for many valid users. Cloudflare was already in use but had not been fully configured to their needs. Those settings were adjusted to successfully block the majority of automated traffic. Over the course of a week we slowly tightened the security and were able to eliminate the majority of the automated traffic. By moving slowly the negative impact on valid traffic was minimized.

Optimizing for performance

The server was no longer being overloaded by automated traffic but visitors continued to complain about the usability of the site. Evaluation revealed a combination of issues - inefficient queries and caching, malformed HTML and bloated stylesheets and scripts were all contributing the performance issues.

A very old version of the Bootstrap framework was being used that did not leverage modern practices. By updating the underlying framework we were able to remove the bloated stylesheets and javascript while also fixing the malformed HTML. A complete "build system" was put into place for implementing only the necessary parts of Bootstrap rather than loading the entire library - the majority of which was not being used.  The series of extra javascripts that had been scattered throughout the site for loading ads were all pulled in and bundled in a single, clean Javascript file that executed in a "non-blocking" way.

The Expression Engine site templates were reworked to optimize the queries and caching. In the homepage alone queries were cut by a whopping 75%! Caching queries and output further improved response times.

The Outcome

The result has been a highly performant site. After just one week I received this comment from the client:

"The job you have done has put us on a positive course again. Thank you. Traffic is starting to rise and subscriptions are going up...People who could not see the site can again and a lot of that had to with the behind the scenes stuff."