Skip to content
SmallQRCodeSmallQRCode

QR Code Not Working? 11 Fixes for Codes That Won't Scan

7 min read · updated 2026-10-06

Work through these eleven checks to narrow down why a QR code will not scan or open its destination. More than one issue may be involved. Start by comparing with another code, then check the print, design and scanning conditions; the list is not ranked by measured frequency.

First: is it the code or the phone?

Scan a different QR code (any other one, or generate a test code and scan that).

  • Other codes scan fine → inspect this code and the conditions in which you are scanning it; keep reading
  • Nothing scans → check the phone/camera side: clean the lens, adjust the distance until the code is in focus, improve the lighting, and confirm you don't need to tap a "scan" mode in the camera app. On iPhone: Settings → Camera → Scan QR Codes must be on

1. The code is printed too small

A camera needs to distinguish the individual modules, not just see the overall square. The QR code size guide and calculator use a 2 cm floor, distance ÷ 10 rule and 0.4 mm module-pitch target as in-house planning heuristics, not universal minimums or scan guarantees. Recommended widths include the four-module quiet zone on each side; a dense grid may need more space than distance alone suggests.

Fix: print bigger, or shorten the content so the modules can print larger at the same size. Test the finished print at the expected distance with representative phones and lighting. DENSO WAVE's sizing guidance explains why both printing equipment and reader capability matter.

2. Poor contrast

Gray-on-white, brand-blue-on-brand-navy, light codes on dark backgrounds: the camera needs a strong brightness difference, not tasteful colors. Inverted codes (light modules on dark background) are especially unreliable.

Fix: near-black code on white or very light background. If the design is dark, put the code in a white box. The generator warns when contrast drops too low. Regenerate with darker colors.

3. Glare or bad lighting

Reflections from laminated or glossy surfaces can hide parts of the pattern. Bright light on a screen or insufficient light on a print can also make the code harder to capture.

Fix: adjust the viewing angle or lighting without introducing a steep angle or deep shadow. For prints you control, consider a less reflective finish and test the finished piece; a matte finish is not a guarantee (see the printing guide).

4. The quiet zone is missing or crowded

The blank, light margin around a standard QR code should be four modules wide on every side. Text, borders, images or a busy background in that space can make detection harder.

Fix: regenerate the code with the margin intact (this generator defaults to the spec-compliant four-module quiet zone) or reprint with clear space around it.

5. Damage, dirt or distortion

Tears, scratches, fading, smears, tight curves and warped plastic can interfere with reading. Error correction can recover some damaged encoded information, but the familiar "up to 30%" figure is not a promise that 30% of the printed area can be destroyed or covered. DENSO WAVE defines the recovery rates in codewords, the units used to store data and correction information.

Fix: replace damaged prints. Prefer a flat area where the whole code and quiet zone can be seen together. On curved packaging, test the label on the actual package; if it wraps too far around, shorten the content or change the placement rather than simply shrinking the modules. There is no validated universal circumference percentage in this guide. GS1's packaging guidance discusses the difficulty of capturing a whole 2D symbol on thin or cylindrical products in section 5.6.8.

Q or H error correction may be worth testing where damage is expected. Higher correction can increase the grid size, so recheck module size and the proof. It does not solve glare, poor focus or unsuitable placement.

6. The code is too dense

More encoded content can require a larger module grid. At the same physical print width, that leaves smaller modules for the camera to resolve. Density alone does not establish a fixed scan distance: printing quality, focus, lighting and the reader also matter.

Fix: shorten the content where possible. Try a shorter URL, a leaner contact card with fewer optional fields, or less text. If the content cannot shrink, increase the print size or link to a page that contains it. Retest after changing the content or error correction.

7. A stylized design broke the structure

Decorative modules, altered finder patterns (the three corner squares) and logo overlays can interfere with reading. A logo hides part of the pattern and consumes error-correction capacity. Neither an error-correction percentage nor a percentage of the code's side is a validated safe logo allowance. DENSO WAVE warns that deformation and overlays can make codes difficult or impossible to read.

Fix: first try an unmodified pattern without a logo. Keep finder patterns clearly visible and the quiet zone intact. If you use a logo, keep it small and test the final artwork and physical print. H provides more recovery capacity, but cannot guarantee that a particular logo size or position will scan.

The generator provides a four-module margin by default, limits the logo-size control and displays scanability warnings. Those checks are not a scan guarantee, and scanability warnings do not prevent downloading. Test before printing a batch.

8. The scan happens at a bad angle or distance

Steep angles (more than ~30–40° off perpendicular) distort the module grid; too close and the camera can't focus, too far and the modules fall below its resolution.

Fix: straighten out, back off to ~25 cm for a hand-held print, and give the autofocus a beat. This cause is symmetric with cause #1: if the natural scanning distance is too far, the code is too small.

9. An old or quirky phone

iPhones before iOS 11 don't scan natively; some heavily customized Android cameras don't either; a few budget models have cameras that struggle with small dense codes.

Fix: for your own phone, a free scanner app or the Google app. For codes you're printing for others: this is why you size generously and print a fallback URL next to the code (see best practices).

10. The code itself is fine: the destination is broken

The scan works, but the link opens an error page. That's not a scanning problem: the URL moved, the site is down, or (for dynamic codes from a commercial service) the subscription lapsed and the redirect died. This is the failure mode behind most "QR codes stop working after a while" stories (see do QR codes expire?).

Fix: if the destination moved and the code is static, print a new code with the new URL. If you need future-proofing, use a static code pointing at a URL you control, so the page can change without reprinting (static vs dynamic).

11. It was never a real QR code

Screenshots of screenshots, low-resolution images copied from the web, or "QR-inspired" decorative art with no actual data in it. If the pattern doesn't have three clear finder squares and it came from a Google Image search, it may simply be junk.

Fix: regenerate from the source. If you need a code for that exact content, the generator will make a clean one in seconds.

The 60-second triage summary

Symptom What to check
Camera doesn't react at all Size, quiet zone, contrast and phone settings
Camera sees it, won't lock Glare, density, angle, damage and focus
Scans, opens an error page Destination availability: decoding may already have succeeded
Works on one phone, not another Print size and contrast, plus each phone's settings and focus
Used to work, stopped Print condition, scanning conditions and destination availability

If you're generating a fresh code, the free QR generator offers a four-module quiet zone by default, contrast warnings, a bounded logo-size control and error-correction options for URLs, Wi-Fi, contacts and every other supported type. Use these as starting points, then test the result in its intended setting.