Migrating off Firebase Dynamic Links

Firebase Dynamic Links retired Aug 25, 2025. Here’s what to switch to.

FDL was Google’s free deep-link service. It’s gone. Linkfor renders /.well-known/apple-app-site-association and assetlinks.json per tenant the moment you add iOS / Android bundle IDs — your existing FDL URLs map to a /go/* redirect with deepLinks: { ios, android, web }.

tl;dr

Firebase Dynamic Links shut down on August 25, 2025. If your app still has FDL URLs in production, those URLs no longer resolve and the user gets a generic Google error page.

If all you needed from FDL was "open the app when installed, otherwise web fallback," Linkfor is a drop-in: same primitives (AASA + assetlinks.json), your own domain, no SDK. If you were using FDL for install attribution, you'll want a Branch-class MMP — Linkfor doesn't replace that piece.

At a glance

Linkfor vs Firebase Dynamic Links, feature by feature

FeatureLinkforFirebase Dynamic Links
Status (as of 2026)ActiveRetired Aug 25, 2025
Entry paid tier$1/moN/A — retired
Custom domainpage.link subdomain
Notion content rendering
Branded short links + UTMNative /go/* redirectsLimited
Deep linking (iOS / Android)AASA + assetlinks.jsonWas Universal Links + App Links
SDK required for deep linkingNoWas iOS + Android
Deferred deep linkingWas supported
File hosting (raw endpoints)ads.txt, /.well-known/*
AnalyticsPageviews + redirect countsN/A — retired
SEO control (meta, OG, sitemap)Limited
SSLAuto, on every mountWas managed
White-label (drop "Powered by")Business planN/A
Scheduled publishing
Multi-site / org3 sites on Pro, 10 on BusinessN/A

Firebase Dynamic Links was retired by Google on August 25, 2025. Existing FDL URLs no longer resolve. The capabilities listed in the FDL column reflect the service as it existed prior to retirement.

Price delta

The bundled subscription you're already paying for

Firebase Dynamic LinksRetired
Linkfor Pro$1/mo

FDL was free, which is part of why so many apps adopted it and why so many were scrambling to migrate. Linkfor Pro at $1/mo is the cheapest deep-link primitive we know of that lives on your own domain, ships AASA + assetlinks.json automatically, and includes branded short links and a Notion site in the same plan.

If your existing FDL setup needed install attribution as well, plan for a Branch-class MMP alongside Linkfor — Linkfor handles the URL layer, the MMP handles the attribution layer.

Why Firebase Dynamic Links is no longer an option

  • FDL was officially deprecated in late 2023 and shut down on August 25, 2025. Existing page.link URLs no longer resolve.
  • Google's migration guidance pointed teams at three categories of replacement: Universal Links / App Links (which is just the OS primitive, not a service), a third-party deep-link vendor (Branch, AppsFlyer, Adjust), or a self-hosted solution.
  • Self-hosting requires generating AASA and assetlinks.json, hosting them at the right paths under HTTPS on your own domain, and writing UA-based redirect routing. That's exactly what Linkfor does.
  • If you specifically used FDL for install attribution (knowing which ad placement drove an install), you need a full MMP (Branch, AppsFlyer, Adjust). Linkfor does not replace that piece — it replaces the URL layer.
  • If you only used FDL for "open the app when installed, otherwise web," Linkfor is a drop-in.

When Linkfor is the right FDL replacement

  • You used FDL for the URL layer — open in app, fall back to web — and never wired install attribution into the backend.
  • You want the deep-link domain to be yours, not a third-party redirect host. Linkfor renders AASA + assetlinks.json from your config under your own HTTPS domain.
  • You don't want to integrate a third-party SDK. iOS Universal Links and Android App Links are OS-level primitives — Linkfor sets them up, the OS does the work.
  • You also want branded short links and a Notion site on the same domain — typical setup for an app that has a marketing page, install links, and in-product deep linking.
  • You're budget-sensitive: $1/moon Linkfor Pro replaces FDL's URL layer and folds in adjacent primitives that would otherwise stack as Bitly + Super.
Migration

How to migrate from FDL to Linkfor

FDL URL: https://yourapp.page.link/promo. Linkfor equivalent: https://yourapp.com/go/promo with deepLinks: { ios, android, web } configured on the route. The OS does the rest via Universal Links / App Links.

  1. 1Inventory every FDL page.link URL still referenced in marketing copy, push notifications, emails, and onboarding flows. Note the iOS / Android fallback for each.
  2. 2Sign up for Linkfor and create a site against the domain you want deep links on (typically the same domain as your marketing site).
  3. 3Add iOS bundle ID + Apple team ID and Android package + SHA-256 fingerprints to the site config. Linkfor serves /.well-known/apple-app-site-association and /.well-known/assetlinks.json automatically.
  4. 4Recreate each FDL URL as a redirect under /go/* with deepLinks: { ios, android, web }. The ios/android values use your app's URL scheme; the web fallback can be a Notion page on the same domain.
  5. 5Test on real iOS and Android devices. Ship an app update that points new install / share flows at the Linkfor URLs. Existing FDL URLs in old emails are already dead — there's nothing to "switch off" on Google's end.