Learn

Printing QR codes that scan reliably

A QR code has to survive print, distance, and bad light for years. Quiet zone, contrast, error correction, size, and testing are what make that happen.

The value of a dynamic QR code is that you print it once and keep steering where it goes for years. That only pays off if the printed code keeps scanning for those years, on packaging, a poster, or a curved bottle, in whatever light the scanner happens to have. Five physical properties decide whether it does.

How much clear space does a QR code need?

A QR code needs a quiet zone four modules wide on every side, and nothing may be printed inside it. A module is a single small square in the pattern. DENSO WAVE, which co-developed the symbology, states that a QR code requires a four-module wide margin at all sides of a symbol. Borders, captions, and artwork that creep into that margin are a common reason a code that looked fine on screen fails in print.

What error correction level should you choose?

QR codes define four error correction levels, L, M, Q, and H, which trade damage tolerance against how much pattern the same data needs. DENSO documents Level M as restoring roughly 15 percent of the code and notes it is the most frequently selected; Level Q restores roughly 25 percent. Start at M for clean indoor print, and step up to Q when the code will be scuffed, curved, printed small, or scanned outdoors. Higher correction is not a licence to hide the code under a large logo or print it at low resolution; it is headroom for real-world wear, not for design damage.

Keep contrast high and the payload short

The safest design is dark modules on a plain light background. Avoid low-contrast colour pairings, reflective or transparent surfaces, busy backgrounds, printing across a fold or seam, and reversed light-on-dark unless you have tested it on real stock.

Keep the encoded value short. QR codes add modules as the encoded string grows, and versions run from Version 1 at 21 by 21 modules up to Version 40 at 177 by 177 modules, adding four modules per side at each step. A long tracking URL forces a denser grid that struggles at small sizes; a short redirect link stays sparse and reads faster. This is a practical reason to prefer a managed redirect over baking a long URL into the dots.

Size for the real scanning environment

The right size depends on scanning distance, camera quality, light, print process, surface, and how much the code moves. A code that scans on a designer’s monitor can fail on a bottle, a bus wrap, or a dim venue wall. Size for the worst case the code will actually meet, then test that case.

Test the production item, and give a fallback

Test the printed production sample, not just the digital proof: multiple current phones, both mobile platforms, the ordinary camera app, real light, the expected distance and angle, and a worn or dirty sample. For dynamic codes, test the disabled and expired states too.

Print a human-readable fallback next to the code, such as a short URL or a reference number, and say what the scan does (“Scan for allergens”, not “Scan me”). A fallback supports accessibility, poor connectivity, and anyone who does not trust an unlabelled code.

When you export from redireo, packaging-grade print files (PNG, PDF, ZPL, SVG) and GS1 label-sheet PDFs come with an advisory scannability check for quiet zone, contrast, and minimum size. Treat it as a helpful check, not a guarantee: the physical proof on real stock is still yours to run. For packaging workflows, see packaging and print; for design tools, see the Canva integration. To understand where the four-module margin and error correction levels come from, read what the QR code standard specifies.

Frequently asked questions

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

A QR code needs a quiet zone four modules wide on all four sides, with nothing printed in it. A module is one of the small squares in the pattern. Text or artwork that intrudes into the quiet zone can stop the code from scanning.

What error correction level should I use for a printed QR code?

Level M, which DENSO documents as restoring about 15 percent of the code, is the common default and a good starting point. Move to Q (about 25 percent) for codes that will be scuffed, curved, or printed small. Higher levels add more pattern for the same data, so they need more space.

Why does a shorter link scan more easily?

A shorter encoded value produces fewer modules, so the pattern stays sparse and reads faster from farther away and in worse light. This is one reason a managed redirect, which encodes a short link, prints more reliably than a long tracking URL.