Skip to content
CarbonlessBeta

Carbon report

openrouter.ai

Scanned · all pages on openrouter.ai

0.622 g

cleaner than an estimated 28.8% of pages on the web 

  1. A+
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F

A+ is 0.04 g or less per view, F is more than 0.359 g CO₂e.

Sign in to re-scan
What the browser rendered, so you can confirm a real page was measured.

The numbers

6.83 MBcold load, on the wire
19111 domains
293 kB22 requests
88 kB1% re-downloaded
0.826 g CO₂e
0.011 g CO₂e
verified green
332 ms
0.032
86 ms

At 10,000 views a month this page emits about 74.7 kg CO₂e a year, roughly 306 km in an average petrol car. The estimate assumes 75% new and 25% returning visitors, a measured cache reload ratio of 1%, and world-average grid intensity. How we calculate this

What to fix

apply everything → ~0.256 g/visit, rating D

  1. Convert and compress imagessave ~0.121 g/visit (1.33 MB)High impact · quick fix

    24 images (2.96 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.

    • tool-calling.png1.03 MB
    • send-image-to-llm.png973 kB
    • web-search-benchmark.png505 kB
    • MoonshotAI.png238 kB
    • faviconV244 kB
  2. Lazy-load below-the-fold mediasave ~0.115 g/visit (1.26 MB)High impact · quick fix

    9 below-the-fold images/iframes (2.52 MB) 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.

    • tool-calling.png1.03 MB
    • send-image-to-llm.png973 kB
    • web-search-benchmark.png505 kB
    • faviconV24.7 kB
    • openrouter-light.svg4.6 kB
  3. Reduce JavaScript payloadsave ~0.060 g/visit (660 kB)High impact · moderate effort

    109 scripts total 2.64 MB on the wire (7.43 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.

    • 537s199 kB
    • js190 kB
    • ui-common_ui_84d48c_1.30.2.js128 kB
    • 1m0hmmyjuoijz.js115 kB
    • 42mefu9ko_qq4.js96 kB
  4. Serve images at the size they displaysave ~0.028 g/visit (312 kB)High impact · quick fix

    10 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.

    • tool-calling.png1.03 MB
    • send-image-to-llm.png973 kB
    • web-search-benchmark.png505 kB
    • MoonshotAI.png238 kB
    • image43 kB
  5. Optimize web fontssave ~0.019 g/visit (204 kB)Medium impact · quick fix

    7 font files total 441 kB, 2 not in WOFF2.

    Subset fonts to used glyphs, prefer one variable font over multiple weights, serve WOFF2 only, and consider system fonts for UI text.

    • PlusJakartaSans_Italic_VariableFont_wght-s.p.…87 kB
    • PlusJakartaSans_VariableFont_wght-s.p.3adhwoh…80 kB
    • GeistMono_Variable.p.1sg4ifey12l8-.woff261 kB
    • gordita_bold-s.p.3v-a8bgqavs7d.woff254 kB
    • gordita_medium-s.p.1djqx3tvkaz4b.woff253 kB
  6. Audit third-party servicessave ~0.013 g/visit (146 kB)Medium impact · moderate effort

    9 third-party domains account for 293 kB (4% 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.

    • www.googletagmanager.com191 kB
    • t0.gstatic.com89 kB
    • static.cloudflareinsights.com12 kB
    • stats.g.doubleclick.net556 B
    • cdn.protect.clerk.com421 B
    • a3fa4e8481a36291.client.protect.clerk.com130 B
  7. Upgrade compression beyond gzipsave ~0.010 g/visit (111 kB)Advisory · quick fix

    737 kB 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.

    • models461 kB
    • 537s199 kB
    • openrouter.ai29 kB
    • v4513226cdae34746b4dedf0b4dfa099e178179150949612 kB
    • main.js9.7 kB
  8. Remove references to broken resourcessave ~<0.001 g/visit (2.8 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.

    • keysHTTP 401 · 2.8 kB
  9. Set a page-weight budgetAdvisory · moderate effort

    At 6.83 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.

Where the bytes are

  • Images3.07 MB · 45 req
  • JavaScript2.64 MB · 109 req
  • Data (fetch)554 kB · 21 req
  • Fonts441 kB · 7 req
  • CSS89 kB · 5 req
  • HTML29 kB · 1 req
  • Data (XHR)1.8 kB · 2 req
  • Other556 B · 1 req
Ten heaviest requests
ResourceTypeWire sizeCache-Control
openrouter.ai/blog/images/tool-calling.pngimage1.03 MBpublic, max-age=0, must-revalidate
openrouter.ai/blog/images/send-image-to-llm.pngimage973 kBpublic, max-age=0, must-revalidate
openrouter.ai/blog/images/web-search-benchmark.pngimage505 kBpublic, max-age=0, must-revalidate
openrouter.ai/api/frontend/v1/catalog/modelsfetch461 kBpublic, max-age=60, s-maxage=300, stale-while-revalidate=300
openrouter.ai/images/icons/MoonshotAI.pngimage238 kBpublic, max-age=0, must-revalidate
openrouter.ai/537s/script199 kBprivate, max-age=900
www.googletagmanager.com/gtag/js?id=G-R8YZRJS2XNscript190 kBprivate, max-age=900
clerk.openrouter.ai/npm/@clerk/[email protected]/dist/ui-common_ui_84d48c_1.30.2.jsscript128 kBpublic, max-age=31536000
openrouter.ai/_next/static/immutable/chunks/1m0hmmyjuoijz.jsscript115 kBpublic,max-age=31536000,immutable
openrouter.ai/_next/static/immutable/chunks/42mefu9ko_qq4.jsscript96 kBpublic,max-age=31536000,immutable

Share this report

Live carbon badge preview
<a href="https://carbonless.cc/report/openrouter.ai"><img src="https://carbonless.cc/api/badge?url=https%3A%2F%2Fopenrouter.ai" 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.