When a QR code doesn't work, the cause is almost always one of these three: too little contrast between the dots and the background, a code too small for the distance, or a cropped white margin. If the camera scans it but the page doesn't open, the problem is the content, like a broken link or an expired dynamic QR code.
- If the camera doesn't react at all, the problem is visual: contrast, color, size, margin, glare or focus.
- If the camera scans it but you get an error, the problem is the destination: a broken link or a deactivated dynamic QR code.
- The safest combination is black dots on a white background, with a clear margin around it.
- A static QR code doesn't expire. A "free" QR code that stopped on its own was dynamic.
Why doesn't the QR code work? Start with the symptom
Before touching the file, point the camera and watch what happens:
- Nothing happens: the camera doesn't recognize the code. The fault is in the design or the print (reasons 1 to 9) or in the phone (reason 12).
- The link appears, but the page shows an error: the code is scanning fine, and the fault is in the destination (reasons 10 and 11).
It's also worth testing with a second phone. If the QR code scans on the first try there, the problem is with your device, or the code is borderline, scanning on some phones and failing on others.
The camera doesn't recognize the QR code. What could it be?
1. Low contrast
Symptom: the camera keeps "searching" and shows nothing, especially in low light.
Fix: the dots need to be much darker than the background. Black on white is the safest bet. A home test: view the QR code in black and white, by removing the color from the image or printing in B&W. If the dots and the background turn into two similar grays, the camera won't be able to tell them apart either. A textured, photo or gradient background gets in the way just the same: behind the QR code, the background has to be plain.
2. Light-colored dots
Symptom: it scans on some phones and not on others, or only scans well up close.
Fix: yellow, light pink, baby blue, gold and light gray have little contrast with white. Use the darkest shade of your brand color (navy instead of sky blue, burgundy instead of pink) and keep the background light.
3. Inverted QR code, light on dark
Symptom: it works on your new phone but fails on older devices.
Fix: the QR code standard is dark dots on a light background. Newer phones read the inverted version; older readers don't always. If your layout is dark, put the QR code inside a white square, margin included.
A common trip-up happens with a transparent background: the PNG comes out with black dots and no background, the designer places it over dark artwork, and the result is black on black. With a transparent background, always check what sits behind the code.
4. Margin cropped or crowded
Symptom: the QR code touches the edge of the paper, a frame or some text, or sits on top of a photo, and the camera can't find it.
Fix: leave a band 4 modules wide clear all around the code, the quiet zone. That's how the reader knows where the QR code starts and ends. Don't crop the file's edge and don't put anything in that band.
5. Too small for the distance
Symptom: it only scans from very close, or doesn't scan at all on the poster on the wall.
Fix: use the rule of QR code side ≈ scanning distance ÷ 10, with a minimum of 0.8 × 0.8 in (2 × 2 cm). A poster scanned from 6.5 feet (2 meters) needs a QR code of about 8 inches (20 cm). The table by material is in the guide to minimum QR code size for printing.
6. Content too long
Symptom: the QR code is a sea of tiny dots and only scans when printed large.
Fix: every extra character adds more modules. At error correction level M, the link https://www.myshop.com/dresses produces a code of 29 × 29 modules; the same link with campaign parameters at the end (148 characters) jumps to 49 × 49. Remove anything unnecessary from the link and, in a contact QR code, fill in only the essentials.
7. Logo too big
Symptom: the QR code scanned fine until someone added (or enlarged) the logo in the middle.
Fix: the logo erases part of the code, and error correction is what makes up for it. Use level H, which handles up to about 30% damage, keep the logo within about 20% to 25% of the area and never cover the three big squares in the corners, which are the position markers.
Could it be the print or the location?
8. Blurry print or out-of-focus camera
Symptom: the edges of the dots are blurry, the dots stick together, or the camera can't focus.
Fix: for printing, use SVG or a PNG with plenty of pixels (1,000 px gives about 3.3 in, or 8.5 cm, at 300 dpi) and avoid paper that spreads ink, like napkins and porous kraft. When scanning, clean the phone's lens and step back a little: right up against the code, the camera can't focus.
9. Curved or glossy surface
Symptom: on a bottle, cup or can, the QR code looks distorted; on laminated paper, glass or acrylic, glare wipes out part of the dots.
Fix: on a curved surface, keep the QR code small relative to the curve or place it on the flattest part of the item. For the finish, prefer matte lamination. If the QR code is behind glass, change the angle of the piece or the light until the glare disappears.
The camera scans it, but the link won't open. Now what?
10. Broken or mistyped link
Symptom: the camera shows the address, but it opens an error page ("page not found", a 404 error) or a site that doesn't exist.
Fix: copy the link straight from the browser bar and paste it into the generator, with no spaces. Before generating, open the link in a private window to see whether it opens for anyone: a file in a private folder, for example, asks for a sign-in. If the page moved to a new address after printing and the site is yours, set up a redirect from the old address to the new one. The QR code works again without reprinting anything.
11. Expired dynamic QR code
Symptom: the QR code used to work and stopped on its own. Now it opens a generator page saying the code was deactivated or asking for a subscription.
Fix: the QR code was dynamic. It went through a vendor's link, which was switched off when the free trial ended. Either you subscribe to the plan, or you generate a static QR code with the final destination and replace the print. A static code stores the content in the code itself, which is why it's a QR code that never expires.
And when the problem is the phone?
12. Camera without a QR scanner
Symptom: you point at any QR code, anywhere, and nothing happens.
Fix: on an iPhone (iOS 11 or newer), go to Settings > Camera and check that Scan QR Codes is turned on. On Android, turn on QR scanning in the camera settings (on the Pixel, the option is called Camera reader suggestions), use the Scan QR code button in quick settings, or open Google Lens, which is the camera icon in the search bar of the Google app. The path on each device is in the guide to how to scan a QR code on your phone.
Summary table: the 12 reasons
| Reason | Typical symptom | Quick fix |
|---|---|---|
| 1. Low contrast | The camera doesn't react | Dark dots on a light background |
| 2. Light-colored dots | Scans on some phones and not others | Use the darkest shade of the color |
| 3. Inverted QR code | Fails on older devices | Put the QR code on a white square |
| 4. Cropped margin | The camera can't find the code | 4 modules clear all around |
| 5. Too small | Only scans from very close | Side ≈ distance ÷ 10 (minimum 0.8 in / 2 cm) |
| 6. Long content | Tiny dots | Shorten the link or the data |
| 7. Big logo | Stopped scanning with the logo | Level H and a smaller logo |
| 8. Blurry or out of focus | Dots stuck together | SVG, smooth paper, clean lens |
| 9. Curve or glare | Distortion or glare | Flat part, matte finish |
| 10. Broken link | Opens an error page | Test the link before generating |
| 11. Expired dynamic code | Stopped on its own | Switch to a static QR code |
| 12. Phone without a scanner | No QR code scans | Turn on scanning or use Google Lens |
How to test a QR code before printing
- Check the warning from the generator's automatic scan test. If it says the code might fail, adjust it before downloading.
- Scan the QR code on screen with two different phones, preferably an iPhone and an Android.
- Open the destination all the way: does the page load? does it ask for a sign-in? is it the right page?
- Print a proof at actual size, at 100%, and stick it where it will go.
- Scan from the real distance and in the actual lighting of the place.
Here at QR Code Free Forever, the scan test runs on its own: while you tweak the colors and the dot shapes, the site tries to scan its own QR code and warns you when the combination might fail. That way, most problems show up before the print shop, not after.
Create a free QR code with a scan test
Frequently asked questions
Can a QR code wear out over time?
The code itself doesn't expire, but the print ages: sun fades the ink, scratches and creases wipe out parts. Error correction can handle small damage; if it has faded a lot, reprint it.
Does the QR code still work after being photocopied?
Yes, as long as the copy keeps the contrast and sharpness. A copy of a copy blurs the modules; in that case, print again from the original SVG or PNG file.
Why does the QR code show an ad before opening the site?
Because it's dynamic and the generator put an ad page in the middle of the path, something some free services do. A static QR code opens the destination directly, with nothing between the code and the link.
Why does the QR code scan on a screen but not on paper?
A screen has its own light and high contrast; paper depends on the print and the lighting in the room. Making it larger, strengthening the contrast or switching from a glossy to a matte finish almost always fixes it.


