How do you keep meta titles, schema and Open Graph tags during a migration?
You keep meta titles, schema and Open Graph tags during a migration by treating them as content, not settings. Export them alongside the copy, map each field to its equivalent on the new platform, and check the published HTML before launch. Most losses happen because nobody owned these fields.
Metadata is easy to lose because it rarely lives in the page body. On WordPress it sits in an SEO plugin, on Webflow and Framer in page and CMS settings, and on Next.js in code. This guide covers the field mapping. The rest of the move is in our website migration SEO checklist.
Which metadata fields should you migrate?
Migrate every field that changes how a page appears in search, in social previews and to machines. Titles and descriptions matter most for clicks, canonicals and robots tags matter most for indexing, and schema matters for how engines understand the page.
- Title tag and meta description: the custom ones, not only the page name.
- Canonical URL: update to the new URL, never the old domain or staging.
- Meta robots: carry over any intentional noindex, and remove staging ones.
- Open Graph and social: og:title, og:description, og:image, and the image's alt text. Our Open Graph tags definition explains each one.
- Structured data: every JSON-LD block, with URLs updated.
- Image alt text and hreflang: both are often stored separately from the copy.
How do metadata fields map between platforms?
Each platform stores the same fields in a different place, so build a mapping table before you build templates. The table below shows where the common fields live on the four platforms we build on or migrate from most.
Field | WordPress | Webflow | Framer | Next.js |
|---|---|---|---|---|
Title | SEO plugin field | Page or CMS SEO settings | Page settings or CMS field | Metadata title |
Description | SEO plugin field | Page or CMS SEO settings | Page settings or CMS field | Metadata description |
Canonical | Plugin, auto by default | Site setting plus page override | Set automatically per page | Metadata alternates |
Open Graph image | Plugin or featured image | Open Graph settings, bindable to a CMS image | Page or CMS social image | Metadata openGraph images |
Schema | Plugin output or custom | Custom code in page or CMS template | Custom code in page settings | JSON-LD script in the page |
Noindex | Plugin toggle | Page or CMS setting | Page setting | Metadata robots |
Exact menus change, so check each platform's current docs. What doesn't change is the principle: on CMS templates, bind the SEO fields to collection fields so each item gets unique values. The Next.js Metadata API, including generateMetadata for dynamic routes, is documented on nextjs.org.
How do you migrate meta tags and schema step by step?
Migrate meta tags and schema in five steps: extract, map, import, template, verify. The extract step is the one people skip, and it's the one that makes the rest possible.
Extract from the old site
Crawl every URL and export title, description, canonical, robots, Open Graph fields, hreflang and structured data. Save raw HTML for top pages.
Map fields
Add columns for the new platform's field names to your redirect sheet, so each row holds the old URL, new URL and its metadata.
Import with the content
Include SEO title, description and social image as CMS fields in your import CSV, instead of entering them by hand later.
Template the schema
Build Article schema into the blog template and Organization schema site-wide, pulling values from CMS fields. Add FAQ schema only where a visible FAQ exists.
Verify the output
Crawl staging and the live site, compare metadata columns with the old crawl, and run key pages through Google's Rich Results Test and the Schema Markup Validator.
If you're moving rich text into Webflow, check how each CSV column maps to a CMS field type before the import. For AI-led rebuilds, our guide to AI-assisted website migration explains why metadata needs its own check.
Which schema types matter for AEO after a migration?
For answer engine optimization, the schema types to keep are Organization, Article, and FAQ where the page shows a real FAQ. They tell machines who published the page, what it is and which questions it answers, which helps engines that quote passages.
Schema type | Where it goes | What to carry over |
|---|---|---|
Organization | Homepage or site-wide | Name, URL, logo, sameAs profiles |
Article or BlogPosting | Every post | Headline, author, dates, image |
FAQPage | Pages with a visible FAQ | Questions and answers matching the page |
BreadcrumbList | Deep pages | Path that matches the new URLs |
Product or SoftwareApplication | Product pages | Name, description, offers if shown |
Google now shows FAQ rich results for a narrow set of sites, but the markup still describes the page clearly. Whether schema helps AI citations is debated; our article on schema markup and AI citations looks at that question, and structured data for marketing sites covers which types to add beyond these.
Hypothetical example: moving a 60-post blog from WordPress to Framer
For example, suppose a startup's WordPress blog uses an SEO plugin for custom titles and descriptions, featured images as Open Graph images, and plugin-generated Article schema. A plain content export brings over the post body and featured image, but not the custom titles.
The team crawls the old blog and adds SEO title, description and social image columns to the import CSV. In Framer, the blog's CMS page settings use those fields for each post's metadata, and an Article JSON-LD block in the template pulls headline, author and date from the CMS. A crawl of staging confirms all 60 posts have unique titles matching the old ones.
How do you check metadata after launch?
Check metadata after launch by crawling the live site and comparing title, description, canonical and schema columns with your pre-migration crawl. Any row where the value changed without a reason is a bug.
Look for canonicals pointing at staging, duplicate titles across CMS items, missing Open Graph images and schema that still references old URLs. Share a few key pages on social platforms or use a preview debugger to confirm the cards render. Then keep an eye on click-through rates in Search Console, since a weaker title shows up there first. If clicks fall, see our guide to traffic drops after a website migration.
