Use a server-side permanent redirect (301 or 308) for permanent moves.
- Why
- Google treats a permanent redirect as a strong signal that the target should be the canonical. A temporary redirect (302 or 307) is a weaker signal and the old URL is more likely to stay in results.
- Verify
- Request each old URL and check the status code and Location header, not just where the browser ends up.
- Failure mode
- A platform sends 302 by default and the old URLs stay indexed for months.
- Sources
- Redirects and Google Search