Go to content
cutty.dev
All posts

Dynamic or static QR code — a difference that decides the print

Dynamic or static QR code? Check which one to choose before sending flyers to print, so that your batch doesn't end up in the trash if the link destination changes.

Five thousand flyers lie in boxes in the middle of the office. Fresh from the printing house, they still smell of ink. Each one has a nice QR code leading to the campaign landing page. And two weeks later, marketing moves this campaign to a new subdomain and the old address ceases to exist.

The code leads nowhere. The box goes to the trash.

Do you know this pain? Or you will soon, if you choose incorrectly. Because everything here boils down to one question that is worth asking yourself before anything goes to print: dynamic or static QR code.

What is actually inside these squares

Static code has a destination address hardcoded. Directly into the graphic. The reader decodes the pattern and reads https://twojadomena.pl/promocja-lato from it, that's it. No server in between, nothing to replace. Once printed, it is like an inscription cast in concrete.

Dynamic works differently. In the squares, there is a short intermediary link, let's say cutty.dev/menu. And this link points to the destination that you keep yourself and change whenever you want. The drawing of the squares itself does not move. Only where you are redirected after scanning changes.

Sounds like a boring technical trivia. Until printing comes into play. Then this one difference decides whether the print run is your asset or waste paper.

When static does the job

Static makes sense everywhere where the target does not move. Never.

  • phone number or email (tel:, mailto:)
  • Wi-Fi details for guests
  • company address for navigation
  • payment via BLIK or IBAN

In these cases, static is even better. It works offline, it doesn't depend on any service, no one can take it over. No intermediary will crash at three in the morning, because there is no intermediary.

The stairs begin when a static QR lands on anything related to marketing. The promo ends. The Terms and Conditions get a new version. The landing page migrates to another CMS. And you are sitting on thousands of physical media with a cemented, dead address and there is nothing you can do about it.

There is another trap, less obvious. A long URL is dense code. If you paste a full link with UTM parameters, the pattern becomes so crowded that a cheap reader on a weaker phone or a printout on matte paper stops picking it up altogether. On a business card or a small label, this can ruin the entire campaign.

Dynamic: one graphic that you rearrange after printing

Dynamic removes both problems in one fell swoop. Since only a short link resides in the squares, firstly, you replace the target even after printing. The same poster directs to registrations today, and in a month to an event recording. Secondly, the code becomes rarer and more legible, because a short address means less data, fewer squares, and greater tolerance for poor printing or scratches.

In practice, it looks incredibly simple: you shorten a link on cutty.dev, generate a QR code from it, and when you need to change the destination, you go into the link settings and change the redirect. The printed code remains exactly the same as before. Traffic goes wherever you currently point it.

Plakat (wydrukowany raz):  [ QR → cutty.dev/event ]

Tydzień 1:  cutty.dev/event  →  strona zapisów
Tydzień 3:  cutty.dev/event  →  agenda i mapa sali
Po evencie: cutty.dev/event  →  nagranie + ankieta

One print, three different lives. This is the entire advantage of dynamics, in one single image.

The hook that generators are silent about

It's just that a dynamic QR has its condition. It is only as permanent as the service that holds this redirection.

Shorten your link in a free generator that will shut down the market in six months or suddenly demand a fee to "unlock" your codes. And then what? Your print dies along with it. Exactly the same scenario as a dead static, only with a longer fuse and a false sense of security along the way.

Therefore, when dealing with dynamic print codes, I look at three things:

Is the operator stable? That is, will the shortener's domain not disappear and not end up on blacklists (a classic problem with large-scale mass shorteners, which antiviruses begin to flag en masse).

Where data from scans lands. Because with a QR on a flyer, you collect statistics of real people who scan it. In my cutty, servers are located in the EU, and the IP addresses of those scanning are turned into a hash, so you get the number and context of scans without building a profile on a specific person.

And the end of the link. cutty.dev/menu printed on a restaurant table works on trust in a completely different way than something like xq3f9z. With a physical medium, no one sees where the code leads until they scan it. A sensible brand in the address really increases click-through rates then.

Cheat sheet before you click "order print"

  • The goal will not change and must work without internet? Static.
  • Anything from a campaign, promotion, menu, event, or terms and conditions? Dynamic.
  • Small format or poor print quality? Dynamic, shorter link = more readable code.
  • And one more thing: before you order the entire run, scan a sample print with two different phones, in two different lights. Seriously. It is five minutes that can save five thousand flyers.

And once you have thought all of this through, the question is not even "dynamic or static." It is: do you want this poster to work for you for one campaign, or five.