QRonimo
QRonimo Learn Logo Best Practices

QR Code with Logo — Design & Print Best Practices

Embedding a brand logo in a QR code looks sharp on packaging, business cards, and marketing materials. Done wrong, it produces a code that looks great but fails to scan. This guide covers everything you need to get it right — from the physics of error correction to the specifics of print sizing and color contrast.

Why logos in QR codes work at all

It seems counterintuitive: you place an opaque image directly on top of a QR code, obscuring dozens of data modules — and yet a phone camera still decodes it in milliseconds. The reason is error correction.

Every QR code encodes redundant data using Reed-Solomon error correction. The standard defines four error-correction levels:

Level Label Can recover if this much of the code is damaged
Low L ~7%
Medium M ~15%
Quality Q ~25%
High H ~30%

When you place a logo over the center of a QR code, you are deliberately damaging it. The scanner reconstructs the missing data from the redundant codewords. This only works if you use a sufficiently high error-correction level and keep the logo within the recoverable area. For any QR code that will carry a logo, always use level H — anything lower and you are gambling with your print run.

To understand how this reconstruction works in detail, see our guide on QR code error correction.

The 30% rule: maximum logo coverage

With error-correction level H, a QR code can theoretically recover from up to 30% damage. In practice, your logo should cover no more than 20–25% of the total module area. Here is why the headroom matters:

  • Error correction level H adds significant redundancy, which increases the physical size of the code (more modules). A larger code means more surface area and therefore more visual complexity — which is already harder for some scanners to parse.
  • Print imperfections, dirty surfaces, and slight misalignment all count as additional "damage." You need margin left over after the logo for real-world degradation.
  • The 30% theoretical limit assumes the damaged area is spread randomly across the code. A logo creates a concentrated rectangular block of damage in the center — and that is harder for the decoder to handle than distributed damage.

A practical rule: if your logo covers more than roughly one-quarter of the QR code's width and height, reduce it. A logo that fills 20% of the area is almost always scannable; one that fills 35% is a coinflip. The goal is a code that scans reliably in poor lighting, at an angle, on a slightly worn surface — not one that barely passes a desktop preview.

You can experiment with logo size directly in QRonimo's QR code generator — the preview updates in real time so you can see the coverage before downloading.

Contrast is non-negotiable

QR scanners — whether a dedicated app or the built-in camera on iOS and Android — work by identifying the boundary between dark modules and a light background. If that boundary is ambiguous, the scanner either takes longer or fails entirely.

The WCAG 2.1 minimum contrast ratio for readable text is 4.5:1. For QR modules, the practical minimum is 4:1, and you should aim for 5:1 or higher in any context where you cannot control lighting (outdoor signage, printed menus, trade show booths).

The transparent-background logo trap

A logo with a transparent (PNG) background placed on a white QR code looks fine on screen. On a colored background — say, a dark blue packaging box — the "transparent" area becomes dark blue. That dark fill now bleeds into the surrounding QR modules. The scanner sees a large dark region instead of a logo surrounded by decodable modules, and it fails.

The fix is simple: always give your logo a solid white (or light) background that matches the QR code's quiet zone. Use a filled rectangle or circle behind the logo artwork, large enough to create a clear visual separation from the nearest QR module.

Avoid low-contrast color combinations

Some color pairings that look bold in design software produce unusable QR codes:

  • Dark red modules on black background — nearly invisible to IR-sensitive cameras
  • Yellow modules on white — under 2:1 contrast in most conditions
  • Light grey on white — fails in any suboptimal lighting
  • Complementary colors at similar brightness — high chroma, low luminance contrast

Test your contrast ratio with any WCAG contrast checker before committing to a color scheme.

The quiet zone

Every QR code specification mandates a quiet zone — a blank border surrounding the code on all four sides. The ISO/IEC 18004 standard requires this border to be at least 4 modules wide (some older scanners require 5).

The quiet zone tells the scanner where the code ends and the surrounding design begins. Without it, the scanner may fail to locate the finder patterns (the three large squares in three corners) or may misidentify surrounding artwork as part of the code.

The quiet zone violation that logo projects most often cause is not the logo itself — it is the container. Designers crop the exported QR code tightly, add a logo, and then place the whole thing flush against a colored background or inside a box with no margin. The result: zero quiet zone.

Make sure your QR export includes the quiet zone, or add it manually: 4× the module size on every side, in the same color as the QR background (typically white). If your QR code's modules are 3 px each, the quiet zone needs to be at least 12 px on every edge.

Color choices that scan reliably

The safest and most universally supported configuration is black modules on a white background. Every scanner on every device handles this combination without issue.

Inverted (light on dark)

Light modules on a dark background — sometimes called an "inverted" or "negative" QR code — works in principle, but not all scanner implementations handle it equally. iOS's native camera scanner copes with inverted codes since iOS 11. Many third-party apps and older Android implementations do not. If your audience is broad and uncontrolled (a bus shelter poster, packaging in a retail store), stick with dark on light.

Avoid blue-heavy dark backgrounds

Smartphone cameras use IR cut filters to improve color accuracy in daylight, but the IR sensitivity profile varies by sensor. Deep blue backgrounds — navy, royal blue, indigo — absorb near-IR light differently than they absorb visible light. A module pattern that appears high-contrast to the human eye may be low-contrast to the camera sensor. Avoid using dark blue as the QR background color. Dark green, dark brown, or dark charcoal are safer alternatives if you need a non-black module color.

Colored modules

