01
Find the authority that emits the redirect
Response headers showed that WordPress, not the CDN or web server, was issuing the redirect. The theme read an external URL field on selected content and called the standard redirect function without an explicit status, so the platform returned its temporary default.
That single hook explained internal restructuring links, campaign destinations and external resources. Fixing a spreadsheet row by row would have hidden the shared cause.
02
Classify permanence before changing code
A 301 says that the old URL has a stable replacement. A 302 says that the move is temporary. Internal content consolidation usually wants permanence, while campaigns and externally managed assets may have different ownership or lifecycle rules.
The audit was grouped by destination type and content behaviour. That made the status change an editorial and product decision, not only a technical one.
03
Verify the whole redirect contract
The QA path checked the status code, Location header, final status, redirect count and canonical destination. It also checked that editors could still manage the custom field and that empty values did not create loops.
A redirect is healthy only when users, crawlers and future editors all arrive at the same intended result.
04
Keep future redirects out of theme debt
Redirect intent belongs in a documented content or platform layer with validation and ownership. When it is buried in a theme hook, an editor cannot see the HTTP behaviour they are creating.
The smallest code change can still justify a larger content audit when one field controls many public URLs.