1.79 g
cleaner than an estimated 10% 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
- 2.36 g CO₂e
- 0.099 g CO₂e
- unknown
- 576 ms
- 0.015
- 21 ms
At 10,000 views a month this page emits about 214.9 kg CO₂e a year, roughly 881 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 4%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.716 g/visit, rating F
Defer video and audiosave ~0.730 g/visit (6.48 MB)High impact · quick fix
8.10 MB of audio/video downloads during initial page load; 4 videos autoplay; 1 video preloads data without preload="none".
Never autoload media: use preload="none" with a poster image, load players on interaction, and stream in an efficient codec (AV1/HEVC).
- aom00016-shanen-jk-loop-16x9-alt-2.mp42.67 MB
- election-081226-6-imageslideshow-fade.mp42.22 MB
- 01-flooding-cambridge-city-flood-081226.mp41.83 MB
- desktop-eclipse-6-imageslideshow-fade-2026081…1.38 MB
Audit third-party servicessave ~0.280 g/visit (2.48 MB)High impact · moderate effort
33 third-party domains account for 4.97 MB (31% 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.
- registry.api.cnn.io3.58 MB
- securepubads.g.doubleclick.net266 kB
- js.stripe.com253 kB
- imasdk.googleapis.com161 kB
- cdn.tinypass.com140 kB
- cdn.optimizely.com119 kB
Reduce JavaScript payloadsave ~0.143 g/visit (1.27 MB)High impact · moderate effort
35 scripts total 5.09 MB on the wire (13.80 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.
- ui2.35 MB
- boltPlayer692 kB
- vendor371 kB
- stripe.js253 kB
- pubads_impl.js204 kB
Serve images at the size they displaysave ~0.043 g/visit (381 kB)High impact · quick fix
12 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.
- cnn-talent-v4.png116 kB
- 2026-08-11t173831z-934669061-rc2dwmaiw3zt-rtr…80 kB
- cnn-bb-texted-homepage-feature-card-1440x810.png69 kB
- ap26196663321965.jpg68 kB
- xpl00059-gain-of-function-thumbnails-jj-08112…58 kB
Convert and compress imagessave ~0.036 g/visit (318 kB)High impact · quick fix
6 images (707 kB) 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.
- cnn-headlines-placeholder-generic.png656 kB
- app-store-cnn-app-qr-code.png24 kB
- google-play-cnn-app-qr-code.png23 kB
- CNN_logo.png4.3 kB
- rep.gif414 B
Optimize web fontssave ~0.013 g/visit (112 kB)Medium impact · quick fix
5 font files total 319 kB.
Subset fonts to used glyphs, prefer one variable font over multiple weights, serve WOFF2 only, and consider system fonts for UI text.
- noto_serif_display-v1.woff2134 kB
- cnn_sans_display-bold-v1.woff248 kB
- cnn_sans_display-medium-v1.woff247 kB
- cnn_sans_display-v1.woff247 kB
- KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff244 kB
Lazy-load below-the-fold mediasave ~0.013 g/visit (111 kB)Medium impact · quick fix
6 below-the-fold images/iframes (222 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.
- cnn-talent-v4.png116 kB
- xpl00059-gain-of-function-thumbnails-jj-08112…58 kB
- 2026-06-29t012229z-1608189313-rc293macyn7u-rt…19 kB
- 2026-08-10t111832z-327337754-rc29tmatwr3b-rtr…14 kB
- gettyimages-2212171582-20260812190432219.jpg8.5 kB
Verify your hosting energyMedium impact · moderate effort
This host has not published renewable energy evidence with the Green Web Foundation, so its energy source is unknown.
Choose a provider listed in the Green Web Directory, or ask your current provider to publish evidence (and a carbon.txt). This cuts the data-center share of every single page view.
- carbon.txtNo carbon.txt found at the site root; publishing one is the lightest first step.
Upgrade compression beyond gzipsave ~0.068 g/visit (603 kB)Advisory · quick fix
4.02 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.
- ui2.35 MB
- boltPlayer692 kB
- vendor371 kB
- landingprod.js119 kB
- client99 kB
Set a page-weight budgetAdvisory · moderate effort
At 15.89 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.
Remove the entry redirectAdvisory · quick fix
The address that was scanned goes through 1 redirect before the document is served, ending at https://www.cnn.com/. Every hop is a full round trip on a connection that has not warmed up yet.
Point links, sitemaps and canonical tags at the final address, and make the host redirect in one hop rather than chaining http to https to www.
- https://cnn.com/redirects to https://www.cnn.com/
Simplify the document structureAdvisory · larger effort
The page renders 4451 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.
Upgrade connections to HTTP/2 or HTTP/3Advisory · quick fix
2 hosts serve 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.
- default.any-any.prd.api.bolt.cnn.com5 requests over http/1.1
- beacons-wbd.mediamelon.com5 requests over http/1.1
Where the bytes are
- Audio / video8.10 MB · 4 req
- JavaScript5.09 MB · 35 req
- Images1.48 MB · 49 req
- HTML593 kB · 3 req
- Fonts319 kB · 5 req
- Data (fetch)203 kB · 16 req
- CSS40 kB · 3 req
- Data (XHR)39 kB · 16 req
- Other24 kB · 16 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| media.cnn.com/api/v1/loops/stellar/prod/aom00016-shanen-jk-loop-16x9-alt-2.mp4?c=original | media | 2.67 MB | max-age=300 |
| registry.api.cnn.io/bundles/fave/ui-93acde06/ui | script | 2.35 MB | max-age=600 |
| media.cnn.com/api/v1/loops/stellar/prod/election-081226-6-imageslideshow-fade.mp4?c=original | media | 2.22 MB | max-age=300 |
| media.cnn.com/api/v1/loops/stellar/prod/01-flooding-cambridge-city-flood-081226.mp4?c=original | media | 1.83 MB | max-age=300 |
| media.cnn.com/api/v1/loops/stellar/prod/desktop-eclipse-6-imageslideshow-fade-20260812194104676.mp4?c=original | media | 1.38 MB | max-age=300 |
| registry.api.cnn.io/bundles/fave/boltPlayer-fee55aea/boltPlayer | script | 692 kB | max-age=600 |
| media.cnn.com/api/v1/images/stellar/prod/cnn-headlines-placeholder-generic.png?c=16x9&q=h_540,w_960,c_fill | image | 656 kB | max-age=300 |
| cnn.com/ | document | 585 kB | max-age=60 |
| registry.api.cnn.io/bundles/fave/vendor-e400414e/vendor | script | 371 kB | max-age=600 |
| js.stripe.com/dahlia/stripe.js | script | 253 kB | max-age=120 |
Share this report
<a href="https://carbonless.cc/report/www.cnn.com"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fwww.cnn.com" 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.