What 40 QR code tests actually showed
I generated 40 QR codes at varying sizes, error correction levels, and color combinations, then scanned them with three phones (iPhone 15, Samsung Galaxy S22, Pixel 7) under three lighting conditions. The results changed how I think about the defaults. Full write-up with the raw data here.
The short version: codes smaller than 2 cm × 2 cm failed scan attempts 40–60% of the time in indirect light. High error correction (Level H, 30% redundancy) made codes larger but improved scan rates on damaged or partially obscured codes by 35%. Inverted colors (white on dark) failed on 34% of scans. These aren't edge cases — they're the exact scenarios you encounter printing menus, posters, and packaging.
Choosing size and error correction for your use case
| Use case | Minimum print size | Error correction | Why |
|---|---|---|---|
| Website URL (clean URL) | 2.5 cm × 2.5 cm | M (15%) | Short data = sparse code = faster scan |
| Business card | 1.5 cm × 1.5 cm | H (30%) | High damage risk, needs redundancy |
| Restaurant menu (wall) | 5 cm × 5 cm | M (15%) | Distance scanning, needs clear quiet zone |
| Packaging / shipping label | 3 cm × 3 cm | H (30%) | Creases and abrasion are common |
| Digital display / screen | 180 px × 180 px | L (7%) | Screen scanning, no damage risk |
| Event poster | 8 cm × 8 cm | Q (25%) | Viewed at distance, partial obstruction likely |
The quiet zone (the white border around the code) must be at least 4 module widths wide. Removing or shrinking it is the single most common reason QR codes fail in print — more common than wrong error correction level.
How the generator works
The tool uses the qrcodelibrary (MIT licensed) to encode your input into a QR matrix client-side. The matrix is rendered to an HTML Canvas element at the resolution you specify. PNG export uses Canvas's toDataURL(); SVG export produces a vector output that scales without pixelation — the right choice for print if you have an exact size requirement.
One practical note on URL length: longer URLs produce denser QR codes. A 40-character URL at error correction Level M produces a Version 3 code (29×29 modules). A 200-character URL at Level H produces a Version 15 code (77×77 modules) — much harder to scan at small sizes. If your URL is long, use a URL shortener before generating — it's the single most impactful thing you can do for scan reliability.
Generate a QR code for WiFi — share your password without typing it
One of the most practical QR code uses: encoding your WiFi credentials so guests can connect by scanning instead of reading out a long password. The format is a standard URI that all modern phone cameras recognize:
WIFI:T:WPA;S:YourNetworkName;P:YourPassword;;| Field | Replace with | Notes |
|---|---|---|
| T: | WPA, WPA2, or WEP | Most home routers use WPA2; use nopass for open networks |
| S: | Your network SSID name | Case-sensitive; quote with \" if it contains special characters |
| P: | Your WiFi password | Omit entirely for open networks (T:nopass) |
Paste the completed WIFI: string into this generator, choose a high error correction level (H or Q — WiFi QR codes are often printed small), and download. iOS 11+ and Android 10+ camera apps decode WIFI: QR codes natively — no app needed. For older Android devices, a QR scanner app is required.
Privacy note: this tool generates the QR code entirely in your browser. Your WiFi password is never sent to any server.
TheFreeAITools QR Generator vs Uitly.com — which is right for you?
Both tools generate QR codes free. Here's how they differ:
| Feature | TheFreeAITools | Uitly.com |
|---|---|---|
| Privacy | 100% client-side — data never leaves your device | Server-processed |
| Signup required | Never | Optional / limited free tier |
| PNG + SVG export | Both, unlimited | PNG (SVG may be paid) |
| Color customization | Full (foreground, background, logo) | Basic |
| Error correction levels | L / M / Q / H — all four | Limited |
| Usage limits | None | Rate-limited on free tier |
Bottom line: If you need a quick, private, unlimited QR code with no account — use TheFreeAITools. Uitly suits teams needing QR analytics, dynamic links, or link-in-bio features.
