PRACTICAL GUIDE
QR Codes Explained: What to Encode and How to Print Them
What to put in a code, how small it can safely go, why error correction saves a print run, and the mistakes that only show up after ten thousand copies.
Last updated
Encode the address you will still own next year
A printed QR code cannot be edited. Whatever it encodes is what it will encode for as long as the poster exists, so it should point at something you control: your own domain, on a path you are willing to keep alive or redirect later.
This is the argument against encoding a long tracking URL, a link to a document in someone else's cloud storage, or a campaign address that a marketing platform generated for you. If that service changes its links, your printed code becomes a dead end and there is nothing to fix but the paper.
Shorter content, larger dots, easier scan
The amount of data decides how dense the pattern is. A short address produces a code with large modules that a phone locks onto instantly; a long one packs in far more, smaller squares that need a steadier hand, better light and a closer camera.
The practical consequence is that shortening the URL improves scanning more reliably than making the code bigger. Dropping tracking parameters, or pointing at a short path on your own domain, is usually the cheapest improvement available.
Size and quiet zone
A useful rule of thumb is that the code should be about a tenth of the distance it will be scanned from: two centimetres for a code read at twenty, and much larger for anything on a wall. Around it there has to be clear space of at least four modules' width — the quiet zone — because the scanner uses that empty border to find the edges. Cropping tight into the pattern, or placing text hard against it, is the most common reason a technically valid code refuses to scan.
Error correction, and why it is not free
QR codes carry redundancy, at four levels, and the highest can survive around thirty per cent of the pattern being damaged or covered. That is what makes a logo in the middle possible. The cost is that redundancy occupies space: the same content at a higher correction level produces a denser pattern. For print, the higher levels are worth it because paper gets creased and wet; on a screen, the lower ones are usually enough.
Test the thing you are actually printing
Scan it from the printed proof, not from the screen, with more than one phone and at least one older one. Check it in poor light and at the angle people will really hold it. And read the code back as data before the print run, because the difference between the address you meant and the address you pasted is invisible in the pattern and expensive on ten thousand flyers.
Frequently asked questions
Do QR codes expire?
The code itself does not: it is a pattern encoding text, and it will decode to the same text forever. What expires is whatever it points at. A code encoding a link outlives the link, which is why encoding an address on a domain you control is the only durable choice.
Can I put a logo in the middle?
Yes, if the code was generated with enough error correction and the logo covers only the middle, well away from the three large corner squares. Keep it under about a fifth of the area, and test the printed result — this is precisely the change that scans fine on a phone held still and fails in a shop doorway.
Does colour matter?
Contrast matters, direction matters, and inversion breaks things. Keep the pattern dark on a light background rather than the other way round, avoid gradients across the modules, and remember that a red code on a black background has almost no contrast to a camera even though it looks fine to you.
Is the code generated on my device?
Yes. The pattern is computed in your browser and the PNG is produced locally, so the address you encode — which is often unpublished when you are preparing a campaign — is not sent anywhere.