0.247 g
cleaner than an estimated 64.4% 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.320 g CO₂e
- 0.029 g CO₂e
- verified green
- 928 ms
- n/a
- 15 ms
At 10,000 views a month this page emits about 29.7 kg CO₂e a year, roughly 122 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 9%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.097 g/visit, rating B
Audit third-party servicessave ~0.120 g/visit (1.29 MB)High impact · moderate effort
3 third-party domains account for 2.57 MB (97% 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.
- substackcdn.com2.53 MB
- fonts.gstatic.com38 kB
- js.sentry-cdn.com2.8 kB
Reduce JavaScript payloadsave ~0.046 g/visit (491 kB)High impact · moderate effort
138 scripts total 1.96 MB on the wire (6.25 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.
- 27104.32466763.js214 kB
- 97082.d14db6c3.js86 kB
- 97605.96bfb060.js68 kB
- 19311.3069a1e0.js59 kB
- lib-react.09f9c904.js58 kB
Serve images at the size they displaysave ~0.012 g/visit (126 kB)Medium impact · quick fix
3 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.
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…251 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…59 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…53 kB
Fix caching for returning visitorssave ~0.0060 g/visit (49 kB)Medium impact · quick fix
On a repeat visit 197 kB of static assets were re-downloaded instead of coming from cache.
Serve static assets with Cache-Control: public, max-age=31536000, immutable and versioned filenames so returning visitors download almost nothing.
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…Cache-Control: public, max-age=31536000 · 159 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…Cache-Control: public, max-age=31536000 · 38 kB
- https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2F…Cache-Control: public, max-age=0 · 397 B
Lazy-load below-the-fold mediasave ~0.0056 g/visit (60 kB)Medium impact · quick fix
7 below-the-fold images/iframes (119 kB) 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.
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…59 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…53 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…2.5 kB
- https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-95…1.2 kB
- https%3A%2F%2Fsubstack-post-media.s3.amazonaw…1.2 kB
Remove references to broken resourcessave ~<0.001 g/visit (1.6 kB)Advisory · quick fix
1 request answered 4xx/5xx on load: transfer and connections spent on nothing, on every single visit.
Delete or fix the references (stale asset URLs, dead third-party tags). Each one is a request the page provably does not need.
- flowsHTTP 401 · 1.6 kB
Set a page-weight budgetAdvisory · moderate effort
At 2.64 MB per view this page rates D. 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.
Where the bytes are
- JavaScript1.96 MB · 138 req
- Images374 kB · 10 req
- CSS220 kB · 23 req
- Fonts38 kB · 1 req
- HTML37 kB · 2 req
- Data (XHR)9.5 kB · 4 req
- Data (fetch)2.6 kB · 2 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| substackcdn.com/image/fetch/$s_!KZV6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bc77b2-fb1a-4be6-9e1b-1e4d24cbd8b9_971x1536.jpeg | image | 251 kB | public, max-age=31536000 |
| substackcdn.com/bundle/static/js/27104.32466763.js | script | 214 kB | public, max-age=31536000, immutable |
| substackcdn.com/bundle/static/js/97082.d14db6c3.js | script | 86 kB | public, max-age=31536000, immutable |
| substackcdn.com/bundle/static/js/97605.96bfb060.js | script | 68 kB | public, max-age=31536000, immutable |
| substackcdn.com/bundle/static/js/19311.3069a1e0.js | script | 59 kB | public, max-age=31536000, immutable |
| substackcdn.com/image/fetch/$s_!N1Y5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37296fdb-c1a0-4d0a-ae03-6a312af4c607_1802x1047.png | image | 59 kB | public, max-age=31536000 |
| substackcdn.com/bundle/static/js/lib-react.09f9c904.js | script | 58 kB | public, max-age=31536000, immutable |
| substackcdn.com/image/fetch/$s_!33nE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F896dcfa1-4ba2-477a-80a5-72d0f2761742_1802x1047.png | image | 53 kB | public, max-age=31536000 |
| substackcdn.com/bundle/static/js/75078.e52dc72f.js | script | 50 kB | public, max-age=31536000, immutable |
| substackcdn.com/bundle/static/js/69613.a6a40d63.js | script | 49 kB | public, max-age=31536000, immutable |
Share this report
<a href="https://carbonless.cc/report/thenewcuriosityshop.substack.com/p/the-essential-question"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fthenewcuriosityshop.substack.com%2Fp%2Fthe-essential-question" 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.