Minimum QR code size for print — the math designers miss

The minimum QR code size for print is set by scan distance, error correction, and data length. The math, the placements, and the DPI that go with each.

May 20, 2026 13 min read Linked.Codes
Minimum QR code size for print — the math designers miss

The minimum QR code size for print is set by one number you control (the printed side length in millimetres) and three you usually don't think about (scan distance, error correction level, and how many characters the code encodes). Designers tend to pick a size that looks right in the layout and find out later that 12% of customers can't scan it. The math is simple once you write it down, and the rule of thumb that drives most of it fits on a sticky note.

Here is the sticky-note version. Printed QR side length in millimetres is roughly scan distance in millimetres divided by ten. A code scanned from 100mm needs to be 10mm. A code scanned from a 5m billboard distance needs to be 500mm. That is the 10× rule, and it is right for the average phone camera reading an average-length URL at error correction level M. Once you understand where it comes from and how the three other variables push it up or down, you can stop guessing and start specifying.

The 10× rule, and what it actually says

Phone cameras decode QR codes by sampling the centre of each module — the small black-or-white square that makes up the grid. Reliable decoding needs each module to land on enough camera pixels that the centre reads cleanly. Most published research and most generator documentation converge on the same floor: about 2 pixels per module on the sensor at decode time. Below that, scan rate falls off a cliff because the camera can no longer tell which side of the brightness threshold the centre belongs to.

Translate that to physical dimensions and you get the 10:1 ratio. A 21-module-wide code (the smallest QR version) viewed from arm's length on a typical smartphone subtends an angle that gives each module roughly 2 pixels — provided the printed side is at least one tenth of the scan distance. Denso Wave, the inventor of the QR code, publishes the same ratio in its design guidelines, sometimes phrased as a 1:10 module-to-distance relationship. ISO 18004 doesn't mandate a size but specifies the minimum resolved module size that decoders must support; the 10× rule is the practical version of that requirement. The fastest sanity check is to render a candidate code in the in-browser QR generator at the final print size, hold a ruler to the page, and confirm each module clears the 2-pixel floor at the distance you actually expect people to scan from.

The 10x rule for minimum QR code size for print The 10x rule — minimum printed size by scan distance scan distance D side = D/10 camera printed side length (mm) ≥ scan distance (mm) ÷ 10 D = 300mm → side ≥ 30mm — D = 5000mm → side ≥ 500mm
The 10x ratio assumes about 2 camera pixels per module on a modern smartphone, an average-length URL, and error correction at M. Push any of those and the multiplier moves.

So the rule is real, but it's a baseline. Two other variables move the multiplier up or down, sometimes by 40 to 50%.

Error correction makes the code denser

The four error correction levels — L, M, Q, H — add 7%, 15%, 25%, or 30% redundancy to the code. The redundancy is real data, encoded as extra modules in the grid. Push a 50-character URL from level L (21×21 modules) to level H (29×29 modules for the same content) and you've increased the side count by almost 40%. For the same printed size, each module is now 40% smaller. For the same module size, the code is 40% larger.

This is the trade nobody warns you about. Bumping error correction "to be safe" makes the code physically bigger at the same scan distance. If you're cramming a code into a tight layout and then picking H because someone told you outdoor codes should be H, you may have just pushed yourself below the readable threshold.

The honest version: pick the lowest error correction that survives the print conditions, then size from there. The picker logic in QR error correction levels walks through which level fits which environment. For sizing math here, what matters is that L lets you print smaller for the same payload, and H forces you bigger.

Minimum printed size grows with error correction level Same 50-character URL, scanned from 300mm — minimum side L ~25mm 25 modules M ~28mm 29 modules Q ~31mm 33 modules H ~35mm 37 modules
Approximate side counts for a 50-character URL across the four error correction levels. The minimum printed size scales with the module count to keep each module at the 2-pixel floor.

The H-level code in that diagram is 40% larger than the L-level code carrying the exact same content. That is the cost of redundancy in physical millimetres.

Data length is the variable everyone forgets

A QR code's size isn't just a function of its visual style — it's primarily a function of how much you're asking it to encode. The QR specification defines 40 "versions", each one a different module count. Version 1 is 21×21 modules and can carry up to 25 alphanumeric characters at level L. Version 5 is 37×37. Version 10 is 57×57. Version 40 is 177×177 and can carry thousands of characters.

The practical impact on minimum print size:

  • A 12-character URL (e.g., lnks.work/x9q) at level M needs about 21–25 modules. Minimum print at arm's length: ~12mm.
  • A 50-character URL (a typical tracked link with parameters) at level M needs about 29 modules. Minimum print: ~17mm.
  • A 200-character URL (a long UTM-tagged Google link) at level M jumps to 49 modules. Minimum print: ~28mm — more than double the short link.

