The Pune glass-door sticker from the pillar story failed for three reasons at once: 2 cm size, yellow-on-white, curved glass. Any one might have been survivable; together they were hopeless. QR code print sizing is pure physics — distance, density and resolution — and this guide gives you the exact numbers for business cards, table tents, flyers, posters and billboards, all tested with real phones in September 2026.
Part of the free QR code generator guide. Generate at both sizes in the free QR code generator (512px + 2048px). Build basics in how to create a QR code.
The only two rules you need
Rule 1 — size ≈ distance ÷ 10
A code scanned from 30 cm (table tent) must be at least 3 cm wide. From 1 meter (wall sign): 10 cm. From 2 meters (poster): 20 cm. From 10 meters (billboard): 1 meter. I verify by walking the actual distance with a mid-range Android — if it scans in 2 seconds there, it works for customers.
Rule 2 — minimum 2 cm, and denser needs bigger
2 cm × 2 cm is the floor for short-URL codes at arm's length. But density scales the minimum: 150+ character payloads need 3–4 cm at the same distance. Longer text = denser grid = bigger print. Shorten URLs before generating — it is the cheapest size upgrade there is.
Size table: every common placement
| Placement | Viewing distance | Min code size | Export |
|---|---|---|---|
| Business card / vCard | 20–30 cm | 2 cm | 512px |
| Bill folder / receipt | 30 cm | 2–3 cm | 512px |
| Table tent / counter | 30–60 cm | 3–5 cm | 512px |
| A5 flyer | 30–50 cm | 3–4 cm | 512px |
| Reception frame (A4) | 0.5–1 m | 8–10 cm | 2048px |
| Poster (A3/A2) | 1–2 m | 10–20 cm | 2048px |
| Storefront / window | 1–3 m | 15–30 cm | 2048px |
| Billboard | 10 m+ | 1 m+ | 2048px, test on site |
- vCards run dense: contact codes carry name + phones + email, so use 2.5 cm minimum on cards. Details in vCard guide.
- Never upscale: a 512px file stretched to poster size blurs module edges. Regenerate at 2048px instead — 30 seconds, free.
- Quiet zone always: white margin ~4 modules on all sides. Borders or text touching the pattern is the #1 flyer failure I see.
Density exceptions: WiFi, vCard and long URLs
The table above assumes short URLs. Three common types break the assumption — plan them bigger from the start. WiFi codes carry SSID + password + security (often 60–100 characters): print café signs at 8–10 cm, not 5. vCards carry 5–6 contact fields (~150 characters): 2.5 cm minimum on business cards. Long URLs (150+ characters): add 1–2 cm over the table value, or better, shorten the link first per URL hygiene.
- Quick density check: compare your preview to a plain 20-character URL code. Noticeably busier? Go one size up.
- Old-phone margin: if your audience skews to budget devices (rural clinics, senior citizens), add 50% to every table value. Their fixed-focus cameras forgive nothing.
- Billboard honesty: long URLs on billboards are nearly hopeless — drivers have 2 seconds at 10 m+. Short domain + 1 m code minimum, or skip the code and print the URL big.
Resolution, paper and finish
- 512px PNG: crisp to ~5 cm print. Websites, chat, cards, folders, tents, flyers.
- 2048px PNG: crisp to A3 and beyond. Posters, windows, banners, billboards.
- Matte over glossy: lamination glare kills scans in sunlight. Matte paper, matte laminate, or unlaminated frames.
- Flat surfaces: curves (cups, bottles, pillars) distort the grid. Flat walls, tents and cards scan; curved merch mostly decorates.
- Keep PNG masters: every JPG re-save (and every WhatsApp forward) softens edges. Archive the PNG; forward copies freely.
Pre-print ritual (₹30 saves ₹2,500)
Print one copy at 100% scale. Scan from the real distance, in daylight and indoor light, with two phones. Check the quiet margin survived the printer's scaling (disable “fit to page” — it shrinks everything 5%). Only then order bulk. Scan-back any mystery code with the QR scanner to confirm contents before a big run.