Decommission or switch off additional environments, such as testing / Quality Assurance QA) / re-production and other such environments when they are not useful.
success criterion:
Unused environments: Ensure no unused environment is available, balancing the cost of deploying an environment with the cost of keeping it online while unused.
Look into this: how to reduce environments on Vercel
Only send data from the server when the visitor needs it. As much as possible, you can rely on client-side or server-side cache and client-side local storage. Rather than refreshing data on a given frequency, it might be up to the visitor to manually ask for a refresh.
success criterion:
Refresh frequency: Frequency for refresh (of both the cache, locally stored data, and the page) is defined depending on visitor needs.
Edge computing can help optimize energy usage by reducing the amount of traffic transferred over the internet.
success criteria:
Content delivery networks (CDNs): When building for a globally distributed audience, use a CDN to store and serve simple read-only, pre-generated resources in a fast and efficient manner. Although they definitely can increase performance, it is also another layer of infrastructure which needs to be considered for sustainability.
Sustainability commitment: Check the CDN to verify that it provides a commitment to sustainability.
Local servers: Choose a hosting provider with servers located close to the visitor.
Run as much as possible at the edge.
Avoid dynamic resources: Avoid using the service to host dynamic resources (such as JavaScript) as due to cache partitioning, any benefits are negated by weaker performance, and the potential introduction of security and privacy issues.
Find out what this means and make appropriate adjustments.
Every file will take up a certain amount of room on a server’s hard drive, and this data will need to be sent across-the-wire to each visitor. Doing so will consume resources, but by using compression algorithms you can shrink each file to make its journey less ecologically impactful.
success criteria:
Server-side compression: If using a CMS, install an applicable plugin to enable on-the-fly server-side compression, such as Brotli or GZIP. Otherwise, use the provided server configuration files to include and tweak the performance related features to the requirements.
Use BROTLI
Fallback to GZIP
Media compression: Compress your various images, fonts, audio, and video; by reducing the quality and offering different resolutions / dimensions (sizes) before uploading to a server or content management system.
Navigation errors lead to mistakes, which lead to visitor’s wasting time trying to resolve them, or abandoning a website altogether. Anything that can be done to interject, predict and way-find around potential problems will reduce emissions over time.
success criteria:
Error pages: Maintain sites by ensuring links are correct, and if errors occur, provide suitable way-finding within optimized pages for each error type to ensure resources can be identified to help a visitor to complete the task they started.
User test all forms
Minimize and optimize form inputs
Group inputs properly
Collect only necessary data
Redirection: Redirect websites, subdomains, and pages only when necessary. Proactively seek broken or outdated links and fix them. A redirect or search will often help reduce the number of pages a visitor needs to load.
Test regularly for dead links (Lighthouse? Sitespeed?)
For security reasons and in accordance with an SLA (Service-Level Agreement), it is often recommended to duplicate data to make sure it remains available if a problem occurs. This should be balanced with the cost of such duplication. Not all data is critical and, rather than overcompensating with multiple saves, duplication should be designed with efficiency in mind.
success criterion:
Data backups: Backups of system and user data are both incremental and secure.
Create and enforce backup policy for maximum sustainability
Optimize storage of data according to what is most important, relevant and required in service to visitor’s. This will help to avoid unnecessary storage of data that may not be useful or valuable, which will reduce required infrastructure, power, and data transfer.
success criteria:
Reduce redundancy: Remove unnecessary and redundant data from your servers, whether it is single-use (dark data) or abandoned.
Prune all data in app to separate local (backed up) folders keeping online data to the minimum
Expiration dates: Create data with an expiration date. Excess data is a form of technical debt, and routinely cleaning up old data needs to be normalized.
Set up systems to autoclean expired data
Classify and tag: Use a data classification / tagging policy to make it easier to find, handle and remove.
Tag everything worth tagging
Justify storage: Store data only when it is difficult to recreate.
Single source of truth
Don’t store data that can be derived again quickly
In addition to reducing the environmental impacts of a website, choose a hosting service that mitigates remaining impacts. To make sure of this, there are many criteria to look for.
success criteria:
Monitor metrics: To assess the environmental impacts of hosting and detect overconsumption, some indicators should be monitored: energy / water usage, CPU / Memory usage, allocation of servers and CPU cores, etc. These indicators could be used to calculate metrics directly related to environmental impacts, such as Power Usage Effectiveness (PUE), Water Usage Effectiveness (WUE) and Carbon Usage Effectiveness (CUE). They could be displayed to visitor’s for transparency and monitoring reasons.
Investigate how to check this locally and on Vercel. Are there alternatives?
Equipment longevity: Manage equipment responsibly by keeping them as long as possible, using them as efficiently as possible, making sure they are certified, and purchasing long-lifespan products.
Check how Vercel does this. Are there alternatives?
Recycling waste: Recover, recycle, and upcycle waste including equipment.
Check how Vercel does this. Are there alternatives?
Renewable electricity: Electricity comes entirely from sources with the lowest possible carbon intensity (ideally generated by wind or solar rather than from non-renewable sources). For example, Renewable Energy Credits (RECs) can help verify the source, or, ideally, prove that electricity comes directly from renewable sources.
Check how Vercel does this. Are there alternatives?
Remaining emissions: Compensate remaining emissions, keeping in mind that the priority should be to avoid then reduce them and only compensate for them if they cannot be avoided. Carbon credits may not be sustainable, therefore the effectiveness of an offset solution must be verified, shown to be both environmentally viable and sustainable, and part of a longer-term strategy to eliminate emissions entirely from a chain, benefitting the wider ecosystem.
Any tasks, especially repetitive, that can be automated should be automated (compilation, deployment, tests, etc.) to reduce time at the computer being wasted by people.
success criteria:
Automate tasks: Every recurring task, such as deployment, testing, or compilation, can be run automatically, as is recommended by continuous integration / continuous delivery best practices.
Set up CI/CD
Automate testing
Unit/integration (Vite)
End-to-end (Playwright)
Pixel-to-pixel (visual regression)
Snapshot (Vite or Playwright?)
Regression
SiteSpeed (performance, coach, etc.)
Browserstack
axe/Lighthouse (bulk run)
Find others
Necessitate tasks: To reduce wasted processing cycles, every automated task is only run when needed.
Determine the frequency with which tests need to be run.
Automated scaling: Use automated scaling infrastructure to automatically increase the capacity of the web server and implement buffering / throttling to respond to visitor demand.
Learn how this works on Vercel (or equivalent if moving)
Security tooling: Web browsing from bots has been steadily increasing in recent years. As such, it is a growing concern for security, performance, and sustainability. Use security tools that automatically block bad actors and minimize bad behavior. This results in substantially less load on the server, less logs, less data, less effect due to compromise and more. The result of compromised websites is a large increase in HTTP, email and other traffic as malicious code attempts to infiltrate other resources and exfiltrate data. Compromised websites are typically identified by anomalous patterned behavior.
Depending on carbon-intensity, some processes and communications should be delayed and sometimes batched. This could also be a way to reduce the workload on a server or VM. In such cases, visitor’s should be warned that the process is asynchronous and notified when it is over.
success criteria:
Batch processing: By default, non-critical processes and communications are batched and launched only when carbon-intensity is under a given threshold.
All non-critical processes/comms are batched and performed at low carbon-intensity times
Protocol usage: Ensure the communication protocols are relevant to the visitor needs and data transferred. Avoid using insecure protocols (HTTP, FTP), and prioritize more efficient and privacy-aware data routes for visitor’s (HTTPS, SSH).
Select infrastructure with minimal specifications meeting business requirements of performance, availability, etc.
success criterion:
Lowest requirements: Select infrastructure elements with the lowest requirements tier, meeting your service-level agreements. Avoid over-provisioning multi-datacenter, multi-zone or distributed deployments if standalone instances meet the requirements. Also avoid provisioning infrastructure that will be under-utilized by provisioning for established average loads, ensuring reasonable resource utilization and autoscaling occurs as needed. Avoid provisioning for peak loads.
Browser caching reduces the requirement for files to need to be constantly reloaded from the server, and in certain situations it can even allow for files to be viewed offline (or in the case of a reverse-proxy, send immediate recurring requests without additional calculation or computation from the server). As such, this will have emissions savings and performance benefits (for instance by greatly reducing Time-To-First-Byte).
success criteria:
Server-side caching: If using a CMS, install an applicable plugin to enable on-the-fly server-side caching. Otherwise, use the provided server configuration files to include and tweak the file-type cache expiration using expires, bfcache or cache-control HTTP header.
Consider before adding a CMS
Offline access: Client-side JavaScript uses a combination of ServiceWorkers, WebWorkers, storage Application Programming Interfaces (API’s), or cookies (if necessary) to reduce friction in the user-journey. For example, through the use of a PWA (Progressive Web Application) to ensure that an offline version is available and accessible at all times to reduce inequality and improve accessibility.