This is why dynamic QR codes win in tight layouts. A dynamic QR encodes a short redirect URL (like lnks.work/abc), not the destination. The destination can be 500 characters of UTM-tagged tracking; the QR itself stays a tight 21–25 modules. We cover the model in why every QR type should be dynamic by default, and the difference matters more than people realise once you start shrinking codes to fit business cards and bus-stop signage. The full architectural argument for keeping the QR builder and the short-link tool on one platform — module pitch, scan distance, unified analytics — sits in the case for a QR code generator with short link integration.

If you find yourself making a code smaller to fit a layout, shorten the URL first. Every character you cut buys back module density.

Real placements — the cheat sheet

Take the three variables together — scan distance, error correction, data length — and the placements map onto specific minimum sizes. The numbers below assume a dynamic short link payload (around 25 characters) at error correction level M. If you push to level Q or H, multiply by 1.15. If you shrink the URL to 12 characters, you can go ~20% smaller.

Minimum QR code size by placement Placement cheat sheet — minimum printed side PLACEMENT SCAN DISTANCE MIN SIDE PRINT SPEC Business card 150mm 15mm 600 DPI offset, 3mm bleed Table tent / menu 300mm 30mm 300 DPI, 3mm bleed, matte A4 poster, indoor 500mm 50mm 300 DPI, 5mm bleed A3 / bus-stop panel 1500mm 150mm 200 DPI large-format Window vinyl, storefront 3000mm 300mm 150 DPI, vinyl cut margin Billboard / hoarding 5000mm 500mm 72 DPI large-format
Concrete minimums for the placements people actually use. The DPI column drops as the print size grows — large-format printers resolve dots at lower density because the viewing distance compensates.

A few notes on those numbers:

Business card (15mm). This is the smallest defensible QR for a card. You can go to 12mm if your payload is under 15 characters and you use error correction L, but you lose damage tolerance. 15mm at level M is the safe floor. Print at 600 DPI offset if the budget allows; 300 DPI digital is acceptable. Leave the 4-module quiet zone around the code in addition to the 3mm card bleed.

Table tent (30mm). Customers scan from across the table — 30 to 40cm typical. 30mm gives margin for diners holding the menu at an awkward angle. The code does not need to be larger; making it 50mm steals layout space without adding scan rate.

A4 poster, indoor (50mm). Lobby posters, office signage, café walls. People scan from a metre or two. 50mm is the comfortable floor. Push to 70–80mm if you expect scans from further away or in dim light.

A3 / bus-stop panel (150mm). Outdoor at street-level. Scan distance is 1–2 metres because the panel is at chest height and people stand back. 150mm survives the distance and leaves room for printed text around the code. We cover the long-distance specifics in QR codes for outdoor advertising.

Window vinyl (300mm). Storefronts where people walk by at 2–3 metres. The code is competing for attention with passing traffic; size signals "scan me" as much as it enables the scan itself.

Billboard (500mm or larger). Highway scan distances are 5–10 metres minimum if the driver pulls over. Most highway billboard QR codes fail not because they're too small but because the scan environment is wrong (moving vehicle, glare on the screen, no parking). The 500mm minimum is for the static scan from a stopped car. We covered the broader trade-off in QR codes in print magazines — print contexts where the reader is stationary give you completely different sizing flexibility.

The interactive: minimum QR code size calculator

30 mm
3.0 cm 1.18 in recommended 300 DPI quiet zone ~12 mm

The calculator uses the 10× rule as the base and scales it by the actual module count for your error correction and URL length. Move any input and watch the output recompute. Push the URL length above 100 characters at level M and the recommended size jumps noticeably — that's the dense-payload penalty the math captures directly.

Linked.Codes generates dynamic short links so your QR payload stays under 25 characters no matter how long the destination URL is. That keeps the code small enough to print at 15mm on a business card without losing scan rate.

Grab the lifetime tier

DPI, bleed, and the print specs designers skip

Print resolution matters less than scan distance once you cross the minimum size, but it still matters for the small placements. The rough mapping:

  • Below 25mm side (business card, sticker): 600 DPI offset or 300 DPI digital. The modules are small enough that ink dot resolution starts to matter for edge sharpness.
  • 25–80mm (table tent, flyer): 300 DPI. Standard print spec, no special handling.
  • 80–200mm (poster): 200 DPI is enough. Module edges are large relative to the dot pitch.
  • 200mm+ (window, billboard, signage): 150 DPI or lower is fine. Large-format printers run at lower native resolution and the viewing distance compensates.

Bleed is the part designers forget. A QR code's "quiet zone" — the white margin required by the spec — is part of the code's printable area, not part of the surrounding layout. Specification calls for 4 modules of quiet zone on every side. For a 25-module-wide code at 30mm side, that's a 4.8mm white margin around the dark area. If your bleed lands inside that margin, you've cropped the quiet zone and the code may fail to decode.

