A fast website isn't just good for users, it's better for the environment too. Unlike cars, a faster website is more efficient, not a "gas guzzler." This non-technical guide explores why websites become slow, how to analyse them, and approaches to improve optimisations for a more sustainable experience.
Is my website slow?
Website speed is about user perception and expectation. Studies show that page loads beyond three seconds cause abandonment rates to increase. Mobile users are even less patient, and with the predominant form of consumption being via mobile devices, not having a fast mobile-first website implementation can have a dramatic effect on engagement.
If a device has a poor data download speed, the website is so huge that it can’t be downloaded at all, or it only partially loads and doesn’t work properly, then users can’t access your services at all!
Speed is critical for:
- User experience - slow websites risk losing users and harming reputations
- SEO rankings - faster websites rank higher in search engines
- Engagement and satisfaction for both users and internal teams
Try these tools to assess your site's performance:
- Google Lighthouse (Chrome extension)
- PageSpeed Insights
Sustainability tools to consider:
- Website Carbon Calculator provides a rank between A+ and F. Anything not ranked “F” is better than the global average, so the more websites approach A+, the more previously higher-ranking websites slide back towards F. Whilst that’s a mathematical battle you can’t win, the site does show how many grams of CO2 it calculates are produced for each page visit.
Green Web Foundation checks if your hosting provider is "green."
Why is my website slow?
Many factors contribute to a slow website. There may be one main issue or several smaller issues combining to impact performance.
Two of Drupal’s selling points are its performance and scalability, and it is important to consider both. Even a well-architected Drupal site needs ongoing monitoring and optimising as content and traffic grow.
Here is a list of some of the main enemies of high performance, with some specific information on how they can be mitigated, especially as part of a well architected Drupal solution.
Large Media Assets
Videos and images have to be downloaded from the server before they can be displayed within a page in the browser. Large files slow a website down, especially on mobile devices when data coverage is poor. It is not uncommon to find huge images displayed at a fraction of their size on a website. Resolving these issues is often a quick win for site performance:
- Image dimensions should match their display size.
- Decorative large hero banner images can be displayed at a lower resolution.
- Always use the correct image format for the type of image, e.g. PNG or SVG over JPG for graphs.
- Optimised image formats should be used, e.g. WEBP.
- JPG files can be optimised, although that will reduce quality.
- For mobile, consider replacing video backgrounds with static images.
Drupal has some very clever solutions in place to resolve these issues:
- It uses "image styles" to display images at configured dimensions, storing the originally uploaded high-definition image, and creating and storing a new version at the size required for specific use cases.
- Selecting an image focal point can allow Drupal to create sensible images with a different aspect ratio from the original image.
- Configuring responsive image styles allows different images to be displayed depending on the device.
- Drupal compresses JPG files at upload and offers conversion to WEBP to further reduce file sizes.
Cloudflare can also be configured to polish images for further optimisation, which it then caches. The original assets remain unchanged.
When a CMS is unable to manage media assets well, the onus falls on content creators to manually create different assets for different use cases. That’s simply tedious when a well configured CMS is capable of this.
Whilst individual files, e.g. Word, Excel or PDFs, are not downloaded as part of another webpage, they can still add to the perception of a slow website. Downloading a huge PDF on a mobile device with poor data coverage is going to be slow, so including file sizes next to download links can help manage user expectations on load times.
Slow Media Asset Delivery
Web application servers are configured to run code, interact with database servers and many other tasks. When they also need to serve media assets, they will not be optimised to do that one simple task.
Serving media assets from the same server as your website code can work for small sites but for larger sites it is better to separate deployed code from your media assets:
- Use Amazon S3 storage fronted by an AWS CloudFront CDN.
- Integrate with Digital Asset Management (DAM) solutions like Acquia DAM.
Media servers are configured simply to serve up files rapidly. Drupal can be configured to utilise CDNs and DAM solutions.
Too Many Files
A single web page can load dozens of additional files; CSS for theming, Javascript (JS) for client side processing, fonts, as well as dozens of images per page. The loading of every single file requires an “HTTP request” from the browser back to the server to find and load the file, and every request takes time to perform. Minimising the number of files is a good technique for improving performance.
Some CMSs load any and all site-wide CSS/JS on every page. Even when aggregated these files can be huge. Modern Drupal optimises CSS and JS intelligently:
- Single Directory Components (SDC) ensure CSS and JS are held separately for individual components, which are only loaded when required.
- For every page, automatically aggregating the required CSS into one file and the required JS files into one file and storing both for future use.
Third Party Assets
External files, such as libraries that contain CSS/JS for tracking, social media or functional widgets, can’t be aggregated alongside application CSS/JS because they are loaded from an external source via the browser; they don’t come from your application server. That requires additional HTTP requests. Instead:
- Self-host libraries so Drupal can aggregate the CSS/JS alongside its own CSS/JS.
- This reduces HTTP requests and file sizes.
- It can improve security as you know exactly what software is being run.
- Consider ‘lazy loading’ or deferring the load of third-party widgets like video embeds, interactive charts.
Google Tag Manager (GTM) configurations should be regularly checked to ensure redundant assets are no longer being included. Unnecessary, missing or poorly optimised or broken external Javascripts can be detrimental to site speed and cause failures in separate functionality, causing website issues that are hard to diagnose.
Hosting Bottlenecks
Having hosting that can handle your typical traffic levels is critical. This includes server power (memory, CPU, load balancing), and database size and speed.
Hosting considerations:
- Plan for scaling during seasonal peaks or marketing campaigns… and remember to scale back down afterwards to save money.
- Use monitoring to detect issues like distributed denial of service (DDoS) attacks or aggressive crawlers.
- Tools like Cloudflare or other web application firewalls (WAF) can help mitigate these threats.
- Host physically close to your user base to reduce latency which improves load times.
Since Drupal is built with PHP and uses common database engines, its hosting requirements can follow established best practices to ensure optimal performance and scalability for the application.
Zoocha’s own hosting configuration on AWS ensures web servers, cache, load balancers, and file systems scale based on defined triggers within seconds.
Too Much Content
Users want to find what they need quickly. Having to sift through too much content—even on one page—can feel like a slow experience. It’s why Google’s AI Overviews are having such a big impact on site traffic; people are finding specific answers very quickly without even having to visit your site to wade through your content.
Questions to consider:
- Can redundant content be removed? Regular content audits supported by Digital Analytics can help inform decisions for content revisions.
- Can personalisation or better sign-posting improve user journeys?
- Does the site structure reflect current business goals and meet user needs? A User Experience audit can reveal better ways to get users to where they want to go.
- Can improving SEO techniques lead to better performance with Google AI Overviews, ensuring your site is cited as a trusted source for your key information? Your site traffic may still be down, but those who decide to continue on to your website are more likely to be higher quality visitors.
A clear information architecture supported by machine and human readable sitemaps, alongside consistent design elements and a clear menu can all be implemented on pages using Drupal to reduce the cognitive load on users.
Drupal has other strong technical solutions to help users find what they were looking for quickly. These include:
- A powerful and configurable SEO framework.
- Filterable listings.
- Strong page search solutions.
Poor Front-End Experience
Slow loading assets like fonts, CSS and JS, can cause “janky” layout shifts as the page loads, which gives the impression of a slow website. Users may click on something that suddenly moves on the screen, meaning they have to backtrack, leading to frustration.
Often font libraries are used to display icons: the whole font library will be downloaded while only a handful of icons may actually be in use. These unused icons add unnecessary page weight which in turn slows down the site’s loading
Drupal implements “lazy loading” where the loading of non-critical assets are deferred if they are not displayed immediately on screen, whilst still leaving a space for the asset to load without shifting content around. This technique reduces the time required for the page to be ready for user interaction and improves the perception of speed. Lazy loading third party assets such as videos and infographics is also a useful technique, as these tend to include larger chunks of JS and CSS, which can’t be aggregated.

