How to Create a QR Code for Anything
A QR code is a two-dimensional barcode that carries its data in the pattern itself. The QR Code Generator makes one from any text or URL and downloads it as a PNG.
The data is in the code, not behind it
Worth being clear about, because it decides a lot. A QR code does not point at a database - the pattern is the information, encoded directly.
So a code containing a long URL is visually denser than one containing a short URL, because it is physically storing more. That is the practical argument for keeping the encoded text short: fewer modules means a larger, more forgiving pattern at the same printed size.
It also means a code has no owner and no expiry. Once printed, it does whatever it was made to do forever - which is why a code pointing at a URL you control is safer than one pointing at a URL you do not.
Error correction, and why codes still scan when damaged
QR codes include Reed-Solomon error correction at one of four levels, recovering roughly 7, 15, 25 or 30 per cent of the data. That redundancy is why a code works with a logo in the middle, a scratch across it, or part of it in shadow.
The cost is density: higher correction means more modules for the same content. For anything printed and handled - a leaflet, a menu, a sticker - the extra robustness is worth it. For a code on a screen, the lowest level is fine.
The three large squares in the corners are position markers that let a scanner work out orientation, which is why a code reads upside down or at an angle.
Size, contrast and the quiet zone
Three things decide whether a code actually scans.
Size. At least one tenth of the scanning distance - a code read from a metre away wants to be about 10 cm across. Below 2 cm, phone cameras struggle whatever the distance.
Contrast, the right way round. Dark pattern on a light background. Inverted codes - light on dark - fail on many scanners, and that is the commonest reason a nicely designed code does not work.
The quiet zone. The blank margin around the code, conventionally four modules wide. Crop it tight to the pattern and scanners lose the edge. This is the mistake that ruins codes in otherwise careful layouts.
Test it before it is printed
On more than one phone, at the distance and in the light people will actually use. A code that scans on your desk under a lamp may fail on a wall in a dim restaurant.
And test it after printing, not just on screen - paper, ink bleed and lamination all change things. For a code that should reveal something at a chosen moment rather than immediately, SurpriseQR is built around that instead.
Common questions
Can a QR code be tracked?
Not by itself. Point it at a URL carrying UTM parameters and your analytics will tell you.
Can I put a logo in the middle?
Yes, within the error correction budget. Keep it small and test it.
How much can one hold?
Several thousand characters in theory. In practice, keep it to a short URL.
Do they expire?
The code never does. The URL it points at might, which is the thing to watch.
Need a code for something?