Back to blog

When not to use SVG (and what to use instead)

SVG is excellent for geometry, but forcing it onto the wrong content produces bloated files and worse rendering. These are the boundaries worth knowing before you convert.

Photographs and rich textures

A photo traced to SVG becomes thousands of layered fills that approximate what a bitmap stores exactly. Keep photographs as JPEG, WEBP, or AVIF, and export responsive sizes instead.

Node-heavy illustrations

Illustrations with thousands of shapes can produce SVG files that cost more to parse and paint than an equivalent bitmap. If the artwork has painterly detail, the raster wins on both axes.

Email and restricted contexts

Many email clients and legacy renderers strip or poorly support inline SVG. Use PNG fallbacks there rather than fighting inconsistent support.

What to do instead

Simplify artwork before tracing (fewer colors, cleaner edges), or use SVG for the geometric parts and bitmaps for the painterly parts. Hybrid composition beats forced conversion.

What is the source content? Photograph · texture Keep a modern bitmap: JPEG · WEBP · AVIF Tracing approximates pixels with flat layers — worse and larger. Flat shapes · icons · text SVG is ideal: small, sharp, editable, scales to any size. This is what SVG was designed for. Gradient poster · art Traced SVG works as a stylized poster look. Expect a posterized style, not photographic fidelity.
A one-glance decision tree for whether an image belongs in SVG.
Decision flow branching on source content: photographs keep a bitmap, flat shapes and icons become SVG, gradient posters trace into a stylized posterized look.

The complexity budget

Every element costs parse and paint time. An SVG with thousands of nodes can render slower than a large bitmap of the same art — count nodes when a design tool export feels heavy and flatten before shipping.

Print fidelity expectations

Production print workflows prefer vectors from the original design source. A traced SVG approximates edges and colors, so treat it as web-grade output unless it was drawn as vectors from the start.