Start here
Before You Fix It: What This Check Means
Image payload budgets prevent individual hero/media assets from overwhelming mobile throughput. In plain terms, this tells you whether users are likely to feel this page as fast, stable, and usable. Scavo samples up to 10 first-party image URLs and inspects delivery hints.
Why this matters in practice: degraded speed here often compounds into lower conversion and weaker user trust.
How to use this result: treat this as directional evidence, not final truth. Synthetic sampling may not fully match real-user device/network variability. First, confirm the issue in live output: verify directly in live production output with browser/network tools Then ship one controlled change: Compress and right-size hero assets to realistic rendered dimensions. Finally, re-scan the same URL to confirm the result improves.
Background sources
TL;DR: The combined size of all images on your page exceeds a healthy budget, dragging down load performance.
Images account for the largest portion of page weight on most sites — averaging 4.4MB per page (HTTP Archive, 2024). When total image bytes blow past your budget, mobile users on metered connections pay real money for your bloat, and everyone gets a slower experience. Performance budgets exist to catch this drift before it compounds.
What Scavo checks (plain English)
Scavo samples up to 10 first-party image URLs and inspects delivery hints.
It tracks:
- total known bytes from sampled images
- largest sampled image bytes
- missing
width/heightattributes - non-lazy images after the first image
Thresholds in current logic:
Failwhen any of these are true:- largest sampled image
>= 600,000bytes - known sampled total
>= 2,500,000bytes - missing dimensions exceed fail threshold based on image count
Warningwhen elevated but below fail thresholds:- largest sampled image
>= 350,000bytes - known sampled total
>= 1,200,000bytes - missing dimensions exceed warning threshold
- 3+ non-lazy images after the first
Passwhen sampled payload/hints are healthyInfowhen HTML/URL/probe data is unavailable
How Scavo scores this check
Scavo assigns one result state for this check on the tested page:
- Pass: baseline signals for this check were found.
- Warning: partial coverage or risk signals were found and should be reviewed.
- Fail: required signals were missing or risky behavior was confirmed.
- Info: Scavo could not gather enough reliable evidence on this run to score pass/fail confidently.
In your scan report, this appears under What failed / What needs attention / What is working for image_payload_budget, followed by Recommended next steps and Technical evidence (for developers) when needed.
- Scan key:
image_payload_budget - Category:
PERFORMANCE
Why fixing this matters
Heavy images delay rendering and can create layout shift if intrinsic dimensions are missing. That costs attention and trust during the first seconds of a visit.
From a commercial standpoint, faster and steadier pages usually reduce drop-off on intent-heavy journeys (pricing, signup, checkout).
If you are not technical
- Ask your developer which templates have the largest hero images.
- Prioritize pages that drive signups or demos.
- Require before/after evidence: largest image size and total sampled image bytes.
- Re-run Scavo and confirm warning/fail state improves.
Technical handoff message
Copy and share this with your developer.
Scavo flagged Image payload budget (image_payload_budget). Please reduce oversized images, add missing width/height attributes, and apply lazy-loading to non-critical images after the first viewport image. Share before/after byte evidence and re-run Scavo.If you are technical
- Compress and right-size hero assets to realistic rendered dimensions.
- Keep one priority image eager if needed, lazy-load non-critical images.
- Add explicit
widthandheighton all image tags to protect layout stability. - Use CDN transforms or build-time pipelines for automated resizing/quality control.
- Track page-level image budgets per template class.
How to verify
- Confirm largest sampled image is below fail threshold.
- Confirm sampled total payload is trending down on key templates.
- Confirm image tags include
width/heightacross the page. - Confirm non-critical below-the-fold images use
loading="lazy". - Re-run Scavo and compare
largest_sampled_image_bytes,known_image_bytes, and missing dimension counts.
What this scan cannot confirm
- It samples a subset of first-party images, not every possible image request.
- It does not evaluate third-party image hosts outside sampled first-party scope.
- Missing
Content-Lengthheaders can reduce byte visibility for some assets.
Owner checklist
- [ ] Assign owner for image performance budgets.
- [ ] Define page-type budgets (landing, docs, blog, app).
- [ ] Add release checks for oversized image regressions.
- [ ] Revalidate after CMS/editor workflow changes.
FAQ
Why does this check care about width/height attributes?
Because missing intrinsic dimensions increase layout instability risk during image load.
Should every image be lazy-loaded?
No. Keep critical above-the-fold images intentional; lazy-load non-critical images after the first viewport target.
Can this warn even if formats are modern?
Yes. Modern format helps, but oversized assets can still exceed payload budgets.
What should we fix first?
Start with the largest sampled image, then repeated template offenders.
Sources
Need a per-template image budget sheet your team can enforce in PRs? Send support your template list and traffic priorities.