What size should a QR code be for printing?

Last updated: July 2026 · About 6 minutes

There are two different questions hiding here, and mixing them up is why printed codes come out unscannable. One is how big should the code be on the paper, measured in centimetres. The other is how many pixels should the file contain, which only determines whether that physical size prints sharply. This guide answers both, in that order, because the physical size has to be decided first.

Step 1: start from the scanning distance

The rule that governs everything is 10:1. A code scans reliably from roughly ten times its own width. Reverse it and you have your minimum size: divide the distance people will actually stand by ten.

Where it lives Read from Minimum width Comfortable width
Business card, badge15–20 cm1.5 cm2 cm
Product label, asset tag20–30 cm2 cm2.5 cm
Menu, flyer, table tent30–50 cm3 cm4 cm
Wall poster1.5–2 m15 cm20 cm
Shop window3 m30 cm40 cm
Vehicle livery, banner5 m+50 cm60 cm+

Prefer the comfortable column. The minimum assumes a good phone, steady hands and decent light, and you will not get all three.

Below about 1.5 cm, stop. Codes smaller than that are unreliable regardless of settings — ink spread and camera resolution both work against you. If the layout genuinely cannot fit 1.5 cm, shorten the URL to reduce the module count, which is the only lever that meaningfully helps at that scale.

Step 2: convert to pixels

Print resolution is measured in DPI — dots per inch. Commercial printing assumes 300 DPI. The arithmetic is just:

pixels = inches × 300, or pixels = (cm ÷ 2.54) × 300

Which makes the three sizes in this tool concrete:

Setting At 300 DPI Good for
300 × 300 px 2.5 cm (1 inch) Badges, labels, business cards, asset tags
600 × 600 px 5 cm (2 inches) Menus, flyers, table tents, packaging
1000 × 1000 px 8.5 cm (3.3 inches) Posters, signage, anything read from a distance

Those are the sizes at which each file prints sharply. You can place a 300 px code at 5 cm and it will still scan — QR codes are forgiving of mild softness because the modules are large relative to the blur. But you are printing at 150 DPI and it will look it next to crisp text.

Step 3: past 8 cm, switch to SVG

Beyond roughly 8 cm, pixel dimensions stop being the right tool. SVG output stores the pattern as vector shapes, so it prints identically at 2 cm or 2 metres with no file size penalty and no resampling.

For posters, banners, window graphics and vehicle livery, generate SVG and set the physical size in your layout software. It removes DPI from the conversation entirely.

One constraint to know: SVG is only available at 1 QR code per image. Combined sheets are composed on a canvas, which is inherently raster — see combining codes on one sheet.

Size and error correction interact

Raising the error correction level adds modules. At a fixed physical size, more modules means each one is smaller — so a higher level can make a small code harder to scan even though it tolerates more damage in principle.

Practically: at 2 cm and below, stay at level M unless the code will be physically abused. Reserve level H for codes with a logo over the centre or codes large enough that the extra density costs nothing. The error correction guide covers the tradeoff properly.

Why two codes the same size can behave differently

Physical size is only half the story. What a camera actually has to resolve is a single module — one little square — and how many of those are packed into the code depends on how much data it carries.

A short URL might produce a grid of 25 modules across. A long one with campaign parameters can easily need 45 or more. Print both at 2.5 cm and the modules in the second are barely half the width of the first, so it needs better light, a steadier hand and a closer phone — despite being exactly the same size on the page.

This is why "make it bigger" and "shorten the URL" are the two fixes that actually work, and why they are interchangeable: both increase the physical width of each module, which is the only thing the camera cares about. When the layout will not give you more space, the URL is your remaining lever.

A practical check: generate the code, open the PNG, and zoom until you can see individual squares. If the grid looks dense and fine-grained rather than chunky, it will not survive being printed small.

Do not forget the margin

Whatever size you choose, the code needs blank space around it. The files this tool produces include a two-module quiet zone, which is fine on plain white paper. On a coloured or busy background, add more white space in your layout — a clear border roughly four modules wide. Cropping tight to the pattern is a reliable way to break an otherwise perfect code.

A worked example

Say you are printing table tents for a restaurant. Diners scan from a seated position, roughly 40 cm away.

Then print one, put it on a real table, and scan it sitting down. See QR codes for restaurant menus for the rest of that job.

When you are unsure, go bigger. An oversized QR code is mildly unattractive; an undersized one is worthless, and you find out after the print run.

Open the generator