How do routing rules, A/B tests and link previews work?
Updated September 14, 2026 · 3 min read
All three live under Advanced settings on the link form. Dynamic routing sends visitors to different destinations by device, OS, country, region, city or browser language — up to 10 rules, first match wins. A/B testing splits the rest of the traffic between up to 3 extra destinations by weight. Custom link preview sets the title, description and image people see when the link is shared.
Routing rules: send people to different places
Turn on Dynamic routing and click Add rule. Each rule is one row with its own destination and any combination of conditions:
- Device — Any device, Mobile, Tablet or Desktop.
- OS — Any OS, iOS, Android, Windows or macOS.
- Countries — two-letter codes, comma separated:
IN, US. - Regions and Cities — free text, comma separated:
CA, NYorMumbai. - Languages — two or three letter browser language codes:
en, es.
A rule needs at least one condition and a destination URL. Rules run in the order you list them and the first match wins — so put the narrowest rule at the top. Anyone who matches nothing goes to the main Destination URL. A link can hold at most 10 rules.
QR codes have the same feature under their own settings. See routing rules for QR codes if the rule belongs on a printed code rather than a link.
A/B testing: split traffic between destinations
Turn on A/B testing and add up to 3 variants, each with a destination and a weight in percent. Weights must be whole numbers between 5 and 90 and may add up to at most 90%, because the main destination always keeps the remainder. Two variants at 30% each means 30/30/40 with the main destination taking the 40.
Routing always beats the split: if a visitor matches a routing rule they go there and never enter the test. Everyone else is assigned by weight.
There is no automatic winner and no in-product significance test. Give each variant its own UTM values or its own landing page so you can tell the results apart in your analytics.
Custom link previews and cloaking
Turn on Custom link preview to control the card people see when the short link is pasted into a chat app or a social post. You can set:
- Preview title — up to 120 characters.
- Preview description — up to 240 characters.
- Preview image URL — a public image, 1200x630 works best.
When any of these is set, preview crawlers get a page carrying your card instead of being bounced to the destination, and those fetches are never counted as clicks.
Link cloaking is the switch underneath. With it on, the destination is rendered inside a frame so the short URL stays in the address bar. Some sites refuse to be framed and will appear blank, so test it before you share it, and do not use it on a page that needs a sign-in.
Mobile deep links
Mobile deep link is the last block on the panel. Give it an iOS app URI, an Android app URI, and a fallback URL for each (usually the store listing). Mobile visitors get the app when it is installed and the fallback when it is not; desktop visitors follow the normal destination. Visitors briefly see an interstitial reading "Opening the app..." with a Continue in browser link underneath.
Deferred deep link is the extra switch below it: the click is remembered so your app can claim it after installation.
Which plan has what
| Feature | Free trial | Starter | Pro | Business |
|---|---|---|---|---|
| Dynamic routing | No | No | Yes | Yes |
| A/B testing | Yes | No | No | Yes |
| Custom preview and cloaking | Yes | No | Yes | Yes |
| Mobile deep links | No | No | No | Yes |
The trial is deliberately uneven: it includes previews and A/B testing so you can see them, but not routing. The labels on the form read "(Pro+)" and "(Business)" and do not account for that, so trust the table above.
Common problems
The wrong rule is firing
Rules are evaluated top to bottom and stop at the first match. A rule with only Mobile set above a rule for Mobile plus India will swallow every mobile visitor. Move the specific rule above the general one.
My country rule never matches
Use two-letter country codes, not names — DE, not Germany. City and region matching depends on what we can resolve from the visitor's connection, so a rule on a large city is more reliable than one on a small town.
The A/B split looks uneven
Weights are applied per visit, so small numbers of clicks look lopsided. Also remember the main destination silently keeps whatever the variants do not claim.
The old preview keeps showing
Chat apps and social networks cache preview cards, sometimes for days. Test with a fresh back-half rather than re-pasting the same link.
Frequently asked questions
Do routing rules work on QR codes too?
Yes, but they are set on the QR code itself, not on a link. If a printed code needs device or country routing, set it there.
How many routing rules can one link have?
Ten. Each can combine device, OS, country, region, city and language in one row.
Does a routing rule override the A/B test?
Yes. A matched routing rule wins outright and that visitor never enters the split.
Can I test more than three destinations?
No. A link takes at most 3 variants plus the main destination, and variant weights may total at most 90%.
Does cloaking hide the destination from the visitor?
It keeps the short URL in the address bar, but the page itself is still the destination's. Treat it as cosmetic, not as privacy.
Related articles
How do I add a password, expiry date or click limit to a short link?
Open Advanced settings on the link form. Set Expires at, Max clicks or a password, then save. Expiry, scheduling and passwords need Pro or Business.
How do I send scanners to different destinations by country or device?
Turn on Dynamic Routing in Rules & Limits on a URL code, add If Country/Region/Device/Platform rules, and set the URL each one goes to. Pro and Business.
How do I create a branded short link?
Open Links, click Create link, paste the destination, pick a domain and back-half, then Create your link. The trial includes 25 links, Business 5,000.
How do I track QR code scans in Google Analytics 4?
Add UTM parameters to the destination with Edit parameters under the URL field. GA4 then files each scan under your campaign instead of Direct.
Still stuck?
Email support@qrcodestack.com with the email on your account and, if it is about one code, its name or short link. A person replies within one business day, usually sooner.