Field notes

Print It Once, Because You Tested It First

The cheapest time to find a broken QR code is on a single proof, not in a warehouse full of printed stock. This checklist walks the proof through two phones, real light, real distance, and real material, before the full run is approved.

November 4, 2026 · 14 min read

A QR code that scans on a designer's screen can still fail on paper. Screens are backlit, perfectly flat, and viewed at arm's length. Paper is not. It glares, curves, absorbs ink, fades in sunlight, gets scuffed in handling, and is read from distances the designer never stood at. That gap is why pre-print testing exists, and why it should be a checklist rather than a glance. A glance catches a code that is obviously broken. A checklist catches a code that works in the studio and fails at the venue, on the shelf, or in a customer's hand.

This guide is written for the moment before approval: the proof is printed, the full run has not started, and there is still time to fix the size, the contrast, the material, or the link without wasting stock. It assumes you have already chosen the destination and generated the code. If you have not, start with the destination and the link, because no amount of print testing can fix a private video, an expired page, or a mistyped address. Once the link is right, work through the checks below in order, and do not approve the run until every must-pass item has a tick from a real proof, not from a screen preview.

Start with the file, not the proof

Before printing anything, check the file you are handing to the printer. For print, use a vector file such as SVG or PDF when you can, because vector edges stay sharp at any size, from a business card to a banner. A small PNG stretched onto a large format softens the module edges into staircases, and softened edges are a common cause of scan failures on large prints. If you must use a PNG, export it at 300 pixels per inch at the final printed size, and at 600 pixels per inch for codes under 25 millimetres, so the modules stay crisp rather than blurred.

Check the colour mode and the contrast in the final file, not just in the design tool. A code designed in RGB can shift when converted to CMYK for print, and a dark brand colour that looked strong on screen can turn muddy on paper. Aim for a contrast ratio of at least 4:1 between the code modules and the background, with dark modules on a light background as the safe default. Black on white always works. Dark navy on cream can work. Light modules on a dark background, pale colours on pale paper, gradients behind the code, and busy photographs underneath it are the usual suspects when a code looks stylish but scans slowly. If the brand demands a dark background, put the code inside a white or light-tinted panel and put the brand colour everywhere else.

Check the data itself. Shorter content makes a simpler, more forgiving code, because each extra character can push the code up a version, adding modules and shrinking each one at the same printed size. A short link, or a dynamic code that stores a short redirect, keeps the pattern sparse. A long address with tracking parameters, a full contact card, or a paragraph of text does the opposite. If the code looks dense — a tight grid of tiny squares — consider shortening the link, raising the printed size, or both, before you test anything else. Density is not a defect by itself, but dense codes need larger sizes, better light, and newer phones, and those are exactly the things a printed code cannot guarantee.

Size, quiet zone, and error correction: the three numbers to set first

Size comes from distance. A widely used rule of thumb is the 10:1 ratio: the code should be at least one tenth as wide as the distance it will be scanned from. A code scanned from 30 centimetres away should be at least 3 centimetres wide. A poster read from 1 metre away needs a code at least 10 centimetres wide. A wall graphic read from 3 metres needs about 30 centimetres. These are minimums, not targets, and they assume good light and a decent camera. Poor light, glossy material, a dense code, or an older phone all argue for going larger. Never go below about 2 by 2 centimetres for close-range print, even on a business card, because below that size even close-range scanning becomes unreliable on many phones.

The quiet zone is part of the code, not padding you can trim to fit a layout. The QR specification calls for a blank margin at least four modules wide on all four sides, and scanners use that empty border to find where the pattern starts and ends. Text, rules, logos, or photographs pressed against the edge can confuse detection, even when the code itself is perfect. In practical terms, keep at least half a centimetre clear around a small code, and more around a large one, and do not let a border, a fold, or a die-cut edge eat into that margin. Check the quiet zone on the proof, not just in the artwork, because trimming, folding, and binding can all shift the code closer to an edge than the designer intended.

