0.051 g
cleaner than an estimated 93.6% of pages on the web
- A+
- A
- B
- C
- D
- E
- F
A+ is 0.04 g or less per view, F is more than 0.359 g CO₂e.
The numbers
- 0.067 g CO₂e
- 0.0013 g CO₂e
- verified green
- 216 ms
- 0.01
- 29 ms
At 10,000 views a month this page emits about 6.1 kg CO₂e a year, roughly 25 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 2%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.041 g/visit, rating A
Reduce JavaScript payloadsave ~0.0058 g/visit (63 kB)Medium impact · moderate effort
18 scripts total 253 kB on the wire (943 kB decoded). Bundles this size usually carry a lot of unused code.
Split bundles per route, tree-shake dependencies, and audit with a bundle analyzer or coverage profile. A 25% cut is a conservative target for bundles this size.
- otBannerSdk.js113 kB
- client.C96v97ml.js57 kB
- NavDropdown.sc1d7KGd.js14 kB
- api.XMPm68dh.js13 kB
- search-snippet.search.es.js13 kB
Optimize web fontssave ~0.0043 g/visit (47 kB)Advisory · quick fix
4 font files total 134 kB.
Subset fonts to used glyphs, prefer one variable font over multiple weights, serve WOFF2 only, and consider system fonts for UI text.
- e868cdf4720e9ea5.woff249 kB
- 6d4bffbf7335e8f1.woff245 kB
- d39725b5b6a6f2ec.woff231 kB
- 06ca8aa61b7e774d.woff29.0 kB
Simplify the document structureAdvisory · larger effort
The page renders 5345 DOM elements, above the 1,500 guideline. Large trees cost memory and CPU on every visitor's device.
Flatten wrapper markup, render long lists virtually or paginate, and prefer semantic elements over nested divs.
Where the bytes are
- JavaScript253 kB · 18 req
- Fonts134 kB · 4 req
- HTML69 kB · 1 req
- Data (fetch)37 kB · 4 req
- Images34 kB · 22 req
- CSS23 kB · 3 req
- Data (XHR)3.3 kB · 3 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| ot.www.cloudflare.com/public/vendor/onetrust/scripttemplates/202503.1.0/otBannerSdk.js | script | 113 kB | public, max-age=0, must-revalidate |
| blog.cloudflare.com/kitesurf/ | document | 69 kB | n/a |
| blog.cloudflare.com/_astro/client.C96v97ml.js | script | 57 kB | public, max-age=31536000, immutable |
| blog.cloudflare.com/_astro/fonts/e868cdf4720e9ea5.woff2 | font | 49 kB | public, max-age=31536000, immutable |
| blog.cloudflare.com/_astro/fonts/6d4bffbf7335e8f1.woff2 | font | 45 kB | public, max-age=31536000, immutable |
| blog.cloudflare.com/_astro/fonts/d39725b5b6a6f2ec.woff2 | font | 31 kB | public, max-age=31536000, immutable |
| ot.www.cloudflare.com/public/vendor/onetrust/consent/b1e05d49-f072-4bae-9116-bdb78af15448/018debfb-4ca4-7537-992d-44786afb66f9/en.json | fetch | 21 kB | public, max-age=0, must-revalidate |
| blog.cloudflare.com/_astro/Base.CvoD1jt0.css | stylesheet | 18 kB | public, max-age=31536000, immutable |
| blog.cloudflare.com/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZBKVDEMTPBSVB5R6APWE6BN.png&w=715&h=550&f=webp&fit=cover&position=center | image | 18 kB | public, max-age=31536000, immutable |
| blog.cloudflare.com/_astro/NavDropdown.sc1d7KGd.js | script | 14 kB | public, max-age=31536000, immutable |
Share this report
<a href="https://carbonless.cc/report/blog.cloudflare.com/kitesurf"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fblog.cloudflare.com%2Fkitesurf" alt="Carbon rating for this page" width="150" height="30" loading="lazy" /></a>The badge is a lightweight SVG (under 1 kB) served with long-lived caching, so a new scan can take up to a day to show through.