Free QR code generator
Type a link, get a code you can print. No account, no watermark, no expiry — and nothing leaves your browser.
Runs in your browser. Your URL is never sent to us.
Higher survives more damage, but makes the code denser.
#121212Optional. PNG or SVG, up to 2 MB. Kept in your browser only.
Your code appears here
Nothing is uploaded. This runs in your browser.
Static codes. If you need to change the destination after printing, you want a dynamic QR code.
How to make a QR code
- Paste the link. Any https:// address, or plain text. If you leave out the scheme, https:// is assumed.
- Pick size, error correction and logo. 512 px is a good default: large enough to print small and still crisp. Raise the correction level when the code will be printed on something that gets dirty or folded, and upload a logo if you want one — level H is applied automatically.
- Download PNG or SVG. PNG for social media and quick printing, SVG for anything a designer will scale — a poster, packaging or a sign.
A QR code is not a link: it is a picture of one. Once printed, the destination is fixed. That single property explains almost every design decision below — and it is why so many printed codes end up useless after a campaign ends.
What makes a code scan on the first try
Most "the QR doesn't work" complaints are not software problems. They are print problems, and there are only four of them.
| Rule | Why it matters | Practical number |
|---|---|---|
| Size against distance | The camera needs enough pixels per module to resolve the grid. | Side ≈ viewing distance ÷ 10. Minimum 2 cm in print. |
| Quiet zone | Without white margin the scanner cannot find the edges of the pattern. | At least 4 modules of empty space on every side. |
| Contrast | Dark modules must be clearly darker than the background. | Dark on white, or dark on a light tint. Never light on dark. |
| Proportions | Stretching breaks the square grid the decoder expects. | Scale the image, never squash it. SVG avoids the issue. |
Longer URLs make denser codes. Encoding tinyto.me/abc
instead of a 200-character tracking URL can halve the number of modules, which is the
difference between a code that scans across a room and one that does not.
The full guide to QR codes covers the
error-correction maths behind that.
Static or dynamic?
The tool above makes static codes: the URL is inside the image, so the destination can never change. That is perfect for a website, a menu you reprint, or a one-off poster.
The moment a code goes on something expensive to reprint — packaging, a shop window, a thousand flyers — a static code becomes a liability. A dynamic code encodes a short link instead, so you can repoint it later and count every scan.
Questions
Is this QR code generator really free? +
Yes. Generating and downloading a code costs nothing and needs no account. There is no watermark, no per-scan fee and the code itself never expires.
Do these QR codes expire? +
No. A static QR code is just an image containing your URL; it keeps working as long as the page it points to exists. If you later need to change the destination, use a dynamic QR code instead.
Where is my URL sent when I generate the code? +
Nowhere. The code is generated inside your browser, so the URL is never uploaded to us or stored in a database.
Can I add my logo in the middle? +
Yes. Upload a PNG or SVG in the tool and it is composited over the code, always at error correction level H so the covered modules can still be recovered. Keep the logo at or below a fifth of the width, and print one test copy before the full run.
What size should I print it? +
As a rule of thumb the printed side of the code should be about a tenth of the distance it is scanned from: 2 cm for a business card held at arm's length, 10 cm for a poster read from a metre away. Below 2 cm most phone cameras struggle.
Can I change the destination after printing? +
Not with a static code — the URL is baked into the pattern. A dynamic code encodes a short link you control, so you can repoint it later without reprinting. That is what TinyTo's link + QR workflow is for.
What can I encode besides a URL? +
Any text: a Wi-Fi configuration, a phone number, a short message, coordinates. Phones only turn it into a tap-to-open experience when it is a URL, so that is what most people want.
Make the code editable
Create a TinyTo link, put its QR anywhere, and change the destination whenever you want. You also get clicks, countries and the weekday/hour heatmap for every scan.
Create a dynamic QR codeFree plan saves 5 codes · Basic 50 · Advanced unlimited · No credit card