Generators

QR Code Advanced Guide: Dynamic vs Static, Tracking, and Why They Can Be Partially Destroyed and Still Work

9 min readBy KBC Grandcentral Research Team

QR codes can survive up to 30% of their surface area being destroyed or covered — this is the error correction feature, and it's why you can put a logo in the center of a QR code and it still scans. It's also why a scratched restaurant menu QR code might still work. Understanding how QR codes store and recover data explains every design decision, from minimum size to color contrast requirements.

QR Code Structure: What Each Region DoesFinder patterns (3)Allow scanner to locate andorient the QR codeTiming patternAlternating black/white — tellsdecoder the module sizeData + error correctionReed-Solomon codes — up to 30%of data region can be damagedError Correction LevelsL (Low) — 7% recoverySmallest file size, most data capacityM (Medium) — 15% recoveryDefault for most generatorsQ (Quartile) — 25% recoveryGood for industrial useH (High) — 30% recoveryUse when adding logo to centerStatic QR = Data Locked; Dynamic QR = URL Changeable

Key Takeaways

  • Static QR codes embed the URL directly — once printed, the destination can never change without reprinting
  • Dynamic QR codes embed a short redirect URL — the destination can be changed anytime, and scans can be tracked
  • Error correction level H allows 30% damage recovery — required when placing a logo in the center of a QR code
  • Minimum contrast ratio 3:1 between modules and background — dark QR on light background is most reliable; avoid light-on-dark
  • Quiet zone (white border) of 4 module widths is required — QR codes touching the edge of a design regularly fail to scan

Static vs Dynamic QR Codes

Static QR codes encode the actual destination URL directly in the black-and-white pattern. Once generated and printed, the URL is permanent. If your website URL changes, the QR code is permanently broken. The advantage: no third-party dependency, no expiry, works forever as long as the pattern is intact.

Dynamic QR codes encode a short redirect URL (like qrco.de/xxxxxx or a custom domain). When scanned, the redirect service forwards to wherever you've currently configured the destination. You can update the destination URL at any time — useful for seasonal campaigns, changing offer pages, or correcting a mistake after printing. Most dynamic QR services also provide scan analytics: time, location, device type.

FeatureStatic QRDynamic QR
URL changeable after printing❌ No✓ Yes
Scan analytics❌ No✓ Yes (time, location, device)
Third-party dependency✓ None⚠️ Service must stay live
QR code sizeSmaller (less data)Larger (encodes short URL)
CostFreeUsually paid service
Best forPersonal URLs, WiFi credentials, vCardsPrint campaigns, marketing, menus
Expiry riskNever expiresService could shut down

Design Rules That Actually Prevent Scan Failures

Do

  • ✓ Use dark modules on light background (highest contrast)
  • ✓ Maintain 4-module quiet zone (white border) around the code
  • ✓ Minimum print size: 2cm × 2cm for standard scan distance
  • ✓ Use Error Correction H when adding a center logo
  • ✓ Always test scan on the final printed/rendered output

Don't

  • ✗ Light QR on dark background (some scanners struggle)
  • ✗ Place QR code on curved surfaces without testing
  • ✗ Use very long URLs in static QR (massive, dense code)
  • ✗ Skip the quiet zone (bleed to edge breaks orientation)
  • ✗ Use EC level L with a center logo (insufficient recovery)

Generate a QR Code

QR Code Generator

Generate static QR codes for URLs, text, WiFi credentials, vCards, and email — with size and error correction level controls. Download as PNG or SVG.

Open QR Generator →