QR Code Generator
Static codes that contain your data and nothing else. No redirect through our domain, no expiry date, no account - and the raw payload is shown so you can check.
- No redirect. The code holds your URL itself. Scanning never touches our server.
- No expiry. Static codes cannot be switched off later, by us or anyone else.
- No upload. Encoding, drawing and the scan check all happen in this tab.
Colours and shape
Logo in the middle
Read with FileReader in this tab. The file is never uploaded, and it is gone when you close the page.
Encoding
About this generator
Make a QR code that contains exactly what you typed - your own URL, not a short link on somebody else's domain that forwards to it. Wi-Fi logins, contact cards, calendar events, email, SMS and map pins too. Pick colours, module and corner styles, add a logo, then download a PNG or a vector SVG. The encoder runs in this tab, shows you the raw payload byte for byte, and checks the result is still scannable before you print it.
Why a QR code should not contain someone else's link
Most free QR generators do not put your URL in the code. They put their own short link there and forward the scan to you. It works, and it means a third party sits between every printed menu, poster and business card and the page it was meant to open. The redirect lets them count your scans, show an interstitial, or switch the code off when a trial ends - and the code on the paper cannot be fixed once it is printed.
A QR code is just a way of writing text in a grid. There is nothing about the format that needs a server. This page writes your text into the grid, shows you that text in the payload box, and asks your own browser to scan the result back before you download it.
If you want to change the link later
That is the honest reason dynamic codes exist, and you can have it without a middleman: encode a short URL on your own domain, such as example.com/qr/menu, and make that path redirect wherever you like. You own the domain, the redirect and the logs, and the printed code keeps working for as long as you keep the domain.
The same goes for counting scans. Tick "Add UTM tags" and the URL in the code carries utm_source and utm_campaign, so the visits show up in whichever analytics you already use. Nobody else gets a copy.
Making a code that scans first time
Contrast beats everything. Dark modules on a light background, with a ratio of at least 4:1; many phone scanners still cannot read light-on-dark codes, so the tool warns when the colours are inverted. Keep the 4-module quiet zone, and print the code at least 2 cm wide - roughly one tenth of the distance it will be scanned from.
A logo works because of error correction: the scanner rebuilds what the logo hides. That is why adding one switches the level to H, and why the notes tell you how much of the redundancy the logo has used up. Shorter data helps too - a short URL means a lower version with bigger modules, which survives a logo, a crease and a cheap camera.
Static code from this page, or a "dynamic" code from a QR service
| Question | Static code (this page) | Dynamic code (redirect service) |
|---|---|---|
| What the code contains | Your URL, Wi-Fi login or contact card, byte for byte. | A short link on the service's domain, which forwards to yours. |
| When the service closes, or you stop paying | Nothing happens. There is no service in the loop. | Every printed copy stops working, or starts showing their page instead of yours. |
| Who sees each scan | Only your own site, the same as any other visit. | The service, first: time, rough location, device - before your visitor reaches you. |
| Speed of the first scan | One request, straight to you. | An extra DNS lookup, TLS handshake and redirect on a phone connection. |
| Changing the destination after printing | Encode a URL on your own domain and redirect it yourself with a 301 when needed. | Built in - which is the one real advantage, and the reason the redirect exists. |
| Price | Free, forever, no attribution required. | Often "free" until the code is printed, then a subscription. |
What the numbers under the preview mean
- Version
- The grid size, from 1 (21 x 21 modules) to 40 (177 x 177). Each version adds four modules per side. The smallest version that fits your data is picked automatically, because smaller versions have bigger modules at the same print size.
- Error correction
- Reed-Solomon redundancy. L recovers about 7% of damaged codewords, M 15%, Q 25%, H 30%. More redundancy means less room for data, so the code grows. "Boost" raises the level for free whenever the data still fits the same version.
- Mask
- One of eight XOR patterns laid over the data so the code avoids large blank areas and anything that looks like a finder pattern. All eight are scored with the penalty rules from the standard and the lowest wins, unless you force one.
- Segments
- Numeric mode packs 3 digits into 10 bits, alphanumeric packs 2 characters into 11, byte mode spends 8 bits per byte. The encoder splits your text into the cheapest mix of the three, which is why a long phone number costs less than you expect.
- Quiet zone
- The empty margin around the code. The standard asks for 4 modules. Scanners use it to find the edges, so a code printed edge-to-edge on a busy background fails long before a code with a small logo does.
Questions people ask about QR codes
Do these QR codes expire?
No. A static code stores the data itself, so there is nothing to expire and nothing to switch off. The code keeps working for as long as the URL inside it does.
Can I use them commercially?
Yes, on anything, without attribution. The format is an open ISO standard (ISO/IEC 18004), and DENSO WAVE, which invented it, states that the codes can be used freely without a licence or fee. Only the word "QR Code" is a registered trademark of DENSO WAVE INCORPORATED.
Can I track how many people scan my code?
Not from the code itself - a static code has no server to report to, which is the point. Add UTM tags to your URL and count the visits in your own analytics instead. That measures people who actually reached the page, which is the number that matters anyway.
Is it safe to put my Wi-Fi password in here?
The password is encoded in this tab and never sent anywhere. Remember that the printed code is the password in another form: anyone who can photograph it can join the network. Use it for a guest network, not the one your office printers are on.
PNG or SVG?
SVG for print and for anything that will be resized: it is vector, so it stays sharp at any size. PNG for documents, slides and places that do not accept SVG - choose a size at least as large as it will be printed, and keep "snap to whole pixels" on for crisp edges.
Why does my code look so dense?
Because it holds a lot of data. Every character adds modules, and error correction multiplies them. Shorten the URL (drop tracking parameters you did not add yourself), lower the error correction if there is no logo, or remove the logo.
Will my phone open a Wi-Fi or contact code?
The built-in camera apps on current iOS and Android read Wi-Fi, contact (vCard), phone, SMS, email and URL codes directly. Calendar events and geo: links depend on the phone - pick the OpenStreetMap option for a location if it has to work everywhere.
What the encoder follows
- ISO/IEC 18004:2024 - QR Code bar code symbology specification — Versions, error correction blocks, masks and the penalty rules used to choose one.
- DENSO WAVE: QR Code FAQ — Free use of the codes, and the trademark notice quoted in the questions above.
- RFC 6350 - vCard Format Specification — Escaping rules for contact cards. The tool writes vCard 3.0, which every phone reads.
- RFC 6068 - The mailto URI Scheme — Why spaces in an email subject are %20 here and never +.
- RFC 5870 - A Uniform Resource Identifier for Geographic Locations — The geo: URI used by the location type.
Last reviewed .