QR code generator for a URL
Turn a link into a QR code that opens as a link. Type or paste the address and the code updates as you go, with the version, the error-correction level and the bytes used shown next to it. Download it as a vector for print or a PNG for screens.
What goes into a link code
A URL code holds the URL and nothing else. There is no wrapper and no metadata, which is why the scheme matters: a scanner decides whether it has a link by looking for one. Text reading softwaretestdata.com is offered as text, and the person scanning wonders why nothing opened. Type a bare domain here and https:// is added for you; anything that already carries a scheme is left exactly as it is, including mailto: and an app's own scheme.
Everything after the host is case-sensitive, so the path and the query are encoded exactly as you type them. A trailing slash is kept, because on some servers it is the difference between a page and a redirect — and a redirect is a second round trip on a phone that may be on a slow connection.
A shorter URL is a code that scans from further away
Fewer characters mean fewer modules, and fewer modules mean each one is physically larger at the same printed size. Larger modules survive distance, dirt, poor light and a cheap camera. This is the one change that reliably improves a link code, and it costs nothing but URL length.
This generator encodes in byte mode, so every character costs 8 bits whatever it is. Upper case does not help, which is worth saying plainly because QR articles often advise capitalizing the whole URL. That advice comes from alphanumeric mode, which packs a restricted 45-character set into 5.5 bits per character and is not what this engine uses yet. Watch the byte counter instead of trusting the tip, and trim the address itself.
Tracking parameters are where the length usually goes. A utm_source, utm_medium and utm_campaign trio adds 60 to 80 characters, which is often enough to push the code up two or three versions. If a print code needs attribution, one short parameter costs far less than the standard set, and a dedicated landing path costs nothing at all.
Error correction, and what it buys
Level M is the sensible default for a link and is where this page starts. It recovers roughly 15% of a damaged symbol, which covers a scuff on a sticker or a fingerprint on a menu.
Level Q or H is worth the extra size when the code will be printed small, handled constantly, laminated, put behind glass, or covered by a logo. H recovers about 30%, so the same URL needs a bigger grid — the trade is real and the byte counter shows it as you switch. Level L is for a screen, where nothing is going to damage the image and the smallest possible grid is the goal.
Printing a link code
- Size it at roughly a tenth of the scanning distance: about 2 cm for arm's length, 20 cm for a code read from two meters.
- Keep the quiet zone. The blank margin is part of the symbol, and cropping it to fit a layout is the most common reason a code fails.
- Keep it dark on light. Inverted codes read on some decoders and not others, and a low-contrast pair fails in dim light.
- Take a vector — SVG, PDF or EPS — so the printer is not resampling a bitmap and softening every edge.
- Do not stretch it. A QR code has to stay square; a layout that scales one axis makes the finder patterns unrecognizable.
- Test on a phone that is several years old, not the newest one in the office.
Shorteners and redirects
A shortener makes the code simpler, and adds a dependency. The trade is worth taking when the destination genuinely may change after printing, and worth refusing when it will not: a shortened link puts a third party between your reader and your page, and shorteners have a long history of going away and taking every printed code with them.
The middle path is a short path on your own domain — /menu, /guide, /q1 — that redirects wherever you like. The code stays small, the destination stays editable, and the dependency is on infrastructure you already run.
Link codes as test fixtures
A scanner or a camera pipeline needs codes it should accept and codes it should handle carefully, and the same URL at different levels and versions gives you both. The same address at L and at H produces two symbols of different sizes carrying identical data, which is how you check that a reader reports what it read rather than what it expected.
The Developer content type takes an exact payload, which is where the awkward cases live: a URL with a percent-encoded space, a hostname in Unicode, a 600-character query string, or a scheme your app should refuse to open. If you need many at once, the bulk generator makes up to 500 codes with a CSV and JSON manifest recording what each file encodes.
Questions
Do I need to include https:// ?
It has to be in the code, and this page adds it when you type a bare domain. Without a scheme most scanners treat the content as plain text rather than a link.
Does making the URL uppercase make the code smaller?
Not here. This generator encodes in byte mode, so every character costs 8 bits whatever its case. That advice applies to alphanumeric mode, which this engine does not use yet.
Why did the code get denser when I added a tracking parameter?
More characters need more capacity, and past a threshold the code moves up a version and gains modules. A utm parameter set of 60 to 80 characters commonly costs two or three versions.
How small can I print it?
About a tenth of the scanning distance across, so roughly 2 cm for a code read at arm's length. Below about 2 cm, drop the URL length or raise the error-correction level and retest.
Should I use a link shortener?
Only if the destination may change after printing. A shortener adds a third-party dependency that a printed code cannot escape. A short redirect path on your own domain gives you the same flexibility without it.
Can I track how many people scan it?
Not from the code itself, because a static code sends nobody through us. Point it at a URL you control and count the requests there, or use a distinct path for the printed code.
Make a different kind of code
Invalid QR code generator · Damaged QR code generator · QR code testing tool · Free QR code generator · Wi-Fi QR code generator · vCard QR code generator · QR code generator · Bulk QR code generator