SiteAuditLint checklist library
What this checklist covers
A website migration SEO checklist protects rankings and traffic when you change domains, URLs, platforms, or site structure, by inventorying old URLs, mapping redirects, validating staging, and comparing pre and post migration crawls.
It is organized into 15 sections: Pre-Migration Crawl, URL Mapping, Redirect Plan, Canonicals, Internal Links, XML Sitemap, Robots.txt, Metadata, Structured Data, Analytics, Staging Validation, Launch Day, Post-Migration Crawl, Compare Old vs New and Monitor. Each check lists exactly what to verify and a priority, so you can work through the highest impact items first.
For background on the concepts behind these checks, see Redirects lesson, Audit comparison, Site audits course.
Who it is for:
Download the website migration seo checklist
Use the interactive version below, or download it to share with your team, attach to tickets, or work through offline.
Website Migration SEO Checklist
Work through each check
0 of 18 checks complete
Pre-Migration Crawl
URL Mapping
Redirect Plan
Canonicals
Internal Links
XML Sitemap
Robots.txt
Metadata
Structured Data
Analytics
Staging Validation
Launch Day
Post-Migration Crawl
Compare Old vs New
Monitor
Progress is saved in this browser only.
Detailed explanations
Each section below explains what to check, why it matters, the problems you will usually find, how to fix them, and how to confirm the fix.
Pre-Migration Crawl
What to check:
- Crawl the old site. Full URL inventory with status, titles and canonicals saved.
- Export top pages. Top pages by traffic and backlinks are listed.
Why it matters: Search engines can only rank what they can discover. If crawlers cannot follow links to a URL, that page will rarely be indexed, no matter how good its content is. Crawl depth also signals importance: pages buried many clicks deep get crawled less often.
Common problems:
- Navigation built with JavaScript click handlers instead of anchor links
- Important pages only reachable through internal search or forms
- Pagination or filters creating near infinite URL spaces that waste crawl budget
- Key pages sitting five or more clicks from the homepage
How to fix it: Use standard <a href> links for all navigation, add contextual links from high authority pages to deep content, and constrain parameter and filter URLs so crawlers spend time on pages that matter.
How to verify: Run a full crawl, compare discovered URLs with your sitemap and analytics landing pages, and review the crawl depth report for any important URL deeper than three clicks.
Learn more: Crawling explained, What is a website crawler, Crawlability vs indexability, Deep page issue.
How SiteAuditLint helps: it checks pre-migration crawl across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
URL Mapping
What to check:
- Map old to new URLs. Every old URL has a one to one destination.
Why it matters: Clean URLs are easier to understand, share, and maintain. Changing URLs later creates redirect overhead and risks ranking loss.
Common problems:
- Uppercase letters and underscores
- Session IDs or unnecessary parameters
- Dates or IDs in URLs that will need to change
- URL changes after launch without redirects
How to fix it: Use lowercase, hyphenated, descriptive URLs and keep them stable.
How to verify: Export all crawled URLs and review patterns for parameters, case issues, and length.
Learn more: URLs lesson, SEO friendly URLs, Fixing incorrect URL formats, Uppercase URL issue.
How SiteAuditLint helps: it checks url mapping across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Redirect Plan
What to check:
- Build redirect rules. 301 rules cover all mapped URLs without chains.
Why it matters: Redirects pass users and ranking signals from an old URL to a new one. Each extra hop adds latency and increases the chance that signals are lost or crawlers give up. Temporary redirects used for permanent moves can keep the old URL indexed.
Common problems:
- Redirect chains of three or more hops left behind by repeated migrations
- Redirect loops that make a URL unreachable
- 302 redirects used for permanent URL changes
- Internal links still pointing at redirecting URLs
How to fix it: Point every redirect directly at its final destination with a 301 or 308, break any loops, and update internal links so they reference the final URL rather than relying on the redirect.
How to verify: Crawl with redirect following enabled and export the redirect chains report. Each redirecting URL should resolve in one hop to a URL returning 200.
Learn more: Redirects lesson, Testing redirects, How to find and fix redirect problems, Redirect chain issue.
How SiteAuditLint helps: it checks redirect plan across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Canonicals
What to check:
- Update canonicals. Canonicals point to new URLs.
Why it matters: The canonical tag tells search engines which version of a page is the preferred one when duplicates or variants exist. It consolidates ranking signals onto one URL. A broken canonical can quietly deindex the page you care about most.
Common problems:
- Canonicals pointing to staging or development domains
- Relative canonical URLs that resolve incorrectly
- Canonicals pointing to redirected, 404, or noindexed URLs
- Every paginated or variant page canonicalized to page one
How to fix it: Use absolute canonical URLs on the production domain, make indexable pages self canonical, and point duplicates at a live, indexable 200 URL.
How to verify: Crawl the site and compare the canonical URL with the page URL. Flag any canonical that is non self referencing, redirects, returns an error, or is noindexed.
Learn more: Canonicals lesson, Canonical tag issues and fixes, Missing canonical issue, Canonicalised URL issue.
How SiteAuditLint helps: it checks canonicals across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Internal Links
What to check:
- Update internal links. Internal links point directly to new URLs.
Why it matters: Internal links distribute authority, define site architecture, and help crawlers discover content. Broken links waste crawl budget and frustrate users, while orphan pages are almost invisible to search engines.
Common problems:
- Links to deleted pages returning 404
- Links pointing to redirected URLs instead of final destinations
- Orphan pages with no internal links
- Generic anchor text like click here on important links
How to fix it: Fix or remove broken links, update links to point at final URLs, link to orphan pages from relevant hubs, and use descriptive anchor text.
How to verify: Crawl the site and review the broken links, redirecting links, and inlinks reports. Compare sitemap URLs against crawled URLs to find orphans.
Learn more: Internal links lesson, Fix broken internal links, Orphan pages, Internal link analysis.
How SiteAuditLint helps: it checks internal links across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
XML Sitemap
What to check:
- Prepare new sitemap. New sitemap lists new canonical URLs.
Why it matters: An XML sitemap is a list of URLs you want search engines to find and index. It helps discovery of new and deep content and acts as a canonical signal. A sitemap full of redirects, errors, or noindexed URLs weakens trust in that signal.
Common problems:
- Sitemaps containing redirected, 404, or noindexed URLs
- Non canonical URL variants listed instead of the canonical version
- Sitemap not referenced in robots.txt or submitted in Search Console
- Stale sitemaps that are not regenerated on publish
How to fix it: Generate the sitemap automatically from indexable canonical URLs only, keep lastmod accurate, reference it in robots.txt, and submit it in Search Console.
How to verify: Crawl the sitemap URL list on its own. Every entry should return 200, be indexable, and be self canonical.
Learn more: XML sitemaps lesson, XML sitemap errors and fixes, Sitemap non-200 issue, Noindex URL in sitemap issue.
How SiteAuditLint helps: it checks xml sitemap across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Robots.txt
What to check:
- Prepare production robots.txt. No staging blocks carried over.
Why it matters: Robots.txt controls which paths crawlers may request. It is the fastest way to block an entire site by accident. It also governs access for AI crawlers, so it is now part of your AI search visibility strategy as well as your traditional SEO.
Common problems:
- A staging Disallow: / rule deployed to production
- CSS and JavaScript blocked, stopping Google from rendering pages
- Overly broad wildcard patterns blocking important directories
- Missing or outdated sitemap declaration
How to fix it: Keep robots.txt minimal, block only what you truly need to keep out of crawlers, allow rendering resources, and declare your XML sitemap with an absolute URL.
How to verify: Fetch /robots.txt on production, test a list of key URLs against the live rules for Googlebot and each AI user agent, and confirm the file returns 200.
Learn more: Robots.txt lesson, Robots.txt and AI crawlers guide, Blocked by robots.txt issue, Missing robots.txt issue.
How SiteAuditLint helps: it checks robots.txt across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Metadata
What to check:
- Preserve metadata. Titles and descriptions of top pages are carried over or improved.
Why it matters: Title tags and meta descriptions shape how your page appears in search results and influence click through rate. Titles remain a strong relevance signal.
Common problems:
- Missing or duplicate titles across templates
- Titles truncated because they are too long
- Boilerplate meta descriptions repeated site wide
- Titles that do not match the search intent of the page
How to fix it: Write unique, descriptive titles with the primary topic near the start and meta descriptions that summarize the page and give a reason to click.
How to verify: Crawl and filter for missing, duplicate, and over length titles and descriptions, then spot check how they render in search results.
Learn more: Titles lesson, Meta descriptions lesson, Duplicate title tags, Missing meta descriptions.
How SiteAuditLint helps: it checks metadata across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Structured Data
What to check:
- Preserve schema. Schema types are retained on new templates.
Why it matters: Structured data helps search engines and AI systems understand entities on the page and can unlock rich results. Invalid or misleading markup is ignored or can trigger manual actions.
Common problems:
- Syntax errors in JSON-LD
- Required properties missing for the chosen type
- Markup describing content not visible on the page
- Schema removed during a template change
How to fix it: Use JSON-LD, include required and recommended properties, and keep markup consistent with visible content.
How to verify: Validate key templates with the Rich Results Test and Schema Markup Validator, then monitor enhancement reports in Search Console.
Learn more: Schema markup for AI, Invalid schema issue, Missing schema issue.
How SiteAuditLint helps: it checks structured data across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Analytics
What to check:
- Migrate tracking. Analytics and conversions track on the new site.
Why it matters: Without tracking you cannot measure the impact of launches, migrations, or fixes. Missing tags after a deployment create gaps that cannot be backfilled.
Common problems:
- Analytics missing on new templates
- Duplicate tags inflating sessions
- Conversion events lost after a redesign
- Search Console not verified on the new domain
How to fix it: Deploy analytics through a tag manager across all templates, verify Search Console, and test conversion events before launch.
How to verify: Use tag assistant and real time reports to confirm tags fire on each template and that conversions record.
Learn more: Tracking and analytics audit, Tracking pixel audit, Tracking missing on page issue, SEO KPIs lesson.
How SiteAuditLint helps: it checks analytics across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Staging Validation
What to check:
- Crawl staging. Staging crawl matches the URL map.
Why it matters: Migrations change URLs, templates, and infrastructure at once. Every old URL that does not redirect correctly loses its rankings and backlinks.
Common problems:
- Missing redirects for long tail URLs
- Redirects to the homepage instead of equivalents
- Staging blocks shipped to production
- Metadata lost on new templates
How to fix it: Map every old URL to its best equivalent, test redirects on staging, and compare old and new crawls field by field.
How to verify: Crawl the full list of old URLs after launch and confirm each returns a single 301 to a 200 page.
Learn more: Redirects lesson, Audit comparison, Redirects troubleshooting.
How SiteAuditLint helps: it checks staging validation across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Launch Day
What to check:
- Deploy redirects. Sample old URLs return 301 to correct pages.
- Submit sitemaps. New sitemap submitted in Search Console.
Why it matters: Launches often ship staging settings to production. A single forgotten noindex or Disallow can keep a new site out of search for weeks.
Common problems:
- Staging noindex left on production
- Robots.txt still disallowing everything
- Canonicals pointing to the staging domain
- Analytics not installed
How to fix it: Use a launch runbook that removes staging protections, swaps domains in canonicals and sitemaps, and verifies tracking.
How to verify: Crawl production immediately after launch and compare against the final staging crawl.
Learn more: Pre-launch website checklist, Run your first audit, Noindex issues.
How SiteAuditLint helps: it checks launch day across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Post-Migration Crawl
What to check:
- Crawl old URL list. Every old URL returns a single 301 to a 200.
- Crawl new site. No new 4xx, noindex or canonical errors.
Why it matters: Search engines can only rank what they can discover. See the earlier section on this topic for common problems.
How to verify: Run a full crawl, compare discovered URLs with your sitemap and analytics landing pages, and review the crawl depth report for any important URL deeper than three clicks.
How SiteAuditLint helps: it checks post-migration crawl across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Compare Old vs New
What to check:
- Compare crawls. Titles, canonicals and indexability match expectations.
Why it matters: Comparing crawls before and after a change is the only reliable way to catch regressions. Many SEO problems are invisible on a single page but obvious in a diff across thousands of URLs.
Common problems:
- Changes to titles, canonicals, or noindex hidden in a release
- Removed internal links reducing link equity to key pages
- URL count changes nobody intended
- Schema dropped from a template
How to fix it: Keep a baseline crawl, compare every new crawl against it, and investigate every unexpected change before it reaches production or within hours of release.
How to verify: Run a crawl comparison report and review changes by field: status, indexability, canonical, title, H1, links, and schema.
Learn more: Audit comparison, SEO testing guide, Scheduled SEO audits.
How SiteAuditLint helps: it checks compare old vs new across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Monitor
What to check:
- Monitor traffic and indexing. Organic traffic and indexed pages tracked daily for 4 weeks.
Why it matters: SEO issues often appear days after a change, as search engines recrawl. Ongoing monitoring catches drops in indexing and traffic before they become expensive.
Common problems:
- No baseline to compare against
- Traffic drops noticed weeks late
- New 404s from old backlinks going unfixed
- Index coverage declining unnoticed
How to fix it: Schedule recurring crawls, set alerts for indexability and status code changes, and review Search Console coverage and performance weekly.
How to verify: Compare scheduled crawl results and Search Console trends against the pre change baseline.
Learn more: Scheduled SEO audits, Slack SEO alerts, Site health score.
How SiteAuditLint helps: it checks monitor across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Common mistakes
Not crawling the old site before migration
Redirecting everything to the homepage
Leaving redirect chains from earlier migrations
Forgetting images, PDFs, and long tail URLs in the redirect map
Losing titles, schema, or internal links on new templates
Stopping monitoring after the first week
When to run the checklist
- Domain changes
- HTTP to HTTPS moves
- CMS or platform migrations
- URL structure changes
- Site mergers and consolidations
- Major redesigns
How to verify fixes
- Save a baselineCrawl the site before making changes so you have a record of every status code, canonical, directive and title.
- Fix by priorityStart with High priority checks and issues that affect templates, since one fix there resolves many URLs. See how to prioritize audit findings.
- Re-crawl the same scopeUse the same start URL, crawl limit and settings so the results are comparable.
- Compare the crawlsConfirm the issue count dropped and that no new problems appeared elsewhere. Audit comparison does this field by field.
- Confirm in Search ConsoleUse URL Inspection and the indexing reports to check that Google sees the change. Our indexing tests lesson covers the process.
SiteAuditLint workflow
From manual checklist to automated checks
Most checks in this list run automatically in a SiteAuditLint crawl. Use audit comparison to diff crawls and scheduled audits to monitor for regressions.