# How to change what a QR code points to

> A static QR code cannot be re-pointed — the modules literally are the encoded data. If the code contains a URL on a domain you control, change the server-side redirect and every printed code follows instantly. Otherwise your options are reprinting, or using a dynamic service on the next print run.

Source: https://useqr.app/docs/how-to/how-to-change-what-a-qr-code-points-to · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Why the code itself can't change

A QR code is not a pointer into some registry — the black and white modules **are the
data**, encoded directly. Change one character of the payload and you get a visibly
different pattern. So "editing" a generated code is impossible by construction: what you
can change is not the code, but **what happens after the phone opens its contents**.

That distinction is the whole game. If the code contains
`https://example.com/menu` — a URL on a domain *you* control — then the code is frozen
but the destination is yours to change forever. If it contains someone else's URL, the
ink has made the decision for you.

## Your options, ranked

### 1. You control the domain: change the redirect

Best case, and it costs nothing. The printed code encodes a stable path on your domain;
your server decides where it goes:

```
Printed code:  https://example.com/qr/menu
Server today:  302 → https://menus.example.com/spring
Server later:  302 → https://menus.example.com/autumn
```

Every code ever printed follows the change instantly. This is the same pattern that
gives you [free scan tracking](/docs/how-to/how-to-track-qr-code-scans), and it is why
the standing advice on every print page here is: **encode your own domain, always**.
Even without a redirect, if the code points at a page you own you can change the page —
or rescue a retired one, per [QR code opens a 404](/docs/troubleshooting/qr-code-opens-a-404).

### 2. You don't control the destination: reprint

If the printed code points at a third-party URL (an old booking platform, a dead
partner page), no server you own can intervene. Reprinting is the honest fix, and for
stickers, table cards and small-format items it is cheaper than it feels — a one-off
cost against a recurring problem. What can and cannot be done to the physical object is
covered in [editing a code after printing](/docs/how-to/how-to-edit-a-qr-code-after-printing).

### 3. Next time, decide flexibility before printing

Dynamic QR services exist precisely to sell this changeability: the code points at
their domain, and a dashboard re-points it. That works, at the price of a subscription,
a third-party domain in your ink, and dependency on the provider's continued existence —
the full trade-off analysis is in
[static vs dynamic](/docs/basics/static-vs-dynamic-qr-codes) and
[should you use a dynamic QR code](/vs/should-you-use-a-dynamic-qr-code). Note the
structural point: **you cannot retrofit dynamic onto an already-printed static code**.
The flexibility decision is made at print time, every time.

## Decision table

| Situation | Best move |
|---|---|
| Code encodes a URL on your domain | Change the redirect or the page — done |
| Code encodes a third-party URL | Reprint with your own domain this time |
| Code encodes non-URL data (WiFi, vCard) | Reprint — there is no indirection to change |
| Not yet printed, destination will change often | Own-domain redirect, or a dynamic provider with eyes open |

One caution on the redirect pattern: it must stay alive. A redirect you decommission is
a broken code in the field, exactly like a
[shut-down QR service](/vs/what-happens-when-a-qr-service-shuts-down) in miniature.
Before any reprint, confirm the new payload in the [validator](/validate).

## FAQ

### Can I change the URL in a QR code after making it?
Not in the code itself — the pattern is the data. You change the destination by controlling what the encoded URL serves, which requires the URL to be on a domain you control.

### How do dynamic QR codes change their destination?
The code encodes a fixed URL on the provider's domain, and their server redirects each scan wherever the dashboard currently says. The code never changes; the redirect behind it does — which is also why the provider must stay in business.

### Can I make an existing printed code dynamic?
No. The printed code permanently encodes whatever URL it was generated with. Dynamic behaviour requires the code to have pointed at a redirecting domain from the start, so it can only be chosen before printing.

### What about QR codes that aren't links?
WiFi credentials, vCards and text payloads have no server in the loop at all — the scanning phone acts on the data directly. The only way to change them is to generate and print a new code.

## Try it

- https://useqr.app/url
- https://useqr.app/validate
