Your QRToolkit

Why Your QR Code Is Not Scanning (And How to Fix It)

Most QR code scan failures have one of four causes. This guide covers each one with a clear diagnostic and fix - without requiring you to regenerate the code from scratch.

The four most common causes

Most QR code scan failures fall into one of these four categories. Start from the top - the most common causes are listed first.


1. The code is too small for the scan distance

This is the single most common cause of scan failure in printed materials. A QR code that is 20 mm wide scans fine when someone holds their phone at 15 cm - but the same code on a poster, scanned from 1 metre away, will fail.

How to diagnose: Hold your phone at the actual distance a user would scan from. If it takes more than three seconds to lock on, the code is too small.

How to fix: Reprint at a larger size. The rough rule is minimum width equals scan distance divided by 10. 30 cm distance: minimum 30 mm. 1 metre: minimum 100 mm.

Use the QR print size checker to calculate the minimum safe size for your specific use case.


2. Insufficient contrast between the code and its background

QR code decoders work by detecting the ratio between dark modules and light modules. If there is not enough contrast, the decoder cannot distinguish the boundaries, and the code does not scan.

This matters most when:

  • The QR code is printed in a dark colour on a coloured background
  • The background colour is similar in brightness to the module colour
  • A coloured version of the code was used (blue on light grey, dark green on cream, etc.)
  • The code is printed on a frosted, semi-transparent, or reflective surface

How to diagnose: Run the code through the QR contrast checker. Enter the foreground colour and background colour to see the contrast ratio and whether it passes the recommended threshold.

How to fix: Increase the difference in lightness between the module colour and the background colour. Black (#000000) on white (#FFFFFF) is the maximum possible contrast and always works. For coloured versions, ensure at least a 3:1 contrast ratio - ideally higher.

Note: a QR code does not need to be black on white, but the dark modules must always be darker than the light modules. Inverting the colours (white modules on a dark background) sometimes works, but many decoders handle it less reliably. Standard orientation is always safest.


3. The quiet zone is cropped

The quiet zone is the white border that surrounds a QR code. It is not just aesthetic - it tells the decoder where the code boundary is. Without it, the decoder cannot find the code at all.

This typically happens when:

  • The QR code image was cropped tightly in a design template
  • The background colour extends flush to the edge of the code
  • The QR code is placed over a non-white background without a white background rectangle beneath it

How to diagnose: Upload the printed or exported image to the QR quiet zone checker. It detects the boundary of the code and measures the margin in module widths. The standard requires at least 4 module widths on each side.

How to fix: Add a white rectangle behind the QR code in your design that extends beyond the code boundary. A 5 mm margin around the outer edge of the code is sufficient in most cases.


4. The destination URL is broken or redirects incorrectly

The code itself scans, but the page that opens is wrong, broken, or returns an error. This is a data problem rather than a print problem.

Common causes:

  • The URL was mistyped when the QR code was generated
  • The page was moved, taken offline, or password-protected after the QR code was printed
  • A link shortener used to generate the URL expired or was cancelled
  • The destination redirects to a mobile-incompatible page

How to diagnose: Use the QR scanner or a phone camera to scan the code and check what URL is decoded. Compare it to the intended URL character by character.

How to fix: If the URL is wrong, regenerate the QR code with the correct URL. If the URL is correct but the page is broken, fix the destination page - the QR code does not need to change.


Less common causes worth checking

The code was compressed or resized non-uniformly. Stretching a QR code image in one direction (making it rectangular) distorts the module proportions and breaks decodability. Always resize proportionally (lock the aspect ratio).

Reflective or glossy surface. Glossy laminate, metallic substrates, or highly polished surfaces can cause glare that washes out the code on camera. Test on the actual printed material, not a screen proof.

Too much data. A QR code encoding a very long URL with high error correction will have very many small modules. At small print sizes, these become too small for a camera to resolve. Shorten the URL (use a redirect or link shortener) to reduce the module count.

Error correction mismatch with logo overlay. If a logo covers more than 30% of the code area, it exceeds what any error correction level can recover from, even at H. Reduce the logo size or switch to a design approach that places the logo outside the code boundary.