How QR Codes Work + How to Create One Free (No App, No Signup)
QR codes are everywhere now, on menus, posters, business cards, and product packaging. But how does that little square of black and white dots actually store a web address or a WiFi password? And how do you make one yourself without downloading an app or handing your email to a sign-up form? This guide explains how QR codes encode data, what error correction is and why it lets you add a logo, and how to create a free static QR code right in your browser, with no tracking and no expiry date.
- QR code scanning by US smartphone users grew to roughly 89 million people in 2022, up from 83 million in 2021 (Insider Intelligence / eMarketer, 2022).
- A QR code stores data in a grid of modules, with three corner squares for orientation and built-in error correction.
- Error correction can recover up to 30% of a damaged or covered code, which is why you can place a logo in the center.
- Static QR codes (what FusionPDF makes) never expire and can't track you, but they can't be edited after creation.
What Is a QR Code, Exactly?
A QR code is a two-dimensional matrix barcode that stores data in a grid of black and white squares. Scanning by US smartphone users reached roughly 89 million people in 2022, up from 83 million in 2021, according to Insider Intelligence / eMarketer (2022). Unlike a barcode, it reads in two directions.
QR stands for "Quick Response." The format was invented in 1994 by Denso Wave, a Japanese automotive supplier, to track parts on assembly lines faster than a standard linear barcode allowed. A traditional barcode holds data in one direction only, along a row of vertical lines. A QR code holds data both horizontally and vertically, which is why it can store hundreds of times more information in the same space.
That density is the whole point. A single QR code can hold a full web address, a WiFi login, a contact card, or a payment string. And because phones now read them straight from the camera, no separate app needed, they've become the fastest way to move data from a printed surface to a phone.
How Does a QR Code Encode Data?
A QR code encodes data as a grid of small squares called modules, each one black (a 1) or white (a 0). The standard, ISO/IEC 18004, defines this structure precisely. Three large squares sit in the corners as position-detection patterns, letting a scanner find and orient the code in under a second from almost any angle.
The parts of a QR code
Look closely at any QR code and you'll spot a few fixed features. The three big nested squares in the top-left, top-right, and bottom-left corners are position-detection patterns. They tell the scanner where the code is and how it's rotated. A scanner can read a code upside down or sideways because of these three markers.
Between and around those corners run the timing patterns, alternating black and white lines that act like a ruler. They tell the decoder how big each module is, so it can map the grid correctly even if the image is slightly skewed. Smaller alignment patterns appear in larger codes to correct for distortion on curved or warped surfaces.
Where your actual data lives
Everything that isn't a fixed pattern is the data and error-correction area. Your URL or text gets converted to binary, split into the encoding mode (numeric, alphanumeric, byte, or kanji), and laid out across the grid in a zigzag pattern. A blank margin called the quiet zone surrounds the whole code so the scanner can tell where it begins and ends. Skip that margin and many readers fail.
Quick fact: QR codes come in 40 "versions," from a 21x21 grid (version 1) up to 177x177 (version 40). More data means a higher version with more modules, which is why a long URL produces a busier, denser-looking code than a short one.
What Is Error Correction and Why Does It Let You Add a Logo?
QR codes use Reed-Solomon error correction, the same math behind CDs and DVDs, to rebuild data even when part of the code is damaged or hidden. The ISO/IEC 18004 standard defines four levels: L recovers about 7%, M about 15%, Q about 25%, and H up to 30% of the code. That redundancy is exactly what makes center logos possible.
Here's the logic. When you generate a code at error-correction level H, the decoder can lose up to 30% of the modules and still reconstruct the original data perfectly. So if you cover the center with a small logo, you're "damaging" the code on purpose, and the error correction simply fills in the missing pieces. The code still scans.
There's a trade-off, of course. Higher error correction uses more modules for redundancy, so the same data produces a denser code. That's fine for most uses, but if you're encoding a very long URL and want a logo, shorten the URL first so the code doesn't get too cramped to scan reliably.
What Kinds of Data Can a QR Code Hold?
A QR code can hold any short text string, and clever formatting turns that into actionable data your phone recognizes. The FusionPDF QR generator supports 14 data types, from URLs to WiFi logins to crypto addresses. Each type formats the text so the scanning phone knows what to do with it automatically.
The trick is that phones recognize certain text patterns and offer matching actions. A string starting with https:// opens a browser. One starting with WIFI: offers to join a network. A BEGIN:VCARD block offers to save a contact. The QR code itself is just text; the formatting tells the phone what kind of text it is.
Common data types you can encode include:
- URL - the most common use, opens a website instantly.
- WiFi - encodes network name, security type, and password so guests join without typing. See our WiFi QR code guide.
- vCard - a full contact card with name, phone, email, and company.
- WhatsApp, SMS, Email - open a pre-filled message to a number or address.
- Location - drops a pin on a map app.
- Event - adds a calendar entry with date, time, and title.
- App Store / Play Store - link straight to an app download page.
- Bitcoin and Social - a payment address or a link to your social profile.
Static vs. Dynamic QR Codes: What's the Difference?
A static QR code encodes the final data directly into the pattern, so it works forever and can't track you, but it can't be changed after creation. A dynamic QR code stores a short redirect link that points to a third-party server, which lets you edit the destination and count scans, but that server can log every scan. FusionPDF makes static codes only.
Let's be honest about the trade-off, because most "free" QR sites quietly push you toward dynamic codes. With a static code, the URL (or WiFi string, or contact card) is baked into the dots themselves. Nothing sits between the scanner and the destination. That means no tracking, no monthly fee, and no expiry. The downside: if you encoded the wrong URL, you have to generate a new code.
Worth knowing: If you've ever scanned a "free" QR code that opened a tracking domain before redirecting, that was a dynamic code logging your scan. A static code goes straight to the destination, with nothing in between to record that you scanned it.
How Do You Create a QR Code Free in 3 Steps?
Creating a QR code with FusionPDF takes under a minute and runs entirely in your browser. The code is generated locally on your device using JavaScript, so nothing is uploaded and no scan can be tracked. There's no app to install and no account to create, and you can export the result as PNG or SVG.
Go to fusionpdf.pro/qr-code and choose from 14 data types: URL, WiFi, vCard, WhatsApp, SMS, Email, Location, Event, App Store, Play Store, Bitcoin, Social, and more.
Type your URL or details. Then set the foreground and background colors, pick a module style, and optionally drop in a logo. Set error correction to level H if you add a logo.
Click download. Choose PNG for screens and messaging, or SVG for print, signage, and large formats where the code must stay sharp at any size. It saves straight to your device.
PNG or SVG? Use PNG when you'll share the code digitally or drop it into a slide. Use SVG whenever the code will be printed, especially on posters or packaging, because SVG is vector and stays crisp at any size with no pixelation.
Tips for QR Codes That Actually Scan
Most QR scan failures come from three avoidable mistakes: poor contrast, printing too small, and never testing before going to print. A scanner needs to distinguish dark modules from light ones, so keep strong contrast and a clean quiet zone. The minimum reliable printed size is usually around 2 by 2 centimeters for close scanning, scaling up with distance.
Keep contrast high
Dark modules on a light background scan best. Classic black on white is the safest choice. If you use custom colors, keep the foreground much darker than the background, and never invert it (light dots on a dark field) unless you've tested it on multiple phones. Low contrast is the single most common reason a stylized code won't scan.
Mind the print size and quiet zone
For a code scanned up close, such as on a business card or table tent, aim for at least 2 centimeters square. For a poster read from across a room, scale up to 10 centimeters or more. The rule of thumb: scan distance should be roughly ten times the code's width. Always leave the blank quiet-zone margin around the code, equal to about four modules wide.
Test before you print
This one matters most. Generate the code, then scan it with two or three different phones, ideally one iPhone and one Android, before sending anything to a printer. You can even check a saved code image with our QR scanner. Catching a typo or a too-dense code on screen costs nothing; catching it after printing 500 flyers is expensive.
Common use cases: restaurant menus, event check-in, WiFi sharing for guests, product packaging, business cards, real-estate signs, payment links, and "review us" prompts. For anything printed once and reused for years, a static code is ideal because it never expires.
Frequently Asked Questions
Do QR codes expire?
Static QR codes never expire. The data is encoded directly into the pattern, so the code works for as long as the destination, a URL for example, stays live. Dynamic QR codes can expire because they route through a third-party server, and the code stops working if that service shuts down or the subscription lapses. FusionPDF generates static codes, so there's nothing to expire.
What's the difference between a static and a dynamic QR code?
A static QR code encodes the final data directly, so it works forever, costs nothing, and can't track you, but it can't be edited after creation. A dynamic QR code stores a short redirect link pointing to a third-party server, which lets you change the destination and collect scan analytics, but the server can track scans and the code dies if the service ends. FusionPDF creates static codes.
Can I add a logo to a QR code?
Yes. QR codes include built-in error correction that can recover up to 30% of damaged or covered modules at the highest level (H). That redundancy is what lets you place a logo in the center without breaking the code. Use error correction level H when adding a logo, keep the logo under roughly 25% of the code area, and always test the result before printing.
What size should a QR code be for printing?
A common rule of thumb is a minimum printed size of about 2 by 2 centimeters (0.8 inches) for close scanning, scaling up with distance. For posters or signage scanned from a few meters away, use 10 centimeters or larger. Export as SVG for print so the code stays crisp at any size, and keep a quiet zone (blank margin) around it.
Can a QR code track me?
A static QR code can't track you on its own. It simply encodes data such as a URL, and scanning it opens that destination directly. Tracking happens with dynamic QR codes that route through a redirect server which logs each scan. Because FusionPDF generates static codes entirely in your browser, no scan data is collected and nothing is sent to any server.
Create Your Free QR Code Now
Static, private, permanent. 14 data types, custom colors and logo, PNG or SVG export. No app, no signup, no tracking.
Open QR Generator →