Website Carbon & Page Weight Checker – Bulk CO2 per Page
Pricing
$4.00 / 1,000 page analyseds
Website Carbon & Page Weight Checker – Bulk CO2 per Page
Bulk-measure page weight, requests, JS/CSS/image bytes and estimated CO2 per page view. Find heavy pages and missing compression. $4 per 1,000.
Pricing
$4.00 / 1,000 page analyseds
Rating
0.0
(0)
Developer
Fast Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Page Weight, Resource Budget & Website Carbon Checker
Measure how heavy your web pages really are and how much CO2 each page view emits, for a list of URLs or a whole sitemap, without starting a browser.
For every page the actor downloads the HTML and every resource it references (scripts, stylesheets, images including srcset and <picture>, web fonts from CSS @font-face, CSS @import, iframes, icons and preloads). It records the real transfer size, compression (gzip / brotli), cache headers and third-party domains, then estimates grams of CO2 per page view with the Sustainable Web Design Model v4 and checks each page against your performance budgets (default: 2 MB and 60 requests).
What you get per page
totalBytes/totalKB, and bytes by type:htmlBytes,jsBytes,cssBytes,imageBytes,fontBytes,otherBytesrequestCountplus requests by type,failedRequeststhirdPartyRequests,thirdPartyBytes,thirdPartyDomainslargestResources: the 5 heaviest filesuncompressedTextResources: JS/CSS/HTML/SVG/JSON served without gzip or brotli (with estimated savings)nonModernImages: JPEG/PNG/GIF images that could be WebP or AVIFpoorlyCachedResources: files with no cache header or a max-age under 1 dayco2GramsPerView,co2GramsPer1000Views,energyKwhPerView,carbonRating(A+ to F)budgetPassandbudgetFailures(human-readable reasons)- optional
resources: the full list of every resource with type, bytes, encoding, cache max-age and third-party flag
Who it is for
- SEO and web performance agencies auditing many client pages at once
- Developers and CI pipelines enforcing page weight and request budgets
- Sustainability / ESG teams reporting website emissions with a documented, standard model
- Ecommerce and content teams finding oversized images, missing compression and third-party bloat
Why this actor
- Fast and cheap: plain HTTP, no headless browser. The default 2-page test finishes in about 4 seconds.
- Real transfer bytes: every resource is actually downloaded with
Accept-Encoding: gzip, deflate, br, and the compressed bytes on the wire are counted, not guessed from HTML. - Smart about what browsers really load: picks one
srcsetcandidate per image (like a desktop browser), takes the first<picture>source instead of the fallback, skips@font-facesubsets that do not cover Latin characters, follows CSS@import. - Bulk: paste hundreds of URLs or give a sitemap (including sitemap indexes and
.xml.gz). - Transparent carbon model with documented constants (below) and a configurable grid intensity.
- Pay only for pages that were analysed: pages that fail to load are free and returned with
status: "error".
Input example
{"urls": ["https://www.gov.uk/", "https://www.wikipedia.org/"],"sitemapUrl": "https://www.example.com/sitemap.xml","maxUrls": 50,"budgetTotalKb": 2048,"budgetRequests": 60,"budgetJsKb": 500,"budgetCo2Grams": "0.3","gridIntensity": 494,"includeAllResources": false}
Only urls or sitemapUrl is required. Optional budgets set to 0 (or empty) are off.
Output example
Real values from a test run (shortened):
{"url": "https://www.gov.uk/","status": "ok","title": "Welcome to GOV.UK","totalBytes": 185641,"totalKB": 181.3,"htmlBytes": 11262,"jsBytes": 55087,"cssBytes": 44185,"imageBytes": 10245,"fontBytes": 64862,"otherBytes": 0,"htmlDecodedBytes": 85520,"htmlCompression": "br","requestCount": 16,"jsRequests": 5,"cssRequests": 2,"imageRequests": 6,"fontRequests": 2,"thirdPartyRequests": 0,"thirdPartyDomains": [],"co2GramsPerView": 0.0275,"co2GramsPer1000Views": 27.5,"carbonRating": "A+","budgetPass": true,"budgetFailures": [],"largestResources": [{"url": "https://www.gov.uk/assets/frontend/application-5c33....css", "type": "css", "bytes": 42756},{"url": "https://www.gov.uk/assets/frontend/application-8fe6....js", "type": "js", "bytes": 41563}],"uncompressedTextCount": 0,"nonModernImageCount": 4,"nonModernImageBytes": 8228,"nonModernImages": [{"url": "https://www.gov.uk/assets/frontend/app-promo/govuk-app-icon-0bca....png", "contentType": "image/png", "bytes": 4351}],"poorlyCachedCount": 0}
The second test page, https://www.wikipedia.org/, came out at 201.7 KB and 11 requests. 6 of those requests went to the third-party domain upload.wikimedia.org, and most of the weight was PNG images (0.0306 g CO2 per view, A+).
Carbon model: Sustainable Web Design Model v4
co2GramsPerView = totalBytes / 10^9 × 0.300 kWh/GB × grid intensity
| Segment | Operational kWh/GB | Embodied kWh/GB |
|---|---|---|
| Data centres | 0.055 | 0.012 |
| Networks | 0.059 | 0.013 |
| User devices | 0.080 | 0.081 |
| Total | 0.300 |
- Grid intensity default: 494 gCO2e/kWh (global average, Ember 2023, as used by SWD v4 and CO2.js). Set
gridIntensityto use your country's value. - The estimate covers one first visit (no browser cache) and has no green-hosting adjustment.
- Rating thresholds (g per view): A+ ≤ 0.040, A ≤ 0.079, B ≤ 0.145, C ≤ 0.209, D ≤ 0.278, E ≤ 0.359, F above.
Notes and limits
- This is static analysis: resources injected later by JavaScript (ads, lazy widgets, tag managers) are not followed, so JS-heavy pages show a lower bound. Iframe documents are counted, but not their sub-resources.
- Bytes are response body bytes on the wire (HTTP headers not included). Third-party = different registrable domain from the page.
- CSS background images are only counted when set in inline
styleattributes. - Only public pages. No logins and no bot-protection bypass. A proxy can be enabled if a site blocks datacenter IPs.
Pricing
$0.004 per page analysed ($4 per 1,000 pages), charged with the page event. Pages that fail to load are free. Platform usage is minimal because no browser runs.
API, n8n and MCP usage
API (sync, returns dataset items):
curl -X POST "https://api.apify.com/v2/acts/fast_data_asap~page-weight-carbon-checker/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["https://www.gov.uk/"], "budgetTotalKb": 1024}'
n8n / Make / Zapier: use the Apify node or app, pick the actor fast_data_asap/page-weight-carbon-checker, pass the same JSON input and read the dataset items. One way to use it in CI: fail a build when budgetPass is false.
MCP (Claude, Cursor and other AI agents): add the server
https://mcp.apify.com?tools=fast_data_asap/page-weight-carbon-checker
and ask, for example: "Check the page weight and CO2 per view of these 20 URLs and list which ones fail a 1 MB budget."