An image CDN sits between your storage and your users, transforming images on-the-fly to the right format, size, and quality for each request. In 2026, the major options are Cloudflare Images, Cloudinary, and imgix. Here's a practical comparison to help you choose.
What image CDNs do
Without an image CDN, serving a product image requires:
- Upload the original (e.g., 3 MB JPEG)
- Generate resized variants (thumbnail, medium, large) manually
- Convert to WebP for supporting browsers
- Serve from your origin or a standard CDN
With an image CDN, you upload the original once. Transformations happen at request time via URL parameters:
https://cdn.example.com/image.jpg?w=400&f=webp&q=80
The first request generates and caches the transform. Subsequent requests serve from cache at edge.
Cloudflare Images
Best for: Sites already on Cloudflare, predictable pricing, large volume.
Cloudflare Images uses a per-image storage pricing model:
- $5/month for up to 100,000 stored images
- $1 per additional 100,000 images
- Transformations via URL (
cdn-cgi/image/prefix) - Automatic AVIF and WebP conversion based on browser Accept header
The pricing is transparent and doesn't spike with traffic. The main limitation: it's tightly coupled to Cloudflare's infrastructure.
Cloudinary
Best for: Large media libraries, AI-powered transformations, extensive SDK support.
Cloudinary is the most feature-rich option with AI background removal, smart cropping, and over 150 transformation options. Pricing is based on transformation credits:
- Free tier: 25 credits/month
- Paid tiers start at $89/month
- Can become expensive at scale with many unique transformations
Best choice for e-commerce with complex image requirements (multiple aspect ratios, AI cropping, overlays).
imgix
Best for: Developers who want full control, React/Next.js projects, flexible source configuration.
imgix connects to your existing S3, GCS, or web folder. It has a clean URL API and official SDKs for React:
<img src={buildURL('image.jpg', { w: 400, fm: 'webp', q: 80 })} />
Pricing starts at $250/month for serious traffic (includes a generously sized free tier for testing).
Self-hosting with Next.js + Sharp
For low-to-medium traffic apps, Next.js's built-in image optimization (next/image) uses Sharp on your server. This is free but has the cold-start penalty discussed in our next/image vs pre-convert article.
Decision matrix
| Scenario | Recommendation |
|---|---|
| Startup, < 10K images | next/image or Cloudflare Images free tier |
| E-commerce with complex transforms | Cloudinary |
| High-traffic, on Cloudflare | Cloudflare Images |
| Developer-focused, control needed | imgix |
| Static site, simple images | Pre-convert to WebP at build time |
Pre-conversion as an alternative
For sites with a small, stable set of images (marketing sites, blogs, documentation), pre-converting images to WebP at build time eliminates CDN costs entirely. Use Picovert's converter for manual conversion or integrate Sharp into your build pipeline.