Skip to content
Whooshly Blog · Short links

How to Migrate From Bitly or a QR Tool Without Breaking Codes

The one rule that decides whether printed codes survive a move, what nine vendors let you export and edit, the steps for links on your own domain, and the honest options for codes on someone else's.

Updated Sep 2026·10 min read

Whether a printed QR code or short link survives a move depends on one thing: who controls the domain inside it. A static QR code holds your destination in the image, so there's nothing to move. A dynamic code or short link on a vendor's domain, such as bit.ly or qrco.de, points at that vendor's redirect, and only the vendor can re-point it. A link on a domain you own can move: export it, recreate the same ending at the new provider, test, then switch your DNS.

So you can migrate from Bitly without breaking links on your own domain, but you can't take bit.ly links with you. For those, you keep the old account running or replace the printed codes over time. This guide shows how to tell which you have, what nine vendors allow (checked September 2026), and the steps in order.

The one rule: who controls the domain

Whoever controls a domain decides where its links go. The W3C's Architecture of the World Wide Web gives a URI's owner the right "to associate a resource with an owned URI," delegated through DNS. The IETF's RFC 8820 (BCP 190, June 2020) says a URI's structure belongs to "the owner of the URI." Bitly owns bit.ly. You own your domain.

Product packaging follows the same rule. GS1's resolver standard (release 1.2.1, ratified August 2026), for the GS1 Digital Link addresses in QR codes on products, works much like a dynamic QR code. Resolvers "SHALL redirect to the default link," and "each resolver/internet domain remains sovereign over its URI space."

Google ran the clearest test. Firebase's FAQ says Firebase Dynamic Links shut down on August 25, 2025, and links on page.link "will no longer be available." Developers on a custom domain could "update your FDL rewrite rules… to use the same domain with a different deep-linking service." Same domain, new service: the links could keep working.

To check what you have, point your phone camera at a printed code and read the domain it previews before you tap:

  • An address on your own site (yourbrand.com/menu): either a static code or a dynamic code on your domain. Either way, you control it.
  • A vendor's short domain (bit.ly, qrco.de or the vendor's name): a dynamic code or short link the vendor controls. QR Code Generator's help center says you can't convert a dynamic code to static because "Dynamic QR Codes contain a short URL."
  • Your own short domain (go.yourbrand.com): portable, provided the registration is in your name.

One trap: a static code that encodes a bit.ly address is a bit.ly link in practice, because the link inside the image still belongs to Bitly. Our guide to dynamic QR codes covers the difference in more depth.

Sort everything you've printed into these rows before you touch any account. No new provider can change which row a code is in.

What's printedWho controls itWhat you can do
Static QR code with your own URLYouNothing to move. Keep the destination page live.
Static QR code with a vendor short linkThe vendorTreat it as a vendor short link (next rows).
Dynamic QR code on the vendor's domainThe vendorKeep paying, or re-point it to a page you own, then reprint over time.
Short link on the vendor's domainThe vendorSame, and export the list of destinations.
Link on a domain the vendor gave youUsually the vendorCheck the transfer rules first. Bitly's help center says a complimentary domain "cannot be transferred to you or another owner."
Link or dynamic code on a domain you ownYouPortable: export, recreate the endings, switch DNS.

QRCode Monkey users have nothing to migrate. Its FAQ says the codes "are static" and "will work forever!" For how expiry works across the rest of the market, see do QR codes expire?

Vendor rules for export, editing and cancellation (checked September 2026)

Each cell below links the vendor's own help center, blog or terms as of September 2026. Policies change without notice, so open the page before you rely on it.

