01
Static QR codes don't expire
Many "free" QR generators put their own short link inside the code and redirect it to yours. That lets them count scans, and also stop the redirect when a trial ends, so printed codes suddenly lead nowhere. The codes here are static: the link itself is inside the code, so it works as long as your page does, and no third party sees who scans it.
To measure scans anyway, put campaign tags on the link first with the UTM builder (for example utm_source=flyer and utm_medium=qr) and read the visits in your analytics.
02
Size, colors and error correction
Error correction lets a code survive damage: level L recovers about 7% of the code, M 15%, Q 25% and H 30%. M is a good default; choose Q or H if a logo will sit on top of the code or it will be printed on something that gets scuffed. Higher levels make the code denser.
Colors are fine as long as the code is dark on a light background and the contrast is strong. Inverted codes (light on dark) fail on many phone cameras, and the tool warns you about both problems.
03
Printing and placement
Download SVG for print, it stays sharp at any size; PNG is fine for screens and social posts. Leave the white border around the code, scanners need that quiet zone. As a rule of thumb, the code should be at least a tenth as wide as the distance it's scanned from: 2 cm for a business card held in the hand, much larger for a poster across the room.
Sources and methodology
Numbers checked on October 17, 2026.
Codes are generated in your browser with the open-source qrcode library, following the QR Code standard (ISO/IEC 18004); the error correction percentages are the standard's levels. The 4:1 contrast threshold is our own cautious value, the standard doesn't set one. Your link isn't sent anywhere and the code contains no redirect.



