Guides

QR code size, contrast and quiet zone: a print quality checklist

The numbers that make printed QR codes scan: minimum sizes by distance, quiet zone, contrast, error correction, logo limits, and SVG vs PNG.

8 min read · Updated 2026-07-07

Size: the 10:1 distance rule

The single most useful sizing rule: a QR code should be at least one tenth of its expected scan distance. Scanned from 30 cm (a table), it needs to be 3 cm wide. From 1 m (a shop window), 10 cm. From 5 m (a wall banner), 50 cm. When in doubt, round up — nobody has ever complained that a code scanned too easily.

Treat 2×2 cm as the absolute floor for print, regardless of distance. Below that, ordinary phone cameras struggle to resolve individual modules, especially in dim restaurant lighting or on textured paper. Business cards are the classic offender: designers shrink the code to fit the layout, and the card ships with a QR that only scans under studio lights.

Remember that size interacts with data density. A code encoding a 300-character URL has far more, far smaller modules than one encoding a short link — which is one more practical argument for redirect-based dynamic codes: the short URL inside them keeps the pattern sparse and scannable at smaller physical sizes.

The quiet zone: the white border everyone crops

The quiet zone is the empty margin around the code, and the spec is explicit: at least 4 modules wide on every side (a module is one of the small squares). Scanners use this blank frame to find the code’s boundaries; shave it off and detection gets slow, then fails entirely.

The quiet zone is the most commonly violated rule in real-world print, because it looks like wasted space to a designer. Codes get boxed in tight frames, placed flush against text, or printed edge-to-edge on colored backgrounds. If a design element must sit near the code, keep it outside the 4-module margin — measure it, don’t eyeball it.

Watch backgrounds too: the quiet zone must contrast with the dark modules just like the code’s own background does. A white quiet zone on a dark poster works; a "transparent" quiet zone that lets a busy photo show through does not.

Contrast: dark on light, 40% apart, never inverted

Scanners read the difference in reflectance between dark and light modules. As a working rule, keep at least a 40% contrast difference between foreground and background — black on white is 100% and always safest. Dark navy on white, dark brown on cream: fine. Gold on white, light grey on beige: gambling with your print run.

Never invert the code — light modules on a dark background. Many scanners, especially older Android camera apps and embedded scanners in super-apps, simply do not decode inverted codes. If your brand background is dark, place the QR inside a white rounded rectangle rather than inverting it.

Gradients deserve their own warning: a gradient that starts dark and ends light can push part of the code below the contrast threshold even though the swatch "looks fine" on screen. If you use one — Qrindo’s design studio supports gradient fills — keep both ends of the gradient dark, and verify with a real scan test, not your eyes.

Error correction, logos, and eye styles: how much is too much?

QR codes carry built-in redundancy in four levels: L recovers about 7% damage, M about 15%, Q about 25%, and H about 30%. Higher levels make denser codes, so this is a budget, not a free lunch. For clean digital display, M is plenty; for print that will be handled, laminated, or exposed to weather, use Q; reserve H for codes with a logo overlay.

A centered logo works by deliberately "damaging" the code and letting error correction absorb it. The safe budget: cover no more than 20–25% of the code area, use level H, and never let the logo touch the three large corner squares (the finder patterns) or the smaller alignment square. Those structures are how scanners locate and orient the code — style them wrong and no amount of error correction saves you.

Styled eyes, rounded modules, and custom shapes are safe as long as they keep each element unmistakably dark-or-light with clear boundaries. The danger zone is subtle: an eye whose inner "pupil" is off-center or thinned for style can render every print unscannable while still looking perfectly plausible on screen. Use a design tool that keeps styles within decodable limits — Qrindo’s studio ships shape, eye, and frame presets that are tested against real decoders.

SVG vs PNG: pick the right file for the job

For anything that goes to a printer, use vector: SVG or PDF. Vector modules stay mathematically crisp at any size — the same file works on a business card and a building banner. Print shops will also thank you: no resampling artifacts, no fuzzy module edges, exact spot-color control.

PNG is for screens: websites, email signatures, presentations. If you must print from PNG, export at 300 DPI minimum at the final physical size — a 3×3 cm code needs roughly 350×350 px or more. Never scale a small PNG up: interpolation blurs module edges, and blurred edges are exactly what decoders trip on. And avoid JPEG entirely — its compression smears sharp black-white transitions by design.

Whatever tool you use, export both from the same source so screen and print stay identical. Qrindo exports SVG, PNG, and print-ready PDF from every code — and bulk ZIP when you need a whole batch of table or product codes at once.

The pre-press test protocol

Before any real print run, print one proof at final size on the final material and test it like a pessimist. Use at least three phones: a recent iPhone, a recent Android, and the oldest device you can find in the office. Different decoders have different tolerances, and the office’s four-year-old budget Android is your best canary.

Test at the real distance and in the real light: the dim corner of the restaurant, the sunlit shop window with its glare, the moving escalator angle. Test fast — hold the camera up for one second, not ten. A code that needs careful framing and patience will silently lose the majority of would-be scanners who give up after a moment.

Finally, scan the proof one last time after lamination or mounting, and once more after the first week in place. Materials change codes: lamination adds glare, sunlight fades inks, and outdoor codes collect dust and scratches — which is why you budgeted that higher error-correction level in the first place.

Frequently asked questions

What is the minimum size for a QR code on a business card?

2×2 cm, treated as a hard floor. Encode a short link rather than a long URL to keep the pattern sparse, and print from vector (SVG/PDF) so the tiny modules stay crisp.

Which error correction level should I choose?

M (15%) for clean digital use, Q (25%) for most print, H (30%) whenever a logo covers part of the code. Higher levels add density, so don’t pick H "just in case" on a tiny code.

My styled QR looks fine on screen but won’t scan when printed. Why?

Usual suspects, in order: not enough contrast on the actual paper, a cropped quiet zone, a logo or eye style that distorts the finder patterns, or a low-resolution PNG scaled up. Print one proof and test with several phones before every run.

Put it into practice

Create a dynamic QR code you can re-point, restyle, and track — free during launch, no card needed.