QR Codes for Marketing & SEO: The Complete Guide
A QR code is a two-dimensional barcode that encodes data — a URL, Wi-Fi credentials, a contact card, plain text — directly into a scannable pattern of black and white squares, readable by any modern phone camera with no app required. This guide covers the single most consequential decision in generating one (static vs. dynamic, and why one type can silently stop working years later), what the error correction levels actually protect against, and how to use QR codes in a real campaign without hurting scan rates.
Static vs. dynamic: the decision that determines whether your code ever expires
This is the single most important thing to understand before printing a QR code anywhere permanent, like a storefront sign, packaging, or a physical business card:
- A static QR code encodes the actual destination data directly, permanently, inside the code's own pattern. Scanning it never involves a third-party server — the phone reads the code and acts on the data immediately. It works forever, with zero ongoing dependency on whoever generated it.
- A dynamic QR code encodes a short redirect URL through a provider's own server, which looks up the real destination and forwards the scanner there. This allows changing the destination after printing and often includes scan-count analytics — genuinely useful features — but only for as long as that specific provider's redirect service keeps running. If the account lapses or the company shuts down, every code it ever generated breaks simultaneously, even though the printed pattern itself never changed.
| Static | Dynamic | |
|---|---|---|
| Destination | Baked into the code, fixed forever | Redirect URL, editable after printing |
| Depends on a third-party server? | No | Yes |
| Scan analytics | No | Usually yes |
| What happens if the provider shuts down | Nothing — keeps working | Every code it generated breaks |
| Best for | Packaging, signage, anything printed permanently | Short campaigns needing a changeable destination |
For anything printed permanently or in bulk — packaging, signage, printed materials that will outlive a marketing subscription — a static code is the safer default specifically because nothing about scanning it depends on a service staying online. Dynamic codes make more sense for short campaigns where the destination genuinely needs to change or scan analytics are worth the tradeoff.
Error correction levels: what they actually buy you
Every QR code includes Reed-Solomon error correction — redundant data woven into the code that lets a scanner reconstruct the original content even if part of the physical code is damaged, dirty, or obscured. Four standard levels trade code density for damage tolerance:
- L (Low) — recovers from about 7% damage. Produces the least dense code for a given amount of data.
- M (Medium) — about 15%. A reasonable default for most general printed use.
- Q (Quartile) — about 25%.
- H (High) — about 30%. The densest output for the same data, but the most damage-tolerant.
| Level | Damage tolerance | Density | Best for |
|---|---|---|---|
| L | ~7% | Lowest | Clean digital display, max data capacity |
| M | ~15% | Low | General printed use (default) |
| Q | ~25% | High | Outdoor or higher-wear printing |
| H | ~30% | Highest | Codes with a center logo covering part of the pattern |
H is specifically the level to use whenever part of the code will be intentionally covered — most commonly a center logo. Placing a logo over a code generated at a low error-correction level, without raising it to compensate, is a common way to produce a code that looks fine to the eye but fails to scan reliably, since the covered area now exceeds what the code's redundancy can actually reconstruct.
How much data actually fits
A QR code can hold up to roughly 4,296 alphanumeric characters at the lowest error correction level — but the practical ceiling for a code that scans quickly and reliably at a normal distance is much lower. More encoded data means a visually denser grid of smaller modules, and phone cameras at a distance, an angle, or in poor lighting struggle disproportionately more with dense codes than simple ones. This is exactly why encoding a short redirect link, rather than a long destination URL loaded with tracking parameters, tends to produce a more reliably scannable code in practice — a good QR generator, like Frost Rank's QR Code Generator, automatically picks the smallest QR version that fits whatever you actually enter, keeping density as low as the content allows.
Using QR codes without hurting scan rates
Two practical points that matter more than most people expect: a QR code with no surrounding context — no "Scan for our menu" or similar line of copy — relies entirely on the viewer already knowing why they'd bother, which measurably reduces real-world scan rates compared to the same code paired with a clear call-to-action. And a Wi-Fi QR code embeds the actual plaintext password directly in the code (that's how a phone connects automatically without typing) — anyone who scans it can extract that password, so treat it with the same physical-access caution as the password itself.
Print size matters just as much: a common rule of thumb is that a code should be at least a tenth as wide as the distance it will be scanned from, so a 4 cm code on a table tent works from about 40 cm away, while a poster meant to be scanned from 1.5 m away needs a 15 cm code. The QR Code Generator prints at exactly the size you pick (4, 6, 10 or 15 cm) with your call-to-action headline above the code — and on the Wi-Fi tab it prints a ready-to-cut guest card with the network name and password written out, so guests whose phones won't scan can still connect.
Frequently asked questions
A static code stores the destination itself and works forever; a dynamic code stores a redirect through a provider's server, so it can be edited and tracked but stops working if the provider does. See static and dynamic codes compared.
They set how much of the code can be damaged and still scan: L about 7%, M 15%, Q 25% and H 30%. Higher levels make denser codes. See which level to use when.
Up to about 4,296 alphanumeric characters at level L, but less data scans far more reliably, so encode a short URL rather than a long one. See why less data scans better.
The format is safe, but the password is stored in plain text, so anyone who scans the code can read it. Treat the printed code like the password itself. See Wi-Fi codes and other scan-rate tips.
It can, unless the error correction level is raised to H and the logo is kept small enough for that redundancy to cover. See how error correction makes room for a logo.
Yes. A short line like "Scan for our menu" gives people a reason to scan and measurably raises scan rates. See more ways to raise scan rates.
Error correction figures and encoding limits reflect the same standard QR specification (ISO/IEC 18004) that Frost Rank's own QR Code Generator implements — a vendored, independently round-trip-tested library, not hand-rolled encoding logic — described in more detail on the tool's own page.
Was this guide helpful?
Rate it and leave a comment — takes 10 seconds, and genuinely helps decide what to fix or build next.