QR code not scanning? A practical troubleshooting checklist (size, contrast, quiet zone, and URLs)
If your QR code does not scan, it is almost never "random".
It is usually one of these:
- the code is too small for the scanning distance
- the contrast is too low
- the quiet zone is missing
- the code was distorted during printing
- the destination loads slowly or fails on mobile
This post is a field-tested checklist you can run in 10 to 15 minutes.
If you want to fix a printed QR code without reprinting, start here:
- /blog/dynamic-qr-code
- /blog/editable-qr-code
TL;DR
- Test on 3 phones, in real lighting, from the real scanning distance.
- Keep a clean quiet zone. No borders, no text, no background texture.
- Use high contrast. Dark code on a light background is the safe default.
- Do not stretch the code. Keep it square.
- Make the landing page fast and mobile-friendly.
- If you already printed: use a dynamic QR redirect so you can fix the destination later.
Step 0: Confirm what kind of QR code you have
Before you troubleshoot, ask one question:
Is this a static QR code or a dynamic QR code?
- Static QR code: encodes the final URL directly. You cannot change it later.
- Dynamic QR code: points to a short link you control, which redirects to the final URL. You can change the destination later.
If you are doing marketing or printing, dynamic is usually the safer choice because mistakes are expensive.
Step 1: Validate the QR content
Open your QR code generator and confirm what is inside the code.
Common failure cases:
- the URL is missing https
- the URL contains a typo
- the URL is too long and the QR becomes dense (harder to scan)
- the URL redirects through multiple hops and ends up slow
If your QR encodes a very long URL, shorten it.
With QRShuffle you can create a short dynamic link and redirect to the long destination.
Step 2: Check the quiet zone (the most common print mistake)
The quiet zone is the empty margin around the QR code.
If you put anything in that margin, many scanners fail.
Examples of "quiet zone killers":
- a decorative border
- a background texture
- a logo or sticker edge too close to the code
- text like "scan me" touching the code
Fix:
- leave a clear margin around the code
- keep it consistent on all sides
More detail:
- /blog/qr-quiet-zone-explained
Step 3: Check size vs scanning distance
Most people print the QR code too small.
A simple rule: the further away the scanner is, the larger the QR needs to be.
Real-world examples:
- table tent: small is fine, distance is short
- poster: needs to be much larger
- billboard: needs to be huge
Fix:
- increase the physical size
- reduce the data density by shortening the URL
Useful references:
- /blog/qr-code-size-scanning-distance
- /blog/qr-code-size-guide-print-posters
Step 4: Contrast and colors
The safest combination is:
- dark QR code
- light background
If you invert colors (light code on dark background) you are taking a risk.
Common problems:
- low contrast in indoor lighting
- glossy paper creating glare
- gradients inside the QR modules
Fix:
- increase contrast
- avoid gradients and textures inside the code
- print a matte version if glare is common
More detail:
- /blog/qr-design-contrast
Step 5: Distortion, stretching, and file handling
A QR code is a grid. If you stretch it, you break the grid.
Common distortion sources:
- dragging the corners in Canva without locking aspect ratio
- exporting at low resolution and letting the printer scale it
- converting vectors to raster and compressing too aggressively
Fix:
- keep the QR square
- use the highest quality export
- avoid repeated re-exports
If you can, use SVG for design tools and export to print at the final size.
Step 6: Print quality and surfaces
Even a perfect design can fail if printing is rough.
Watch out for:
- fabric texture (shirts, banners)
- curved surfaces (bottles, cups)
- glossy lamination
- low quality vinyl stickers
Fix:
- increase size
- increase error correction level if you add a logo
- test on the actual surface before you print 5,000 copies
Step 7: The landing page is the hidden failure
Sometimes the QR scans fine, but the user experience is broken.
Common landing page issues:
- page takes 5+ seconds on mobile
- cookie banners block the CTA
- deep links fail on iOS
- the page is not mobile-friendly
Fix:
- use a fast landing page
- keep the first screen simple
- avoid heavy scripts
More detail:
- /blog/landing-page-speed-for-scans
Step 8: Test like a grown-up
A real test means:
- 3 different phones (iPhone + Android)
- different camera apps (native camera, Instagram, etc.)
- real lighting (indoor and outdoor)
- real distance
If it only works in your office, it does not work.
The fastest way to avoid reprints
If you are printing anything expensive, the best strategy is:
- use a dynamic QR code
- point it to a redirect you control
- change destinations without reprinting
QRShuffle is built for exactly that.
You can create a dynamic QR in minutes, change the destination anytime, and track scans.
If you want to try it:
- Create a dynamic QR code: https://qrshuffle.com
Next reads
- /blog/dynamic-vs-static-qr-code
- /blog/qr-code-redirect-best-practices
- /blog/utm-tags-for-qr-codes
