Guide

QR code not scanning? Why, how to fix it, and how big to print it

When a phone won’t read a QR code, the cause is almost always in the print: too small for the distance, too little contrast, no margin, a logo covering too much. Each one has a fix. And if the code scans but nothing opens, the problem is the address it holds, not the print.

Checked 28 October 2026

In short

1. Printed too small for the distance

A phone needs to see each module (each small square of the code) as a few pixels. The further away it is, the bigger the modules must be. A code that scans on your desk can fail on a poster read from across the street.

A shopfront on a sunny street, a QR code sticker the size of a business card low on its window
A code the size of a business card on a shop window, read from the street three metres away. It needed to be about 45 cm across.

Print it at least

14.8 cm 5.9 in

wide and high, margin included

The code itself: 11.6 cm (4.6 in), 29 modules of 4 mm each, plus a margin of 4 modules on each side.

Left empty, it counts a short web address: 29 modules across. Paste what your code holds for its own count, or count the modules along one side of a code you already have.

How it’s worked out

Each module gets at least 1/250 of the scanning distance, and the code never goes under 2 cm (0.8 in) across. For a simple code of 25 modules, that’s the usual rule of thumb: scannable from about ten times its width. Then come 4 modules of margin on each side.

This is a rule of thumb, not a standard: no standard sets a size for a distance, because it depends on the phone’s camera, the light and the print. It leaves some room for an average phone in ordinary light. In dim light, or where people will be in a hurry, go bigger.

For a short web address (29 modules), margin included
Where it’s read From Print it at least
Business card, label, packaging 15 cm (6 in) 2.6 cm (1.1 in)
Menu on the table, flyer in hand 30 cm (1 ft) 4.5 cm (1.8 in)
Counter display, door sticker 50 cm (20 in) 7.4 cm (3 in)
Poster, from up close 1 m (3 ft) 14.8 cm (5.9 in)
Poster, across a room 2 m (6.5 ft) 29.6 cm (11.7 in)
Shop window, stand seen from the aisle 5 m (16 ft) 74 cm (29.2 in)
Billboard, banner on a building 20 m (65 ft) 2.96 m (9.8 ft)

Fix: reprint it bigger, or bring the code to where people stand: at eye level, close to where they pass. For print, download the SVG file: it stays sharp at any size, where a small PNG blown up goes blurry.

2. Low contrast, or light on dark

Scanners look for dark modules on a light background. Pale yellow on white, grey on grey or a gradient that fades out leave too little difference. Light codes on dark backgrounds (inverted) are read by many phone cameras today, but not by every scanner app or older phone.

A hand holding a colourful flyer whose QR code is printed in pale yellow on white
Pale yellow on white: it suits the flyer, but it’s too faint for many phones.

Fix: a dark colour on a light one. Black on white is safest; a brand colour works if it’s dark enough. Don’t trust the screen: test a printed copy, since ink, paper and dim light all cost contrast.

3. No margin around it

A scanner finds a code by its edges. The QR code standard (ISO/IEC 18004) asks for an empty margin, the “quiet zone”, 4 modules wide on all four sides, in the same light colour as the background. Text, a frame or a photo that runs right up to the code can stop it from being found.

A restaurant menu on a table, its QR code printed over a food photo with no border around it
Printed over a photo with no margin, so scanners can’t tell where the code begins.

Fix: keep the margin clear, and count it in the size: the calculator above includes it. When a designer crops the white border off to save space, the code may scan on screen and fail in print.

5. Too much in the code

The more a code holds, the more modules it needs: from 21 across for the smallest to 177 for the largest. At the same printed size, more modules means smaller ones, harder to read from far away. A long web address with tracking tags, or a contact card with every field, makes a dense code.

A bus-stop poster with a small, very dense QR code in its middle
A long web address makes a dense code. Printed small on a bus-stop poster, its modules blur together from two metres away.

Fix: shorten what it holds: a shorter address, fewer fields. A short link (a dynamic code) keeps the code simple however long the address it leads to. Or print it bigger: paste the content into the calculator above to see by how much.

6. Glossy, curved or behind glass

Gloss, lamination and glass reflect light: a bright spot over part of the code hides it. On a bottle or a cup, the code curves away from the camera, and the modules at the edges look squeezed. Codes on screens can suffer from glare and low brightness too.

A laminated menu on a café table, a lamp’s reflection washing out part of its QR code
The lamp’s reflection on a laminated menu washes out part of the code.
A wine bottle with a QR code on its label, the code wrapping around the curve of the glass
Too wide for the bottle: the side of the code bends away from the camera.

Fix: a matte finish or matte lamination; on a window, the code on the inside facing out, away from reflections. On a curved surface, keep the code narrow compared with the curve, or put it where the surface is flattest. Test it where it will be, in that light.

7. Scratched, faded or folded

Outdoors, sun fades the ink; in a shop, people’s fingers wear it off; a fold runs right through the middle of a flyer. Error correction makes up for some of it, but not for damage to the corner squares.

A sun-faded poster on a city wall, its QR code scuffed and creased by a fold
Sun, rain and a fold: past a point, error correction can’t make up for it.

Fix: for codes that will get handled or weathered, use High error correction and a protective lamination (matte). Keep the code away from folds and edges. When it’s worn, reprint it: a sticker over the old one is enough.

8. It scans, but nothing opens

If the phone reads the code but shows an error, a blank page or someone else’s page, the print is fine: the problem is the address it holds. The website may have moved, or the code goes through a service that switched it off, often when a free trial ended. The QR code checker shows what a code holds and what that address answers today.

If the phone shows the address as text instead of a link, it was probably written without https://: some phones then don’t recognise it as a web address.

For codes that stopped working, and what you can do with one already printed: Do QR codes expire? What can stop one, and how to avoid it.

Before you print

If one phone won’t scan any code at all: clean the lens, check that QR code scanning is on in the camera’s settings, or try Google Lens.

What the olinqs generator does about it

Questions

What is the minimum size for a QR code?
About 2 × 2 cm (0.8 in), for a short address read from close up, like on a business card. Further away, or with more content, it needs to be bigger: the calculator works it out.
How big should a QR code be on a poster?
Read from 1 to 2 metres (3 to 6 feet), a short address needs about 15 to 30 cm (6 to 12 in), margin included. More if people read it from further away.
Does a QR code need a white border?
It needs an empty margin, 4 modules wide. It doesn’t have to be white, just the same light colour as the code’s background.
Can a QR code be in colour?
Yes, as long as the code is dark and the background light, with strong contrast between them.
Why does it scan on one phone and not another?
Cameras differ in resolution and focus, and scanner apps differ in what they forgive: inverted colours, a missing margin, a big logo. A code that only scans on some phones is a code at the limit: fix the cause rather than relying on the best phone.

Sources

The distance-to-size ratio is a rule of thumb used in printing, not a standard. Test a printed copy before printing many. The photos are illustrations made for this guide.