Prompt
Can you help me set up a migration QA process for redirects, canonicals, and sitemaps?
Latest observation
Absolutely — here’s a practical migration QA process you can use to validate redirects, canonicals, and sitemaps before and after a site migration.
Migration QA process for redirects, canonicals, and sitemaps
1) Define the QA scope
Before testing, document:
- Source site URLs and their current status
- Destination URLs and expected final structure
- URL mapping rules
- old → new
- removed pages → closest relevant alternative or 410
- parameter URLs → canonical target or noindex strategy
- URL types to include
- homepage
- category pages
- product/detail pages
- blog/content pages
- faceted/filter URLs
- paginated URLs
- PDFs/assets if relevant
- Markets/languages if the site is international
Create a master spreadsheet with columns like:
- Old URL
- Expected redirect target
- Redirect type
- Final target status
- Canonical expected
- In sitemap? yes/no
- Indexability expected
- Notes
2) Redirect QA
What to validate
For every important old URL, confirm:
- It redirects to the correct destination
- It uses the right status code
- ideally 301 for permanent moves
- It resolves in one hop if possible
- There are no:
- redirect chains
- redirect loops
- broken redirects
- soft 404s
- redirects to irrelevant pages
QA checks
A. Status code check
Test a sample or full list of URLs and verify:
- Old URL returns 301/308 as intended
- Final URL returns 200
- Removed content returns 410 or a deliberate 404 if appropriate
B. Destination relevance
Confirm each redirect lands on:
- the exact equivalent page, if available
- otherwise the nearest relevant parent/category page
Avoid sending everything to the homepage unless there is no better option.
C. Chain detection
Flag URLs that go:
- old URL → intermediate URL → final URL
These should usually be flattened to a single redirect.
D. Loop detection
Check for circular redirects:
- A → B → A
E. Canonical destination consistency
Make sure redirected URLs ultimately land on a URL that is:
- indexable
- canonicalized correctly
- in the sitemap if it should be
Suggested acceptance criteria
- 100% of priority URLs redirect correctly
- No redirect loops
- No redirect chains longer than 1 hop for priority pages
- No 404s on URLs that should redirect
- No non-relevant destination pages
3) Canonical QA
What to validate
Every indexable page should have a canonical tag that:
- points to the preferred URL
- uses the final destination URL format
- is self-referential where appropriate
- is consistent with redirects and sitemap entries
QA checks
A. Self-canonical on preferred pages
For pages meant to rank:
- canonical should point to itself
- the URL should be the clean, final version
B. Canonical consistency
Confirm that:
- canonical URL returns 200
- canonical URL is not redirected
- canonical is not blocked by robots.txt
- canonical is not noindexed
C. Parameter/facet handling
For faceted or parameterized URLs:
- canonical should point to the main category page or preferred clean version
- ensure parameter pages don’t self-canonical unless intentionally indexable
D. Cross-domain canonicals
If used, verify they are intentional and consistent.
E. Canonical vs redirect mismatch
Avoid situations like:
- page A redirects to B, but canonical points to C
- canonical points to a URL that redirects or 404s
Suggested acceptance criteria
- Indexable pages have correct self-canonicals
- Non-preferred duplicates canonicalize to preferred versions
- No canonical points to 3xx, 4xx, blocked, or noindexed URLs
- Canonical strategy aligns with sitemap strategy
4) Sitemap QA
What to validate
Sitemaps should include only URLs that are:
- canonical
- indexable
- returning 200
- not blocked
- not redirected
- not noindexed
QA checks
A. URL quality
Each sitemap URL should:
- return 200
- be canonical
- be indexable
- not be a redirect
- not be blocked by robots.txt
B. Coverage
Make sure sitemaps include:
- important indexable pages
- new URLs after migration
- all key landing pages
- localized URLs if applicable
C. Exclusions
Remove:
- old URLs
- redirected URLs
- parameter/facet URLs unless intentionally indexable
- noindex pages
- 404/410 pages
D. Sitemap metadata
Check:
- lastmod is accurate if used
- sitemap files are within size limits
- sitemap index is valid if multiple files exist
E. Submission
Verify:
- sitemap index is accessible
- submitted to Google Search Console / Bing Webmaster Tools
- no parsing errors reported
Suggested acceptance criteria
- Only canonical 200-status URLs are in sitemaps
- No redirects or broken URLs in sitemaps
- Coverage includes all priority pages
- Sitemap index is clean and accessible
5) Recommended QA workflow
Phase 1: Pre-launch QA
Do this in staging or pre-production
- Crawl staging site
- Compare old URL list to new URL targets
- Check redirect rules
- Validate canonicals on template types
- Validate sitemap generation
- Inspect robots.txt directives
Deliverables
- Redirect mapping sheet
- Canonical audit sheet
- Sitemap URL export
- Issues log with severity and owner
Phase 2: Launch-day QA
Immediately after go-live:
Check:
- Home page loads
- Top priority old URLs redirect correctly
- New URLs return 200
- Canonicals are correct on key page types
- Sitemaps are live and updated
- robots.txt is correct
- Search Console is receiving the new sitemap
Prioritize:
- Top traffic pages
- Top linked pages
- Revenue-driving pages
- Largest categories / hub pages
Phase 3: Post-launch QA
Over the next few days/weeks:
Monitor:
- crawl errors
- 404s
- redirect errors
- index coverage
- canonicalization issues
- sitemap discovery/indexing
Compare:
- organic landing page performance
- indexed URL counts
- impressions/clicks for migrated pages
- logs for bot access patterns
6) Tools to use
Crawl tools
- Screaming Frog
- Sitebulb
- Deepcrawl / Lumar
- Ahrefs Site Audit
- Semrush Site Audit
Verification tools
- curl / HTTP status checker
- browser dev tools
- GSC URL Inspection
- Bing Webmaster Tools
- server logs
- spreadsheet QA
Helpful exports
- old URL list
- sitemap URL list
- crawl export of canonicals/status codes
- redirect mapping file
7) Simple QA checklist
Redirects
- Old URLs return 301/308
- Redirect targets are correct
- No chains
- No loops
- No broken redirects
- No irrelevant destination pages
Canonicals
- Preferred pages self-canonicalize
- Duplicate pages canonicalize correctly
- Canonicals resolve to 200 URLs
- Canonicals are not blocked/noindexed
- Canonicals match redirect and sitemap logic
Sitemaps
- Only canonical 200 URLs included
- No redirected URLs included
- No 404/410/noindex URLs included
- Sitemap index is valid
- Sitemaps submitted successfully
8) Practical reporting format
Use a table like this for QA findings:
| URL | Issue Type | Expected | Actual | Severity | Owner | Status |
|---|---|---|---|---|---|---|
| /old-page | Redirect | 301 to /new-page | 302 to /new-page | High | Dev | Open |
| /category/x | Canonical | Self-canonical | Canonical to /category/y | Medium | SEO | Open |
| /sitemap.xml | Sitemap | Contains only 200 canonical URLs | Contains redirected URL | High | Dev | Open |
9) Common migration mistakes to watch for
- Redirecting everything to the homepage
- Leaving old URLs in sitemaps
- Canonicals pointing to redirected URLs
- Chains caused by layered rules
- Incorrect trailing slash or lowercase behavior
- Parameter URLs accidentally indexed
- Robots.txt blocking canonical URLs
- Mixed sitemap data from old and new URLs
- HTTP/HTTPS or www/non-www inconsistency
If you want, I can also turn this into:
- a ready-to-use QA spreadsheet template,
- a pre-launch checklist, or
- a scripted testing plan with sample curl/Screaming Frog checks.