QR Code Generator - Free Online QR Code Maker
Free online QR code generator. Enter text or URL to generate QR codes instantly. Customize size and error correction level. Download as PNG.
QR Code Generator Guide
A QR code is not an image of your text — it is a matrix of modules that a scanner reads back into data. Three settings decide whether a code scans reliably: how much data it carries, how much damage it can absorb, and how many physical pixels or millimetres each module gets. This tool exposes all three: content, output size, and error correction level.
Error Correction Levels
Error correction is redundancy. A higher level lets the code survive dirt, folds, or a printed logo overlay, at the cost of a denser pattern that needs more modules for the same data.
| Level | Recoverable codewords | Best for |
|---|---|---|
| L — Low | about 7% | Clean, unobstructed display such as a screen or a flat label |
| M — Medium (default) | about 15% | General printing, menus, flyers |
| Q — Quartile | about 25% | Codes partly covered by artwork or text |
| H — High | about 30% | Outdoor signage, stamped or worn surfaces, codes with a logo in the centre |
Versions, Module Grid and Print Size
A QR version fixes the grid: version V has 17 + 4V modules per side, so version 1 is 21×21 and version 40 is 177×177. The standard also requires a quiet zone of four modules on every side, which is why the drawn matrix is 8 modules larger than the version number suggests. What matters for scanning is the size of a single module, not the size of the whole image.
| Version | Modules per side | Including quiet zone | Pixels per module at 300 px | Printed size at 0.4 mm per module |
|---|---|---|---|---|
| 1 | 21 | 29 | 10.34 px | 11.6 mm |
| 5 | 37 | 45 | 6.67 px | 18.0 mm |
| 10 | 57 | 65 | 4.62 px | 26.0 mm |
| 15 | 77 | 85 | 3.53 px | 34.0 mm |
| 20 | 97 | 105 | 2.86 px | 42.0 mm |
| 25 | 117 | 125 | 2.40 px | 50.0 mm |
| 30 | 137 | 145 | 2.07 px | 58.0 mm |
| 40 | 177 | 185 | 1.62 px | 74.0 mm |
Note: 0.4 mm per module is a common practical floor for reliable scanning at close range. Longer content pushes the version up, which shrinks each module — so a dense code printed small is the usual cause of scan failures.
Content Types and Payload Prefixes
Scanners act on the payload. A plain URL opens a browser; a prefixed string can dial a number, join a network, or add a contact. These prefixes are widely supported conventions rather than part of the QR specification itself.
| Intent | Payload format | Scanner behaviour |
|---|---|---|
| Open a web page | https://example.com/page | Opens the default browser |
| Send email | mailto:name@example.com | Composes a message to the address |
| Dial a phone number | tel:+15551234567 | Starts a call |
| Send a text message | SMSTO:15551234567:hello | Pre-fills number and body |
| Join Wi-Fi | WIFI:T:WPA;S:network;P:password;; | Offers to join the network |
| Add a contact | MECARD:N:Name;TEL:15551234567;; | Creates a contact entry |
| Show a location | geo:39.9042,116.4074 | Opens a map at the coordinates |
Worked Examples
All three use the tool defaults — 300 × 300 output and error correction level M.
- Short URL: a compact link fits a low version, so each module stays large: at version 5 the 300 px output gives 6.67 px per module, comfortable for screen and print alike.
- Long URL: a link with tracking parameters can push the version past 20, where 300 px yields only 2.86 px per module. Switching the output to 400 × 400 restores 3.81 px per module without shortening the link.
- Outdoor sign: choosing level H raises redundancy to about 30%, so the same content needs a denser grid. Compensate by increasing the output size rather than accepting a small dense code.
Scanning Reliability Checklist
- Keep the quiet zone clear — never crop or overlap the white margin.
- Prefer more output pixels over more error correction when the surface is clean; prefer more error correction when it is not.
- Avoid inverted colours unless the target scanner supports them; dark modules on a light background are the safe default.
- Test with the camera you expect users to have, at the distance you expect them to stand.
- If a logo is placed in the centre, raise the level to Q or H to absorb the covered area.
Frequently Asked Questions
Which error correction level should I use? Level M suits most print uses. Move to Q or H when the code may be covered, folded, or exposed outdoors, and to L only when the surface is clean and you need the smallest possible pattern.
Why does my code fail to scan when printed small? Each module fell below what the camera can resolve. Increase the output size, or shorten the content so a lower version is used.
Does a higher level make the code bigger? It makes the pattern denser for the same data, which usually raises the version and therefore the module count. The exported pixel size is fixed by your size setting, so the modules get smaller.
Can a QR code hold uppercase-only text more efficiently? Yes. Alphanumeric mode encodes a restricted set — digits, uppercase letters, and a few symbols — more compactly than byte mode, so the same text needs fewer modules.
Is the generated image uploaded anywhere? No. The code is drawn in your browser and the PNG is produced locally, so nothing you type leaves the device.
Related Reading
For a fuller walkthrough of payload formats and print sizing, see our QR code guide. Secrets embedded in a code should be generated first with the Password Generator; for embedding data as text rather than an image, the Base64 Encoder and the Badge Maker cover the other common cases.