Quick answer
Most QR codes that won't scan have a simple cause: the content inside is wrong, the code is too small for the scanning distance, the white border was cropped, the colors lack contrast, the code is light on dark, or the logo is too big. Fix the cause, then test a printed copy with more than one phone.
On this page
A QR code that won’t scan is frustrating, especially when it’s already on a stack of flyers. The good news is that the cause is almost always one of a handful of simple problems. Work through the fixes below in order. The first two take a few seconds, and the rest cover size, design and printing.
Start with the quick checks
1. Test the right way
Before you change anything, make sure the test itself is fair. Open your phone’s regular camera app, hold the phone steady, and point it at the code from about ten times the code’s width away. A 2 inch code should scan from roughly 20 inches.
Make sure there’s enough light, and that your own shadow or a lamp’s reflection isn’t falling across the code. Try a second phone too. If one phone reads it and another doesn’t, the code is working but has little margin to spare, and the fixes below will help.
2. Check what’s inside the code
Sometimes the code scans perfectly and the problem is what it points to. A typo in a website address, a page that has moved, or a site that’s down will all look like a broken code.
For WiFi codes, check that the network name and password match exactly, including capital letters. For contact cards, check each field. Remember that a static code can’t be edited after printing, so if the content is wrong, you’ll need a new code.
Fix the size and the space around it
3. Print it bigger
A code that’s too small for the scanning distance is one of the most common problems. Use the 10-to-1 rule: the code should be about one tenth as wide as the distance people will scan from, and never smaller than 0.8 inch (2 cm). Our QR code size guide has a chart for business cards, flyers, menus and signs.
4. Put the quiet zone back
Phones find a QR code by its empty border, called the quiet zone. It needs to be at least four modules (small squares) wide on every side. Every KeptLink download includes it, but it often gets lost when a code is cropped, placed on a busy background, or crowded by text. Give the code its white border back.
5. Put less data in the code
The more information a code holds, the more modules it needs and the smaller each one gets. KeptLink warns you when a code is dense (over 300 bytes). To simplify it:
- remove tracking parameters and other extras from long links
- leave out contact card fields you don’t need
- keep plain text short
Fix the design
6. Increase the contrast
Phones need a clear difference between the code and the background. KeptLink blocks designs with a contrast ratio below 4.5:1, and more is better. If your code uses a light color, a gradient or a colored background, try darker dots on white. Our guide to QR code colors that work has safe combinations.
7. Switch an inverted code back to dark on light
Light dots on a dark background look stylish, but some phone cameras can’t read inverted codes at all. KeptLink warns you when a code is inverted. Switching to a dark code on a light background is the simplest fix.
8. Make the logo smaller
A logo covers part of the code, and the code relies on error correction to fill the gap. KeptLink uses the highest level (H) when you add a logo and limits the logo to 30% of the code’s width, but a smaller logo still leaves more room for smudges and glare. Our guide to adding a logo to a QR code explains the details.
9. Tone down the styling
Rounded dots, custom corner (eye) styles and gradients are fun, but each one makes the code a little less standard. Keep the three large corner squares, the finder patterns, clear and easy to recognize. If a heavily styled code struggles, try simpler dot and corner styles and see if it scans more easily.
Fix the print
10. Use a sharp file and a flat, matte surface
Even a well-designed code can fail if the print is poor.
- Use a vector file. Print from the SVG or PDF, or at least the 2048 pixel PNG. A small PNG stretched to fit prints with blurry edges. Our guide to SVG vs PNG vs PDF explains which to use.
- Don’t stretch it unevenly. Resize from a corner so the code stays square.
- Avoid glare. Glossy paper, lamination and plastic sleeves can reflect light across the code. A matte finish is easier to scan.
- Keep it flat. Codes on curved bottles, folds or wrinkled paper can distort. Place the code on a flat area where you can.
Once you’ve made your changes, the live scan check in our QR code generator will show “Scans reliably in our check” when it can read the code on screen. Then print one copy at the final size and scan it with a couple of phones before you print the rest.
Frequently asked questions
Why does my QR code scan on screen but not on paper?
Printing adds problems a screen doesn't have: a smaller size, blurry edges from a low-resolution file, colors that print lighter or darker, and glare from glossy paper. Print at the final size from an SVG or PDF and test the printed copy.
Can I fix a QR code that's already printed?
If the problem is the content, like a typo in the link, no. A static QR code can't be edited after it's printed, so you'll need to make a new code and reprint. Problems with lighting or distance can sometimes be fixed by moving or re-mounting the print.
Do QR codes stop working after a while?
Static QR codes don't expire. If an old code stops working, the usual cause is that the page it points to has moved or gone offline, or the print has faded or been damaged.
Why does my QR code scan on some phones but not others?
Older phones and cameras are less forgiving. Low contrast, inverted colors, a large logo, a dense code or a small print size can push a code past what some phones can handle, even when newer phones read it fine.