Skip to content
CarbonlessBeta

0.689 g

cleaner than an estimated 26% of pages on the web 

  1. A+
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F

A+ is 0.04 g or less per view, F is more than 0.359 g CO₂e.

Sign in to re-scan
What the browser rendered, so you can confirm a real page was measured.

The numbers

7.59 MBcold load, on the wire
17213 domains
3.80 MB149 requests
6.3 kB0% re-downloaded
0.919 g CO₂e
<0.001 g CO₂e
verified green
316 ms
0.109
29 ms

At 10,000 views a month this page emits about 82.7 kg CO₂e a year, roughly 339 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 0%, and world-average grid intensity. How we calculate this

What to fix

apply everything → ~0.276 g/visit, rating D

  1. Convert and compress imagessave ~0.175 g/visit (1.92 MB)High impact · quick fix

    57 images (4.27 MB) ship in legacy formats (JPEG/PNG/GIF).

    Serve AVIF (or WebP) with responsive srcset sizes, and re-compress oversized files. AVIF typically halves JPEG weight at the same visual quality.

    • Miegakure.png1.21 MB
    • trials.png670 kB
    • unity_runtimefee.png412 kB
    • civ_iv.jpg403 kB
    • gamescom26_SS%20(6).jpg265 kB
  2. Audit third-party servicessave ~0.173 g/visit (1.90 MB)High impact · moderate effort

    12 third-party domains account for 3.80 MB (50% of the page).

    Remove services that no longer earn their place; load the rest on interaction (facades for embeds, delayed consent-gated tags). Each third party is also a privacy and performance dependency.

    • platform.twitter.com2.87 MB
    • pbs.twimg.com611 kB
    • embed.bsky.app215 kB
    • cdn.bsky.app40 kB
    • platform.x.com28 kB
    • www.google-analytics.com22 kB
  3. Lazy-load below-the-fold mediasave ~0.163 g/visit (1.80 MB)High impact · quick fix

    20 below-the-fold images/iframes (3.60 MB) download immediately for every visitor.

    Add loading="lazy" to below-fold img and iframe elements (and keep it off the LCP image). Browsers then fetch them only when scrolling approaches.

    • Miegakure.png1.21 MB
    • trials.png670 kB
    • unity_runtimefee.png412 kB
    • civ_iv.jpg403 kB
    • gamescom26_SS%20(6).jpg265 kB
  4. Reduce JavaScript payloadsave ~0.069 g/visit (755 kB)High impact · moderate effort

    78 scripts total 3.02 MB on the wire (9.75 MB 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.

    • post-m4-dscTF.js205 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
  5. Serve images at the size they displaysave ~0.012 g/visit (129 kB)Medium impact · quick fix

    7 images are encoded at more than twice the pixels the layout shows, even accounting for this viewport's pixel density.

    Generate multiple sizes and let the browser pick with srcset/sizes; a 4000px original behind a 400px slot spends bandwidth no screen displays.

    • Miegakure.png1.21 MB
    • unity_runtimefee.png412 kB
    • civ_iv.jpg403 kB
    • gamescom26_SS%20(6).jpg265 kB
    • romulan_cascaded.png209 kB
  6. Upgrade compression beyond gzipsave ~0.044 g/visit (481 kB)Advisory · quick fix

    3.20 MB of text ships gzip-compressed; Brotli or Zstandard would cut roughly another 15-20%, and browsers without them fall back to gzip automatically.

    Serve precompressed Brotli for static text assets (highest level, compressed at build time) and enable Brotli or zstd for dynamic responses; keep gzip only as the fallback.

    • post-m4-dscTF.js205 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
    • embed.9449.78398904051446294e3d.js164 kB
  7. Stop downloading the same asset twicesave ~0.022 g/visit (245 kB)Advisory · quick fix

    8 assets were fetched more than once in a single page load (2.45 MB of repeated transfer).

    Usually a script injected twice or cache-busting query strings that differ per reference. Load each asset once and let the HTTP cache do its job.

    • embed.9449.78398904051446294e3d.js9 downloads · 1.47 MB
    • embed.Tweet.70198ef24afe05adbecf.js9 downloads · 121 kB
    • embed.runtime.3b19346e5d08b0b587c7.js9 downloads · 39 kB
    • embed.749.467388cca0b3fe9c3291.js9 downloads · 62 kB
    • embed.ondemand.i18n.en-js.19a28d85d7fc7916b4b…9 downloads · 15 kB
  8. Set a page-weight budgetAdvisory · moderate effort

    At 7.59 MB per view this page rates F. The findings above list where the weight is.

    Agree a transfer budget (e.g. under 975 kB reaches a B), enforce it in CI, and re-scan after each change to hold the line.

  9. Upgrade connections to HTTP/2 or HTTP/3Advisory · quick fix

    1 host serves five or more resources over HTTP/1.1, paying per-request connection and header overhead newer protocols eliminate.

    Enable HTTP/2 (or HTTP/3) on the server or move the assets behind a CDN that speaks it; multiplexing makes many small requests nearly free.

    • eliasfarhan.ch23 requests over http/1.1

Where the bytes are

  • Images4.40 MB · 66 req
  • JavaScript3.02 MB · 78 req
  • HTML140 kB · 12 req
  • Data (XHR)13 kB · 10 req
  • CSS8.1 kB · 2 req
  • Other4.7 kB · 2 req
  • Data (fetch)2.5 kB · 2 req
Ten heaviest requests
ResourceTypeWire sizeCache-Control
eliasfarhan.ch/images/2026/Miegakure.pngimage1.21 MBmax-age=600
eliasfarhan.ch/images/trials.pngimage670 kBmax-age=600
eliasfarhan.ch/images/2026/unity_runtimefee.pngimage412 kBmax-age=600
eliasfarhan.ch/images/2026/civ_iv.jpgimage403 kBmax-age=600
eliasfarhan.ch/images/2026/gamescom26_SS%20(6).jpgimage265 kBmax-age=600
eliasfarhan.ch/images/2026/romulan_cascaded.pngimage209 kBmax-age=600
embed.bsky.app/static/post-m4-dscTF.jsscript205 kBpublic, max-age=3600
pbs.twimg.com/media/GjlhC6_WkAA9UY0?format=png&name=smallimage167 kBmax-age=604800, must-revalidate
platform.twitter.com/embed/embed.9449.78398904051446294e3d.jsscript164 kBpublic, max-age=315360000
platform.twitter.com/embed/embed.9449.78398904051446294e3d.jsscript164 kBpublic, max-age=315360000

Share this report

Live carbon badge preview
<a href="https://carbonless.cc/report/eliasfarhan.ch/gamedev/cpp/2026/08/14/srnative-01-why-a-custom-engine.html"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Feliasfarhan.ch%2Fgamedev%2Fcpp%2F2026%2F08%2F14%2Fsrnative-01-why-a-custom-engine.html" 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.