QR Code Generator
Generate a QR code for any URL or text. Instant, browser-based, no data sent anywhere.
About This Tool
A QR code is a 2D matrix barcode that encodes up to 4,296 alphanumeric or 7,089 numeric characters, plus URLs, vCards, Wi-Fi credentials, and other structured data. Error correction levels (L/M/Q/H) trade capacity for damage tolerance — H-level recovers from 30% data loss but holds 30% less payload than L.
Enter a URL or text to generate a QR code. Pick error correction level based on intended use: L for high-density print, H for stickers exposed to wear or partial obstruction. Output is rendered as an image suitable for download or embedding.
The encoding follows the QR specification (ISO/IEC 18004). Data is encoded into a square matrix of black and white modules, with three position-detection patterns at three corners (the distinctive nested squares) plus alignment patterns and timing patterns that help scanners decode skewed or partially obscured codes. Error correction uses Reed-Solomon coding: redundant data appended to the payload allows reconstruction even when modules are damaged. Level L recovers 7 percent loss, M 15 percent, Q 25 percent, H 30 percent. The total module count grows in fixed steps (versions 1 through 40), each adding 4 modules per side. Version 1 is 21×21 modules; version 40 is 177×177. Higher versions hold more data but require more pixels to print or display legibly.
A worked example. Encode the URL https://coherencedaddy.com/tools/qr-code in a version 4 QR code at error correction level M. The URL is 41 characters, well within the 250-character M-level capacity for a version 4 code (33×33 modules). The generator selects the smallest version that fits the data plus error correction. Add a 100×100 pixel logo in the center: the H-level error correction allows up to 30 percent occlusion, so the logo can cover a few hundred modules without breaking decodability. Save the URL as a static QR (encoded directly) versus a dynamic QR (encoded with a redirect URL like qr.short/abc123 that forwards to the real destination). Static is simpler and self-contained; dynamic lets you change the destination without reprinting and tracks scan analytics, in exchange for an external dependency.
Limitations and security worth knowing. QR codes don't reveal their destination until scanned, which makes physical sticker spoofing a real attack vector. Quishing — phishing via QR — is a growing problem on parking meters, restaurant menus, and printed marketing. Treat unfamiliar QR codes the way you'd treat unfamiliar URLs: verify the destination before tapping. Most modern phone cameras display the URL before opening it; check it. Excessive logo size or aggressive customization (gradients, patterns) reduces scan reliability and can trip bot-resistant readers. Long URLs require denser modules, which need more pixels per side or better camera focus. Shortening URLs before encoding produces sparser, easier-to-scan codes — a 200-character marketing URL can become 20 characters via a redirect service and dramatically reduce code complexity. For accessibility, every QR code should have a plain-text alternative nearby; users without smartphones, with vision impairments, or in low light can't always scan.
The about text and FAQ on this page were drafted with AI assistance and reviewed by a member of the Coherence Daddy team before publishing. See our Content Policy for editorial standards.