How to make a QR code that actually scans

Contrast, size, quiet zone and error correction: the four settings that decide whether a code works on the first try.

Most QR codes that fail don’t fail because of the link. They fail because of how they were designed or printed. A code that scans instantly on a laptop screen can be unreadable on a glossy menu under warm lighting.

Four settings decide whether a code works on the first try. Get these right and you can be as creative as you like with everything else.

Contrast

Scanners look for the difference between dark and light modules. Use a dark color for the code on a light background, and aim for a contrast ratio of at least 4:1. The QR Studio generator shows the ratio of your colors as you pick them.

Scans
Scans
Too faint
The same link in three color schemes. Brand colors work while the code stays clearly darker than its background.

Avoid light codes on dark backgrounds. Many phone cameras handle inverted codes, but plenty of older scanner apps don’t.

Size and distance

A useful rule: make the code at least one tenth of the distance it will be scanned from. Never print a code smaller than 2 × 2 cm.

WhereDistanceMinimum size
Business card20 cm2 × 2 cm
Table card30–50 cm3–5 cm
Poster1–2 m10–20 cm
Shop window2–3 m20–30 cm

Longer content makes a denser code with smaller modules, so it needs more space. Keep links short when you can. See QR code print sizes for more detail.

The quiet zone

The empty margin around a code tells the scanner where it begins. The standard asks for four modules of clear space on every side. Don’t let text, borders or photos creep into it.

Make a code with the right margin built in.Open the generator

Error correction

Every QR code stores some spare data so it can still be read when part of it is damaged or covered. There are four levels: L (about 7%), M (15%), Q (25%) and H (30%). QR Studio uses M by default and switches to H when you add a logo.

Then test the printed code with two different phones, from the distance people will actually stand, before ordering a full print run.

Next guideQR code size: how big to print for every distance