Managing Redirects
When and how to set up URL redirects — plugin-managed vs server-level.
When to redirect
Set up a redirect any time a URL changes:
- A page slug is renamed
- A page is removed or consolidated into another
- A provider leaves WHA (point their page to the provider listing)
- An old URL structure is replaced (e.g. the redesign migrated many legacy paths)
Broken URLs hurt SEO and the patient experience. The Redirection plugin tracks 404s, so check it now and then for URLs that need redirects.
Redirection plugin (wp-admin)
Most redirects run through the Redirection plugin in wp-admin at Tools → Redirection.
To add one:
- Go to Tools → Redirection
- Enter the Source URL (the old path, e.g.
/old-page/) - Enter the Target URL (the new path, e.g.
/new-page/) - Set the HTTP code — 301 (permanent) for most cases, 302 (temporary) for short-term redirects
- Save
The plugin handles pattern matching (regex), URL parameters and logging. It also shows 404 logs so you can spot URLs that need redirects.
Redirect Status Codes
These come up a lot, and they pair up. What matters for SEO is permanent vs temporary, not the exact number.
| Type | Codes | Use when | What Google does |
|---|---|---|---|
| Permanent | 301, 308 | A URL has moved for good | Indexes the new URL and passes ranking signals to it |
| Temporary | 302, 307 | The move is short-lived | Keeps the original URL indexed |
Within each pair the codes are essentially the same for search. 301 and 308 both mean "permanent"; 302 and 307 both mean "temporary." The only real technical difference is that 307 and 308 preserve the HTTP method (a POST stays a POST), while 301 and 302 historically allowed it to change. For everyday content redirects, use 301.
Google uses the redirect type as a canonicalization signal and groups them the same way.
Redirect CSVs
The redirects/ directory in the repo holds CSV files from the redesign migration:
redirect-rules.csv— Active redirect rulesurl-mapping.csv— Full URL mapping from the old site to the new one (~89k rows)
These drove the initial migration and stick around for reference. Add new redirects through the Redirection plugin, not these files.
Server-level redirects
Some redirects run at the Nginx level in src/nginx.conf:
/wp-admin→/wp/wp-admin//wp-login.php→/wp/wp-login.php
These are structural and can't change. They exist because WordPress core lives in the /wp/ subdirectory. Don't remove them.
The redirects.php mu-plugin handles additional server-level redirects that need to run before WordPress fully loads.
Best practices
- Always use the Redirection plugin for content redirects. It's auditable, searchable and doesn't need a deploy.
- Use 301 (permanent) unless the redirect is genuinely temporary
- Don't chain redirects. If
/aredirects to/band/bto/c, point/astraight at/c. - Check 404 logs now and then in Tools → Redirection to catch broken links