Slow Code
The HTML that displays your webpage in the browser does not sit on the server waiting to be downloaded. It needs to be generated by the code that drives the website. In Drupal’s case this is PHP tied to a database. Code can be slow because it has never been optimised.
Drupal’s code is open-source:
- It is available for inspection and improvement by the huge Drupal developer community.
- Keeping Drupal core and contributed modules up-to-date means you are running the latest versions, which will include performance optimisations.
Drupal’s recent implementation of custom performance monitoring of its codebase, has seen a raft of performance optimisations. Drupal 11 will bring noticeable improvements across several key areas because of these optimisations and the move to modern versions of Symfony and PHP.
An experienced development team will be aware of the latest industry trends and new features in the latest versions of Symfony, PHP, CSS, Javascript and Drupal generally to further enhance performance. Having custom modules peer-reviewed by such a team will help avoid the deployment of poor code and provide the opportunity for further optimisations.
Constant performance monitoring can highlight issues that occur after a specific code deployment to allow immediate further investigation.
Slow Database Queries
Drupal’s database architecture is described as “highly normalised” with tables often holding values for just one field. Drupal is optimised for such an architecture and the approach makes Drupal extremely flexible, facilitates multilingual sites, content revisioning and complex publishing workflows, enhancing modularity and flexibility, and allows the separation of configuration and state.
Such an architecture reduces the likelihood of any one table getting huge, but that can still happen and may impact performance. As the degradation of performance can build gradually over many months or years, slow database queries often go unnoticed. Monitoring of database query performance will help to identify such issues and even a simple check of database table sizes and row counts can highlight possible issues for further investigation:
- Historical data could be pruned with regular pruning added to the application.
- Could be a symptom of a wider issue or poor solution that can be investigated.
- Additional table indexes can be added and these can result in a dramatic improvement on query speeds.
Complicated queries spanning multiple tables, can benefit from the creation of a junction table to optimise data accessibility. Drupal already does this with its search indexing solution.
Lack of Caching
Even with a well optimised codebase and database, regenerating the HTML on every request is incredibly inefficient, yet many CMSs do just that.
Drupal implements a multi-level caching system designed to boost performance by reducing the need to rebuild pages or fetch data from the database for every page request and is key to Drupal’s enviable performance and scalability:
- Page caching: For anonymous users, Drupal can store fully rendered pages and serve them directly without rebuilding.
- Dynamic page cache: For logged-in users, Drupal caches as much of the page as possible while still allowing for personalised content.
- Render caching: Pieces of the page (Drupal Blocks, Views, etc.) are cached individually to avoid re-rendering them every time.
- Entity and data caching: Content entities (like nodes, users) and configurations are cached separately.
- Internal and external cache: Drupal can use internal caching or integrate with external systems like Redis, Memcache, or CDNs for even better performance.
Drupal uses cache tags, contexts, and max-age settings to smartly invalidate and vary cached content. The configuration of caching needs to be considered when building and configuring a Drupal website. Whilst some of it is automatically undertaken, there will be instances when it needs to be implemented by experienced site builders who understand the nuanced requirements for caching in particular circumstances.
Drupal integrates perfectly with server side caching mechanisms, such as Redis, Memcache, Varnish and those provided by CDNs.