Using a brand color (dark red, deep green, dark purple) for the modules is acceptable as long as contrast against the background is at least 4:1. Run the combination through a contrast checker. Gradient fills on modules — where a single module transitions from one color to another — reduce effective contrast at the edges and should be avoided.

Preparing your logo file

The format and design of the logo itself has a significant impact on scanning reliability.

Use SVG when possible

SVG logos are resolution-independent and render crisply at any export size. When QRonimo composites your logo onto the QR canvas, an SVG source means the logo stays sharp even at large output sizes. A low-resolution PNG logo will appear blurry at 2× or 3× export scales — which affects the visual quality of the final code even if it does not break scanning.

Avoid gradients and drop shadows in the logo

Gradients in the logo create mid-grey transition zones near the logo's edges. Those grey pixels overlap adjacent QR modules, reducing the effective contrast of those modules below the scanner's detection threshold. The scanner can no longer tell whether a particular pixel belongs to a module or to the logo edge. Use flat, solid-color artwork for the logo that will sit inside a QR code.

Drop shadows, glow effects, and outer strokes cause the same problem — they create soft, semi-transparent halos that bleed into surrounding modules. Strip all layer effects before exporting the logo file intended for QR embedding.

Shape: round or square fits best

QR code centers are square. A logo in a circular container (circle crop or circular background) wastes corner space but avoids visually clashing with the grid. A square logo with a solid background fills the space cleanly. Wide rectangular logos (e.g., a horizontal wordmark) are problematic: to stay within the 20–25% area budget, you either have to make them very small (hard to read) or accept that they extend into more rows of modules than a square would, reducing scanability. For QR embedding specifically, prefer a logo that is roughly 1:1 aspect ratio — the icon or symbol mark, not the full horizontal wordmark.

Include a solid background behind the logo

As discussed in the contrast section: always add a solid white (or light) background fill behind the logo artwork, with a few pixels of padding between the logo edge and the nearest QR module. This padding acts as a visual quiet zone specifically for the logo and prevents the logo's edge pixels from merging with module edges.

Testing before you commit to print

On-screen preview is not sufficient. A code that scans perfectly on a calibrated monitor can fail on a matte-coated business card stock. Test physically and test adversarially.

Test on an actual print

Print a proof at the intended size before ordering a full run. The ink absorption of different paper stocks — coated vs. uncoated, matte vs. gloss — changes the effective contrast of the modules. Laser print vs. offset print vs. digital print all render fine detail differently. Scan the physical proof, not a photo of it.

Test under bad lighting

Scan the printed code under fluorescent office lighting, in a dim restaurant, in direct sunlight, and under incandescent light. Sunlight glare on glossy paper is particularly hostile. If the code fails under any of these conditions, increase the code size or increase contrast before printing.

Test at angles

Scan from a 30° and 45° angle. QR codes are designed to be perspective-corrected by the decoder, but a logo reduces the amount of reference data available. A code with a large logo that scans fine head-on may fail at common real-world angles (a poster on a wall, a QR code on a product that is not facing you directly).

Test on multiple devices

iOS Camera, Google Lens, and at least one third-party QR scanner app. Each uses a slightly different decoder implementation. If your code fails on any of them, it will fail on some percentage of your audience's phones in the real world.

Do not trust on-screen preview alone

Screens display QR codes at a higher effective contrast than paper. A code that looks sharp on screen and scans instantly on a monitor can fail on paper. The preview in QRonimo lets you verify the visual composition and logo size — but always follow up with a physical print test before finalizing a design for production.

Common mistakes to avoid

Most logo QR failures come down to a handful of recurring errors. Here is what to watch for:

Logo too large
Covering more than 25–30% of the module area pushes past what error correction can recover. The code looks fine until it hits a real-world scanner, then fails intermittently — the hardest kind of failure to diagnose because it does not fail every time.
Using error-correction level L with a logo
Level L can only recover 7% damage. A logo easily covers more than that. This combination guarantees scanning failure. Always use level H for any QR code that will carry a logo. See our error correction guide for a full explanation of what each level means.
Low-contrast color combinations
Colors that look good together in brand guidelines do not always produce sufficient luminance contrast for a QR scanner. Check every color combination against a WCAG contrast tool before treating it as production-ready.
Logo with transparent background on a non-white surface
The transparent area adopts the background color of whatever surface the QR code sits on. On any non-white background this creates a large dark region inside the code that completely confuses the decoder.
Drop shadows, glows, and gradients on the logo
These effects bleed semi-transparent pixels into surrounding modules, lowering their contrast and making them ambiguous to the scanner.
Forgetting the quiet zone
Cropping the QR code tightly or placing it flush against a border eliminates the mandatory 4-module blank border. The scanner cannot locate the finder patterns without it.
Logo bleeding into the finder patterns
The three large squares in the corners are how the scanner orients and locates the code. If the logo is off-center or the code is too small and the logo too large, logo edges can encroach on these finder patterns. Finder pattern damage is especially hard to recover from — unlike data modules, these patterns have no redundant equivalent elsewhere in the code.
Only testing on-screen
As covered above, screen contrast is higher and more consistent than print. Physical print tests under real-world lighting are mandatory before finalizing any print production job.

Ready to create your QR code with logo?

QRonimo generates QR codes entirely in your browser — no data ever reaches our servers. Upload your logo, choose error-correction level H, and preview the result before downloading a high-resolution PNG or SVG for print.

Create a QR Code with Logo →

Related guides