Skip to main content
Convertly picks the best encode format and quality per request while respecting browser capabilities and network conditions.
Photo exported with format=auto

format=auto — negotiated to WebP or AVIF per Accept header.

Photo encoded with q=auto

q=auto — content-aware quality tuned to the source.

Client hints sizing compared to explicit width

Fixed width (left) vs Client Hints ?ch=Width,Dpr (right).

Format negotiation

format=auto (the SDK default) picks the best format from the browser’s Accept header:
  • AVIF when image/avif is advertised
  • WebP when image/webp is advertised
  • JPEG fallback for older browsers
The CDN sets Vary: Accept so edge caches stay correct — at most two variants per URL (modern + JPEG). Force a specific format with format=webp, format=avif, format=jpeg, or format=png. For SVG tracing and SVG source handling, see Vector & SVG. For forced downloads, see Download.

Progressive JPEG

When output format is JPEG (explicit format=jpeg or negotiated from format=auto), Convertly uses progressive encoding by default. The full image appears quickly at low quality and sharpens as more bytes arrive — unlike baseline JPEG, which paints top-to-bottom.
Progressive vs baseline JPEG loading comparison

Progressive (default) vs baseline (jpgProgressive=0) loading behaviour.

The final decoded image is identical — only the byte stream order changes.

Content-aware quality

Adaptive quality analyzes the source on the first cache miss and picks a quality band: Choose the delivery intent that fits the surface: Framework image adapters default to q=auto. Raw CDN URLs without q retain the backward-compatible q=80 default. All adaptive modes work inside presets too. Actual byte reduction varies by source complexity, requested dimensions, and negotiated format. Adaptive modes express delivery intent rather than promising a fixed percentage reduction.

Client hints

Pass ch=Width,Dpr to opt into browser Client Hints for sizing. When w is omitted and ch=Width is set, the CDN uses Sec-CH-Width (CSS pixels) multiplied by dpr.
For setup (Accept-CH headers, Next.js middleware, fallbacks), see the Client Hints guide.

Metadata stripping

strip=all (or strip=1) removes EXIF/XMP/ICC from output. strip=icc keeps colour profile metadata but drops camera tags.
Portrait with metadata stripped

?strip=all — visually identical; metadata removed from the JPEG container.

PDF pages and GIF frames

Network-aware quality

When the browser sends Save-Data: on, Convertly drops encode quality by 15 points (floored at 40). The route sets Vary: Save-Data and caches both variants independently — no client-side changes required. See Transforms overview → caching for cache behaviour with Accept and Save-Data.
Last modified on July 17, 2026