QR code too small to scan
SmartQRCode editorial · Updated October 2026
A QR code too small to scan when the camera cannot resolve modules at the distance people actually stand. The two centimetre working rule is for a phone at about 30 cm. Window decal viewing distance and a rounded business-card clip make a desk-sized file fail in the aisle. Confirm by test-scanning the finished piece from that aisle.
Why a QR code too small to scan fails at arm length
The spec does not define a millimetre size. Scan distance is a function of module size and camera resolution. A dense version-40 symbol at 15 mm is a different object from a short hosted URL at 25 mm.
Start at least 2 cm across the symbol, quiet zone excluded, for a handset at about 30 cm. Retail shelf-edge can sit near that floor because the scanner is already holding a basket. A window, wrap, or roll-up cannot.
Raising error correction to "make it more reliable" packs the same payload into a denser grid. On a too-small print that is the wrong lever. Enlarge the symbol.
A Canva one-off is fine for a single table card that will never be counted, if you still obey the millimetre rule. Hosting does not enlarge ink.
The two-centimetre rule at thirty centimetres
Cause: the layout treated QR as a 12 mm "icon" in a corner. At 30 cm the camera averages several modules into one grey pixel. Finders may still be visible as tiny squares and the decode still fails.
Fix: measure the dark pattern, not the decorative frame. Keep the four-module quiet zone inside the trim. Export the tracked URL file at that millimetre size as SVG or 300 dpi PNG.
Confirm: print at the true size on the real stock. Stand where a guest stands. If you have to step in to 15 cm, the code is too small for that furniture. Reprint larger. Do not tell guests to "get closer."
Window and wrap distances that dwarf a flyer symbol
Cause: the same 2 cm file used on a flyer was dropped onto a window decal or a vehicle panel. Viewing distance scales roughly with size. A pavement read needs several times the table-tent minimum. A neighbouring-lane wrap needs tens of centimetres across. A 2 cm code on a 6 m board is invisible from the road.
Fix: set size from the closest a scanner will actually stand, not from the panel width. Billboard and building-wrap jobs fail this constantly.
Confirm: stand on the pavement or in the next lane and try iOS Camera. If you cannot even see modules, millimetres are the cause. A dynamic hop lets you change the landing page without reprinting; it does not change how small the vinyl is.
Dense payloads packing more modules into the same millimetres
Cause: a static symbol encodes a long destination plus UTM query strings. More payload means a higher version and more modules, so each module shrinks inside a fixed box. A hosted symbol's density is the short URL, so campaign parameters on the destination do not change the printed pattern.
Fix: if you must stay static, shorten the URL or enlarge the box. If you need UTM and edits, put parameters on a hosted destination and keep the printed pattern coarse.
Confirm: generate two proofs at the same millimetres, one short hop and one long static URL. Scan both from 30 cm. If only the short hop reads, density was the cause. Do not add more UTM to the static file and hope.
Business-card corners clipping the quiet zone
Cause: the symbol fights type, foil, and round corners. The pattern is "2 cm" until the die-cut eats the quiet zone and a finder. That presents as too small even when a ruler on the uncut sheet said otherwise.
Fix: keep the symbol above the working minimum and the quiet zone inside the card edge, not bled off a rounded corner. Move the code away from the round.
Confirm: scan a cut card, not the letter-size proof. If the sheet scans and the card does not, clip was the cause. Reprint with inset. A website URL on a card is still a URL type; size rules do not change because the paper is fancy.
Payload density versus millimetres is the hidden size problem. A short hosted hop at 22 mm can out-scan a static URL stuffed with query strings at 28 mm because each module is larger. If you are failing at table distance with a long static destination, shortening the payload is a size fix, not a branding fix.
Field-service job cards pick up dirt, rain, and folds. Use H correction and a size above the two-centimetre working rule, on coated or laminated stock. A 16 mm code in a corner of a folded A5 will not survive a van dashboard. Test-scan the folded card, not the flat PDF. If you have to unfold fully and hold it at 15 cm, the millimetres are wrong for that job.
A vehicle wrap read from a neighbouring lane needs tens of centimetres across, not a flyer icon scaled to the panel. Stand in the lane (safely) and try Camera. If you cannot see modules, millimetres are the cause. Hosted hops will not enlarge vinyl.
When a larger reprint beats a denser error-correction drop
If you already sit at 2 cm, the quiet zone is intact, and the payload is a short hosted URL, look at lighting and motion before you grow further. If the placement is a window or wrap, grow a lot.
Dropping correction from H to L to "open up" modules is a trap on a small print that will get scuffed. You trade recoverability for a slightly coarser grid and still fail at distance.
A one-shot poster with a URL that never changes can be a free static Google or Canva file. Print it large enough. If the same campaign will move destinations or needs scan totals, keep the hosted short pattern and spend millimetres on module size, not on encoding the whole tracking query into the ink.
Questions this raises
Use the two centimetre working rule across the symbol, quiet zone excluded, for a phone at about 30 cm. That is a rule of thumb, not a lab measurement of this product.
Viewing distance scales with size. A window decal read from the pavement needs several times the table-tent minimum. A 2 cm code on a large board is invisible from the road.
Yes for a static symbol: more payload means a higher version and more modules in the same millimetres. A hosted short URL keeps density on the short hop, not the destination query.
When the camera cannot resolve the modules at the standing distance. Higher correction packs the same payload into a denser pattern, which makes a too-small code worse.
No. Four empty modules on each side are spec-minimum. Stealing them to enlarge the dark pattern just fails for a different reason.
Keep going
The tools and playbooks this post refers to, one click away.
Make the code this post is about
$1.99 for 7 days, then a paid plan. Pick a type, brand it, and edit the destination whenever you like, even after it is printed.