How QRStable checks a QR code
Last reviewed: 16 September 2026
QRStable renders the QR in the browser and attempts to decode that finished output again. It also evaluates several properties associated with common scanning and printing failures.
Automated checks
- Rendered decode: the finished PNG is read and compared with the intended payload.
- Contrast: foreground and gradient colours are compared with the background.
- Quiet zone: the empty border is checked against the recommended four-module setting.
- Payload density: long values are flagged because they create denser symbols.
- Logo coverage: large centre logos are flagged as higher risk.
- Resolution: small raster exports are discouraged for printing.
What the check cannot reproduce
It cannot simulate every camera, viewing distance, print process, paper stock, reflective surface, curve, fold, scratch, lighting condition or future destination failure. Passing the check is not a print certification.
Recommended physical test
- Download the exact format you plan to use.
- Print it at its final physical size on the intended material.
- Test from expected distances using several current phones.
- Repeat under realistic lighting and after any artwork or printer changes.
Inspector limits
The QR Inspector reveals the encoded value and flags some likely intermediary domains. It does not visit arbitrary URLs, prove that a destination is safe or detect every redirect.
