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.

#121212
Logo in the middle

Optional. 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

  1. Paste the link. Any https:// address, or plain text. If you leave out the scheme, https:// is assumed.
  2. 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.
  3. 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.

RuleWhy it mattersPractical 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 code

Free plan saves 5 codes · Basic 50 · Advanced unlimited · No credit card