QR & Barcodeby CodingMarble

QR code not scanning: ten causes and how to fix each one

A QR code that will not scan almost always has one of ten fixable problems. Work through them in the order below, and re-test with a different phone after each change using the QR code scanner.

Start with the quick diagnostic order

Do not redesign the code first. Most failures come from the cheapest causes, so check them from cheapest to most expensive:

  1. Scan the code straight off your screen with a second phone. If that fails, the problem is in the code itself, not the print.
  2. Read the text stored inside it. A typo or a missing prefix shows up immediately.
  3. Check contrast and colours.
  4. Check size and the blank border.
  5. Look at how much data the code holds, and what you put in the middle.
  6. Only then blame the print, the surface or the lighting.

Test on at least two different phones, one of them older or cheaper. A code that only your flagship phone reads is not a working code.

Causes that live inside the code

Too much data. Every extra character adds modules, and the squares shrink to fit the same space. A link with a long tracking string can produce a dense grid that a basic camera cannot resolve at arm's length. Shorten the address, drop parameters you do not need, or point the code at a short redirect page. You will see the difference at once: a short URL gives a code with big, chunky squares.

Logo too large, or error correction too low. A logo in the centre hides modules. The code survives only because error correction rebuilds the lost data: level L recovers about 7%, M 15%, Q 25% and H 30% of the code. Keep the logo small, set error correction to H when you add one, and never let the logo touch the three corner squares. If the code scans without the logo and fails with it, the logo is the cause.

Missing https:// on a link. If the stored text is example.com/menu, some scanners treat it as plain text and offer to search for it instead of opening it. Store the full address, https://example.com/menu. This is the quietest failure on the list, because the code looks perfect.

Inverted colours. Light squares on a dark background reverse the pattern the reader expects. Many modern phone cameras cope, but older phones and dedicated handheld scanners often do not. Use dark squares on a light background when you cannot test every device.

Causes that live in the design

Low contrast. Pale grey on white, or yellow on white, is hard for the camera to separate. Aim for a dark foreground against a clearly lighter background, and judge it in black and white: if you squint and the two tones look close, so will the camera. Red on white often works; red on black does not.

Too small. A code printed so small that a single square is under a pixel or two on the camera sensor cannot be resolved. Size depends on distance, and the rule of thumb is that the code width should be about one tenth of the scanning distance. For a full walk-through of sizes, see the QR code size guide.

Quiet zone cut off. The standard calls for a blank border of at least four modules on every side. Crop it, or print the code on a busy photo, and the reader cannot tell where the code begins. Leave the margin on when you export, and when you place the code in a layout, keep text and graphics outside it.

Causes that live in the real world

Blurry or low-resolution print. A PNG stretched to fit a poster turns the edges soft. Download the SVG from the QR code generator for anything printed, because vector squares stay sharp at any size. Also check that printer ink has not bled: a square that spreads into its neighbour breaks the pattern.

Glare and curved surfaces. Glossy lamination, shop windows and mug sides all bend or reflect light. Switch to a matt finish, move the code to a flat area, or enlarge it so the curve distorts it less. On a bottle, put it on the flattest panel.

Cheap or dirty camera. A scratched lens, a cracked screen protector or a weak autofocus will make a good code look bad. Wipe the lens, hold steady and give the phone a second to focus before you decide the code has failed.

Symptom to fix at a glance

What you seeMost likely causeFix
Phone shows text or a search instead of openingNo https:// prefixStore the full address
Camera finds nothing at any distanceToo small, or border croppedEnlarge it and restore the blank margin
Works on one phone onlyLow contrast or too much dataDarken the foreground, shorten the link
Scans without the logo, fails with itLogo too big for the error correctionShrink the logo, use level H
Fails only on the printed copyBlur, glare or ink spreadReprint from SVG on matt stock
Fails on light-on-dark designInverted coloursDark squares on light background

One mistake to avoid after fixing it

People fix the code on screen and then reprint without re-testing the paper. Always scan the final printed proof, in the lighting where it will actually hang, before you order a large run. Ten minutes with a test print saves a whole batch of stickers.

Questions people ask

Why does my QR code scan on screen but not on paper?

Print adds blur, ink spread and glare that a screen does not. Export as SVG, print on matt stock and keep the blank border intact.

Can I put colour in a QR code?

Yes, as long as the squares are clearly darker than the background. Check it in greyscale, and test on more than one phone.

Does a longer link make a QR code harder to scan?

Yes. More characters mean more, smaller squares. Shorten the address or remove tracking parameters to get a simpler pattern.

What error correction level should I use with a logo?

Use H, which recovers up to 30% of the code, and keep the logo small so it covers only a modest part of the centre.

How do I check what a code actually contains?

Scan it with a scanner that shows the raw text before opening it, such as the QR code scanner on this site, and read the address character by character.

Updated 2026-10-14 · Written by the CodingMarble team

Tools used in this guide

More guides

Designed & built by CodingMarble.com Made in India. Websites, web apps and SEO-first tools. Visit the studio