What Size Should a QR Code Be? A Practical Print Sizing Guide
"How big does it need to be?" is the question printers get asked most, and the answer has three parts: how far away the person stands, how much data you encoded, and how your print process reproduces fine detail. Miss any one and the code comes back unscannable. The tables below are deliberately conservative — you can almost always go bigger, you can rarely go smaller.
The 10:1 rule: what it measures and where it breaks
The familiar rule is that scan distance should not exceed roughly ten times the symbol width. It is a rule of thumb from industry sizing guides, not a clause in ISO/IEC 18004, and it works because it is conservative: it assumes a modern phone, reasonable light and a moderate module count.
Where it breaks is density. At a fixed physical size, more data means smaller modules, and module size is what the camera has to resolve. A 2 cm version 1 code (21×21) has modules around 0.95 mm; a 2 cm version 10 code (57×57) has modules around 0.35 mm. The rule treats these as identical. The second fails at distances where the first is comfortable.
So use 10:1 for your starting size, then check the module count before you commit. If the module size falls below the minimum for your print process in the third table, shorten the data or make the code bigger. Nothing else will save it.
Size by use case
These assume the quiet zone is included in the footprint, with decent contrast and typical indoor or shaded lighting. Add 20–30% behind glass, in direct sun, or at low contrast.
| Where it goes | Typical scan distance | Minimum symbol size | Notes |
|---|---|---|---|
| Business card | 15–25 cm | 2 cm (0.8 in) | Only if the vCard stays in a low version; trim fields otherwise |
| Flyer or leaflet, hand-held | 25–40 cm | 3 cm | Paper curls; keep the code away from folds |
| Table tent or menu | 30–50 cm | 3–5 cm | Matte laminate; gloss under restaurant lighting is a common failure |
| Product packaging | 20–30 cm | 2–2.5 cm | Avoid placing across a curve or a seam |
| Poster on a wall | 1 m | 10 cm | Eye height, unobstructed, not behind glass |
| Shop window, read from the pavement | 1–2 m | 20 cm | Glass reflection is the real enemy; consider an inward-facing film |
| Trade show booth or corridor signage | 2–3 m | 30 cm | People are walking; give them a reason to stop |
| Outdoor banner or building sign | 3–5 m | 50 cm | Check for shadows and backlighting at the time of day it matters |
| Billboard or moving vehicle | 5 m+ | Not practical | Use a short, memorable URL instead. Nobody scans a bus. |
That last row is worth being blunt about. Beyond five metres, or on anything that moves, the size required becomes absurd and the conversion rate collapses. A QR code is a close-range tool. If your medium is a billboard or a delivery van, print five words of text instead.
Version: the variable nobody checks
QR versions run from 1 to 40, and each version adds four modules per side. Version 1 is 21×21; version 40 is 177×177. The formula is simply 17 + 4 × version modules per side.
Below is the printed size each version needs at two different module sizes. Use 0.5 mm as the floor for good-quality print on coated stock, and 0.8 mm as the comfortable target for anything generic.
| Version | Modules per side | Size at 0.5 mm/module | Size at 0.8 mm/module |
|---|---|---|---|
| 1 | 21 | 10.5 mm | 16.8 mm |
| 5 | 37 | 18.5 mm | 29.6 mm |
| 10 | 57 | 28.5 mm | 45.6 mm |
| 20 | 97 | 48.5 mm | 77.6 mm |
| 30 | 137 | 68.5 mm | 109.6 mm |
| 40 | 177 | 88.5 mm | 141.6 mm |
These are symbol-only figures. The printed block including the mandatory four-module quiet zone on each side is (modules + 8) × module size, so a version 10 code at 0.8 mm needs about 52 mm of clear space, not 45.6 mm. That difference is what gets cropped when a layout is tight.
Minimum module size by print process
This is where most sizing advice gets vague, and it is where print jobs actually fail. The same file printed four different ways will have four different floors.
| Process | Practical minimum module | What goes wrong |
|---|---|---|
| Offset litho, coated stock | 0.4 mm | Little; the sharpest common option |
| Offset litho, uncoated stock | 0.6 mm | Ink absorption spreads module edges together |
| Laser printer, 600–1200 dpi | 0.5 mm | Toner spread on rough paper; fine on smooth |
| Inkjet, coated inkjet paper | 0.5 mm | Reliable if the profile is right |
| Inkjet, plain copy paper | 0.7 mm | Feathering along module edges |
| Thermal transfer label, 300 dpi | 0.4 mm | Good, and durable |
| Direct thermal receipt, 203 dpi | 0.6 mm | Low resolution plus fading from heat and light |
| Screen print | 0.6 mm | Mesh limits fine detail; ink build-up fills small gaps |
| Cut vinyl decal | 2 mm | Anything smaller cannot be weeded without lifting |
| Embroidery | 2 mm | Thread has physical width; needs a simple low-version code |
| Laser engraving, anodised aluminium | 0.3 mm | Contrast, not resolution, is the usual failure |
Embroidery deserves a note: with a 2 mm module floor, even a version 1 code needs a 42 mm block minimum, and in practice you want 50–70 mm so the stitch tension does not pull the fabric out of square. If someone asks for a 3 cm embroidered QR code, the answer is no.
Resolution and file format
Supply vector (SVG, EPS or a PDF with vector content) whenever the printer accepts it. If you must supply raster, render at 300 dpi at the final physical size, not 72 dpi scaled up. At 300 dpi a millimetre is about 11.8 device pixels, so a 0.5 mm module gets roughly six — enough, with no margin for resampling. A 0.35 mm module gets four, which is where artifacts start costing you scans. Never let a layout application resample the image: stretching a 300 px bitmap across 10 cm of poster is the most common way a good code becomes unprintable.
Test before the run, not after
- Print one copy on the actual substrate with the actual printer, at 100% scale.
- Mount it where it will really live, with the real lighting and background.
- Scan from the real distance with the oldest phone you can borrow. If it works on a four-year-old mid-range Android, it works on everything.
- Ask three people who have not seen the design to find and scan it. If they hesitate, the placement is wrong regardless of size.
- Approve the run, keep the test print, and re-check it against the delivered batch.
Frequently asked questions
What is the absolute smallest a QR code can be printed?
There is no fixed floor in the standard; it depends on the module size your process can hold and how close the camera gets. On coated stock with good offset printing, a version 1 code at about 10 mm will scan from 10 cm. Below that you are testing luck rather than engineering.
Does choosing error correction level H change the size I need?
Yes. H stores more redundant data, so the same payload needs a higher version and therefore more modules. The code itself can tolerate more damage, but at a fixed print size the modules get smaller. See L, M, Q and H explained for the trade-off in numbers.
Is the quiet zone included when someone says "make it 2 cm"?
It should be, and you should confirm it. A 2 cm symbol with a proper 4-module margin needs about 2.4 cm of clear space around it for a low-version code. If your layout gives you exactly 2 cm, you will need to shrink the symbol itself.
Can I shrink the code by shortening the URL?
Usually yes, and it is the highest-leverage fix available. Dropping from version 10 to version 3 takes you from 57 to 29 modules per side, which roughly halves the size you need at the same module size. The catch is that a shortener inserts a redirect — covered in static vs dynamic QR codes.
How large is too large?
Technically there is no upper limit; a 3 m code works fine. Practically, once the code is big enough to read from five metres or more, the limiting factor becomes whether anyone bothers to stop and scan at that distance. Large-format codes on buildings and banners mostly underperform a short URL.
Do I need a different size for a code on a screen?
Yes, and it is more forgiving. On a display, pixels are perfectly square and there is no ink spread, so a code of 200–250 CSS pixels works for a phone pointed at a monitor from half a metre. Beware of dark-mode-aware pages that invert your code, and avoid animated or scrolling containers.
My printer says the code is too small at 300 dpi. What now?
Either increase the export resolution to 600 dpi, shorten the payload to drop the version, or enlarge the code. If the printer is working in 203 dpi thermal, no resolution increase will help — the device physically cannot place the dots.
Does a logo in the middle mean I need a bigger code?
Yes. A logo destroys real modules, so you need both a higher error correction level and a larger overall size to keep the surviving modules big enough. Budget for roughly 25–30% more width than an unbranded code of the same data.
Related guides
If the code is already printed and failing, start with Why Your QR Code Won't Scan. For the redundancy side, read QR Code Error Correction Explained. Planning a run of menus, signs or cards? Restaurant menu codes, business card codes and website URL codes each have their own sizing quirks, and the generator shows the version as you type.