A printed QR code should be about one tenth as wide as the distance people will scan it from: a poster read from two metres wants a code roughly 20 cm across, while a business card scanned at arm's length works at 2–3 cm. Below about 2 cm, even a cleanly printed code starts to fail on ordinary phones. Everything else in this guide — file format, resolution, paper, ink — is about protecting that size rule in the real world.
The one-tenth rule of thumb
Phone cameras can zoom, but people rarely do. Someone passing a poster wants to point, tap, and move on, and for that the code needs to fill a reasonable slice of the camera's view. The widely used rule of thumb: divide the scanning distance by ten, and make the code at least that wide.
- Business card, read at 30–40 cm: 3–4 cm code
- Flyer or menu, held at 40–50 cm: 4–5 cm
- A4 poster on a wall, read from 1.5–2 m: 15–20 cm
- Shop-window sign, scanned from 3 m: 30 cm
- Banner or billboard at 10 m: 1 m or more
These are comfortable minimums, not a standard. A code larger than the rule suggests is never worse; one smaller asks the reader to step closer and zoom, and many will simply give up. When you cannot measure the distance exactly, overestimate it: people read posters from farther away than the person who hung them expects.
The 2 cm floor for close reading
At reading distance, the limit is not the rule but the structure of the code itself. A QR code is a grid of small squares called modules, and a code holding a short web address is typically around 25–30 modules across. At 2 cm total width, each module is well under a millimetre — about the limit for home and office printers, and thin enough that paper texture, ink spread, and camera noise start to blur neighbouring squares together.
That is why 2 cm is a sensible minimum for anything scanned up close: labels, tags, business cards, packaging. Two caveats follow. First, a code carrying more data is denser and needs more room, so treat 2 cm as a floor for a short link and go larger for anything busier. Second, a code that just fits often fails in the wild, while one with room to spare keeps working as paper, ink, and lighting vary. When in doubt, print bigger; the cost of an extra centimetre is almost always lower than a code nobody can scan.
What makes a code need more room
Three things decide how dense a QR code is, and therefore how large it must be printed.
Amount of data. Every extra character adds modules to the grid. A code for a short address stays small and chunky; one stuffed with a long URL full of tracking parameters becomes fine-grained and fragile. If your code looks crowded, shorten the destination link first — it is the cheapest size reduction available.
Error correction level. QR codes survive damage because part of the pattern is redundant backup. The four levels can recover roughly 7, 15, 25, or 30 percent of the code, with higher levels packing in more modules. For most print work, a middle level is a good balance; reserve the highest for codes that will be scuffed, placed on floors, or partly covered by a logo.
Quiet zone. The QR specification calls for a clear margin around the code — four modules wide is the usual guidance. It helps the camera find the edges of the pattern. Never crop into it, and never let a background photo or a fold run through it.
Vector or raster: SVG, PDF, and PNG
How you export the code matters as much as how big you print it.
Vector formats — SVG and PDF — describe the code as shapes rather than pixels, so the same file prints crisply at 2 cm on a label and at a metre on a banner. For anything going to a print shop, this is the format to ask for. A generator such as QRCodeMax.Vip offers SVG and PDF downloads alongside PNG, and for print the vector file is the safer default.
PNG is a raster format: a fixed grid of pixels. It works well on screens and is fine in print if the file has enough pixels for the final size. The problem starts when a small PNG is stretched — the edges of modules turn soft and blurry, exactly where a scanner needs them sharp.
How many pixels do you need?
Print is usually done at around 300 dots per inch, so a practical rule is: pixels needed ≈ width in centimetres × 118. A 3 cm code wants a PNG roughly 355 pixels wide; a 10 cm code, about 1,180. When in doubt, export the largest size offered, or switch to SVG and stop worrying.
One more warning: never screenshot the code or send it through a messaging app that compresses images before printing. Recompression smears the module edges.
Glossy paper, curved surfaces, and other obstacles
Real-world surfaces are where well-sized codes fail.
Gloss. Shiny coatings and laminates reflect light straight back into the camera, washing out parts of the pattern. Matte or uncoated paper scans more reliably. If the finish must be glossy, test a proof under the actual lighting where the piece will live — under a spotlight, glare can shrink a working code to nothing.
Curves. On cans, bottles, and cups, keep the code on the flattest patch available, away from ridges, seams, and the shoulder of the container. A pattern wrapped around a tight curve distorts the module shapes and changes the effective distance to the camera. Print larger than the rule suggests and test on the real container, not a flat mock-up.
Texture. Fabric, wood, corrugated board, and knobbly plastics break up fine detail. Use a larger size, a lower-density code, and a higher error correction level.
Ink, paper, and contrast
Scanners read contrast, not colour. The safe pattern is dark modules on a light background, and black on white is the most reliable combination in print.
Inverted codes — light modules on a dark background — are worth avoiding unless you can test them, because some scanning software expects dark-on-light and will not lock on. With coloured designs, keep the rule simple: the dark colour should be clearly darker than the background. Pale pastels on white, red on pink, and similar low-contrast pairings fail even though they look fine on screen.
Keep the code away from folds, perforations, and die cuts, and leave the quiet zone empty rather than printing a photo behind it. Heavier paper helps indirectly too: thin stock curls, and a curling label changes the angle and distance mid-scan.
Test a printed proof before the full run
A design that looks perfect on screen can fail on paper, and the only honest test is a printed one.
Print a single proof at final size, on the final material with the final finish — not a laser print on office paper standing in for a glossy label. Then:
- Scan with several different phones, including older models; cameras differ more than you would expect.
- Try both the phone's built-in camera and a dedicated scanner app.
- Test under real lighting: bright daylight, dim indoor light, and directly under the spotlights or window glare the piece will actually face.
- Scan from the true reading distance and from a slight angle, the way a person naturally would.
- Confirm the code opens the correct destination. A code that scans but leads to a slow or broken page is a different failure, and no size will fix it.
If any scan fails, resist the temptation to tweak on screen. Increase the size, simplify the code, or change the finish, print a new proof, and test again. A proof cycle costs an afternoon; a ruined print run costs far more.
The short version
Size the code to the distance — about one tenth of it, with a 2 cm floor for close reading. Export as SVG or PDF, or as a PNG large enough for print resolution. Keep strong dark-on-light contrast, respect the quiet zone, and allow extra room for gloss, curves, and texture. Then print one proof and scan it with real phones before you commit to the run.