How it works
Carbon Thinking estimates the carbon footprint of loading a web page. It measures the real data your browser downloads, converts that into electricity, and turns the electricity into grams of CO₂e using the Sustainable Web Design Model (SWDM v4) — the same methodology family as the Website Carbon Calculator and the Green Web Foundation's CO2.js. Every number below is the exact value the calculator uses.
1. Measuring the page
We load the page and record the real on-the-wire transfer size (the compressed bytes actually sent over the network) of the HTML and every resource it pulls in — CSS, JavaScript, images, fonts, audio/video and anything else. There are two measurement modes:
- Quick — a fast server-side fetch that reads the page's initial HTML and weighs the assets it references. Best for traditional sites.
- Deep render — loads the page in a real headless browser (Chromium) and runs its JavaScript, so assets requested at runtime (e.g. images a single-page app fetches after boot, or lazy-loaded media) are included. The browser cache is disabled so every resource reports its true size, and a resource requested by more than one frame is counted once — as a real first-time visitor's browser would serve the duplicate from memory.
2. From data to carbon
The SWDM v4 splits the energy used to deliver a page across three system segments, each with operational energy (running the equipment) and embodied energy (manufacturing it). Data is converted to energy at these intensities, in kWh per gigabyte transferred:
| Segment | Operational (kWh/GB) | Embodied (kWh/GB) | Total |
|---|---|---|---|
| Data centre | 0.055 | 0.012 | 0.067 |
| Network | 0.059 | 0.013 | 0.072 |
| User device | 0.08 | 0.081 | 0.161 |
| Total | 0.3 kWh/GB | ||
That energy is then multiplied by the carbon intensity of the electricity grid to get grams of CO₂e:
gCO₂e = data (GB) × 0.3 kWh/GB × 494 gCO₂e/kWh
Grid intensity: 494 gCO₂e/kWh (global average, Ember). Energy intensities are derived from total internet energy and data-transfer figures (IEA / Malmodin), per SWDM v4.
3. Accounting for repeat visitors
Not everyone downloads the whole page every time — returning visitors have much of it cached. We model an average visit as a blend:
- 75% new visitors load 100% of the data.
- 25% returning visitors load only 2% (the rest is served from their cache).
This gives a cache-adjustment factor of 0.755, applied to the measured data before the energy calculation. We also report the first-visit and return-visit figures separately.
4. The calculation, step by step
- Measure the total transfer size of the page (bytes) across all resources.
- Convert bytes to gigabytes (÷ 1,073,741,824).
- Apply the returning-visitor cache adjustment (× 0.755).
- Multiply by total energy intensity (0.3 kWh/GB) → kWh per average visit.
- Multiply energy by grid carbon intensity (494 gCO₂e/kWh) → grams of CO₂e.
- Map the result to an A+→F rating and a "cleaner than" comparison.
5. Green hosting
We check the host against The Green Web Foundation. A verified green host is treated as running on renewable energy: its data-centre operational emissions are scaled by (1 − 1) = 0. Embodied (manufacturing) emissions, and the network and device segments, are never discounted.
Behind a CDN? When a site is served through a CDN/proxy (e.g. Cloudflare) the true origin host is hidden, so its energy source is unknowable. In that case we apply no green discount and label the hosting as "unknown" rather than overstating it as green.
6. Ratings
The per-visit result is mapped to a grade (gCO₂e per page view):
| Grade | Up to (gCO₂e / view) |
|---|---|
| A+ | 0.095 |
| A | 0.186 |
| B | 0.341 |
| C | 0.493 |
| D | 0.656 |
| E | 0.846 |
| F | above 0.846 |
The "cleaner than X%" figure compares the result against a global average of 0.8 gCO₂e per page view.
7. Limitations
These are estimates, designed for comparison and to highlight what's heavy on a page. Real-world emissions vary with the visitor's device, network, physical location and the carbon intensity of their local grid, with caching behaviour, and with how the page is actually used. The model uses global averages, so treat the absolute numbers as indicative and the relative differences (and the resource breakdown) as the most useful output.