Skip to content
QRCodeDojo All tools

URL QR Code Generator

Turn any link into a static QR Code that keeps working after we are gone.

  • Free, with no account
  • Static — it never expires
  • Encoded on your device

Paste the full address. If you leave off https:// we add it for you.

Before you print, check the link twice

  • Open it in a private browser window — a link that only works while you are logged in is the classic mistake.
  • Open it on a phone. A desktop-only page behind a QR Code is a page nobody will read.
  • Scan the preview from this screen with your own camera before the file goes anywhere near a printer.
Only non-personal fields go into the link.

Export

SVG has no resolution at all — it is the right choice for anything that will be printed.

Appearance & encoding

Higher levels survive damage and allow a bigger logo, but make the symbol denser.

The specification requires 4. Below that, decoders often fail to find the symbol at all.

Centre logo

PNG, JPG, SVG or WebP up to 512 KB. The file is read in this tab and never uploaded.

The safe maximum depends on the symbol size, not just the error-correction level — the check below works it out for the code you actually have.

Print readiness

Generate a code to see its minimum printed size.

What is actually encoded

How a URL QR Code actually works

A QR Code is not a link to a database entry. It is the text itself, written out in a two-dimensional pattern of light and dark squares called modules. When your phone reads https://example.com/menu off a poster, it has decoded those characters directly from the ink. Nothing was looked up, and no server was contacted except the one at the address you encoded.

That single fact is what separates a static code from the “dynamic” codes most free generators hand out. A dynamic code contains the generator's short link, not yours. Every scan goes through their server first, which is how they can count scans and change the destination — and also how they can start charging you, rate-limit the code, or let the domain lapse. Your poster stops working and you did nothing wrong.

A printed café A-frame poster on a pavement with a large black QR Code and the words Today's menu above it
A static URL code printed once and left outdoors for a season. There is no account behind it that could lapse.

The encoding, step by step

  1. Normalisation. If your input has no scheme, https:// is prepended. Nothing else about the URL is rewritten — no shortening, no tracking parameters, no case changes.
  2. Mode selection. The encoder picks the most compact QR mode that fits your characters. A URL in all lowercase with digits and a few symbols usually lands in byte mode.
  3. Version selection. The smallest QR version (1–40) that can hold the data at your chosen error-correction level is used. Version determines the grid: version v gives a 4v + 17 module grid, so version 3 is 29×29 and version 10 is 57×57.
  4. Error correction. Reed–Solomon codewords are added so the symbol survives damage. See the levels below.
  5. Rendering. The module matrix is drawn as an SVG path or onto a canvas, with a four-module quiet zone on every side.

Which error-correction level to pick

Error correction is redundancy. A higher level rebuilds more damaged modules but needs more of them, which makes the symbol denser at the same printed size. For a plain URL:

LevelRecoversUse it when
L~7%Screen only, or a very long URL you cannot shorten.
M~15%The default. Right for almost every printed URL.
Q~25%Codes that get handled, folded, or live somewhere dusty.
H~30%You are placing a logo in the centre, or the surface is rough.

A note on what “recovers 30%” means

The percentage is of codewords, not of area, and the damage the standard has in mind is scattered speckling rather than one solid block. A logo destroys a single contiguous region, which concentrates the loss — and the white plate around it destroys modules too. Our logo checker spends 40% of the nominal budget, counts the plate, and works against your symbol's real module count, because the same logo is far more damaging on a small code. The measurements are here.

Examples worth copying

  • Restaurant menu. https://yoursite.com/menu — a page on your own domain, so you can redirect it next season without reprinting a single table tent.
  • Product insert. https://yoursite.com/setup/model-a — a path per model beats one generic support page that makes the customer hunt.
  • Event signage. https://yoursite.com/2026/schedule — dated paths age honestly; next year's sign gets next year's code.
  • Property listing. https://yoursite.com/l/42-oak — short paths make smaller symbols, which is what you want on a window card read from the pavement.

Limits you should know about

  • The destination is fixed once printed. Redirect from your own domain if you need to change it later.
  • We cannot tell you if the URL works. The generator never fetches your link — that is a deliberate privacy decision, not an oversight. Test it yourself.
  • Very long URLs print badly. Past about 300 characters, plan on a bigger code or a shorter link.
  • Camera apps differ. Most modern phones read a URL code from the default camera. Some older Android builds still need a scanner app.

FAQ

Frequently asked questions

Will this QR Code stop working one day?
Not because of us. The URL you type is written into the pattern itself, so a scanner reads your address directly off the paper. QRCodeDojo is not in the path and has nothing to switch off. The only way it stops working is if you take the destination page down.
Can I edit the destination after printing?
No — that is the trade-off a static code makes. Changing the destination means changing the data inside the pattern, which means a new code. If you need to repoint a printed code later, put a URL you control in it (for example yoursite.com/menu) and set up a redirect on your own server. You keep the control and you keep the code.
Is there a limit on how long the URL can be?
A QR Code can hold about 4,296 alphanumeric characters at error-correction level L, but that is not the real limit. Long URLs produce a high-version symbol with tiny modules, and tiny modules do not survive printing. Past roughly 300 characters you should either shorten the URL or print the code noticeably larger — the print size checker will tell you which.
Should I use http:// or https://?
Always https:// if the destination supports it. Both iOS and Android show a security warning on plain http:// pages, and a warning in front of a scanned link is enough to make people back out.
Do I need to include www?
Only if your site does not redirect the bare domain. Test both forms in a browser first. Dropping www. saves four characters, which very occasionally drops the symbol down a version and makes every module slightly larger.
Can I track how many people scan it?
Not from the code itself — a static code makes no request to anyone but your own server. What you can do is tag the URL so your own analytics attributes the visit correctly. The UTM QR builder does exactly that, and the tracking stays between you and your analytics tool.

Keep going