Recommended widths
| Use | Width (px) | Notes |
|---|---|---|
| Full-width hero / banner | 1920–2400 | 2400 covers Retina laptops; 1600 if bandwidth matters more |
| Blog / article content image | 1200–1600 | 2× a 600–800 px column |
| Product image (zoomable) | 1600–2000 | Square or 4:5 |
| Card / grid thumbnail | 600–800 | 2× a 300–400 px card |
| Avatar / small icon | 160–256 | Serve 2× for sharpness |
| Open Graph / Twitter card | 1200 × 630 | Fixed size; keep 1.91:1 |
| Instagram post | 1080 × 1080 / 1350 | Platform re-compresses |
| 600–1200 | Displayed at ~600 px |
Why 2× and not 3×
Retina displays have 2× or 3× pixel density, but images at 2× already look sharp on 3× screens because the human eye cannot resolve the difference at typical viewing distances, and lossy compression hides it further. Going from 2× to 3× costs 2.25× the bytes for no visible gain.
Resize and convert in one step
- Open Fast WebP Converter and drop your images.
- Set Maximum width to the value from the table (e.g. 1600 for blog content).
- Set Quality to 80 for photos, 90 for graphics.
- Convert. Images wider than the limit are scaled down proportionally with high-quality resampling; smaller images are left untouched.
Responsive images with srcset
For the best results, generate 2–4 widths (e.g. 480, 960, 1600) and list them in srcset with a sizes attribute. The browser picks the smallest file that fills the slot on that device. Most CMSs and frameworks (WordPress, Next.js, Astro) do this automatically once you upload a large enough master.