TroubleshootingQR Code Generator

QR Code Won't Scan? 8 Fixes for Printed and On-Screen Codes

BySoftware Developer
Published 3 min read
A faulty QR code becoming scannable with a check mark

A QR code that will not scan is nearly always too small, too low in contrast, missing its blank border or too dense for the distance. Each is easy to fix in the generator.

Work through the checks below, and test with a real phone each time.

On this page
  1. The eight checks
  2. Understanding error correction
  3. Size and distance
  4. Content problems
  5. When designing around the code
  6. QR code scanning problems: FAQ

Key takeaways

  • Dark modules on a light background scan best. Inverted or low-contrast colors often fail.
  • Keep a blank border of at least 2 modules around the code.
  • As a rule of thumb, the code should be about one tenth as wide as the scanning distance.
  • Shorter content makes a simpler code that scans from further away.

The eight checks

  1. Contrast. Use a dark color on a light background. Black on white is the safest.
  2. Don't invert. Light modules on a dark background fail on many scanners.
  3. Margin. Keep the margin at 2 or more. Never crop it away in a design.
  4. Size. Print larger. Scanning from 1 metre needs a code about 10 cm across.
  5. Density. Shorten the text. A short link makes a code with fewer, bigger squares.
  6. Error correction. Raise it to quartile or high if the code may be scuffed or covered, then enlarge it to stay scannable.
  7. Distortion. Do not stretch the picture. Keep it square.
  8. Test with the real thing. Scan the printed copy, not only the screen.

Understanding error correction

Error correction levels
LevelRecoverable damageUse when
LowAbout 7 percentClean screens, short text
MediumAbout 15 percentDefault for most uses
QuartileAbout 25 percentPrinted codes that may get scuffed
HighAbout 30 percentOutdoor or rough surfaces

Higher levels add redundancy, which makes the code denser. At the same physical size, the squares become smaller, so raise the level only when you need it, and print the code larger if you do.

Size and distance

Rule-of-thumb code widths
Scanning distanceMinimum code width
30 cm (leaflet, receipt)About 3 cm
1 m (table sign, poster)About 10 cm
3 m (shop window)About 30 cm

For print, download the SVG, which stays sharp at any size, instead of enlarging the PNG.

Content problems

  • Missing https:// in a web link can make the phone treat it as plain text.
  • Spaces or line breaks at the end of a link may break it.
  • Too long text produces a dense code or an error. Shorten the link or the note.
  • The page behind the code may be down. Open the link yourself first.

Wi-Fi codes need a special format: see how to make a Wi-Fi QR code. For the full creation steps, read how to make a QR code.

When designing around the code

Placing the code on a photo, a gradient or a patterned background lowers contrast and often breaks scanning. Put it on a plain light block. Avoid logos over the middle unless you have raised error correction and tested thoroughly. If you need the code as an image for a document, resize it with Resize Image only downwards, never up.

QR code scanning problems: FAQ

Why won't my QR code scan?

Common causes are low contrast, no blank border, a code that is too small, or too much text in it.

Can I use colored QR codes?

Yes, if the dark color contrasts strongly with a light background.

Can I put a logo in the middle?

Only with higher error correction and testing. It is safest not to.

How big should a printed QR code be?

About one tenth of the scanning distance in width, and never below about 2 cm.

Does error correction help with damage?

Yes. Higher levels allow more of the code to be damaged or covered.

Why is my code so dense?

It holds a lot of text. Shorten the link or reduce error correction.

Why does my phone show text instead of opening the link?

The link probably lacks https:// at the start.

PNG or SVG for print?

SVG, since it scales without blur.

Contrast, margin, size

Fix those three, shorten the content and test the printed result. Most codes then scan at once.

Keep reading