Migrating off Framer without losing your SEO
By EeroCad
By EeroCad
Framer is a genuinely good tool. Where sites get into trouble is the move off it — or more often, the half-move, where a custom domain is pointed at a Framer build that was never configured for it.
We rebuilt our own site off Framer recently. These are the four failures worth checking, in the order they cost you the most traffic.
This is the one that does real damage, and it is close to invisible from inside a browser.
A Framer site ships a client-side router. Click a nav link and the URL changes,
the page renders, and everything looks correct — because the router already has
every route in the bundle. But if the host is only serving the homepage file,
then a direct request to /about has nothing to return.
The result: visitors who click through are fine. Anyone who refreshes, follows a shared link, arrives from an ad, or crawls the site gets a 404.
How to check, without any tooling:
curl -s -o /dev/null -w "%{http_code}\n" https://yoursite.com/about
If that returns 404 while the page loads fine in your browser, every inner
page on your site is invisible to Google. Test each URL in your sitemap, not
just one.
Google does not render pages that return a 404 status. There is no partial credit here — the content simply does not exist as far as search is concerned.
Framer publishes to a yourname.framer.ai subdomain. If you point a custom
domain at a build that still thinks it lives on the subdomain, every page ships
a canonical tag like this:
<link rel="canonical" href="https://yourname.framer.ai/" />
That tag tells Google: this page is a duplicate, index the other one instead. Your real domain accumulates no ranking, and search results point at the Framer subdomain.
How to check:
curl -s https://yoursite.com/ | grep -i canonical
The URL in that tag should be your own domain. If it is not, you are actively instructing search engines to ignore your brand domain.
The same applies to og:url, which affects how links render when shared, and
to any hard-coded absolute links in the build — we found CTA buttons pointing
back at the subdomain, quietly sending people off-domain mid-funnel.
Both are host-scoped. A robots.txt at yourname.framer.ai/robots.txt
says nothing about yoursite.com, and a sitemap listing subdomain URLs cannot
be submitted for your domain’s Search Console property.
A missing robots.txt is not itself harmful — crawlers treat a 404 as “no
restrictions”. The real loss is the missing sitemap, plus the fact that the one
that does exist reinforces the subdomain as the canonical home.
This is the one people forget at cutover. Once the new site is live, the Framer version is usually still published, still indexable, and still carrying self-referencing canonicals.
You now have two complete copies of your content competing with each other, and Google picks which to show.
At cutover:
Work through this in order:
www certificate. A www subdomain that fails TLS is a dead
end for anyone who types it and for any link that uses it. Ours did, and it
took one DNS record to resolve.Two things.
Check the status codes much earlier. We assumed the site was fine because
it worked in a browser. It had been serving 404s on ten of eleven pages for
some time, and nothing in the browsing experience surfaced that. One curl
loop would have caught it.
Decide the canonical domain before anything else. Most of the problems above are downstream of a single question nobody answered explicitly: which hostname is the real site? Answer that first, configure everything to agree with it, and the rest follows.
If you are moving off Framer, WordPress or anything else and want the redirects done properly, that is part of how we build. Book a call.
Thirty minutes, no deck, no pressure. You will leave knowing roughly what it costs and how long it takes — even if you build it elsewhere.