Website Carbon & Page Weight Checker – Bulk CO2 per Page avatar

Website Carbon & Page Weight Checker – Bulk CO2 per Page

Pricing

$4.00 / 1,000 page analyseds

Go to Apify Store
Website Carbon & Page Weight Checker – Bulk CO2 per Page

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

Fast Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

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, otherBytes
  • requestCount plus requests by type, failedRequests
  • thirdPartyRequests, thirdPartyBytes, thirdPartyDomains
  • largestResources: the 5 heaviest files
  • uncompressedTextResources: JS/CSS/HTML/SVG/JSON served without gzip or brotli (with estimated savings)
  • nonModernImages: JPEG/PNG/GIF images that could be WebP or AVIF
  • poorlyCachedResources: files with no cache header or a max-age under 1 day
  • co2GramsPerView, co2GramsPer1000Views, energyKwhPerView, carbonRating (A+ to F)
  • budgetPass and budgetFailures (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 srcset candidate per image (like a desktop browser), takes the first <picture> source instead of the fallback, skips @font-face subsets 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

SegmentOperational kWh/GBEmbodied kWh/GB
Data centres0.0550.012
Networks0.0590.013
User devices0.0800.081
Total0.300
  • Grid intensity default: 494 gCO2e/kWh (global average, Ember 2023, as used by SWD v4 and CO2.js). Set gridIntensity to 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 style attributes.
  • 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."