migration checklist
Every pre and post go-live task we run on real migrations to minimize traffic loss, with why each one matters and where to learn more.
pre-go-live
before go-live
| Task | Why it matters | Priority | Resources |
|---|---|---|---|
| Figma and wireframe review | Have SEO review the designs and wireframes before development starts, since fixing navigation, headings and content structure now costs far less than reworking built pages. | critical | |
| Crawl the staging site | Crawl the staging site and fix broken links, redirect chains, duplicate titles and stray noindex tags, treating a clean crawl as your launch gate. | critical | |
| 301 redirect mapping | Redirect every old URL to its closest new equivalent with a permanent 301 (not a 302 or the homepage), the biggest single lever to minimize traffic loss. | critical | |
| Meta tags: title and description | Carry over a unique title (about 60 characters) and meta description for every page, because lost or duplicated meta tags commonly cause post-migration ranking dips. | critical | |
| Site architecture and URL stability | Keep URLs identical to the old site wherever possible and group sections into logical subfolders, since every unchanged URL is a redirect you don't need. | critical | |
| Core Web Vitals and page speed | Pass Core Web Vitals on every key template before launch (LCP 2.5s, INP 200ms and CLS 0.1 or better), since page speed affects rankings and conversions. | critical | |
| Analytics: GA4 and Search Console | Install GA4 and verify Search Console before launch, so you have baseline data from day one and can spot problems while the expected dip is still small. | critical | |
| Apply the SEO best practices checklist | Hold the new site to the same on-page and technical standards as any site, so work through the full SEO checklist alongside this one. | critical | |
| Apply the AI SEO checklist | A rebuild is the natural moment to make the site readable by AI answer engines like ChatGPT and AI Overviews, so run the AI SEO checklist before launch. | high | |
| Accessibility: WCAG and ARIA roles | Build templates to WCAG standards (contrast, keyboard navigation, labeled fields, ARIA roles where needed) and run Lighthouse, since accessibility is far easier to build in than retrofit. | high | |
| Server side rendering | Put primary content and internal links in the raw HTML rather than injecting them with JavaScript, because most AI crawlers never run JavaScript and will miss them. | high | |
| Trust pages and E-E-A-T signals | Rebuild the about, contact, author, team and legal pages, because Google weighs trust most heavily in E-E-A-T (experience, expertise, authority, trust) and redesigns often drop them. | high | |
| Noindex on staging, removed at launch | Block staging with a noindex tag or a password, and make removing it an owned launch-day step, because a forgotten noindex can drop the live site from Google. | high | |
| SEO friendly URLs | Use short, lowercase, hyphenated slugs containing the main keyword (/seo-migration-checklist, not /post123), because mixed case creates duplicate versions of the same URL. | high | |
| Keywords in body content | Keep each page's target keyword in the H1 and the first 100 words as content moves templates, since redesigns often cut pages down to thin copy. | high | |
| Robots.txt | Prepare a production robots.txt that allows everything you want indexed, lists your XML sitemap and doesn't block AI crawlers, so a staging-era Disallow rule never ships. | high | |
| Server response time under 200ms | Keep average server response time to Googlebot under 200ms (see Crawl Stats in Search Console), because slower servers waste crawl budget and signal hosting problems. | high | |
| Security headers and site security audit | Scan the site at securityheaders.com, add the headers it flags and run a crawler security audit, so mixed content and insecure resources are fixed before launch. | high | |
| Favicon | Ship a square, crawlable favicon of at least 48 x 48 pixels, because Google shows it beside your search results and a missing one costs brand recognition. | medium | |
| Image formats: AVIF or WebP | Serve WebP or AVIF images, mostly under 100KB, with width and height set to prevent layout shift, one of the easiest page speed wins in a rebuild. | medium | |
| Nofollow on external links | Audit outbound links for rel="nofollow", "sponsored" and "ugc" attributes, because rebuilt templates often drop them and you end up endorsing links you never meant to. | medium | |
| Custom 404 page | Serve a helpful 404 page with a real 404 status at the unchanged URL, not a homepage redirect or soft 404, so broken links stay visible for fixing. | medium | |
| Heading hierarchy with one H1 | Give every page exactly one H1, with H2s for sections and H3s nested beneath them, never skipping levels, so search engines can read the page's outline. | medium | |
| Blog template upgrades | Build author bylines, published and updated dates, a table of contents, breadcrumbs and cited sources into the new blog template, because they signal trust and aid navigation. | medium | |
| Press or newsroom section | Carry over a press page or in-the-news block linking to third-party coverage, because journalists check it when researching you and it's an easy trust signal to lose. | medium | |
| Footer navigation | Turn the footer into a categorized index of key pages rather than just a copyright line, because it restores internal links that redesigns often strip out. | medium | |
| Alt text for main images | Check that alt text survived the move and accurately describes each main image, since it serves accessibility and Google Images, and CMS migrations often drop it. | medium | |
| Breadcrumbs | Add breadcrumb navigation with BreadcrumbList structured data to inner pages, so users and crawlers keep their bearings and the trail can appear in search results. | medium |
post-go-live
after go-live
| Task | Why it matters | Priority | Resources |
|---|---|---|---|
| Crawl the live site after launch | Crawl the live site right after go-live and compare it with staging, catching redirect chains, leftover noindex tags and broken links before Google recrawls at scale. | critical | |
| Canonical tags | Give every page a self-referencing canonical tag to its own new URL, because a canonical still pointing at the old site tells Google to index the old pages. | high | |
| XML sitemap | Submit a new XML sitemap in Search Console at launch and keep the old one temporarily, since watching their indexed counts cross shows how far the migration has progressed. | high | |
| Page indexing report | Check the Search Console page indexing report weekly, because spikes in 404s, redirect errors or duplicate canonicals each point to a specific fix while indexing settles. | high | |
| Semantic HTML5 | Use semantic elements (main, header, article, section, time, figure) and keep pages under about 900 DOM nodes, so search engines and AI parsers can read your structure. | high | |
| Schema markup | Reapply structured data after the re-platform, since schema rarely survives on its own, and validate it with Google's Rich Results Test to keep rich result eligibility. | medium | |
| Open Graph and Twitter Card tags | Add Open Graph and Twitter Card tags to every page, including a 1200 x 630 pixel image, so social shares show your chosen title, description and picture. | medium | |
| HTML sitemap | Publish an HTML sitemap linking your important pages by section, so users and crawlers have a fallback path and every key page keeps an internal link. | medium | |
| Domain resolution test | Test every domain variation (http, https, www, non-www) and confirm each 301-redirects to one preferred version in one hop, so link signals aren't split across duplicates. | medium | |
| Thank you page with a 303 redirect | Answer form submissions with a 303 redirect to one thank-you URL, so refreshing never resubmits the form and you get a clean conversion goal in analytics. | medium |
Rather have it done for you? This is the work we do every day.