Why a QR Code Won't Scan — Causes and Fixes

You prepared a QR code and it just won't scan—and most of the time the cause is not the code's data itself but the appearance, printing, and shooting conditions. This article organizes the common reasons a code won't scan from the angles of contrast, margin, resolution, dirt, focus, data volume, and the URL, and lays out, accurately, how to fix each one, plus tips for the creator side that keep trouble from happening in the first place.

Try these first: (1) is there enough margin on all four sides of the code, (2) is it dark modules on a light background, and (3) is the screen or paper bright and in focus enough to appear crisp? Just fixing these three resolves many cases where a code won't scan.

1. Low contrast or inverted colors

A QR reader relies on the difference in brightness between the light cells (background) and dark cells (modules) to read the code. When that difference—the contrast—is insufficient, the reader cannot tell the module boundaries apart.

How to fix it: make the background white (or a sufficiently light color) and the modules black (or a sufficiently dark color) to maximize contrast. Even when you want to add color, keeping the brightness difference comes first.

2. Insufficient quiet zone (margin)

A QR code needs an empty margin—the quiet zone—on all four sides. By specification, a margin of at least four modules is required around the code.

How to fix it: even when you are tempted to tighten the design, do not cut the margin. Always leave at least four modules of blank space around the outer edge of the QR code.

3. Low resolution, too small, or print bleed

When each module is too fine and gets crushed together, the reader cannot make out the cell divisions. This happens when the display or print size and resolution are insufficient.

How to fix it: prepare it as large and high-resolution as possible. For print, choose paper and settings that do not bleed, and it is important to render the code's white areas reliably white.

4. Dirt, damage, and the error-correction level

A QR code has error correction, so it can recover even when part of it is dirty, damaged, or missing. How much can be corrected is set by the error-correction level, which comes in four grades: L, M, Q, and H.

LevelApprox. recoverableCharacteristics
LAbout 7%Minimal correction. For the same data, the code can be the smallest
MAbout 15%A standard balance. Widely used for general purposes
QAbout 25%Suited to dirt-prone environments and codes with logos
HAbout 30%The most robust, but the code tends to get larger (denser)

How to fix it: for dirt-prone uses or when overlaying a logo, set a higher error-correction level (Q or H). Note, though, that the higher it is, the more data there is and the denser the code becomes, so balance it against size and verify on a real device.

5. Focus, shake, reflections, and screen glare

Even when the code itself is correct, it won't scan if the shooting conditions are poor. Problems on the camera side are easily overlooked.

6. Too much data makes the cells too fine

In a QR code, the more data it stores, the higher the module count (version) and the finer each cell becomes. Cramming in a long URL or text makes the modules dense at the same display size and harder to scan.

How to fix it: reduce the data volume and give the code a larger display size with the room you save, so each cell becomes easier to read.

7. Wrong, expired, or broken URLs

When "the code scans but won't open," the cause is in the data inside (the URL). The scan itself succeeds, yet it does not reach the intended page.

How to fix it: before publishing, actually open the URL inside the code and check it. When it scans but won't open, suspect the link destination, not the code's design.

Tips for the creator — designing to prevent trouble

Most "won't scan" trouble can be prevented with care at the creation stage. Keep these four points in mind.

When you are unsure how to isolate the cause, first check whether it scans in your hand: if it does, review the link destination; if it does not, review contrast, margin, size, and shooting conditions in that order for efficiency.
Free Tool Diagnose the cause with the QR Code Analyzer Upload an image and it analyzes the QR code's contents, error-correction level, and more. It helps you isolate why a code won't scan.

Frequently Asked Questions (FAQ)

Can a color-inverted QR code (a light code on a dark background) still be scanned?

Most readers are designed on the assumption of dark modules on a light background, so a color-inverted QR code (light modules on a dark background) often cannot be scanned. To ensure it reads reliably, use the standard color scheme of dark (ideally black) modules on a light (ideally white) background, and keep plenty of contrast between the background and the modules. Also avoid pale color-on-color combinations and hard-to-distinguish pairings such as black on red.

How much quiet zone (margin) does a QR code need around it?

A QR code needs an empty margin (quiet zone) of at least four modules (cells) on all four sides. If this margin is too narrow, or if surrounding text, borders, or images touch the code, the reader cannot recognize the extent of the code and scanning fails. Even when you are tempted to tighten things up in the design, do not cut the margin—keep it.

Can I place a logo in the center of a QR code and still scan it?

Because error correction lets the code recover even when part of it is hidden, you can place a small logo in the center. However, there is a limit to how much area you can hide, and hiding too much makes it unreadable. When adding a logo, set a higher error-correction level (Q or H), do not cover the finder patterns (the large squares in three corners) or their surroundings, and always verify scanning on a real device.

← Back to the Tech Blog list