VendorExportEditing and domainsAfter you cancel or downgrade
BitlyLinks export as a CSV by email, "available with some paid plans" (source), and codes as a ZIP of images (source)"Links cannot be redirected using a Free account" (source). Redirecting a link updates its QR code (blog)bit.ly links "continue to work" after a downgrade (source); after deletion they can't be edited, and when a complimentary domain lapses, "your links will break" (source)
RebrandlyAn official API recipe writes your links to a CSV"Some editing options are only available on paid subscriptions" (source)Links keep working on a free account, but "Deleting your account will delete your links" (source)
TinyURLThe API returns "a list of all available URLs in the account" (source); we found no official CSV exportFree Plan links "can't be edited once they're made" (source)The account "will revert to the Free Plan"; the article says nothing about links (source)
QR Code GeneratorScan stats export as CSV (source) and bulk image download is Professional and Enterprise only (source)If you change a published code's short URL, the printed version "will no longer work" (source)Dynamic codes are deactivated when a trial ends (source) or the account is deleted (source); its blog says "If you stop paying, the links pause" (source)
QRCode MonkeyNothing to export: codes are static"you can't edit the content of the QR Codes again" (FAQ)"They do not expire and will work forever!"
UniqodeCSV on "PRO plan and above," with QR Code URL and Destination URL columns (source); API from Pro/Core up (source)Changing the domain on printed codes means they "will stop working" (source)Dynamic codes "will only expire if your Uniqode account is canceled" (source); paying again restores "their original short URLs" (source)
FlowcodeCSV of names, short links and destinations, only for codes in folders (source)After a downgrade, only the 2 most recent codes stay editable (source); after a contract lapses you can't "update backend details such as scan destination" (source)Help center: remaining codes "will continue to scan" (source). Terms: codes above the free threshold are "re-directed to flowcode.com or another location of our choosing" (terms)
QRStuffAnalytics as Excel or PDF; we couldn't confirm a code-list export (FAQ)Only dynamic codes can be edited; choosing static or dynamic "is a one-time thing" (FAQ)FAQ: codes expire 30 days after cancellation or code creation, whichever is later, with a 10-scan monthly limit. 2018 terms: Full subscribers' codes "never expire" (terms)
ScanovaWe couldn't confirm a code-list exportCustom-domain traffic "will still go via Scanova servers" (source)Dynamic codes "will stop working" and stay in the account 26 months for reactivation; static codes keep working (expiry, cancel)

Two vendors contradict themselves. Flowcode's help center and its terms of use, effective April 26, 2024, disagree as the table shows, and the terms also reserve the right to "allow any third party to use the Whitelabeled Domain, or use it ourselves."

QRStuff's FAQ gives a second window elsewhere, 30 days or a year after a monthly or annual plan ends, while its terms, last updated in 2018, say Full subscribers' codes "never expire." When a vendor's FAQ and terms disagree, plan around the stricter one, and ask the vendor in writing which applies.

How do you migrate from Bitly or another shortener on your own domain?

If your links sit on a domain registered in your name, you can move them and keep every printed code working. Rebrandly says it "doesn't currently offer a built-in way" to switch links to a new domain, and suggests exporting through the API, editing the CSV and re-importing. Export and recreate is the workable route, though no vendor documents a hand-off to a competitor.

  1. Export everything as a CSV or through the API. Bitly has a v4 REST API, Rebrandly publishes a CSV recipe, and Uniqode's CSV lists each code's short URL and destination. Save the file outside the vendor's account.
  2. Confirm you own the domain at your registrar. Bitly's help center says your own domain can move between registrars. Rebrandly lets you take a domain you bought from it to another registrar, after a 60-day transfer lock.
  3. Recreate the same endings at the new provider. Import the CSV and check each ending (the part after the slash) matches character for character: go.yourbrand.com/spring must stay /spring. Never let a tool regenerate a printed code: Uniqode warns that changing the domain "will regenerate the QR image… any printed or shared versions of the original code will stop working."
  4. Test before you switch. Check the imported endings against your export, row by row for your most-scanned codes. If the new provider offers a fallback page for unknown endings, set one, so a missed ending lands on your site instead of an error.
  5. Switch DNS from the old vendor's records to the new provider's. Bitly's help center says a custom domain points at Bitly through two A records (67.199.248.12 and 67.199.248.13) or a CNAME to cname.bitly.com (source). Then scan real printed codes and check the browser shows a secure connection.
  6. Keep the old account until real scans land correctly. Don't remove the domain from the old vendor first. Rebrandly says that when you delete a domain you didn't buy from it, "all links and resources related to that domain will no longer be available." Don't downgrade first either: Bitly's help center says custom-domain links on a lower plan keep working only while DNS points to Bitly, and "We won't renew your domain's SSL certificate" (source).

