0.751 g
cleaner than an estimated 23.9% 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.977 g CO₂e
- 0.074 g CO₂e
- verified green
- 3.39 s
- 0
- 54 ms
At 10,000 views a month this page emits about 90.2 kg CO₂e a year, roughly 370 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 8%, and world-average grid intensity. How we calculate this
What to fix
apply everything → ~0.294 g/visit, rating E
Audit third-party servicessave ~0.236 g/visit (2.54 MB)High impact · moderate effort
53 third-party domains account for 5.08 MB (63% 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.
- imasdk.googleapis.com445 kB
- a.pub.network435 kB
- assets.riverdrop.com421 kB
- ssl.p.jwpcdn.com412 kB
- cdn.cookielaw.org381 kB
- www.googletagmanager.com346 kB
Reduce JavaScript payloadsave ~0.090 g/visit (966 kB)High impact · moderate effort
74 scripts total 3.86 MB on the wire (13.18 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.
- recaptcha__en.js341 kB
- load.js266 kB
- pubfig.engine.js205 kB
- pubads_impl.js204 kB
- prebid.js200 kB
Convert and compress imagessave ~0.059 g/visit (630 kB)High impact · quick fix
22 images (1.40 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.
- df75b88013bd438088369af36178f464_e9008005-f0e…421 kB
- 90185 kB
- 90178 kB
- 90116 kB
- 90110 kB
Serve images at the size they displaysave ~0.035 g/visit (373 kB)High impact · quick fix
8 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.
- 90180 kB
- 90170 kB
- 90134 kB
- 9093 kB
- 9085 kB
Lazy-load below-the-fold mediasave ~0.029 g/visit (315 kB)High impact · quick fix
18 below-the-fold images/iframes (630 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.
- 90170 kB
- 90134 kB
- 9093 kB
- 9085 kB
- group-1.png68 kB
Fix caching for returning visitorssave ~0.016 g/visit (135 kB)High impact · quick fix
On a repeat visit 542 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.
- pubfig.engine.jsCache-Control: public, max-age=1800 · 208 kB
- prebid.jsCache-Control: public, max-age=1800 · 200 kB
- cnx_usync.jsCache-Control: public,max-stale=31536000,stale-while-revalidate=31536000,immutable,max-age=31536000 · 52 kB
- pubfig.min.jsCache-Control: public, max-age=1800 · 30 kB
- liveView.phpCache-Control: no-store · 22 kB
Optimize web fontssave ~0.026 g/visit (276 kB)Medium impact · quick fix
11 font files total 787 kB.
Subset fonts to used glyphs, prefer one variable font over multiple weights, serve WOFF2 only, and consider system fonts for UI text.
- APVarW05-Regular.3c0c9d016bf55b85d0800dd405b8…142 kB
- 4c8008fe47695f4a98df.3c0c9d016bf55b85d0800dd4…142 kB
- APVar.woff2127 kB
- APW05-SemiCondensedBold.fcbedb6a106dddd6fdfef…54 kB
- APW05-CondensedBold.6e5f3d10491d025b55a82beeb…53 kB
Defer video and audioMedium impact · quick fix
4 videos preload 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).
Upgrade compression beyond gzipsave ~0.027 g/visit (290 kB)Advisory · quick fix
1.93 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.
- recaptcha__en.js341 kB
- bridge3.782.0_en.html286 kB
- load.js266 kB
- otBannerSdk.js139 kB
- All.min.ebf1c29b90335b2992e30e33c5fe91d0.gz.js125 kB
Remove references to broken resourcessave ~<0.001 g/visit (532 B)Advisory · quick fix
4 requests 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.
- accountHTTP 401 · 0 B
- profileHTTP 401 · 0 B
- eventsHTTP 403 · 532 B
- eventHTTP 403 · 532 B
Set a page-weight budgetAdvisory · moderate effort
At 8.07 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.
Simplify the document structureAdvisory · larger effort
The page renders 9687 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
- JavaScript3.86 MB · 74 req
- Images2.33 MB · 61 req
- Fonts787 kB · 11 req
- HTML462 kB · 4 req
- Data (XHR)221 kB · 19 req
- Data (fetch)217 kB · 30 req
- CSS160 kB · 8 req
- Other38 kB · 6 req
Ten heaviest requests
| Resource | Type | Wire size | Cache-Control |
|---|---|---|---|
| assets.riverdrop.com/ap-newsroom/df75b88013bd438088369af36178f464_e9008005-f0ed-418f-a5f4-60a8f9b9f426.jpg | image | 421 kB | public, max-age=31536000, immutable |
| www.gstatic.com/recaptcha/releases/w_Yb7dGGXaKesJ7BMiqFJqBG/recaptcha__en.js | script | 341 kB | public, max-age=31536000 |
| imasdk.googleapis.com/js/core/bridge3.782.0_en.html?gdpr=1 | document | 286 kB | public, max-age=31536000 |
| s.ntv.io/serve/load.js | script | 266 kB | public, max-age=3600 |
| a.pub.network/apnews-com/pubfig.engine.js | script | 205 kB | public, max-age=1800 |
| securepubads.g.doubleclick.net/pagead/managed/js/gpt/m202607310101/pubads_impl.js | script | 204 kB | public, immutable, max-age=31536000 |
| a.pub.network/apnews-com/prebid.js | script | 200 kB | public, max-age=1800 |
| cdn.viafoura.net/vf-v2.js | script | 193 kB | max-age=300 |
| www.googletagmanager.com/gtm.js?id=GTM-KT7RHVG | script | 187 kB | private, max-age=900 |
| dims.apnews.com/dims4/default/1ebb376/2147483647/strip/true/crop/4710x3138+0+1/resize/980x653!/quality/90/?url=https%3A%2F%2Fassets.apnews.com%2F71%2F65%2F4f79f6f881602cb415a600b3bea2%2F02c3f84523a045679359cd070c274596 | image | 185 kB | public, max-age=31536000 |
Share this report
<a href="https://carbonless.cc/report/apnews.com"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fapnews.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.