Geo short links with location-based routing
Geo Links are short URLs that automatically route visitors to different destinations based on their geographic location. Unlike geo redirects (which work on pages you control), Geo Links are standalone short URLs you can share anywhere: email campaigns, social media, print materials, or QR codes.
A single link like gswp.me/summer-sale can send US visitors to your US store, UK visitors to your UK store, and everyone else to your global storefront.
The short URL (e.g., gswp.me/abc123) is handled by the GeoSwap edge network.
The Cloudflare Worker determines the visitor's country using edge-level geolocation data. No additional API calls or lookups are needed.
Your rules are checked top to bottom and the first match wins. If no rule matches, the visitor goes to the default URL. Bots and link-preview crawlers always go to the default URL, so search engines and social previews see one stable page.
The redirect happens server-side at the edge as a 302 (temporary) redirect, so it is near-instant and no script is needed on the destination. The visitor never sees the short URL page. Analytics are recorded asynchronously.
In the GeoSwap dashboard, navigate to Geo Short Link and click New Shortlink. Give it a name so you can find it later.
Choose a domain, then type a slug like summer-sale or click the refresh button to generate a random one. Slugs use lowercase letters, numbers, and hyphens. On the shared GeoSwap domain, a slug must be at least 5 characters and unique across all GeoSwap accounts. On your own custom domain, it only has to be unique within your workspace.
Enter a Default URL. This is where visitors go if none of your rules match, and where bots are always sent. Every Geo Link must have one.
Add one or more rules. Each rule pairs a geo segment (countries, states, cities, IP ranges, or a radius around a point) with a destination URL. Rules are checked top to bottom, and the first match wins. New links start with an "All Countries" rule. If you keep it, put your specific rules above it, since it matches everyone.
https://store.example.com/en-us/https://store.example.com/en-gb/https://store.example.com/de/https://store.example.com/Pass query string parameters (on by default): anything after the ? on the short link is added to the destination. If the destination already has the same parameter, the incoming value replaces it.
Add custom URL parameters: attach UTM tags or other parameters to every redirect. There is a built-in UTM builder. These are applied last, so they win over incoming parameters with the same name.
Pass path to destination (off by default, not recommended): anything after the slug is appended to the destination path. With this on, gswp.me/summer-sale/shoes goes to store.example.com/en-us/shoes.
Use the status toggle to disable a link. A disabled link returns a 404 instead of redirecting. Clicks on it are still recorded, so you can see if people are still using it. Turn it back on and it works again right away.
Any rule can split its traffic across up to five URLs: the rule's destination (A), a split URL (B), and up to three more (C, D and E). Each arm gets a whole-number share, and the shares add up to 100%. The split is based on the visitor's IP, so the same visitor lands on the same arm each time. Adding an arm takes its share from B, so visitors already on A, C, D or E stay where they are. CSV export lists arms A and B only. This is useful for testing several landing pages in one region. See Experiments for more.
https://store.example.com/en-us/landing-ahttps://store.example.com/en-us/landing-bhttps://store.example.com/en-us/landing-cEvery Geo Link comes with a downloadable QR code as a PNG, in small (128px), medium (256px), or large (512px). The QR code points to your Geo Link URL, so scanning it from any country triggers the same location-based routing. Perfect for print materials, packaging, or in-store displays that need to route international customers to the right destination.
Every Geo Link click is tracked with country, region, city, device, browser, and any UTM parameters on the short link. View real-time analytics in the Analytics dashboard. Bot clicks (including AI crawlers) are tracked separately so they do not skew your numbers.
Pick a sensible default URL. It catches every visitor your rules don't match, plus every bot.
Use descriptive custom slugs for links shared publicly (e.g., /summer-sale instead of /abc123).
Use labels to organize links by campaign, region, or team.
Review analytics regularly to see which countries drive the most traffic and adjust rules accordingly.
Use traffic splits sparingly. Start with a 50/50 split and adjust based on data.
Download QR codes at the largest size you need (up to 512px). They are generated in your browser and are free to use.
Learn about content personalization to change on-page elements by location.