First separate scanning from opening
There are two different failures. In one, the camera cannot recognize the pattern. In the other, the camera reads it but the destination page fails to open.
Test both stages. If the phone displays a URL, the QR was decoded and the remaining problem is probably the address, connection, access settings, or website.
Check the encoded URL
Open the destination directly in a private browser window. Look for spelling errors, missing HTTPS, spaces, expired sharing links, deleted pages, sign-in requirements, and permissions that only work for the creator.
If the QR uses a provider redirect domain, verify that the account and code are still active.
- Correct domain and path
- Public access
- Valid HTTPS certificate
- No expired temporary share link
Check contrast and color direction
A dark pattern on a light plain background is the safest arrangement. Similar brightness values, inverted colors, gradients, metallic ink, or photography behind the code can confuse detection.
Print output can differ from the screen, so evaluate the actual material under realistic lighting.
Check size, quiet zone, and damage
A code can contain valid data but be too small for its density or viewing distance. It also needs a clear border, commonly four modules wide, around every side.
Folds, curved packaging, glare, scratches, low-resolution screenshots, and JPEG artifacts can distort module edges.
- Increase physical size
- Restore empty margin
- Use SVG or a larger PNG
- Move away from folds and reflections
Check customization and test broadly
Large logos, altered finder patterns, decorative shapes, and covered modules reduce error tolerance. Remove custom elements one at a time to isolate the cause.
Test with several phone models, camera apps, distances, angles, and lighting conditions before approving a design.