QR codes that match your brand.
Generate QR codes for any URL or text. Custom colors, four error-correction levels, PNG or SVG download. No watermark. Live preview updates as you type.
What makes a QR code actually scan.
QR codes look like a static image, but four settings decide whether they scan reliably across phones, printers, lighting conditions, and weather. Get these right and your code works on a business card or a billboard. Get them wrong and 40 percent of attempts fail silently.
Contrast Critical
Dark foreground on light background
QR scanners need clear contrast. Pure black on pure white is the gold standard and works everywhere. Dark navy on cream is fine. Light gray on white usually fails. Always test on at least two phones before printing.
Error correction Critical
L 7% · M 15% · Q 25% · H 30%
How much damage the QR can take and still scan. M is the default for digital. Use H if you plan to overlay a logo, print outdoors, or place the QR on surfaces that scuff. Higher correction makes the QR denser, so increase the size at H.
Size and quiet zone Print
Min 2 cm wide for posters, 1 cm for cards
Below 2 cm wide, phones struggle from a normal scanning distance. Keep a quiet zone (white margin) of at least 4 modules around the code. The frame around the preview here already includes the quiet zone padding.
URL length Scan reliability
Under 200 chars for clean scans
QR codes can encode up to 4,000 chars, but longer URLs create denser codes that are harder to scan from a distance. Use a short URL (bit.ly, t.ly, or your own redirect like yoursite.com/go/promo) for any URL over 200 characters.
Static vs dynamic Strategy
QR encodes the URL, not the destination
The QR encodes whatever URL you give it. If you might change the destination later (campaign ends, page moves, A/B test), encode a redirect URL you control (yoursite.com/go/spring). You can update the redirect without reprinting the QR.
UTM tags Tracking
utm_source=qr&utm_medium=print
Add UTM parameters to the URL before generating the QR so you can track how many visits came from each printed asset. Use a different utm_campaign per piece (utm_campaign=poster vs utm_campaign=business-card) to know which print collateral converts.
Why scan rates matter
Sources: eMarketer US QR Code Users Forecast 2024, Apple iOS 11 release notes, QR Tiger Scan Reliability Study 2024.
Honest answers.
A QR code (Quick Response code) is a two-dimensional barcode that stores data (usually a URL) in a grid of black and white squares. Any smartphone camera can read it and open the encoded URL automatically. QR codes were invented by Denso Wave in 1994 for tracking auto parts; they exploded for marketing use after Apple added native QR scanning to the iPhone camera app in 2017.
Point your phone camera at the preview on this page. Most modern phones (iPhone since iOS 11 / 2017, Android since version 9 / 2018) recognize QR codes natively without an app. A notification appears with the URL; tap it to open. If your phone does not see the code, increase contrast (pure black on pure white is most reliable) or increase the size.
Error correction lets the QR scan correctly even if part of it is dirty, blurry, or covered. Four levels: L recovers up to 7% damage, M up to 15%, Q up to 25%, H up to 30%. M is the default for digital use. Pick H if the QR will be printed (especially on materials that scuff), placed outdoors, or overlaid with a logo. Higher levels make the QR denser, so increase the size if you go above M.
QR scanners need strong contrast between foreground and background. Pure black on pure white is the gold standard. Dark navy on cream works. Light gray on white usually fails. The foreground must be darker than the background; inverted QR codes (light on dark) fail on many older scanners. Test every color combination on at least two phones before printing.
Technically up to 4,296 alphanumeric characters or 2,953 bytes for the largest QR (version 40 with L error correction). Practically, keep URLs under 200 characters or the QR becomes dense, hard to scan from a distance, and unreliable at small print sizes. For long destination URLs, use a URL shortener (bit.ly, t.ly, or your own /go/x redirect) to keep the QR clean.
PNG for digital use (social media, slides, email, web). SVG for print and unlimited resizing (it stays sharp at any size because it is vector). For business cards, posters, or merch, SVG is better because the printer can scale it to any dimension without pixelation. For Instagram, slide decks, or screenshots, PNG at 500 to 800 pixels is fine.
The QR code itself never expires; it is just an image that encodes a URL. The URL it points to is what matters. If the destination page goes down or changes URL, the QR still scans but lands on a 404. If you might change the URL later, encode a redirect URL you control (yourdomain.com/go/promo) so you can update the destination without reprinting the QR.
No. The QR rendering uses api.qrserver.com, a free public QR rendering service that has run since 2010. Your URL is sent there as a query parameter to generate the image, but qrserver does not log or store the URLs it renders. systeme.io stores nothing. If you need fully offline rendering, download the PNG once and reuse the file; the image works without any server after that.
Run your funnels on systeme.io.
Build landing pages, sales funnels, online courses, and email automations on one platform. Connect your custom domain and point every QR you print at a destination you own. Free plan, 2,000 contacts.
Start free