The old vendor is also your rollback. Until cached DNS records expire, some scans still reach the old vendor, so keep that account for at least a billing cycle. For why short links go dead in the first place, see our piece on link rot.

Can you move dynamic QR codes to another provider?

Only when the code's domain is yours. A dynamic code on a vendor's domain sends every scan to that vendor first, so no other provider can answer it. That leaves one slow path.

  1. Re-point each code to a page you control, while editing still works. Change the destination to yourbrand.com/menu or similar. From then on, you update what people see by editing your own page.
  2. Find out what the vendor does when you stop paying. Some keep codes scanning on a cheaper plan: Rebrandly says "Even if you downgrade to a free account, all your links will continue to function." Others, such as Uniqode and Scanova, switch dynamic codes off (see the table). If yours does, keep paying until the reprint is done.
  3. Reprint over time with codes on your own domain as menus, signs and packaging wear out or run out. Track which printed item uses which code, so you know when the last one is gone.

A new provider can't take over bit.ly/yourcode, and a dynamic code can't become a static one. If a service offers to "transfer" your vendor-domain codes, ask how it will answer scans on a domain it doesn't control. Our guide to cancelling a QR code subscription covers the timing.

A 301 means moved for good and a 302 means moved for now. MDN explains that a permanent redirect means "the original URL should no longer be used," while for a temporary one, crawlers "don't memorize the new, temporary URL." Its table lists 308 as permanent and 307 as temporary, and all four are defined in RFC 9110, section 15.4. Google Search Central says that for 301 and 308, "the indexing pipeline uses the redirect as a signal that the redirect target should be canonical," and advises: "Use permanent redirects when you're sure that the redirect won't be reverted."

For a link you plan to edit, the cache headers matter too. MDN lists 301 as cacheable by default. Unless the provider also sends a header such as Cache-Control: no-store, a browser that saw a 301 may reuse it, and a returning visitor could land on the old destination after you change it. A temporary redirect is the conventional signal for a move you'll reverse, like a seasonal menu code.

Ask your new provider which status code it sends and whether it tells browsers not to cache it. Rebrandly, for example, says it uses a 301. Whooshly sends a 301 with Cache-Control: private, no-store on editable short links and dynamic QR codes, so browsers don't reuse an old destination.

What happened when goo.gl, Firebase and tr.im shut down?

In each case, whoever held the domain decided what happened to the links.

  • goo.gl, 2018. Google announced on March 30, 2018, that new users would be cut off on April 13, 2018, and the service discontinued on March 30, 2019. It said "all existing links will continue to redirect," and you could "export your link information from the goo.gl console."
  • goo.gl, 2024–2025. On July 18, 2024, Google said that after August 25, 2025, "all links served will return a 404 response." A warning page started on August 23, 2024, and links made by Google apps were exempt. An update on August 1, 2025 narrowed that: only links with "no activity in late 2024" would be deactivated, and "All other goo.gl links will be preserved."
  • Firebase Dynamic Links, 2025. It shut down on August 25, 2025. Firebase's FAQ says "All links clicked will return a HTTP 404." Links on a custom domain could move to another service.
  • tr.im, 2009. The shortener announced its links would "cease to work by the end of the year," then reversed the decision. TechCrunch reported that the scare led to 301works, an archive project that Bitly and others joined.

