QR Codes Explained: How They Work, What to Encode, and How to Make Them Scan Reliably
Quick Response (QR) codes look like random pixel grids but they are surprisingly elegant — a self-correcting, format-agnostic way to move data from a screen or piece of paper into a phone. This guide covers what kinds of content QR codes can carry, the design choices that affect readability, and the mistakes that make a code refuse to scan.
QR codes were invented in 1994 by Masahiro Hara at Denso Wave, a Toyota subsidiary that needed to track car parts on a fast assembly line. Existing 1D barcodes held only a few digits and had to be aligned precisely with the scanner. QR's 2D matrix carries kilobytes of data, can be read at any angle, and tolerates up to 30% damage thanks to its built-in Reed–Solomon error correction. Those properties made it ideal for the warehouse — and, decades later, for restaurant menus, contactless payments, and almost every poster on a wall.
Modern smartphones recognize QR codes natively in their camera app, which is what triggered the global comeback in 2017–2020. Today they are the cheapest, lowest-friction way to bridge the physical and digital worlds: print one in any size, point a phone at it, and the action happens.
What you can encode in a QR code
- URL
- By far the most common payload. Scanning opens the link in the phone's browser. Keep URLs short to keep the code small and dense — long URLs require larger, busier codes.
- Plain text
- Up to several thousand characters. The phone displays the text and offers to copy it. Useful for serial numbers, codes, and short notes.
- Wi-Fi credentials
- A specially formatted string lets the phone join a Wi-Fi network with one tap. Used in cafes, hotels, and guest networks.
- Contact card (vCard / MeCard)
- Adds a contact to the phone's address book — name, phone, email, address. Common on business cards.
- Calendar event
- Adds an event to the phone's calendar. Used on event flyers and tickets.
- Email or SMS
- Pre-fills a new email or text message with a recipient and optional subject/body. Useful for support contact and feedback campaigns.
- Geo location
- Opens the phone's map app at a specific latitude and longitude. Ideal for venue signage.
Error correction levels
Every QR code is generated at one of four error-correction levels. Higher correction means the code can survive more damage, but also requires more pixels for the same payload.
| Level | Damage tolerance | Best use case |
|---|---|---|
| L (low) | ~7% | Pristine digital displays, screens, in-app codes. |
| M (medium) | ~15% | Most printed materials. Default for many generators. |
| Q (quartile) | ~25% | Posters that may get worn, dirty, or partially obscured. |
| H (high) | ~30% | Codes with embedded logos, harsh outdoor environments. |
How to make a QR code that scans reliably
- 1
Keep the data short
QR codes encode more pixels for more data. A code holding a 30-character URL is small and easy to scan; a code holding a 200-character URL is dense and easy to misread. Use a URL shortener if you can't trim the original.
- 2
Maintain a quiet zone
Every QR code needs a margin of empty white space — at least four modules wide on every side — for the scanner to find the code's edges. Cropping right up to the pixels is a common cause of failed scans.
- 3
Print at a sensible size
Rule of thumb: the code should be at least 10× the expected scanning distance in cm. A poster scanned from 2 m away needs a code at least 20 cm wide. Smaller-than-recommended codes scan only when the phone is very close.
- 4
Use high contrast
Dark code on a light background is the standard. Inverting it (light code on dark) sometimes works on modern scanners but breaks older readers. Avoid low-contrast color combinations like medium grey on light grey.
- 5
Test with multiple devices
Before printing 1,000 copies of a flyer, scan the proof with at least one iPhone and one Android phone. A code that scans flawlessly on iOS may struggle on a budget Android camera and vice versa.
Static vs dynamic QR codes
A static QR code embeds the destination URL directly in its pixels. Once printed, the destination cannot change. The code is free to generate, has no expiration, and works forever — but if you ever change your URL, every printed copy becomes broken.
A dynamic QR code embeds a short redirect URL that points to a service's tracking link, which then forwards to your real destination. You can change the destination at any time, see scan analytics, and A/B test different landing pages. The trade-off: dynamic codes require an active subscription with the service that hosts the redirect, and the code stops working if you stop paying.
EllyTools generates static codes — your destination is encoded directly, nothing is tracked, and the code will continue to work as long as the destination URL itself stays alive. If you need analytics, point the static code at a URL you control and use server-side tracking from there.
Common reasons a QR code won't scan
- •The code is too small for the viewing distance.
- •Insufficient contrast between the code and its background.
- •Glossy print finish creating reflections under the scanner.
- •Quiet zone removed during page layout.
- •Code printed on a curved or wrinkled surface.
- •Logo overlay too large — anything covering more than 30% of the code defeats error correction.
- •URL contains characters that some QR encoders don't handle (rare but possible with non-ASCII paths).
Extended FAQ
Do QR codes expire?
Static codes never expire — they are just printed pixels. Dynamic codes are tied to a service subscription and stop working if the service is shut down or unpaid. Always ask which kind you are getting before printing.
Can a QR code contain a virus?
Not directly — the pixels themselves are inert data. The risk is the destination: a malicious URL could lead to a phishing page or trigger a browser exploit. Modern phone cameras display the URL before opening it, which gives you a chance to verify it before tapping.
Why are some QR codes square and others rectangular?
Standard QR codes are always square. Rectangular Micro QR (rMQR) is a newer 2022 standard for narrow spaces (medicine boxes, electrical components). It is not yet supported by every scanner, so the standard square format is still the safe default.
Can I put a logo in the middle of a QR code?
Yes, as long as the code uses high (H) error correction so it can recover from the obscured center. Keep the logo to under 25–30% of the code's area, leave a small white border around the logo, and always test the result with multiple phones before printing.
Is the data in my QR code visible to others?
Yes. Anyone who scans the code (or photographs it and decodes it) sees the same content. Don't put passwords, secrets, or unindexed URLs in a QR code that will be visible in public.
