A QR code is a machine-readable URL (or other payload) printed as a pattern. Default black-on-white works. Brand teams still want color and a logo - and most "free" generators turn that into watermarks, email gates, or download limits.
This post is a practical how-to for making a scannable custom QR without that friction - contrast, quiet zones, logos, and what to test before you print.
What you need before you generate
- The final destination - prefer a short, stable HTTPS URL. Changing the landing page later is easier than reprinting codes.
- Where it will live - screen, flyer, packaging, outdoor poster. Print size and lighting affect scan success more than your accent color.
- Brand constraints - primary color, logo file (PNG with transparency helps), and whether legal will accept a non-default code.
Do not encode a temporary campaign URL into 10,000 stickers. Encode a redirect you control.
Step-by-step: custom colors
- Enter the URL or text payload
- Set foreground darker than background - high contrast still wins
- Avoid neon-on-neon and low-contrast gray pairs
- Keep the quiet zone (margin) intact; cropping the border kills scans
- Export at a high enough resolution for print (vector/SVG when available, or large PNG)
Color is decoration on top of error-corrected modules. If the scanner cannot tell dark from light, the brand color does not matter.
Step-by-step: adding a logo
- Use a simple mark; tiny text in the logo will not read
- Keep the logo small - covering too much of the center modules causes failures
- Prefer a logo on a solid backing so it does not blend into the pattern
- Regenerate after every logo tweak; do not "edit in place" in a random image tool and hope
QR codes include error correction so a modest center logo can work. Modest is the keyword. A huge logo with heavy filters is how you print unreadable art.
Always test before you print
- Scan with at least two phone models or camera apps
- Test in the real lighting of the venue or shelf
- Test from the distance a person will actually stand
- If it fails once, fix contrast or logo size before ordering print
Five minutes of testing beats a box of useless flyers.
Colors that usually scan
Dark foreground on a light background remains the safest pair. Invert that only if you test hard. Brand reds and yellows on busy backgrounds are where free generators ship pretty codes that fail in parking lots and store aisles.
When not to customize
Skip branding for one-off internal links, support tickets, and anything scanned in a hurry under bad light. Default high-contrast codes exist for a reason. Save custom work for materials that represent the brand repeatedly - packaging, posters, business cards.
Payload tips that prevent reprints
Encode a URL you control - a short redirect or landing page - so you can change the destination without reprinting stickers. Prefer HTTPS. Avoid stuffing long UTM strings into the QR if a short redirect can carry the analytics instead.
If the code will sit outdoors, assume glare and distance. Bigger quiet zones and higher contrast beat clever colors every time.
Avoiding the free-tool trap
Watch for: forced accounts, emailed downloads, watermarks on the free tier, and generators that upload your logo to a server you do not trust. For most marketing QR needs, a browser-side generator is enough.
I wanted that flow without signup theater, so I built one.
Generate, scan on your phone, then adjust. If the scan fails, fix contrast before you blame the printer.