Error correction is the code's insurance. QR codes offer four levels: L recovers about 7 percent, M about 15 percent, Q about 25 percent, and H about 30 percent of damaged or obscured data. M is a sensible default for most printed material. Q suits outdoor or handled material that may get scuffed, and H is the usual choice when a logo sits in the centre, because the logo deliberately covers data modules. Higher correction makes the code denser for the same content, so a logo code usually needs to be printed slightly larger than a plain code. If you are adding a logo, set the correction first, generate the code, and then size and test that exact version, not a plain preview.

CheckRule of thumbProof test
Size for distanceCode width at least scanning distance divided by 10; never below 2 by 2 cm for close rangeStand at the real viewing distance and scan; if you must step closer, enlarge the code
Quiet zoneBlank margin at least four modules wide on all four sidesCheck the trimmed, folded proof, not just the artwork, for text or edges touching the code
ContrastDark on light, at least 4:1 ratioScan in bright and dim light; if it only works in one, raise the contrast
Error correctionM by default, Q for harsh handling, H for a centre logoScuff or cover a small corner of a spare proof and confirm it still scans

The two-phone test: why one phone is not enough

Test with at least two different phones, and make one of them older. A flagship phone with a fast camera and strong low-light performance will forgive a small, dense, or low-contrast code that an older phone cannot read at all. Guides on printing QR codes repeatedly make the same recommendation: test the final printed result with more than one phone, with one of them older, and test it at the real size and on the real material. That advice exists because the audience does not all carry the newest device, and the code must work for the weakest phone in the audience, not the strongest phone in the studio.

Use the native camera on each phone, not just a single QR app, because most viewers will scan with the camera they already have. On each phone, note three things: whether the code is recognised at all, how long recognition takes, and at what distance and angle it works. A code that is recognised instantly at arm's length but only after several seconds of hunting is not a pass. It is a warning that the size, contrast, or density is marginal, and marginal codes fail first in poor light, on curved surfaces, or when the viewer's hands are unsteady. If the two phones disagree, trust the weaker result and fix the code, rather than averaging them into a pass.

Light, distance, and angle: test where it will actually live

Light is the most underestimated variable in pre-print testing. A proof checked under bright studio lights tells you little about a code that will live on a sunlit window, a dim corridor wall, a glossy menu under spotlights, or an outdoor sign at dusk. Test the proof in the brightest and dimmest light it will plausibly face, and test it with glare. Glossy lamination, glass, and shiny packaging reflect light into the camera and can defeat a scanner even when the code is large and high-contrast. If glare is a problem, specify a matte finish, move the code away from the light source, tilt the proof, or place the code on a matte panel rather than directly on the glossy surface.

Distance and angle matter just as much. Stand where the viewer will stand, not where the designer stood. A table tent is scanned from a seated position, roughly 40 to 60 centimetres away. A poster is scanned from standing distance, often 1 to 2 metres. A storefront sign may be scanned from the pavement, at an angle, through glass. Test at the far end of that range, not the near end, and test at a slight angle, because viewers rarely stand square-on to a sign. If the code only works when you step closer or square up, it is too small or too low-contrast for its placement, and moving it, enlarging it, or adding a short instruction to step closer is better than hoping viewers will work it out.

Material: paper, plastic, metal, and fabric behave differently

Material changes the rules, and the proof material should match the final material. Paper and cardboard work best with matte or uncoated stock. Glossy finishes cause glare, so increase code size by 15 to 20 percent if glossy stock is required, according to one printing guide. Corrugated cardboard, with its uneven surface, needs a larger code and higher error correction, with level Q or H recommended. Vinyl and plastic need matte lamination and UV-resistant ink for outdoor use, with level H for outdoor exposure, and a plan to replace or re-laminate as sun and weather degrade the print. Metal and aluminium, where laser etching gives lower contrast, need a size increase of 30 to 40 percent and level H, tested on the actual surface finish.

Fabric, wood, and textured surfaces add their own problems. Ink spreads on absorbent material, blurring module edges, while rough textures break the clean grid the scanner expects. On those materials, print larger, use higher error correction, and test a sample that has been handled, washed, or weathered if the item will face that treatment. A code on a tote bag that scans when new but fails after one wash has not passed, even if the first proof looked perfect. The same applies to labels that will be frozen, heated, or handled with wet hands: test the treated sample, not just the fresh print.

