QR Code Best Practices: Minimum Size, Scan Distance, Quiet Zone, Error Correction and Testing

A QR code either scans in two seconds or it does not scan at all, and the reasons are nearly always physical: printed too small for the distance, crammed against other artwork, low contrast, or so dense that a phone camera cannot resolve the modules. The fixes are cheap before printing and expensive after. These are the rules that matter, with the numbers behind them.

Minimum QR code size and scanning distance

The common rule of thumb is a 10:1 ratio: the code's width should be at least one tenth of the scanning distance. A code on a table tent read from 30 cm needs to be about 3 cm wide; a poster read from 2 m needs about 20 cm; a banner across a room needs half a metre or more.

scanning distance    minimum width (10:1)   typical use
15-20 cm             2 cm                   business card, product label
30 cm                3 cm                   flyer, menu, table tent
1 m                  10 cm                  shop window, A4 poster
2 m                  20 cm                  large poster
5 m                  50 cm                  banner, event signage

Treat 2 × 2 cm (about 0.8 inch) as the practical minimum for anything scanned close up, and go larger if the code holds a long URL. The ratio is a starting point, not a guarantee. Dense codes, poor light and older phones all need more size, which is why testing matters more than any formula.

Size needs to be judged in modules, not centimetres. A QR code is a grid of square modules, from 21 × 21 for version 1 to 177 × 177 for version 40, with each version adding 4 modules per side. The more data you encode, the more modules there are, and the smaller each one becomes at the same printed size. Phones struggle once a single module drops below roughly 0.3–0.5 mm in print.

Keep the content short

The single most effective way to make a QR code scan better is to put less in it. At the common error-correction level M, the 109-character tracking URL below needs version 7, a grid of 45 × 45 modules, while https://ex.co/a26 fits in version 2 at 25 × 25. Printed at the same width, each module of the short code is almost twice as wide.

https://www.example.com/campaigns/autumn-2026/landing?utm_source=flyer&utm_medium=print&utm_campaign=autumn26
  -> dense code, small modules

https://ex.co/a26
  -> sparse code, large modules, same destination via redirect

Use your own short domain or a redirect path on your site (example.com/q/autumn) rather than a third-party shortener. The link keeps working if a vendor shuts down, you can change the destination after printing, and you keep the analytics. Upper-case URLs can also encode more compactly in alphanumeric mode, which is why some printed codes use HTTPS://EXAMPLE.COM/A26. Domains are case-insensitive, but paths may not be.

The quiet zone

A QR code needs an empty margin, the quiet zone, around all four sides so the scanner can find the three finder patterns in the corners. The QR Code specification requires four modules of quiet zone. Designers often crop it to fit a layout, and a code that sits against a photo, a border or text next to it is the most common reason a large, sharp code still fails.

Include the quiet zone in the dimensions you give the designer, and keep it the same colour as the code's light background.

Contrast, colours and inversion

Scanners look for dark modules on a light background. Black on white is the safest. Brand colours work if the foreground is much darker than the background: dark blue, dark green or dark red on white or a light tint. Avoid light-on-light and mid-tone combinations, which fail in dim light.

Inverted codes, with light modules on a dark background, are decoded by many modern camera apps but not by all readers, especially older phones and dedicated scanner hardware. Avoid them for anything important. Gradients across the code, transparent backgrounds over images, and glossy or reflective materials such as foil, metal and laminated menus under spotlights also cause failures that only show up in the real setting.

Error correction and logos

QR codes contain redundant data so they can be read when partly damaged or covered. You choose one of four levels when generating the code:

level   restores up to     typical use
L       ~7% of codewords   clean screens, maximum data capacity
M       ~15%               general default
Q       ~25%               industrial, outdoor, small logos
H       ~30%               codes with a logo in the middle, harsh conditions

A centred logo works by deliberately damaging the code and relying on error correction to recover. Use level H, keep the logo below about 20–25% of the code's area, do not cover the three finder squares in the corners, and test. Higher levels make the code denser for the same content, so a logo plus a long URL is the worst combination. Shorten the URL first.

Where the code points

The landing page matters as much as the code. It must load fast on a mobile connection, be readable on a phone without zooming, and match what the printed material promised. A code on a menu that opens a desktop PDF of the menu is a common failure of experience, not of scanning.

Add UTM parameters to the destination behind your redirect, not to the encoded URL, so you can measure print campaigns separately without making the code denser. Check the destination periodically. A printed code outlives website redesigns, and a 404 behind it wastes the print run.

Be aware of "quishing", phishing through QR codes stuck over legitimate ones on parking meters and posters. Using your own recognisable domain, and printing it as text next to the code, helps people check where they are going.

Test before printing

Print a proof at the final size on the final material and scan it at the real distance and in the real lighting. Use at least one older Android phone and one iPhone with their built-in camera apps, since those are what most people use. Scan at an angle as well as straight on. Make sure the vector file keeps sharp edges: a QR code exported as a low-resolution JPEG and scaled up has blurred module edges that scanners handle badly. Use SVG or PDF for print.

Sources and further reading

ISO/IEC 18004 is the QR Code standard and defines versions, error correction levels and the four-module quiet zone. Denso Wave, the inventor of the QR code, publishes version, capacity and error-correction information on qrcode.com. GS1 publishes guidance for QR codes on product packaging.

Frequently asked questions

What is the minimum size for a QR code?

About 2 × 2 cm (0.8 inch) for codes scanned from close range, such as business cards and labels. For longer distances, use the 10:1 rule: the code should be at least one tenth as wide as the scanning distance.

How big should a QR code be on a poster?

Divide the expected scanning distance by 10. A poster read from 2 metres needs a code around 20 cm wide, plus the quiet zone. Test a printed proof at that distance.

What is the quiet zone of a QR code?

The blank margin around the code, which must be at least four modules wide on every side. Without it, scanners cannot reliably locate the code.

Can I put a logo in a QR code?

Yes, if you generate it with error correction level H, keep the logo small (under about a quarter of the area), avoid the corner finder patterns, and test it on several phones.

Can QR codes be coloured?

Yes, as long as the modules are much darker than the background. Dark colours on white work; light-on-dark inverted codes and low-contrast colours fail on some readers.

Why won't my QR code scan?

Usually it is printed too small for the distance, has no quiet zone, has low contrast or glare, or encodes a long URL that makes the modules too small. Shorten the URL and enlarge the code.