Why a logo can break a QR code — and how this avoids it
A QR code stores its data in a specific pattern of modules, plus a percentage of redundant error-correction data that lets a scanner reconstruct the message even if part of the code is unreadable. At the default error-correction level, that redundancy budget is roughly 15% — plenty for general use, not nearly enough once a logo is sitting on top of the center of the code eating into real data modules.
Bumping to Level H raises that redundancy budget to roughly 30%, which is why this generator switches automatically the moment an image is uploaded rather than leaving it as a setting someone has to remember. Combined with keeping the logo modest — well under the general 20%-of-total-area rule of thumb for center logos — and hiding the QR dots directly underneath it, the result stays inside the range Level H error correction can actually recover from.
What makes a good logo image
A simple, high-contrast logo works better than a detailed photo — a wordmark, an icon, or a simplified brand mark reads clearly even at the small size it ends up rendered at inside the code. A PNG with a transparent background avoids an awkward colored box appearing around the logo; a busy photograph with fine detail is the riskiest choice, since that detail is exactly what gets lost at QR-logo scale anyway.
Always test-scan the finished code with more than one phone before printing or publishing at scale — the automatic error-correction bump handles the theory, but a quick real-world scan test is the only way to confirm a specific logo, color combination and print size actually works together.
Using a logo via the API or MCP server
The same feature is available outside the web tool: the generate_qr_code MCP tool (and the underlying API) accepts a logoUrl parameter — a publicly reachable image URL fetched at generation time — and applies the identical automatic error-correction bump and sizing logic. See /qr-mcp for the full parameter reference and setup instructions.
When to skip the logo entirely
A logo isn't the right choice for every use case, and it's worth being honest about when to leave it out. A code that will be printed small — a receipt insert, a tiny product label — has less room to spare for a center image before legibility suffers overall, even with the automatic error-correction bump in place. In those cases, a plain colored code without a logo often scans more reliably and looks cleaner than a cramped logo fighting for space in a small footprint.
A logo earns its place most clearly on anything printed at a reasonable size and viewed at a normal distance — a poster, a business card, packaging, signage — where there's enough physical space for both the logo and the surrounding data pattern to read clearly. When in doubt, generate both versions and test-scan each before deciding which one goes to print.