The proof checklist, in order

Work through the proof in the order below, and record a pass or fail for each item, with the phone models, distances, and light conditions used. A checklist with notes is useful when the printer asks what changed, when a colleague reprints the item, or when a code fails in the field and you need to know what was actually tested. Keep one approved proof, signed and dated, as the reference for the full run, and compare the first sheets off the press against it, because press conditions can drift from proof conditions.

StepWhat to checkPass means
1. FileVector SVG or PDF, or 300 dpi PNG at final size; CMYK contrast still at least 4:1Edges sharp at final size, no blur or colour shift after conversion
2. Size and quiet zone10:1 distance rule, minimum 2 by 2 cm, four-module margin on the trimmed proofScans from the far end of the real viewing distance
3. Link and destinationShort link, correct page, plays or loads on a phone without sign-inStranger test passes in a private browser session
4. Two phonesNative camera on a newer and an older phone, at real size and materialBoth recognise the code quickly, not just the newer phone
5. Light and angleBright, dim, glare, and angled views at the real placementScans in all plausible light, not just studio light
6. Material and handlingFinal stock, finish, curve, fold, and expected wearScans after handling, on the curved or finished surface
7. Press checkFirst sheets off the press against the approved proofNo drift in size, contrast, or trimming before the run continues

If any must-pass item fails, fix it and re-test the full chain, not just the item that failed. Enlarging a code can change its density and its quiet zone. Raising contrast can change the colour balance. Changing material can change glare. A fix in one place can break another, so the re-test should repeat the two-phone, light, distance, and material checks on the new proof, even if only one variable changed. That discipline feels slow on a single proof, and it is dramatically faster than reprinting a full run.

When to stop and rethink, rather than tweak

Some proofs should not be tweaked; they should be redesigned. If the code must be tiny to fit the layout, and enlarging it breaks the design, the layout is wrong for a QR code, not the code for the layout. Consider a larger format, a different placement, a shorter link that allows a sparser code, or a different call to action entirely, such as a short memorable address for a business card. A code that only works when the viewer already knows to step closer, tilt the card, and shield it from glare is not a working code, whatever the proof sheet says.

For related guides, see QR code print size guide, why a QR code is not working, and why a QR code is blurry. FreeQrly supports all 17 QR code types, but no generator can rescue a code approved on screen and never tested on paper.

Sources

Try it yourself — free

Everything in this article works in the FreeQrly studio right now. Static codes, all 17 content types, PNG and SVG export.

Open the studio

Good to know

How many phones should I test a printed QR code with?

At least two, with one older phone in the mix, using the native camera on each. A code that only works on a flagship phone is not ready for a general audience.

What is the smallest size I can print a QR code?

About 2 by 2 centimetres for close-range print, as a floor, and at least one tenth of the scanning distance for anything read farther away. A poster read from 1 metre away needs at least 10 centimetres.

What is the quiet zone, and can I trim it to fit a layout?

It is the blank margin at least four modules wide on all four sides, required by the QR specification so scanners can find the pattern edges. Do not trim it, and check it on the trimmed and folded proof, not just the artwork.

Should I use PNG or SVG for print?

SVG or PDF vector files when you can, because their edges stay sharp at any size. If you use PNG, export at 300 pixels per inch at final size, and 600 for codes under 25 millimetres.

What error-correction level should I choose for print?

M as a default, Q for outdoor or heavily handled material, and H when a logo sits in the centre. Higher correction makes the code denser, so print a logo code slightly larger.

Why does my code scan on screen but not on paper?

Common causes are glare from glossy stock, ink spread on absorbent material, curvature, a size too small for the viewing distance, or contrast lost in CMYK conversion. Test a proof on the final material, in real light, at real distance.

What if the code scans but opens the wrong page?

That is a destination failure, not a scan failure. Check the link in a private browser session signed out, confirm the page loads on a phone, and use a dynamic code or landing page if the destination may change after printing.

Do I need to re-test after fixing one problem?

Yes. Enlarging, recolouring, or changing material can affect size, contrast, density, and glare. Repeat the two-phone, light, distance, and material checks on the new proof before approving the run.