Every redirect tells search engines two things: where to send visitors next, and whether the move is permanent or temporary. Get that second part wrong and you can quietly lose ranking signal on pages that used to perform - the page itself keeps working fine for visitors, so the mistake stays invisible until rankings drop.
The Difference That Actually Matters
- 301 (Moved Permanently) tells search engines the old URL is gone for good and the new one should inherit its rankings, links, and authority. Use this whenever a page has moved and isn't coming back at the old address.
- 302 (Found / Moved Temporarily) tells search engines the move is short-term - the old URL should stay indexed and keep its ranking signals, because it'll be back. Use this for genuinely temporary situations: an A/B test variant, a country-specific redirect during a sale, or a page taken down briefly for maintenance.
The practical effect: a 301 consolidates ranking signal onto the new URL. A 302 is supposed to leave it on the old one. That's the entire decision - is this move permanent, or not?
Where This Goes Wrong on Small Business Sites
- Site migrations and redesigns left on 302s - a developer sets up redirects to get the new site live quickly and never circles back to convert them to 301s once the move is confirmed permanent.
- CMS or platform defaults - some site builders and plugins default every redirect to a 302 regardless of intent, so the correct code has to be set manually.
- Old promotional URLs never cleaned up - a 302 set up for a seasonal campaign page, still redirecting a year later because nobody remembered it existed.
- Redirect chains - a 301 that points to another redirect instead of the final destination. Each hop in the chain adds a small delay and, if the chain includes a 302 anywhere in the middle, can muddy which permanence signal actually reaches the end URL. Point every redirect straight at its final destination.
How to Check What You've Actually Got
- Check the status code, not just where the redirect lands. A browser's network tab (or
curl -I <url>) shows the actual HTTP status - the page loading correctly tells you nothing about whether it's a 301 or a 302. - List your redirects and check each one's intent. If a "temporary" redirect has been live for months, it's not temporary - convert it to a 301.
- Follow chains to their end. If URL A redirects to B, which redirects to C, update A to point straight at C and remove the middle hop.
The Fast Way to Check Yours
Auditing redirect codes by hand means checking every changed URL individually. AuditCrow's free scan flags redirect issues, including chains and mismatched status codes, as part of its crawlability review, alongside the rest of the technical fundamentals in our technical SEO checklist. If you're dealing with old URLs that return the wrong status entirely, see our soft 404s guide for the related failure mode.