Google changed its goo.gl plan twice in seven years. You can't control a vendor's roadmap, but you can control the domain on the next thing you print.

Your pre-move checklist

  • List every printed item (menus, signs, packaging, cards, flyers, ads) and the domain each code shows.
  • Sort each one into the triage table above.
  • Export links and codes to a CSV you keep outside the vendor's account.
  • Confirm the domain is registered in your name, and read the vendor's terms as well as its FAQ.
  • Re-point vendor-domain codes to pages you own while editing still works.
  • Recreate every ending character for character, test, switch DNS, then scan real printed codes.
  • Keep the old account until real scans land correctly.
  • Put every new code on your own domain.

If you move to Whooshly, you can import a CSV of your links and keep the same endings where they're still available, so a link on your own domain reads the same after the move. One custom domain comes with Core, a one-time $35 payment (Business covers 10); the free trial doesn't include custom domains. On that domain, you can set a fallback page for endings you haven't imported yet, so a missed one lands on your site. Whooshly can't rescue codes that live on another vendor's domain. For those, the steps above are the only real path.

Frequently asked questions

Can I migrate from Bitly without breaking my links?

Yes, for links on a domain you own: export them, recreate the same endings at the new provider, test, then point your DNS there. Not for bit.ly links, because Bitly controls that domain. Bitly's help center says bit.ly links continue to work after a downgrade, so you can keep them running while you reprint.

Can I move dynamic QR codes to another provider?

Only if the code uses a domain you own. A dynamic code on a vendor's domain sends every scan to that vendor, so no other provider can answer it. For those codes, re-point each one to a page you control while the vendor still lets you edit it, then reprint over time with codes on your own domain.

Will my QR codes stop working if I change QR code generator?

Static codes keep working, because the destination is in the image, unless the image encodes a vendor short link like bit.ly. Dynamic codes depend on the old vendor's policy. Uniqode says dynamic codes expire if the account is canceled, and Scanova's help center says they "will stop working." Rebrandly says links keep working on a free account. Check your vendor's terms before you cancel.

Can I transfer short links to another service and keep the same URL?

Only on a domain you own. Export your links, recreate each ending character for character at the new service, then change your DNS records to point at it. Rebrandly says it has no built-in way to switch links to a new domain. Export and recreate is the workable route, though no vendor documents a hand-off to a competitor.

What happens to my Bitly links if I cancel?

Bitly's help center says bit.ly links keep working after you downgrade or delete your account, but after deletion you can no longer edit or redirect them. Complimentary custom domains are not renewed, and when the registration lapses, "your links will break." It also says that after a downgrade, links on your own domain keep working only while its DNS points to Bitly, and Bitly won't renew the domain's SSL certificate, so they become insecure when it expires.

Should short links use a 301 or a 302 redirect?

It depends on whether you'll change the destination and what the provider tells browsers. MDN lists 301 as cacheable by default, so unless the provider also sends a no-store (or similar) header, a browser may reuse an old 301 after you change the destination. Google treats 301 and 308 as a signal that the target should be canonical, and advises permanent redirects only when you're sure they won't be reverted. Ask your provider which status code it sends and whether it tells browsers not to cache it.

Can I convert a dynamic QR code into a static one?

No. QR Code Generator's help center says you can't convert between them because dynamic codes "contain a short URL," which is baked into the printed image. The only way to get a static or own-domain code is to make a new one and reprint. Until then, keep the dynamic code pointed at a page you control.

Keep Whooshly in your Google results

If our link and QR guides are useful, add Whooshly as a Preferred Source in Google.

Add as a preferred source on Google

Tap. Whoosh. You're there.

Buy Whooshly once and own your campaign links for good.

Quincy R. · Whooshly AI assistantAsk Quincy

Answers about products, pricing, and setup.

Make the QR work in the real world.

Ask about editing, printing, styling, scan tracking, or permanence.

Don't share passwords or private data. Privacy