Module
A module is one square in the grid — the smallest unit of a QR code. Everything about whether a code scans comes back to how physically large its modules are once printed.
Thinking in modules rather than millimetres is what makes sizing decisions straightforward, because the same rules then apply at every scale from a label to a billboard.
Grid size is set by content
A version 1 symbol is 21×21 modules. Each version adds four modules per side, up to version 40 at 177×177. The version is chosen automatically as the smallest that fits your content at the error correction level in use.
So adding characters does not make the code bigger on paper — it makes the modules smaller. A short link in a 25-module grid printed at 3cm gives modules of 1.2mm; the same 3cm holding a long tracking URL might be a 57-module grid with 0.5mm modules, which is a different proposition for a camera entirely.
The sizing rule that works
A widely used rule is that scanning distance is roughly ten times the width of the code, which is another way of saying a code needs about a tenth of its reading distance in width. Two metres away wants 20cm.
Underneath that, what matters is that each module resolves to enough camera pixels. Modules below about 0.4mm are difficult for most phone cameras in ordinary light, which is the practical floor for printed codes regardless of how clever the printing is.
Print realities that shrink modules
Ink spread thickens dark modules and narrows the light gaps between them, which is most pronounced on uncoated stock, flexible film and flexographic printing. At small sizes it can close gaps entirely and merge modules.
Low-resolution printing introduces a second problem: if a module is not an exact whole number of printer dots, module edges land inconsistently and the grid becomes irregular. Sizing so that modules fall on whole dots produces noticeably cleaner results at small sizes.
Fewer modules is usually the better fix
When a code will not scan, the instinct is to print it bigger. Often the better answer is to put less in it: a shorter URL, fewer vCard fields, a dynamic code instead of a long tracked link. Fewer characters means a lower version, fewer modules and larger squares in the same footprint.
That is the main practical argument for dynamic codes on anything printed small. A short redirect address encodes into a sparse grid that stays readable at sizes a long URL cannot survive.
Common questions
- What is a module in a QR code?
- One square in the grid — the smallest unit of the symbol. Module size once printed is what determines whether a code scans, which is why thinking in modules makes sizing decisions consistent at any scale.
- How small can a QR module be printed?
- About 0.4mm is the practical floor for most phone cameras in ordinary light. Below that you are relying on good optics and good lighting, neither of which you control once the code is printed.
- Does adding more text make the QR code bigger?
- Not on paper — it makes the modules smaller. More content raises the version, so more squares are packed into the same printed area, and each one becomes harder for a camera to resolve.
- Why does my small QR code scan better with a shorter link?
- Because fewer characters mean a lower version and therefore fewer, larger modules in the same footprint. That is the practical argument for dynamic codes on small print: a short redirect encodes into a much sparser grid.
Related terms
- Quiet zoneThe blank margin around a QR code, four modules wide. What it does, why cropping it breaks scanning, and how wide it needs to be.
- Error correctionThe four QR error correction levels, how much damage each recovers, and why a higher level is not automatically a better choice.
- Dynamic QR codeWhat a dynamic QR code is, how the redirect works, what happens if you stop paying, and when a static code is the better choice.
- Plain text QR code generatorPut plain text in a QR code — instructions, a serial number, a note. It displays on screen without opening anything. Free and unlimited.