For production and prepress

Printing QR codes that actually scan

A QR code that works on a screen can fail on a box. Four things decide it, and all four are settled in artwork rather than at the press. These are the numbers our editor checks before it lets you export.

1. Contrast

A scanner has to tell a module from its background. The threshold is lower than most designers expect and higher than most brand palettes allow.

Contrast ratioVerdict
below 3:1Will fail on most scanners. Refuse the artwork.
3:1 to 5:1Works on screen. Risky on cheap thermal printing.
5:1 or betterSafe across materials and print methods.
A QR code with very low contrast
2.55:1 — refusedLooks acceptable on a bright screen. Most scanners will not resolve the modules at all.
A QR code with marginal contrast
4.35:1 — riskyScans from a phone. Loses modules on thermal stock as the printhead ages.
A QR code with strong contrast
18.08:1 — safeSurvives cheap printing, poor light and a scuffed surface.

Our editor warns at both thresholds before you export, so a brand colour that will not survive the press is caught in artwork rather than on a pallet. Every code on this page was rendered by that editor.

Inverted codes

A dark QR code on white
ConventionalDark modules, light background. What every scanner expects.
A light QR code on a dark background
InvertedHandsome, and a gamble on older fixed scanners.

Light modules on a dark background look excellent and scan less reliably. Modern phone cameras generally cope; older fixed scanners — the kind at a till or on a warehouse line — often do not. If you know your audience is scanning with phones, it is a reasonable risk. If a code might meet a fixed scanner, do not invert it.

2. The quiet zone

The blank border around a code is not margin. It is the quiet zone, and it is how a scanner finds the code's edges. Four modules on every side is the minimum, where a module is one of the small squares.

A QR code with no quiet zone
0 modules — failsCropped to the code. A scanner cannot find where it ends.
A QR code with a two module quiet zone
2 modules — marginalOften works. Fails against a busy background or a printed rule.
A QR code with a four module quiet zone
4 modules — correctThe specification minimum, and what we export by default.

This is the single most common cause of a printed code failing, because it is the thing a layout designer trims when space is tight. If the code sits against a coloured panel, a rule, or the edge of a label, the quiet zone has probably been eaten.

3. Logo size

A logo in the centre covers modules that then have to be reconstructed by the code's error correction. At level H that is possible up to roughly 12 percent of the code's area, which is the ceiling we enforce.

A QR code with a square logo in the centre
Square mark — 35% wide, 12.0% areaAt the ceiling. Any wider and error correction runs out of margin.
A QR code with a wide wordmark across the centre
Wide wordmark — 50% wide, 7.9% areaSpans half the code and covers fewer modules than the square one.

Area, not width. Those two examples are the argument. A width-based cap would refuse the wordmark on the right, even though it removes a third fewer modules than the square mark on the left. We clamp by area, so the shape people actually want is the shape they can have.

Two further cautions. A logo spanning most of the width leaves very little margin for print misregistration — keep the quiet zone generous if you do it. And error correction must be at level H whenever a logo is present; our editor sets that automatically.

4. Size on the material

There is no single minimum, because it depends on how much data the code carries and how far away it will be scanned. A shorter URL means fewer modules, and fewer modules means each one is larger at the same physical size — which is one practical reason a short link prints better than a long destination URL.

The reliable approach is not arithmetic. Print one at the intended size, on the intended material, and scan it with three different phones — including the oldest one you can find. Ten minutes before a run beats discovering it on delivery.

Material notes

Why dynamic codes print better

A dynamic code encodes a short link rather than a long destination URL. Fewer characters means a lower-density grid, larger modules at the same physical size, and more tolerance for everything above. The fact that you can change the destination afterwards is the headline benefit — printing more reliably is the one nobody mentions.

Questions

How much contrast does a QR code need to scan?

At least 3:1 between the modules and the background for most scanners. Aim for 5:1 or better if the code will be printed on a thermal printer, where ink density is unpredictable.

How large can a logo be in the middle of a QR code?

Around 12 percent of the code's area at error correction level H, which is the limit we enforce. Measuring by area rather than width matters: a wide, short wordmark can be allowed where a naive width check would refuse it.

How much white space does a QR code need around it?

At least four modules on every side. That clear border is called the quiet zone and it is how a scanner finds the edges of the code. Artwork that crops it is the most common reason a printed code fails.

My QR Code makes dynamic QR codes for print. Fourteen days free, two codes, no card required.

Start free