QR Code with Logo: Step-by-Step Tutorial + Error Correction Math

Key Takeaway
How to add a logo to a QR code without breaking the scan. Error-correction level math, logo-sizing rules, contrast ratio, real-scan test protocol, and the 5 mistakes that kill scan rate when you centre a logo.
Adding a logo to a QR code is the #1 way people accidentally break their scans.
A logo in the middle of a QR code makes it look branded. It also removes about 20-30% of the code's data pattern. If you don't plan for that loss, the QR stops scanning on half the phones that try it — and you won't notice until customers tell you, which in practice means you never find out.
The fix is straightforward but it's math, not aesthetic intuition. QR codes have built-in error correction at four levels (L 7%, M 15%, Q 25%, H 30%) — named after the Reed-Solomon recovery percentage each level provides. A logo occupies some portion of the QR's module grid. As long as the logo's coverage is comfortably under the error correction level's recovery ceiling, the QR still scans. Go over it, even slightly, and scans fail.
This tutorial walks through the exact math, the sizing rules that keep you under the ceiling, the contrast/shape choices that help rather than hurt, and a 20-scan test protocol that catches broken QRs before you print 500 copies. By the end you should be able to add a logo confidently without guessing whether it'll still scan.
The error correction math (one section, then we build on it)
QR codes are defined in ISO/IEC 18004 and the specification sets four error correction levels. Each level encodes enough redundant data (using a Reed-Solomon algorithm) to recover from a specific percentage of corruption:
- L — Low: recovers up to 7% of the QR's data modules
- M — Medium: recovers up to 15%
- Q — Quartile: recovers up to 25%
- H — High: recovers up to 30%
A logo placed in the center of the QR visually replaces some of the modules the decoder needs to read. If the replaced area is larger than the error correction level's recovery percentage, the decoder gives up and returns "no valid QR."
The practical rule: use H-level (30%) whenever you're adding a logo. It gives you enough headroom to cover 20-25% of the QR's center with a logo and still have margin. Using L or M with a logo is where most "my QR doesn't scan" problems come from.
One nuance that trips people up: the percentage refers to data modules, not the physical area of the QR. Because error correction data is spread around the QR (not just in one place), covering 25% of the visible area does not mean you've consumed 25% of the error correction budget — it's usually less. But the safe mental model is still "keep the logo under 25% of the QR's visible area at H-level" because physical damage (scratches, print defects, partial obstruction) eats into the same budget and you want a margin for real-world conditions.
Logo sizing rules that actually scan
The short answer: logo should occupy no more than 20% of the QR's area — call it 18% to be safe. That leaves margin for error correction headroom plus any real-world damage (scratches, coffee spots, slight off-angle scans).
If you're designing at standard QR sizes, here's the logo sizing in absolute terms:
- 1 × 1 inch QR: logo max 0.4 × 0.4 inches (16% area)
- 2 × 2 inch QR: logo max 0.85 × 0.85 inches (18% area)
- 3 × 3 inch QR: logo max 1.25 × 1.25 inches (17% area)
- 4 × 4 inch QR: logo max 1.7 × 1.7 inches (18% area)
Shape matters too. A square logo consumes its full bounding box. A circular logo of the same bounding-box size actually consumes about 21% less area (it's the circle-inscribed-in-square ratio, pi/4). That means round logos can be slightly larger than square ones without hurting scan reliability.
Placement is almost always center. Off-center logos cause two problems: they leave the QR looking lopsided visually, and they can interfere with the three finder patterns (the big square blocks in three corners of every QR) which decoders need to detect orientation. Never place a logo within half an inch of any corner.
If your logo is rectangular rather than square or circular, keep both dimensions under the per-axis limit rather than trying to average. A 2 × 1 inch logo on a 3 × 3 inch QR sounds like it takes "only 22% of the area" but the 2-inch width crowds the QR's horizontal module pattern in ways that break recognition. Square bounding boxes are safest.
Contrast and color: the constraint vendors don't mention
Most QR-logo tutorials say "pick any logo, put it in the center." Contrast matters more than the tutorials admit. A QR decoder reads contrast, not color — it's looking for the difference between dark and light modules. When your logo disrupts the contrast pattern (e.g., a light-gray logo on a white QR background next to dark modules), the decoder sees the logo as ambiguous-intermediate values and fails.
Rules for logo colors on QR codes:
- Dark logo on light QR background: safest. Matches the QR's own contrast direction. Black logo on white QR, navy logo on white QR — both reliable.
- White logo with dark border/outline: works. The outline gives the decoder a clear boundary. Good for light-colored or minimal logos.
- Colored logo (brand red, brand blue, etc.) on white QR: works if the color is dark enough. Test for contrast ratio of at least 4.5:1 against the QR's light modules. A brand pastel won't cut it.
- Light logo on dark QR (inverted QR): risky. Inverted QRs themselves have variable scan support across phones — adding a light logo makes it worse.
- Multi-color logo: works if the logo has a solid dark boundary. Gradients inside the logo don't matter to the decoder; edges do.
A related trick that works well: put the logo on a white "badge" background (a small white circle or rounded square behind the logo itself). This gives the decoder a clean boundary regardless of the logo's internal colors, and it's a common design pattern on professionally-made branded QRs.
Avoid these three things outright: logos that cover the three finder patterns (the three big squares in QR corners), logos with complex transparent backgrounds that let QR modules "bleed through" visually, and logos with thin strokes that can look like QR modules themselves and confuse the decoder.
Step-by-step: add a logo to a QR code in QRLynx
Step 1 — Start with the QR type that fits your destination
Open the QRLynx generator and pick the QR type (URL, vCard, WiFi, PDF, etc.) that matches where the scan should go. Enter the destination data. At this point you have a basic QR with no logo yet — this is your baseline.
Step 2 — Set error correction to H (High, 30%)
In the Advanced section, change the error correction level from M (default) to H. This is non-negotiable when adding a logo. If the interface asks whether you want to keep or change the current setting, say yes to H.
Step 3 — Upload your logo
Use the Logo panel to upload your file. SVG is ideal (scales cleanly to any QR size). 300+ DPI PNG is the fallback. JPG with no transparency is acceptable for logos with a solid background. Avoid logos with drop shadows or partial transparency — they scan poorly because the decoder sees anti-aliasing as ambiguous pixels.
Step 4 — Size the logo to 18% of the QR area
Most QR platforms including QRLynx let you set logo size as a percentage. Set it to 18-20%. Smaller is always safer. Larger than 25% and you're gambling on scan reliability even with H-level error correction.
Step 5 — Preview, test scan, then download
Preview the QR with logo in the generator. Before downloading, scan the preview with your phone (hold the phone up to your monitor). If it scans cleanly, download as SVG for print or 300+ DPI PNG for digital. Always test the downloaded file with 2-3 different phones before committing to a print run.
The 20-scan test protocol before any print run
A QR that scans on your design monitor is not guaranteed to scan in real-world conditions. Before you commit to printing 500 business cards or a large-format poster, run the 20-scan test. It catches broken QRs early and it takes ten minutes.
Print or digital-render the QR at the exact final size. A 3 × 3 inch QR on your business card has to scan at that size, not at 6 × 6 inch preview.
Test from three phones. One iPhone (preferably recent), one Android, and one older phone (3+ years old). Older phones have worse cameras and surface QR decoding problems that new phones paper over. If the QR fails on an older phone, it'll fail for 20-40% of your actual audience.
Test from three distances. 6 inches (close read, like a business card in hand), 12 inches (standard table-tent distance), and the actual expected scan distance for your placement.
Test in three lighting conditions. Bright outdoor sun (adds glare), dim indoor (e.g., restaurant lighting), and office fluorescent. Lighting affects QR decoding more than most people think — an H-level QR that scans fine in daylight may fail under 200-lux warm restaurant light.
3 phones × 3 distances × 3 lighting conditions = 27 test scenarios. Do 20 of them randomly chosen. Target: 95%+ first-attempt scan success. If any single test scenario fails repeatedly, the QR needs to be fixed before the print run — usually by reducing the logo size, bumping the QR size, or dropping the logo entirely.
If you skip the test, your first real-world failure will be customers reporting the QR doesn't work three days after you handed out 500 cards. That's an avoidable, embarrassing outcome.
5 mistakes that kill scan rate when adding a logo
Mistake 1: Using M or Q error correction with a logo. Logos need H-level. M gives 15% recovery; a 20% logo already exceeds that ceiling before accounting for any real-world damage. Q at 25% has almost no margin. H at 30% gives you the room you need.
Mistake 2: Logo occupying more than 25% of the QR area. Even at H-level, pushing over 25% leaves zero margin for anything else (print defects, lighting conditions, slight off-angle scans). The "bigger logo looks better" instinct is the single most common cause of failing branded QRs.
Mistake 3: Placing the logo near a corner. The three finder patterns in the QR's corners are what decoders use to locate the code in the camera view. A logo that crowds or covers a finder pattern disables the QR entirely. Keep logos centered and at least half an inch from any corner.
Mistake 4: Using a logo with thin strokes. Thin-stroke logos (script fonts, hairline monograms) visually resemble the QR's own module pattern. Decoders get confused about whether thin strokes are logo or QR data. Thicker, bolder logos work better — or add a solid badge background behind thin-stroke logos.
Mistake 5: Skipping the 20-scan test. QRs that look perfect in the generator frequently fail in print or on older phones. The test takes 10 minutes and catches the failure before you spend $500 on a bad print run. Everyone skips it; the ones who don't ship reliable QRs.
FAQ
Can I put any logo on a QR code?
In principle yes, but some logos work much better than others. Logos that work: solid shapes, simple color palettes, bold strokes, square or circular bounding boxes. Logos that struggle: thin scripts, complex gradients, partial transparency, logos with small text elements that could be mistaken for QR modules. When in doubt, add a solid white or solid dark badge background behind the logo for a clean boundary.
What error correction level should I use with a logo?
Always H (High, 30%). H provides the 30% error-correction ceiling your logo is going to eat into, with enough margin left over for real-world scan conditions (print wear, lighting, phone variability). M or L with a logo is where most "my QR doesn't scan" problems originate.
How big can my logo be on a QR code?
18-20% of the QR's total area is the safe zone. Up to 25% works if everything else is optimal (H-level error correction, perfect print, ideal lighting). Over 25% and scan reliability drops sharply. For a 3 × 3 inch QR, that's roughly a 1.25 × 1.25 inch logo maximum.
Where should the logo go on the QR code?
Center. Off-center logos look lopsided and can interfere with the three finder patterns (the large squares in three corners) that decoders use to locate the QR. Keep the logo in the middle, at least half an inch from any corner.
Will a QR code with a logo still scan on older phones?
With H-level error correction and the logo sized correctly (under 20% of area), yes — but test to confirm. Older phones have less capable cameras and surface decoding issues that modern phones paper over. Always test with at least one 3+ year-old phone before a bulk print run.
Can I use a colored logo on a QR code?
Yes, if the logo has enough contrast against the QR's light background. Dark colors (navy, dark green, brand red at full saturation) work reliably. Light pastels and colors below 4.5:1 contrast ratio vs white cause scan failures. A safe pattern is a colored logo inside a solid white or solid dark circular/rounded-square badge — gives the decoder a clean boundary regardless of the logo's internal colors.
Do I need a dynamic QR code to add a logo?
No. Logos can be added to both static and dynamic QR codes. The logo overlay is a visual layer applied after the QR pattern is generated — the QR type (static URL, dynamic URL, vCard, WiFi) doesn't affect whether you can add a logo. Choose the QR type based on whether you need to change the destination later, then apply the logo.
What file format should I use for the logo?
SVG is best — scales cleanly to any QR size without losing quality. 300+ DPI PNG is the reliable fallback. JPG works for logos with solid backgrounds but can create compression artifacts at the edges. Avoid GIF (poor color depth) and logos with partial transparency (decoders see anti-aliasing as ambiguous modules).
How do I know if my QR code with logo is scannable?
Run the 20-scan test before any print run. 3 phones (including one older), 3 distances (close, medium, far), 3 lighting conditions (bright, dim, mixed) — 20 random scans total. Target 95%+ first-attempt scan success. Anything below that and the QR needs adjustment before going to print.
Can I add a logo to a WiFi or vCard QR code?
Yes. The logo-overlay technique works identically across every QR type — URL, WiFi, vCard, SMS, text, geolocation, etc. The error correction math, logo sizing rules, and test protocol are all the same. The only thing that varies is the QR's base pattern, which you don't have to think about because the generator handles it.
Why does my QR code stop scanning when I add a logo?
Three most-likely causes: (1) error correction is set too low — change it to H; (2) logo is too large — reduce to under 20% of QR area; (3) logo is placed too close to a corner finder pattern — move to center. If all three are correct and scans still fail, the logo itself may have thin strokes that confuse decoders — add a solid badge background behind it.
Can I put QR code text under the logo instead of above it?
Yes, and for business cards it's often more visually balanced. Text like "Save contact" or "Scan to book" placed below the logo (outside the QR but immediately under it) tells the recipient what scanning does without interfering with the QR itself. Keep the text small and dark enough to not compete visually with the QR pattern.
Related guides
For the deeper technical spec behind QR design (quiet zone, module sizing, ISO/IEC 18004 compliance), see the QR quiet zone and design specification guide. For a ground-up understanding of the error correction levels themselves, see the Denso Wave L/M/Q/H explainer. For the size-by-material side of the decision, see the business cards material guide, flyers guide, or posters guide.
If you're ready to generate a QR with a logo: start at the QRLynx generator — the logo upload and H-level error correction controls are right in the Advanced panel. Free tier works for static logo QRs; dynamic QRs with logos are included in paid tiers from $7/mo.
Final principle: if the test scans work, ship it. If they don't, reduce the logo size 20% at a time and retest. Brand visibility is worthless if the QR doesn't scan.


