Tool
QR code size calculator
A QR code that scans perfectly on your screen can fail completely on a poster, because what actually matters is the size of one module relative to how far away the phone is. This calculator measures your real content and tells you the minimum size to print, in millimetres, inches and pixels.
Last reviewed
How the calculation works
The starting point is the QR code specification's reference decode distance (ISO/IEC 18004): a code is expected to be readable at roughly 100 mm for every 1 mm of module — so a 3 mm module is rated for about 300 mm. That ratio is often repeated as “1:10”, which is where people go wrong: the ten refers to the distance against the whole symbol, not against one module, so the divisor is 100 rather than 10. Getting this wrong by a factor of ten is the difference between a code that scans and a code the size of a dinner plate.
Real scanners beat the reference figure comfortably in good conditions, so that alone would not be a useful answer. We therefore show two numbers: the specification's minimum, and a comfortable size with 50 % headroom, which is what you should actually print. The headroom is not decoration — the reference distance assumes a flat, matte surface, clean optics, even lighting and a steady hand. Real posters get rained on, photographed at an angle and read through scratched phone cameras. Margin is cheaper than a reprint.
The module count is not estimated. The calculator asks the same encoder this site uses for the exact number of modules your content produces, so the answer accounts for a long URL needing a denser code, and for raising error correction from L to H pushing a code up several versions.
Why the same content can need two different sizes
Two codes with the same number of modules print at the same physical size, but “the same content” does not always mean the same number of modules:
- Length is everything. A short branded link may fit in a 25×25 module grid; a full tracking URL with query parameters can need 57×57 or more. The second code must be printed roughly twice as wide for the same scanning distance.
- Error correction level adds modules. Raising the level adds redundancy, which is paid for in grid size. Going from L to H on a medium URL can cost you two or three versions.
-
Short links are smaller codes. If you control the
destination, a short URL is the cheapest way to shrink a printed code.
Dynamic QR codes from this site encode a short
/r/link rather than the full destination for exactly this reason. - Non-Latin and emoji cost more. Characters outside the basic Latin set take more bytes per character, so a URL in Arabic, Chinese or with emoji needs more modules than its character count suggests.
A worked example
Say you are printing a table tent for a restaurant, and the phone will typically be about 25 cm away when it scans:
| Step | Working | Result |
|---|---|---|
| Minimum module size | 250 mm ÷ 100 | 2.5 mm |
| Comfortable module size | 2.5 mm × 1.5 | 3.75 mm |
| Content | https://example.com/menu at level M |
25 modules + 8 quiet zone = 33 |
| Minimum printed width | 33 × 2.5 mm | 83 mm |
| Comfortable printed width | 33 × 3.75 mm | 124 mm |
| Pixels at 300 DPI | 124 mm ÷ 25.4 × 300 | 1,465 px |
A 124 mm code is comfortable on a table tent. Note the pixel figure: if you export a PNG at 320 px and print it 124 mm wide, you are printing at roughly 65 DPI and the modules will be visibly soft. That is the single most common way a printed code fails, and it is why the generator here offers SVG, which has no resolution of its own.
The practical floor
There is a limit below which more careful maths will not save you. Phone cameras cannot resolve an arbitrarily small module: below roughly 0.25 mm per module, autofocus and sensor noise start to cost you successful scans regardless of lighting. If the calculation tells you a module must be smaller than that, the honest answer is that the scanning distance is too long for print — move the code closer to the reader, or split the content across a shorter link.
Printing notes that change the answer
- Never scale below the calculated size. A layout program that shrinks a placed image to fit will silently invalidate the calculation. Re-run it at the final printed size.
- The quiet zone is part of the code. The blank margin around the symbol is what lets the scanner find it. The calculator includes four modules on each side, the specification's minimum; if the design crowds the code, add more rather than less.
- Contrast matters more than colour. Dark modules on a light background, with no mid-tones. A light-on-dark inversion will fail on a meaningful share of scanners.
- Curved and glossy surfaces reduce the effective size. A code wrapped around a bottle, or printed on laminate, behaves like a smaller code. Size up.
For the wider checklist — error correction trade-offs, contrast ratios and the mistakes that make printed codes fail — see the QR code guide. To make the code itself, use the free QR code generator.
Frequently asked questions
How big should a QR code be for a poster?
Work backwards from the distance, not the poster. For a poster read from about a metre away, modules need to be at least 10 mm (1000 mm ÷ 100), so a typical 33-module code comes out around 330 mm wide. That is larger than most people expect, which is why poster codes are often printed too small. Put the number into the calculator above with your own distance and content for the exact figure.
Does a QR code have a maximum size?
No practical maximum. QR codes are vector-like in that a longer distance simply means a proportionally larger print — a billboard code is the same code printed at several metres wide. What does have a limit is the minimum: below about 0.25 mm per module, phone cameras struggle regardless of how well you print.
Why does a longer URL need a bigger code?
More characters require more data modules, and the QR specification grows the whole grid in steps called versions rather than adding capacity unevenly. A short link may be a 25×25 grid while a long tracking URL is 57×57 or more — more than twice the width for the same scanning distance. Using a short link is the most effective way to keep a printed code small.
Should I use PNG or SVG for printing?
SVG. It is resolution-independent, so it stays sharp at any printed size and cannot be accidentally scaled below the resolution you calculated. A PNG has a fixed pixel count: print it larger than its pixels allow and the module edges blur, which is the most common cause of a code that scans on screen but not on paper.
Does error correction change the required size?
Yes, and people are often surprised by how much. Higher correction levels add redundant data, which increases the number of modules and therefore the physical size needed for the same distance. Choose the lowest level that survives your environment — M is a sensible default for print, and H only when you are covering part of the code with a logo or expect damage.