The fix is structural. When you place a QR in a layout:

  1. Compute the code area as side length plus 8 modules (4 each side of quiet zone).
  2. Add the print bleed (typically 3–5mm) outside that.
  3. Ensure no other ink falls inside the quiet zone — no decorative elements, no text, no background colour.

Two-thirds of the "my code worked on screen but not in print" issues are quiet zones being eaten by aggressive layouts. The math is identical for round modules, branded colours, or any of the other style choices that the rest of the design-for-scan playbook covers — contrast and quiet zone are foundational regardless of style.

4 modules
Required quiet zone on every side per ISO/IEC 18004. For a 30mm code at version 2 (25 modules), that's a 4.8mm white border the layout cannot cross.

The pre-print check

Before any production run, run through this short check. Catching a sizing error here costs five minutes. Catching it after the printer ships costs the print run.

  1. Print one copy of the proof at exactly the intended physical size on the actual paper stock. Not screen-rendered, not scaled in the PDF viewer — printed on real material.
  2. Scan it from the actual scan distance you expect users to be at. Not closer.
  3. Repeat with three different phones: one recent iPhone, one mid-range Android, one older device with a slower camera.
  4. Repeat in three lighting conditions: bright daylight, indoor fluorescent, dim warm light.
  5. Confirm the quiet zone survived the bleed crop.

If all twelve scans (3 phones × 3 lighting + edge-case) succeed first try, the size is right. If any fail, the size is wrong — usually by 10–20% — and you bump up before the run. The pre-print checks in the scanability score walkthrough handle the rest of the variables this size check doesn't catch, particularly contrast and module-shape interaction.

Quiet zone vs bleed — what the layout cannot cross Quiet zone is part of the code, not the layout card / poster area quiet zone (4 modules) CODE DO: layout stops outside the quiet zone DO NOT: put text, art, or colour inside the dashed area
The dashed boundary is the quiet zone — four modules of white margin required by ISO 18004. Bleed lives outside it, never inside.

What changes for dynamic vs static codes

Static QR codes encode the destination directly into the code. A static QR carrying a 200-character UTM-tagged URL will always be bigger than a static QR carrying a 12-character URL. There is no workaround except making the destination URL shorter — which usually means stripping tracking parameters.

Dynamic QR codes encode a short redirect URL that points to the platform, which then forwards to the destination. The destination can be 500 characters with full UTM tagging; the QR itself stays a tight 21–25 modules. The destination can also change after print — the same QR can point to a Black Friday landing page in November and a January Sale page in January, without reprinting anything.

For sizing, this is the difference between a 15mm business-card code that always scans and a 22mm business-card code that fights for layout space. The architecture explains itself once you've seen the size difference. The static vs dynamic comparison covers the trade-offs in detail.

What is the absolute minimum size for a QR code to scan?

Around 10mm on a side for a short URL (≤15 characters) at error correction level L, scanned from arm's length under good lighting on a modern phone. Below that, scan rate is unreliable. For production print where reliability matters, 15mm at level M is the safe floor for short payloads.

Why does the 10x rule give different numbers than my QR generator?

Most generators don't account for payload length or error correction in their size recommendation — they use a flat ratio. The 10x rule is correct as a baseline assuming ~25 modules and level M. Longer URLs or higher error correction push the minimum up, sometimes by 30-40%.

Can I shrink a QR code if I increase error correction?

No — this is backwards. Higher error correction adds redundancy modules, which makes the code denser for the same payload, which means each module is smaller at the same physical size. To shrink, you need to either lower error correction (less damage tolerance) or shorten the URL (use a dynamic short link).

Does the 10x rule work for square codes only, or round modules too?

The 10x rule is for module size on the camera sensor. Round modules cover ~78% of each cell's area instead of 100%, which means slightly lower contrast at boundaries. In practice, the 10x rule still works at error correction Q or above for round codes; at level L the round-module contrast loss can push you to needing a 12x ratio.

What DPI should I print a QR code at?

For codes under 25mm side, use 600 DPI offset or 300 DPI digital. For codes 25-80mm, 300 DPI is the standard. For codes 80-200mm, 200 DPI is enough. For codes above 200mm (window vinyl, billboards), 150 DPI or lower is fine — viewing distance compensates for the lower print resolution.

Why does my QR scan in the proof PDF but not on the printed copy?

Three common causes: the proof was scaled in the PDF viewer (zoom > 100%) so the on-screen size doesn't match print; the quiet zone was cropped by the bleed at the printer; or the print stock or finish (gloss, foil, textured paper) reduced effective contrast. Test on the actual stock at actual size before committing.

How big should a QR code be on a billboard?

At least 500mm on each side, assuming the billboard is scanned from a stopped vehicle 5 metres away. Highway billboards at speed are a different problem — most attempts to use QR codes from moving vehicles fail not because of size but because of scan-environment factors (glare, motion blur, no parking).

Sourcesshow citations

Try it on your own domain

Branded short links and dynamic QR codes, on your subdomain or your own domain. One-time purchase, no per-click fees.