Start with the addresses people already use
Combine the current crawl with sitemap URLs, useful analytics landing pages and existing redirect rules. Keep the full source address when hosts, languages or query parameters change its meaning. Remove exact duplicates after preserving the information needed to tell pages apart.
Do not build the list from titles alone. Two articles can share a title, and a title may have changed while the address stayed the same. Use source identifiers or editorial review to establish the match.
For a Joomla site, collect the resolved public routes as well as aliases. For Drupal to WordPress, include useful path aliases and available redirect history.
Four decisions, with an example of each
The addresses below are illustrative. The CSV contains no results from a customer website.
| Old path | Decision | Destination / response |
|---|---|---|
| /about/ | Keep | Same path, 200 |
| /news/2020/library-hours/ | Move | 301 to /news/library-hours/ |
| /help/account-access/ | Merge | 301 to /help/signing-in/ after checking coverage |
| /events/retired-registration/ | Remove without a replacement | 404 or 410, according to the agreed removal policy |
Download the sample redirect worksheet (CSV). Replace the example rows with your own URLs. The expected response is a target to verify, not a completed test.
Do the editorial work before writing broad rules
A merge needs someone to read both pages. If the destination does not answer the old page’s question, choose a better replacement or record that there is none. Google advises against redirecting unrelated old pages to a generic destination; see its site-move guidance.
Pattern rules can save work when the change is consistent, such as removing the same directory from a group of URLs. Test exceptions before applying the rule to everything. A path segment that looks like a date may belong to an article slug on another part of the site.
Assign an owner to every undecided row. A blank destination should not silently turn into a homepage redirect.
Test the first response and the final page
For a moved address, check the first response status, the Location header and the final destination. Then confirm that the final page loads, contains the intended content and has the appropriate canonical. Check for loops and avoid unnecessary redirect chains.
For a retained address, verify that it still returns the intended page directly. For a removed address, check the agreed error response instead of accepting a “not found” message served with status 200.
Add the observed result, check date and any issue to the worksheet. Keep staging checks separate from the final production check, since the hostname and redirect configuration may differ.
Observed example: the redirect exists, but adds a second hop
In our synthetic local demonstration, the old library-hours URL first returned a permanent redirect to an intermediate address. That address then redirected to the intended article. The final page loaded, but the first rule still needed correcting.
| Requested path | Faulty run | Corrected run |
|---|---|---|
| /news/2020/library-hours/ | 301 to /legacy/library-hours/, then another 301 | 301 directly to /news/library-hours/, then 200 |
| /help/account-access | 404 for the variant without a trailing slash | 301 to /help/signing-in/ |
| /about/ | 200 directly | 200 directly |
| /events/retired-registration/ | 410 | 410 |
Download the observed checks (CSV). The first run contains deliberately introduced faults; these are local test responses, not observations from a customer site. Paths ending in a slash and paths without one are separate test inputs. Decide their behavior explicitly rather than assuming the host treats them identically.
For your own map, keep the expected first response and destination beside the observed values. Review the page reached by a merge before approving it: an HTTP check can establish where a request goes, but cannot decide whether the new article answers the old question.
Update the links you control
Redirects help old links continue to work. Navigation and article links in the new website should point directly to the chosen destination. Use the map when rewriting those links and when building the new sitemap.
For Wix to WordPress, also check links embedded in older posts and references to media. A page redirect does not fix an image that still loads from a source host being closed.
Keep the map with the validation report and review new errors after launch. The broader SEO migration plan covers indexing, metadata and monitoring alongside redirects.