QR Codes That Scan Reliably

For anyone putting a QR code on a poster, a menu, a business card or a shop window and wanting it to work for everyone who tries. Failed scans nearly always come down to four things, and all four are decided before the code is printed.

ZillaKit team · Published September 2026

A QR code is a grid of black and white squares encoding data, designed with enough redundancy to survive dirt, damage and awkward angles. It is a robust format. When one fails to scan it is almost never the format's fault, it is a decision someone made about how to present it.

The quiet zone

A QR code needs a margin of blank space around it. This is called the quiet zone, and the specification asks for a clear border equal to four modules, where a module is one of the small squares that make up the code. It is not decoration. The scanner uses that empty border to find where the code starts and ends.

Place a code hard against a photo, a coloured block, a table border or the edge of a card and scanning becomes unreliable in exactly the way that is hardest to diagnose, because it will work for some people on some phones and fail for others. Most generators include the quiet zone in the exported image. The mistake comes later, when someone crops the image to "tidy it up" or drops it into a tight layout. Leave the white border alone.

Contrast and colour

Scanners read light and dark, not colour. The foreground modules must be substantially darker than the background.

Error correction, explained plainly

QR codes include redundant data so the code still reads when part of it is obscured or damaged. There are four levels, conventionally labelled L, M, Q and H, in increasing order of robustness. Roughly speaking they tolerate about 7, 15, 25 and 30 per cent of the code being unreadable.

The trade off is straightforward: more error correction means more redundant data, which means more modules, which means a denser code at the same physical size. A dense code needs a better camera or a closer look.

Practical guidance:

About logos in the middle

It works, but respect the budget. The logo must stay well within the tolerance of the chosen level, so keep it small, roughly under a fifth of the code's width, keep it centred, and never cover the three large squares in the corners. Those corners are the position markers the scanner uses to orient itself, and damaging them kills the code outright. Always test a logo version on several phones before committing to a print run.

Size on print

The controlling factor is scanning distance. A widely used rule of thumb in the signage trade is that the code's width should be about one tenth of the distance from which it will be scanned. A code read from one metre away wants to be around ten centimetres across.

Some practical starting points: a business card code works at around two centimetres square, which is comfortable for a hand held scan. A table menu code sits well at three to four centimetres. A poster read from two or three metres needs something in the region of twenty to thirty centimetres. A shop window code that people scan from the footpath needs to be larger than most people expect.

Two other size rules. Shorter data produces fewer modules, which means each module is physically larger at the same code size, which scans better. So use a short URL rather than a long one with tracking parameters appended. And when printing, export the code at a high resolution or as a vector file so the module edges stay sharp; a low resolution code scaled up produces fuzzy boundaries that scanners struggle with.

Specialised codes

WiFi

A WiFi code encodes the network name, the security type and the password, so a guest scans it and joins without typing anything. It is genuinely useful in a cafe, a holiday rental or a meeting room, and the WiFi QR Code tool builds one from those three fields.

Three things to watch. The network name is case sensitive and must match exactly. You must select the correct security type, since choosing the wrong one produces a code that fails with no useful error. And be clear about what you are doing: the password is encoded in the code, so anyone who photographs it has your password permanently. For a business, put guests on a separate guest network rather than the one your point of sale system uses, and change the password when staff turn over.

Contact cards

A vCard code encodes name, phone, email, organisation and address, so a scan offers to save the contact directly. The vCard QR Code tool produces these. The main trap is length: putting every field you have, including a long postal address and three phone numbers, produces a dense code that scans poorly at business card size. Include the fields that matter and leave the rest out.

Test before you print

This is the step people skip and regret. A code that works on your phone at your desk is not a code that works.

  1. Print it at the actual final size, not on screen.
  2. Test with at least two phones, ideally one recent and one older.
  3. Test at the real distance and at an angle, not straight on.
  4. Test in the lighting where it will live, including dim restaurant light or bright outdoor glare.
  5. Confirm the destination is right, and that it works on mobile, because a code pointing at a page that only works on a desktop browser is a wasted print run.

Honest limits

A QR code cannot be edited once printed. If the destination changes, every printed copy is dead. Pointing the code at a short link you control, rather than directly at the final address, lets you change the destination later without reprinting. That convenience comes with a cost: the redirect service becomes a dependency, and if it shuts down or starts charging, your codes stop working. Weigh that against how likely the destination is to change.

Be aware too that many people are now cautious about scanning codes from unknown sources, and reasonably so, since a code is an opaque instruction to visit an address. Printing the destination address in small text beside the code builds trust and costs nothing.

Lastly, a QR code is a convenience, not an access method. Never make it the only way to reach something important. Print the address as well, so a person without a working camera, or with a cracked screen, is not locked out.

Tools mentioned

Related guides