
Last checked by the TextEditor.com team
How a QR code works
A QR code is a grid of small dark and light squares called modules. The smallest size, version 1, has 21 by 21 modules. Each version adds 4 modules to every side, up to version 40 with 177 by 177. The code in the tool is version 2 with 25 by 25 modules.
Some parts look the same in every QR code. They help the phone find the code, measure it and read it the right way up. Tap a part to see it in your own code.
Version 2, 25 by 25 modules. Modules in each part: finders 147, separators 45, timing 18, alignment 25, format 30, dark module 1, data and error correction 359.
The light margin around the code is the quiet zone. Denso Wave, the company that made the QR code, says a QR code needs "a four-module wide margin at all sides of a symbol." Without it, a phone can mistake nearby print for part of the code. The tool uses 4 modules unless you change it.
Before the data goes in, it is mixed with one of 8 fixed patterns called masks. A good mask breaks up big empty areas and shapes that look like a finder. The generator tries all 8, scores each one with the 4 penalty rules of the standard and keeps the lowest score. Your code uses mask 0.
A QR code can pack data in different ways. Digits take about 3.3 bits each. Capital letters, digits and the nine signs space $ % * + - . / : take 5.5 bits each. Everything else takes 8 bits per byte, and letters outside English use 2 to 4 bytes in UTF-8. The generator splits plain text into runs and picks the cheapest way for each run.
Error correction levels: L, M, Q and H
QR codes use Reed-Solomon error correction, the same family of math that lets a scratched CD play. The code stores extra codewords. A phone can use them to rebuild codewords that are missing or wrong. More extra codewords means more damage the code survives, and a bigger code for the same data.
| Level | Can restore about | Good for | Your content needs |
|---|---|---|---|
| L | 7% of the codewords | Screens, clean prints, lots of data | version 2, 25 by 25 |
| M | 15% | Most uses | version 2, 25 by 25 |
| Q | 25% | Outdoor signs, workshops, dirt and wear | version 3, 29 by 29 |
| H | 30% | The most damage, or a logo on top | version 3, 29 by 29 |
Denso Wave writes that level M is the one people pick most, and that Q or H suit factories where codes get dirty. Its page on QR code error correction has the details.
Turn on JavaScript to run the test on your own code.
The data is split into blocks, and each block can fix a set number of codewords. The test counts every codeword the square touches as wrong, which is the worst case. Real phones may do a little better.
This is also how a logo in the middle works. The logo hides modules, and error correction rebuilds them. It uses up the same reserve that scratches and dirt would need. If you add a logo, pick level H, keep it small and test the code with a few different phones.
Why some QR codes stop working or track you
Many QR code sites make "dynamic" codes. The code does not hold your link. It holds a short link to the company's own server. Every scan goes there first. The server writes down the scan, then sends the phone on to your page.
That lets the company count scans and change the target later. It also means the code works only while the company keeps the short link alive. When a free trial ends or a plan is not renewed, the redirect can stop, and every printed code leads to an error page or an ad.
- The code holds your link or text itself.
- The phone reads it and opens your page directly.
Nothing in between. Nothing to renew, no scan log.
- The code holds the company's short link.
- The phone visits their server first.
- The server logs the time, the phone type and a rough place from the IP address.
- It sends the phone on to your page.
If the plan ends, the last step can stop.
This page makes static codes only. Open "What your code holds" next to the code to see the exact text inside. If you need scan counts, add campaign tags to your own link, like ?utm_source=poster, and read them in your own website statistics.
Scammers use QR codes too. They stick their own codes over real ones on parking meters and posters. The US FTC warned about this in December 2023. Before you open a scanned link, read the web address your camera shows you.
Wi-Fi QR codes
A Wi-Fi code holds the network name, the password and the type of security in one line of text. When a phone camera reads it, the phone offers to join the network. Your guests don't have to type a long password.
WIFI:T:WPA;S:Cafe Guest;P:coffee to go;;
T is the security type, S the network name and P the password. H:true marks a hidden network. A few characters have a meaning in this format: the semicolon, comma, colon, backslash and double quote. When they appear in a name or a password, the tool puts a backslash in front of them, so the phone reads them as normal characters.
S:Joe's Cafe\; 2nd floor;
Without the backslash, the phone would stop the name at the semicolon and try to join a network called "Joe's Cafe".
Android phones can make this code too: open Settings, then Network & internet, then Internet, tap your network and tap Share. Google describes this in its Android help (checked November 2026).
A Wi-Fi code is your password in another form. Anyone who sees the code, or a photo of it, can join. Any QR reader app can show the password as plain text. Put the code on a guest network, not the network that holds your computers and printers. To lock people out later, change the password and print a new code.
Choose WPA for WPA2 and WPA3 networks. WEP is an old method that can be broken in minutes, so use it only for old devices that know nothing else. A hidden network is not safer: its name still goes over the air when a device connects. For a strong network password, use the password generator.
Contact cards: vCard or MeCard?
Two formats can put a contact in a QR code. MeCard comes from the Japanese phone company NTT Docomo and is short. vCard is the format that phones and email programs use to share contacts. Version 3.0 is described in RFC 2426.
The tool uses vCard 3.0. It holds a company, a job title, a website and a full address, and contact apps on all common phones read it. The cost is size. vCard uses more bytes for the same person, so the code gets a little denser.
BEGIN:VCARD VERSION:3.0 N:Lovelace;Ada;;; FN:Ada Lovelace TEL;TYPE=CELL:+442079460000 EMAIL:[email protected] END:VCARD
123 bytes, version 7 at level M
MECARD:N:Lovelace,Ada;TEL:+442079460000;EMAIL:[email protected];;
63 bytes, version 4 at level M
Fill in the Contact tab of the tool and both boxes show your own card.
How big to print a QR code

A common rule of thumb: make the code at least one tenth as wide as the distance it is scanned from. A poster read from 3 meters needs a code about 30 cm wide. This is a rule used by printers, not part of the QR standard.
At least 5 cm (2 inches) wide
Your code has 25 modules plus a quiet zone of 4 on each side. At 5 cm, one module is about 1.5 mm.
Long content makes more modules, so each module gets smaller at the same width. Short links scan better than long ones. For things held in the hand, like business cards, a common minimum is about 2 cm (0.8 inch).
Print dark modules on a light background. The standard allows light on dark, but many readers fail on it, so the tool warns you when the colors are swapped or too close. Keep the quiet zone free of text and lines, use matte paper where you can, and test a print with two different phones before you print a large batch.
For a print shop or a designer, download the SVG. It stays sharp at any size. The PNG suits documents, slides and websites. To write the text that goes next to the code, open the online text editor.