All topics
Topic hub

QR code generation

Error correction, data capacity, and what makes a code reliably scannable

A QR code encodes data using Reed-Solomon error correction, available at four levels: L (recovers roughly 7% of the code), M (~15%), Q (~25%), and H (~30%). Higher error correction means the code can still scan correctly even if part of it is damaged, dirty, or obscured — which is exactly what makes it possible to place a logo in the center of a code without breaking it, as long as the logo is small relative to the code's total area and the error-correction level is high enough to cover for the space it covers.

The tradeoff is size: higher error correction needs more redundant data, which means more modules (the black/white squares) for the same content, producing a visually denser code. A QR code's total size — its "version," numbered 1 through 40 — scales with both the amount of data encoded and the error-correction level chosen. The encoding mode also matters: purely numeric data packs most efficiently, alphanumeric text less so, and general byte/binary data (which covers most URLs and free text) needs the most space per character.

One detail that trips up a surprising number of hand-made or poorly-cropped codes: the quiet zone — a blank margin of at least 4 modules around the code — isn't decorative, it's how a scanner's software locates where the code starts and ends against its background. Crop that margin away and an otherwise perfectly valid code can fail to scan. Codalith generates codes for links, Wi-Fi, contacts, and more with a live preview, so you can see immediately whether your customization (color, rounded modules, an embedded logo) still leaves a code that reads correctly.

The app

How it compares to other tools

Frequently asked questions

What are QR code error-correction levels and why do they matter?

QR codes use Reed-Solomon error correction at four levels — L (~7% recoverable), M (~15%), Q (~25%), and H (~30%) — so the code can still scan correctly even if part of it is damaged, dirty, or covered. Higher levels tolerate more damage but require more data (and a visually denser code) to encode the same content.

Can I put a logo in the middle of a QR code without breaking it?

Yes, as long as the logo is small relative to the code's total area and the error-correction level is high enough to cover the space the logo occupies — the code's redundancy is designed to tolerate exactly this kind of partial obstruction.

Why do some QR codes for similar content look bigger or denser than others?

Code size (its "version," 1 through 40) scales with both how much data is encoded and the error-correction level chosen — more content or higher error correction both mean more modules, producing a larger or denser-looking code even for conceptually similar data.

Why won't a cropped or tightly-bordered QR code scan?

QR codes need a blank "quiet zone" margin of at least 4 modules around the code — scanners use that margin to locate where the code starts and ends. Cropping it away can make an otherwise valid code unreadable.