Frequently asked questions
What people usually ask before generating a code and, above all, what is worth knowing before sending anything to print.
The basics
What exactly is a QR code?
A matrix of modules — the light and dark squares — defined in the ISO/IEC 18004 standard. The three large squares in the corners are the position patterns: they let the reader find the code and work out its rotation, even upside down. Between them run the timing and alignment patterns, which correct perspective when the photo comes out skewed. The remaining modules store the data and the error correction information. There are 40 sizes or versions, from 21 × 21 modules up to 177 × 177: the more characters you encode, the larger the matrix.
How much information fits in a QR code?
The standard’s maximum, at version 40 with the lowest error correction level, is 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes. At the highest correction level it drops to 1,273 bytes. The practical limit arrives much sooner: every character adds modules, and a very dense code has to be printed larger to stay readable. For a web address, staying under 100 characters keeps the pattern comfortable.
Do you need an app to read them?
On most phones, no. The iOS camera has read QR codes since version 11, and recent Androids do it from the camera itself or with Google Lens. Reader apps still make sense on old phones and for other barcode formats, but for a normal QR there is nothing to install.
Do QR codes expire?
The code does not expire: it is a pattern encoding some data, and that data does not change with time. What expires is the destination. A static code with a web address stops being useful the day that address stops existing. A dynamic code stops working if the redirect service shuts down or nobody renews the intermediate domain — so before printing, know who controls that domain and for how long.
Can I see where a code leads before opening it?
Yes, and you should. Almost every phone shows the address before opening it: read it in full, domain included, before tapping. Distrust stickers placed over another code on posters, parking meters or payment terminals, and codes that lead to a shortener hiding the final destination. A QR is just a printed link, with the same risks as a link in an email.
Static or dynamic
What is the difference between static and dynamic?
A static code carries the data inside the pattern itself: the address, the text or the Wi-Fi password is encoded in the modules you see. On scan, the phone reads the content and that is the end of it — no server involved. A dynamic code encodes a short intermediate address that redirects to the real destination, which lives on a server. That is why a dynamic code can be changed after printing and can count scans, and a static one can do neither. In exchange, static always works and depends on nobody keeping anything running.
Both cases have their own page with examples: the editable website QR code, the most used dynamic type, and the static URL QR code, which engraves the address inside the pattern.
Can I change the destination of a printed code?
Only if it is dynamic. If it is static, the destination sits inside the pattern: changing it means generating another code and reprinting. That is the main reason to pick dynamic for anything printed in quantity or meant to last out on the street.
Is a dynamic code less reliable?
It has one more point of failure. Between the scan and the destination there is a hop through a redirect server: if that server is down, the code leads nowhere even if the final page works. It also adds a few milliseconds and briefly shows the user a domain that is not yours. Not a reason to rule it out, but worth weighing for something that will stay printed for years.
Which one should I use in each case?
Static for data that will not change and that you do not need to measure: a Wi-Fi network, a contact card, a text, a phone number, the location of a venue. Dynamic for campaigns, packaging, signage, anything printed in quantity, and whenever you need to count scans or be able to fix the destination later.
Typical cases on each side: the Wi-Fi QR code and the text QR code are static and need no connection; the coupon QR code and the PDF QR code are dynamic because their content changes every season. The full list is in the 36 QR code types.
What gets recorded when someone scans a dynamic code?
Passing through the redirect can record the scan count, the date and time, the approximate country deduced from the IP address, the operating system and the device type. It does not record the name, phone or email of the person scanning, and it does not know who they are. The detail of what is kept and for how long is in the privacy policy.
Design and customisation
Why does a heavily customised code stop scanning?
Because decoration eats the margin the reader needs to work. Three causes, in order of frequency:
- Not enough contrast. The reader converts the image to black and white before decoding. With light colors, soft gradients, or a textured or photographic background, that conversion fails and the code stops existing for the phone.
- An oversized logo. Error correction is not spare room: it is the budget for scratches, glare, smudged ink and bad angles. If the logo spends it all, the code is still valid on paper but has no margin left for the real world.
- Retouched position patterns. The three corner squares and the alignment patterns are not decoration. Round them too much, fill them with gradient or drain their contrast, and the reader never even finds the code.
To avoid it: dark modules on a light background and never the reverse, one flat color, a small centred logo, a high correction level only when there is a logo, the quiet zone intact, and a real test with two different phones before anything goes to print.
Which error correction level should I use?
There are four levels: L recovers around 7% of damaged data, M 15%, Q 25% and H 30%. Going up is not free: the redundant information takes space, so the code needs more modules and, at the same printed size, each module gets smaller. Our rule: M by default, and H only if the code carries a logo or goes somewhere dirty, wet or outdoors.
Can I put my logo in the middle?
Yes, on two conditions: keep it small and keep it centred. The centre is the least critical zone of the pattern and where covering does the least harm. Our rule: we do not accept a logo covering more than 15% of the code’s surface, even though level H technically tolerates more. Whatever is left of the correction budget must stay for dirt and glare, not be spent on design. And after placing it, test it: the QR code editor re-reads the code with the logo in place before letting you download, and warns if it has stopped being recognisable.
Can I use my brand colors?
Yes, as long as the result keeps its contrast. Two rules: dark modules on a light background, never the reverse, because some readers handle inverted codes but not all; and flat color beats gradient. Yellows, light oranges and pastels on white are the ones that fail most. Our rule: below a 4:1 contrast ratio between module and background, we do not call it valid.
Do rounded modules and frames get in the way?
Rounded or dot-shaped modules slightly reduce each module’s ink area, which shows in small prints or on absorbent paper. With a generous size and good contrast they rarely cause trouble. A frame with a call to action does not interfere as long as it respects the quiet zone — and it tells passers-by what the code is for, which is half the job.
Printing and scanning
What size should I print the code at?
The practical rule: maximum reading distance is about ten times the side of the code. A 2 × 2 cm code reads comfortably at about 20 cm, the distance of a card or a flyer in the hand. A poster viewed from 3 metres needs about 30 cm per side. Below 2 cm the margin is very short, and if the content is long the pattern gets so dense it fails. When in doubt, go bigger: a large code bothers nobody and a small one gets scanned by nobody.
What is the quiet zone and why does it matter?
The clear margin around the code. The standard asks for four modules on every side — the width of four of the code’s own little squares. Without that margin, the reader cannot tell where the code ends and the design begins. It is the most common layout mistake: pushing the QR against the edge of a flyer, boxing it in a colored panel or placing it on top of a photograph.
Which file format do I take to the printer?
Vector whenever you can: SVG or PDF. Vectors scale without losing an edge and the printer adjusts them to any size needed. If you must hand over a bitmap, make it a PNG at final size with resolution to spare. Never JPEG: its compression smears exactly the high-contrast edges a QR code lives on.
Why does it fail on some surfaces?
The usual causes are glare and distortion. Glossy plastic, varnish and glass bounce the phone screen’s reflection right onto the code. Curved surfaces, like a bottle or a can, warp the grid until the reader stops recognising it: there you enlarge the code and pick the flattest area. On screens, the problem is usually low brightness or a dark mode inverting the colors.
How do I check it works before printing the run?
With a real test, not a screenshot. Print the code on the final material at the final size and try it with two different phones, one Android and one iPhone, at the distance it will be scanned from, under the light of the place it will hang, and from an awkward angle. If a single one of those tests fails, increase the size or dial back the customisation. Testing on screen does not count: monitor brightness hides contrast problems that paper does not forgive.
Question not here? Write to us through the contact form and we will add it to this page if it helps more people.