QR Code Not Scanning? 7 Reasons and How to Fix It

You printed the flyer, stuck it on the wall, and now nobody can scan your QR code. Before you blame the user's phone, the problem is almost always in the code itself. Here are the seven most common reasons a QR code refuses to scan — and what to do about each one.

1. Not Enough Contrast Between the Code and Background

QR code scanners rely on the difference between dark modules (the squares) and the light background. If your dark color isn't dark enough, or your background isn't light enough, the camera can't distinguish the pattern.

How to fix it: Stick to a dark foreground on a light background. Black on white is the gold standard, but dark navy on cream or dark green on white works too. Use a contrast checker if you're unsure — aim for a contrast ratio of at least 4:1. And never invert the colors (light modules on a dark background), because many older scanners can't handle that.

2. The QR Code Is Too Small

There's a physical limit to how small a QR code can be before a phone camera can't resolve the individual modules. If you've shrunk it down to fit a business card or a tiny label, it may be below that threshold.

How to fix it: For close-range scanning (someone holding their phone within 30 cm), keep the code at least 2 cm x 2 cm. For posters or signage scanned from a distance, use the 10:1 rule: divide the scanning distance by 10 to get the minimum size. A code meant to be scanned from 2 meters away should be at least 20 cm wide.

If you need a smaller code, reduce the amount of data encoded in it. Fewer characters mean fewer modules, which means larger individual squares at the same overall size.

3. The URL or Data Is Too Long

The more data you pack into a QR code, the denser it gets. A 200-character URL creates a much more complex pattern than a 30-character one. At some point, the modules become so tiny that cameras — especially on older phones — struggle to read them.

How to fix it: Shorten long URLs with a URL shortener before encoding them. Better yet, use a smart QR code (also called a dynamic QR code) that encodes a short redirect URL regardless of how long your final destination URL is. With MQRG, smart QR codes always encode a compact URL, keeping the pattern clean and easy to scan.

4. The Code Is Damaged or Partially Covered

QR codes have built-in error correction that lets them survive minor damage — a scuff, a coffee ring, a sticker partially covering one corner. But there's a limit. If too much of the code is obscured or the damage hits critical areas like the finder patterns (the three large squares in the corners), the scan will fail.

How to fix it: When printing, leave a quiet zone (blank border) of at least 4 modules around the entire code. Don't place text, logos, or design elements over the finder patterns. If you need to add a logo to the center of the code, keep it small (under 10% of the total area) and use a higher error correction level (like Q or H) when generating the code.

5. Poor Lighting Conditions

Phone cameras need light to capture an image clearly. If your QR code is on a poster in a dimly lit hallway, on a screen with heavy glare, or printed on a reflective surface, the scanner may not get a clean read.

How to fix it: Test your codes in the lighting conditions where they'll actually be scanned. For printed materials in low-light areas, use a matte finish instead of glossy to reduce glare. For codes displayed on screens, increase the screen brightness and make sure the code fills enough of the display to be easily captured.

6. The Camera Is Too Close or Too Far Away

Every phone camera has a minimum focus distance. If someone jams their phone right up against a QR code, the camera can't focus and the image is blurry. Too far away, and the code is too small in the frame to decode.

How to fix it: Most phones focus best at 10-30 cm for a standard-sized QR code. If users are struggling, the code may need to be larger (for distance scanning) or you may need to add a small instruction like "hold phone 20 cm away." Testing with a few different phones before printing a large batch will save headaches later.

7. The Destination URL Is Broken

This is the sneaky one. The QR code scans perfectly — the phone reads the data, opens the browser — and then hits a 404 page. The user thinks the code "didn't work," but the code did its job. The problem is the link behind it.

How to fix it: Always test the full flow: scan the code, follow the link, confirm the page loads. Check for typos in the URL, expired domains, or pages that have moved. This is another reason smart QR codes are useful — if the destination changes, you can update the redirect without reprinting the code.

A Quick Testing Checklist Before You Print

Before sending anything to the printer, run through this list:

  • Contrast: Dark code on light background, 4:1 ratio or better
  • Size: At least 2 cm for close range, 10:1 ratio for distance
  • Density: Short URL or smart QR code to keep modules large
  • Quiet zone: Blank border around the code, no elements overlapping corners
  • Link: Scan the actual code and verify the destination loads
  • Lighting: Test in conditions similar to where the code will live
  • Multiple devices: Try at least 2-3 different phones

With MQRG, you can generate, customize, and test QR codes right from your iPhone or iPad — so you can catch problems before they reach your audience.

  • Dark modules on a light background (not inverted)
  • At least 2 cm (0.8 in) for close-range scanning
  • High contrast between foreground and background
  • Quiet zone (white border) around the code
  • URL is valid and the destination page loads
  • Tested with at least two different phones

TL;DR

Most QR code scanning failures come down to seven issues: poor contrast, code too small, too much data encoded, physical damage, bad lighting, wrong scanning distance, or a broken destination URL. Fix these before printing and your codes will scan reliably every time.

Frequently Asked Questions

Why does my QR code scan on some phones but not others?

Older phones have lower-resolution cameras and less sophisticated scanning software. If your code is borderline — slightly too dense, slightly too small, or with marginal contrast — newer phones will handle it while older ones fail. Make the code larger, increase contrast, or reduce data density to ensure compatibility across devices.

Can a QR code stop working over time?

A static QR code encodes data directly and will work as long as the printed image is intact and the destination URL is live. A smart QR code (dynamic QR code) uses a redirect, so it depends on the redirect service remaining active. The printed pattern itself doesn't expire or degrade digitally — only physical damage or a broken link can stop it from working.

Does the color of a QR code affect scanning?

Yes. QR scanners need strong contrast between the dark modules and light background. Dark colors on a light background work best. Avoid light-colored codes on dark backgrounds, and never use two colors with similar brightness (like yellow on white). When in doubt, test it.

Ready to create your QR code?

Generate static and smart QR codes right from your iPhone or iPad.

Get MQRG on the App Store

Related Articles