Redirect map deliverable spec — CSV of old→new URL with notes; sources are XML sitemap + Screaming Frog + GSC + Ahrefs/Semrush

The redirect map is the single most consequential deliverable in a same-domain migration.

Format: CSV with columns old_url, new_url, status_code, notes. Default status_code = 301.

Build it by combining four sources:

  1. WordPress XML sitemap (/sitemap_index.xml from Yoast/Rank Math/AIOSEO).
  2. Screaming Frog crawl of the live site.
  3. Google Search Console Performance report — top URLs by impressions over the last 12 months.
  4. Ahrefs/Semrush — URLs with external backlinks.

Edge cases that consistently cause traffic loss (per Migration hidden-killers catalogue — the seven failure modes that appear in every post-mortem):

  • Attachment pages (WordPress auto-creates one indexable page per uploaded image) — 301 to parent post or 410 if no parent.
  • Author archives (/author/janedoe/) — usually safe to 301 to /about/ or 410.
  • Date archives (/2019/03/) — almost never have inbound links; 410 is appropriate.
  • Category pagination (/category/news/page/4/) — preserve at least first 2-3 pages.
  • Feed URLs (/feed/, /category/news/feed/) — preserve at root level (/rss.xml is modern convention; /feed/ should redirect).

Sitemap continuity: keep the old sitemap.xml resolving (with 301'd URLs) for at least 30 days post-cutover. Submit the new sitemap immediately. Because the domain is unchanged, do not use Search Console's Change of Address tool — Google's docs say explicitly: "Don't use the Change of Address tool for the following moves: Changing address from http to https… Moving some pages from one location to another within your site."

Retention rule: maintain redirects for at least 180 days. Google: "Maintain the redirects for at least 180 days — longer if you still see any traffic to them from Google Search." GreenGeeks puts it more sharply: "Industry standard is 12 months minimum." See RULE: Keep migration 301 redirects in place for at least 12 months; never less than 180 days (Google's explicit floor).