How-To 2026-02-25 5 min By Cornelious Fazal
Scan a QR Code Online Free · No signup · Permanent

Why Is My QR Code Not Scanning? 9 Causes and Exact Fixes

Quick Answer

QR codes fail to scan for 9 specific, diagnosable reasons. This guide identifies each cause - wrong file format, inverted colours, too much data, bad print size.

Why Most QR Debugging Advice Fails

Most "QR code not scanning" guides tell you to "make sure your camera is clean" or "try better lighting." These are not the root causes. A QR code that was generated correctly and printed correctly will scan in almost any lighting condition. The actual failure causes are structural - they are in the code itself, the file format, the print resolution, or the physical placement.

This guide diagnoses all 9 structural causes in order of frequency.

Cause 1: The File Was Printed as a Low-Resolution PNG (Most Common)

A QR code PNG exported at 200x200 pixels and then placed in a Word document and printed at 2 inches wide produces a module grid where each individual square is fewer than 5 pixels across. At print resolution, these tiny squares blur together and the camera cannot distinguish them.

The fix: Download the SVG format from your QR generator, not PNG. SVG is a vector format that scales to any print size without losing sharpness. Our Free QR Code Generator provides SVG export. If your tool or workflow requires PNG, export at a minimum of 1000x1000 pixels for a 2-inch print, never less.

Cause 2: Too Much Data Encoded (Dense Code Printed Too Small)

Every character added to a QR code increases its version number and module density. A Version 20 code (97x97 modules) encoding 500 characters of text printed at 1 inch puts each module at roughly 0.01 inches wide - below the reliable scanning threshold for most smartphone cameras.

The fix: Shorten your URL before encoding. Use a redirect page on your own domain (e.g. yoursite.com/go instead of yoursite.com/blog/article-title?utm_source=print&utm_medium=flyer). Then either print the code larger, or reduce the data payload. Use our print sizing guide to find the minimum safe size for your code's version.

Cause 3: Inverted Colours (White on Black Rather Than Black on White)

QR codes require dark modules on a light background. Some design tools invert the image - producing white modules on a black background - when adjusting for dark-mode aesthetics or design contrast. Most phone cameras fail to scan inverted QR codes because their scanning algorithm expects high reflectance (white) in the background and low reflectance (dark) in the modules.

The fix: Always use dark modules on a white or very light-coloured background. If you need the code on a dark background (e.g. on a black business card), invert the entire design in your QR generator so the quiet zone (border) and background are still lighter than the modules, or use a white-bordered transparent version of the code on the dark surface.

Cause 4: Insufficient Quiet Zone

The quiet zone is the blank white border surrounding the QR code pattern. The ISO standard requires a minimum quiet zone of 4 module widths on all four sides. If your code is cropped too tightly - common when placing a QR code into a bordered design element - the camera's finder algorithm cannot locate the code boundary and fails to decode.

The fix: When placing a QR code in a design tool, ensure there is at least 4 modules' worth of blank space (roughly 10% of the total code width) on every side between the code and any surrounding design element, border, text, or image.

Cause 5: Low Colour Contrast

Coloured QR codes are stylistically popular but they introduce contrast risk. A dark blue code on a black background, or a light grey code on a white background, may fall below the contrast ratio the camera's scanner requires to distinguish modules from background.

The fix: Maintain a minimum Light Reflectance Value (LRV) difference of 40% between the module colour and background colour. As a practical rule: if you cannot clearly see every individual module square when you squint at the code from arm's length, your contrast is too low. Learn more about safe colour choices in our QR code colour guide.

Cause 6: Logo Overlay Covering Too Much of the Code

Adding a logo to the centre of a QR code relies on error correction headroom to keep the code readable. The maximum safe logo size is 30% of the total code area at Level H (High) error correction. A logo exceeding this threshold - or a code generated at Level L (Low) error correction with any logo - will fail to scan.

The fix: If you added a logo and the code no longer scans, regenerate the code at Error Correction Level H before adding the logo, and ensure the logo covers no more than 25% to 30% of the code area.

Cause 7: Reflective or Glossy Print Surface

A QR code printed on high-gloss paper stock or laminated with a high-gloss lamination film creates specular reflection - a bright whitish glare spot - when the camera is held at certain angles. This glare patches over part of the code pattern and prevents decoding.

The fix: Print on matte paper stock or use matte lamination film. If the code is on a product label already using gloss stock, add a matte varnish spot-finish over the code area only while keeping the surrounding label in gloss.

Cause 8: The URL in the Code Is Dead or Error-Producing

The code itself scans correctly - the camera decodes the URL successfully - but the destination page returns a 404, 500, or SSL error. From the user's perspective, the app "didn't work" after scanning, which they report as a QR code failure.

The fix: Test the decoded URL by manually typing it into a browser, not just by scanning. Check that the destination page loads correctly including SSL certificate validity (the URL must be HTTPS with a valid certificate, or some phones will block the connection). Confirm the URL is exactly correct - a single character typo in the encoded URL is invisible in the visual code pattern.

Cause 9: Phone Camera App Does Not Support QR Scanning

Native QR scanning via the standard camera app requires iOS 11+ (iPhone 6 or later) or Android 8+ (with Google Lens enabled). Some older or budget Android phones do not support this. Some camera apps from third-party Android manufacturers (notably on certain Huawei and older Samsung models) require QR scanning to be enabled in the camera settings rather than being on by default.

The fix: If the code scans correctly on your phone but not the user's, this is likely a camera app configuration issue on their device rather than a code problem. Advise them to: Settings → Camera → turn on "Scan QR Codes" (Samsung) or open Google Lens directly (Android). Alternatively, recommend they download any free dedicated QR scanner from their app store.

Once you have identified and fixed the cause, regenerate your code fresh using our Free QR Code Generator and test the new version on at least three different phones before printing a production run.

Frequently Asked Questions

The most common reason is camera quality - a code that works on a modern flagship phone with an outstanding camera may fail on an older or budget device with a lower-resolution sensor. If the code scans on a high-end phone but fails on a mid-range device, the code is on the edge of density tolerance. The fix is to reduce the data payload (shorter URL) or print the code larger. Always test on a 3-to-4-year-old mid-range Android device as your benchmark, not on the latest flagship.

Test the code on three devices: an iPhone (recent model), a mid-range Android (Samsung A series or similar), and an older or budget Android if you have one. Test in normal indoor lighting, then in dim lighting, then from twice the distance you expect customers to scan from. Print one test copy at full size and rescan the printed version - printing at low resolution can fail even if the digital file scanned fine on screen.

A static QR code never expires. The data is permanently encoded in the visual pattern and does not depend on any server or subscription. The code will only stop working if the destination URL goes offline (the website is shut down, the page is deleted, or the domain expires). The QR code image itself remains permanently valid regardless of how old it is.

A static code that previously worked but now fails is almost always a destination URL problem, not a code problem. Check that the website the code links to is still active, that the specific page URL still exists (it may have been moved or deleted), and that the SSL certificate is current. The physical code has not changed - something changed at the destination.

The ISO/IEC 18004 standard requires a minimum print contrast signal (PCS) of 0.6, roughly equivalent to a 4.5:1 contrast ratio in WCAG terms. In practice, aiming for 7:1 or higher gives reliable scanning across a wide range of cameras and lighting conditions. Classic black on white achieves approximately 21:1 - far exceeding the minimum - which is why plain black-and-white codes are the most universally reliable option.