Skip to content

Migrate from other platforms

Lyra writes into a git-based blog, so if your posts live in a hosted CMS you migrate to a Markdown-in-a-repo setup first. The platform changes, but the discipline that protects your rankings does not. This page covers the shared playbook and links to the detailed guide for each platform.

If you are on Framer, see the dedicated Migrate from Framer guide.

The discipline is the same everywhere

Every platform migration protects rankings the same way. Follow this regardless of where you are moving from:

  1. Map every indexed URL. Pull the full list from Google Search Console's Coverage report and build an old-to-new URL spreadsheet. Do not trust the CMS's own page list as complete.
  2. Decide your new URL structure first. Settle it before writing redirects.
  3. Export your content and rebuild its structure. Get your posts out, then recreate categories, tags, authors, and frontmatter as real structure in the new repo. Exports usually flatten these relationships. See Blog frontmatter.
  4. Redirect with 301s. Write permanent 301 redirects for every mapped URL on the new host. A 301 carries rankings across; a 302 does not. Handle a domain change at your DNS provider or registrar.
  5. Launch the site and redirects together, then submit the new sitemap in Search Console the same day.
  6. Watch and hold. Monitor Coverage and Performance daily for two weeks, then weekly through 90 days. Keep redirects live for at least a year.

Platform playbooks

Each platform has its own export path and its own gotchas. The Lyra blog has a sourced guide for each.

FromWhat changesFull guide
WebflowCMS Collections do not map cleanly to Markdown; rebuild the structureWebflow to git-based blog migration
WordPressMoving to a static framework like Astro; real cost and timeline rangesWordPress to Astro migration
GhostGhost ships schema and sitemaps already; what you keep and what changesGhost to git-based blog migration
HubSpotWhy SaaS teams outgrow HubSpot's cost tiers; the redirect checklistHubSpot to git-based blog migration
NotionNotion's publish flow has no sitemap or per-page meta controlNotion to git-based blog migration

A note on headless CMS

If you are considering a headless CMS (Contentful, Sanity, Storyblok) instead of a fully static git-based blog, know the tradeoff first. A headless setup adds a sync step between publishing in the CMS and the page being live as HTML, a webhook or revalidation that can fail silently and leave a page invisible to crawlers for days. A git-based static site removes that step by construction: a merged pull request is both the publish event and the build. See Headless CMS vs git-based blog.

Lyra works with a git-based blog. If you land on a headless CMS, she does not write to the CMS content store.

Then connect Lyra

Once your posts are Markdown files in a repo with frontmatter, and your redirects are live, your blog is ready:

  1. Check Is your blog Lyra-ready?.
  2. Connect your repository.
  3. Run onboarding.

What's next