How can I make my website faster?
The causes of poor website performance and the opportunities for improvement are numerous and varied. Some are easy to spot with a quick examination of the website, and some are caused by very obscure reasons deep within the code, architecture, database or hosting. Some are caused by persistent or sudden external factors, some as unexpected consequences of planned changes, and some get imperceptibly worse over time.
There is no single solution, but we recommend a program of monitoring to track performance, auditing to understand performance issues and then implementing improvements.
Monitor
Ongoing monitoring captures data over time, identifying trends and sudden changes, and confirming the impact of any improvements implemented.
Zoocha monitors site availability for the majority of our clients. We use UptimeRobot which provides some basic response time metrics for a single web page. This allows us to be responsive to major server issues or attacks that can bring down your website or cause serious service degradation, but such monitoring can’t provide the necessary detail to inform decisions on longer term site wide optimisations.
Basic performance monitoring should be enabled permanently and should:
- Be useful and easy to understand.
- Provide generate insights into what could be improved.
- Issue alerts to warn against threshold breaches or sudden changes.
Extended monitoring can be enabled permanently or only when deeper insights are required, perhaps as part of an audit. Richer data sets naturally take more time and effort to analyse. It can come with additional ongoing costs, not just in the analysis of the data, but also for the tools that perform the monitoring.
Never just monitor your homepage. That is an important, very custom page but is not representative of your website. You can use your Digital Analytics to help inform your choices, but as well as monitoring your homepage you should consider:
- Key landing pages.
- An example of each type of content type you have; News, Events, Products, etc.
- Pages that have complex functionality.
- Pages that have previously been a cause for concern.
There are dozens of tools and approaches that can be used to provide ongoing basic monitoring. These include:
- Google Lighthouse
- Sitespeed.io
- Cloudflare Speed Insights
- Speedlify
- Googles Core Web Vitals
- AWS Cloudwatch
- Newrelic APM
- AWS CloudWatch
- Your existing Google Analytics
For extended monitoring New Relic is an observability platform that allows you to monitor, troubleshoot, and improve digital performance across the whole website. Zoocha has New Relic installed on most client hosting infrastructures, but it is often disabled as it has usage costs.
Amazon’s RDS (database) service also has provisions for enabling a deeper analysis to identify slow queries.
Audit
A performance audit is a period of focused investigation that aims to identify actionable improvements. It can build on existing monitoring or be a one off examination, digging into general or specific causes of poor site performance.
With some impactful issues easy to identify, starting with a basic audit is a sensible approach. The outcomes of basic audits and ongoing monitoring can identify where to focus additional effort on issues:
- Affecting just one page.
- Occurring in specific circumstances.
- Caused by a poorly configured site.
- Caused by deeper database problems.
- Caused by poorly optimised code.
We use tools like XHProf for code profiling, the in-depth analysis of New Relic reports to assist with extended audits plus manual investigations.
Implement
We always recommend a plan of incremental site performance improvements starting with items that will have the biggest impact for the least effort. At some point changes will only provide marginal gains, so gradual improvements are key. Making a small number of changes enables ongoing monitoring to measure and confirm impact, and is also kinder to project budgets.
Other Sustainability Improvements
Hosting
Cloud hosting providers are often more sustainable due to scale. AWS, Acquia, Platform.sh, GCP, and Pantheon are all moving toward carbon neutrality.
User Experience
A common fallacy is that the longer a user remains on your website, the happier they must be and the better it is for your business, but that’s not true for all websites and in all situations. If a user finds what they were looking for quickly and leaves, then you have a happy customer. A strong information architecture, backed by thorough and ongoing user research, aims to shorten user journeys. When users struggle to find what they’re looking for they have a poor user experience, and every incorrect page they visit unnecessarily increases the environmental impact of your website.
Understanding your users through User Experience (UX) design and insights derived from Digital Analytics (DA), can help you turn your website into a “find engine” which will improve sustainability.
Accessibility and Dark Mode
Accessible web design helps everybody use the web just that little bit easier, which shortens the time users need to spend on your website, so improving sustainability and user experience. Drupal's and Zoocha’s commitment to accessibility standards (WCAG 2.2) supports these goals.
A dark website design or optional “dark mode” can reduce device screen power consumption, especially on OLED screens, assuming a good contrast ratio is maintained.
Oh the irony, Zoocha!
If you ran Zoocha’s website through any of the suggested tools, then yes, we’re not practising what we preach! Our site launched in 2018 and doesn’t reflect many best practices we'd recommend.
We’re working on it. A new website is coming in 2025.
Zoocha Can Help
If you think you have a slow website or want to reduce its environmental impact, Zoocha can:
- Provide both basic and extended monitoring.
- Offer fixed-price basic performance audits and create tailored proposals for extended audits.
- Improve site performance incrementally and iteratively in line with Drupal best practice.
- Undertake UX reviews.
- Help configure your Digital Analytics.
- Assist with content audits as part of a wider content strategy.
Whether you're already on Drupal or considering migrating to it, contact Zoocha today to boost your site's performance and sustainability with expert Drupal guidance!
About the author

This article has been pulled together from the insight provided by experts across our team. With site performance, considering the front end architecture, back end structure, hosting infrastructure and user experience is key to success. From our Technical Client Services Manager Duncan, to Front End Expert Paul and DevOps extraordinaire Titi, this article draws on our breadth of experience prioritising performance in Drupal.