All guides

QR codes

How to Create a QR Code for a Link (and Make It Trackable)

7 min read

Making a QR code takes ten seconds. Making one that still works after it is printed — and tells you whether anyone scanned it — takes a couple more decisions.

Creating a QR code for a link is genuinely a ten-second job. The decisions that matter come after: whether the code can be updated once it is printed, whether you will know how many people scanned it, and whether it will actually read reliably on a phone held at an awkward angle in bad lighting.

The quick version

  1. 1Open a QR generator and paste the URL you want the code to point at.
  2. 2Turn on tracking if you want scan data and an editable destination.
  3. 3Download SVG for print, or PNG for screens and slides.
  4. 4Test the code with at least two different phones before printing at scale.

That is the whole mechanical process. The rest of this guide covers the choices behind each step, because the difference between a code that works for years and one that becomes dead weight is decided here.

Static or dynamic: decide this first

A static QR code has the destination URL encoded directly into the pattern. The pattern is the URL. That means it works forever without depending on any service — and also that it can never be changed or measured. If the destination moves, every printed copy is dead.

A dynamic QR code encodes a short link that you control. The pattern points at the short link, and the short link points wherever you say. Because every scan passes through the short link, scans are counted, and because the destination is a setting rather than part of the pattern, you can change it at any time.

Rule of thumb: if the code will be printed, or if you will ever want to know whether it worked, use a dynamic code. Static codes are fine for one-off personal use and nothing else.

Creating the code

Paste the destination URL into the generator. If you want tracking, enable it before downloading — the tracked version encodes a different URL, so a code downloaded beforehand will not become trackable retroactively.

Keep the destination URL as short as you reasonably can. Longer URLs produce denser patterns with more modules packed into the same square, which makes them harder to scan at small sizes or from a distance. This is another quiet argument for encoding a short link rather than a full campaign URL with UTM parameters attached.

PNG or SVG?

  • SVG for anything printed. It is a vector, so it stays perfectly sharp at any size — business card or billboard.
  • PNG for screens: slide decks, emails, social posts, and web pages where a fixed-resolution image is simpler to place.

The most common printing mistake is taking a small PNG and scaling it up. The pattern blurs, the edges between modules soften, and scanners start failing. If it is going to print, use the SVG.

Sizing it so it actually scans

A reasonable starting point is a minimum of 2 x 2 cm (about 0.8 inches) for something scanned at arm's length — a menu, a business card, a packaging insert. From there, scale up roughly one centimetre for every additional ten centimetres of scanning distance.

That formula catches people out on large-format work. A code on a poster read from three metres away needs to be far larger than instinct suggests — think closer to 30 cm than 5 cm. Designers routinely undersize codes on posters and wonder why nobody scans them.

The quiet zone is not optional

Every QR code needs a clear margin around the pattern, known as the quiet zone. It should be about four modules wide — roughly the width of four of the small squares in the pattern. Scanners use it to find where the code starts and ends.

Cropping the quiet zone to fit a tight layout is the single most common reason a printed code fails to read. If space is tight, shrink the code and keep the margin rather than the other way around.

Contrast, colour, and placement

  • Keep strong contrast between the pattern and its background. Dark pattern on a light background is the reliable default.
  • Avoid inverting to a light pattern on a dark field unless you have tested it on several devices — many scanners cope, some do not.
  • Do not place a code over busy photography or a gradient. The pattern needs a flat, calm background.
  • Avoid folds, seams, and curved surfaces where the pattern will distort.

Always test the real thing

Test the final printed proof, not the file on your monitor. Use at least two phones — ideally one iPhone and one Android — and try it at the distance and lighting people will actually encounter. A code that scans instantly on a bright desk can fail on a dim restaurant table.

What tracking gives you

With a dynamic code, each scan is recorded as a click on the underlying short link: the time, the approximate location down to city level, the device type and operating system, and the browser. Aggregated, that answers questions print campaigns normally cannot — which poster placement pulled scans, what time of day people engage with a table tent, whether the conference booth justified its cost.

It also means you can fix mistakes. A typo in the destination, a landing page that moves, a promotion that ends — all become a settings change rather than a reprint.

Common mistakes worth avoiding

  • Printing a static code for a campaign, then needing to change the destination.
  • Scaling a small PNG up for large-format print.
  • Cropping or filling the quiet zone.
  • Sizing for arm's length when the code will be read across a room.
  • Not printing the URL alongside the code for people who will not scan.
  • Skipping the physical proof test before a full print run.

Get those six right and a QR code becomes one of the few reliable bridges between printed material and measurable digital traffic.

Start free

Try it on a real link.

Shorten a URL, get its QR code, and watch the clicks arrive in real time. No credit card required.