Free QR Code Generator
Create a QR code for any URL or text. Download it as a PNG for screens or an SVG for print — free, without an account, and with no watermark.
Anything you want the code to contain. Shorter content makes a code that scans more easily.
Higher levels survive more damage but make the code denser.
Your QR code will appear here.
What you get
PNG and SVG output
Raster for screens, vector for print. Both download instantly, with no watermark.
Four error correction levels
Choose how much damage the code should survive, from about 7% up to about 30%.
Correct quiet zone
The required blank margin is built into every download, which is the single most common reason codes fail elsewhere.
No account, no expiry
Codes are static images. They work forever and do not depend on Zurl staying up.
Live preview
The code updates as you type, so you can see how content length affects density.
Pairs with short links
Encode a Zurl link to get a sparse, easily scanned code you can repoint later.
Making a QR code that actually scans
Most QR code failures are print problems rather than encoding problems. Five things account for nearly all of them.
Keep the quiet zone. The blank margin around the code is part of the specification, roughly four modules wide. Designers crop it constantly because it looks like wasted space; without it, many scanners cannot locate the code at all. Every Zurl download includes it.
Print it large enough. A useful rule is that the code should be at least one tenth of the intended scanning distance. About 3cm works at arm’s length; a poster read from three metres needs something closer to 30cm.
Keep the contrast high. Dark modules on a light background. Inverted codes fail on many scanners, and low-contrast colour pairs fail in poor light.
Use SVG for print. Vector output stays sharp at any size. Scaling up a PNG softens the module edges, and soft edges cost scan reliability.
Test the final artwork. Not the file on your screen — the printed result, with more than one phone, at the distance people will actually use.
Why shorter content makes a better code
The amount of data determines the number of modules. A 200-character URL produces a dense grid of small squares; a 26-character short link produces a sparse one with large squares that a camera resolves easily, especially at an angle or in poor light.
This is why QR codes and short links belong together. Create a short link first, then encode that. You get a cleaner, more reliable code — and because the short link is a redirect, you can change where it points after the code is printed.
Static codes and changeable destinations
A QR code is a static image. The content is baked in, so encoding example.com/spring-2026 directly means that URL must work forever, or the printed material becomes useless.
Encoding a short link moves that decision out of the print run. The image never changes; the destination behind it can. For packaging, signage or anything with a long shelf life, this is usually the difference between a code that ages well and one that has to be reprinted.
A note on scanning codes you did not make
A QR code hides its destination completely — you cannot read it without scanning. Most phones show the URL before opening it; read that preview, particularly for codes on stickers in public places, which are trivially easy to cover with a different one.
Frequently asked questions
- Is this QR code generator free?
- Yes. Generating and downloading codes is free, requires no account, and adds no watermark. The codes are plain image files that belong to you.
- Do the QR codes expire?
- No. A QR code is a static image encoding your content directly — there is no Zurl redirect involved unless you deliberately encode a Zurl short link. The downloaded image will keep working forever, entirely independently of this site.
- Should I download PNG or SVG?
- PNG for screens, email and most everyday use. SVG for print: it is a vector format, so it stays perfectly sharp at any size, from a business card to a billboard. A PNG scaled up becomes blurry, and blurry edges reduce scan reliability.
- What is error correction and which level should I pick?
- Error correction adds redundancy so a partly damaged or obscured code still scans. Medium (about 15% recovery) is the right default. Choose High if the code will be printed somewhere it may be scuffed or partly covered — bearing in mind that higher levels make the code denser for the same content.
- Why does my code look more complex with longer text?
- More data requires more modules — the individual squares. At a fixed printed size, more modules means smaller squares, which are harder for a camera to resolve. This is the main reason to encode a short link rather than a long URL.
- Can I change what a QR code points to after printing it?
- Not if you encode the destination directly, because the image is fixed. If you encode a Zurl short link instead, you can change the destination at any time and every printed code follows the new target.
- Why will my QR code not scan?
- The most common causes are a missing quiet zone (the code needs a blank margin around it, roughly four modules wide), printing it too small for the scanning distance, low contrast, or an inverted colour scheme. Always test the final artwork with more than one phone before printing.
- Does Zurl store what I encode?
- The content is sent to our server to generate the image and is not stored. QR generation is stateless — no record is kept of the codes you create here.