301 vs 302 Redirects: The One-Character Mistake That Costs You Rankings
301 vs 302 redirects explained: which one passes ranking signals, which one doesn't, and how to check which type your site is actually using.
DidYouSEO Team··7 min read
A developer moves a page, sets up a redirect so the old link doesn't 404, and ships it. Six weeks later the new URL still hasn't picked up the old page's rankings. Nothing else changed — same content, same title, same internal links. The only difference is one digit in a status code nobody checked: the redirect was a 302, not a 301.
That one-character difference is the most common technical SEO mistake that looks like it isn't a mistake at all. The page loads. The redirect works. Visitors land in the right place. And search engines still treat the old and new URL as two separate pages competing against each other instead of one page inheriting the other's authority.
Here's what the 301 vs 302 redirects distinction actually means, why it matters more than most technical checks, and how to find out which one your site is quietly running.
What a 301 redirect actually does
A 301 status code means "moved permanently." It tells browsers and search engines that the old URL is gone for good and the new URL should be treated as its replacement — Google's own documentation on site moves confirms a 301 passes the vast majority of ranking signals (PageRank, topical relevance, link equity) from the old URL to the new one over time.
Practically: if /old-page had backlinks, ranked #4 for a keyword, and had accumulated two years of relevance signals, a 301 to /new-page transfers nearly all of that. It's the correct choice any time a URL change is intended to be final — a site migration, a URL restructure, merging two pages into one, or fixing a broken slug.
What a 302 redirect actually does
A 302 means "found" — historically "moved temporarily." It tells search engines the move is short-term and the old URL should stay indexed as the canonical version, because it expects the content to come back. That's the entire point of a 302: seasonal pages, A/B test variants, a maintenance page standing in for a few hours, a country redirect based on IP that shouldn't override the canonical URL.
The problem is that 302s get used by default far more often than they're actually appropriate. Most CMS platforms, some .htaccess generators, and a lot of copy-pasted redirect code default to 302 unless someone deliberately changes it to 301. That default quietly breaks the "permanent move" signal on redirects that were meant to be permanent.
301 vs 302: why the wrong one costs you rankings
Search engines take a 302 at face value: temporary means temporary, so the old URL keeps its authority and stays the one indexed. If the redirect has actually been live for months — which is exactly what a 302 misused as a permanent redirect looks like — the new page never fully inherits the old page's ranking signals. You end up with:
- The old URL still showing in search results, sending visitors to a redirect instead of directly to the content
- Ranking signals split or delayed across two URLs instead of consolidated onto one
- A slower, weaker version of the same authority transfer a 301 would have done immediately
Ahrefs' guide to redirects puts it plainly: 302s are appropriate for genuinely temporary changes, and using one for a permanent move is one of the most common redirect mistakes site owners make without realizing it — because functionally, to a human visitor, a 301 and a 302 look identical. The browser lands in the same place either way. The difference only shows up to search engines, which is exactly why it goes unnoticed.
How to check which type your site is using
You can't tell a 301 from a 302 by clicking a link — the redirect happens silently and you land on the new page either way. You need to see the actual HTTP status code, which means checking either:
- Browser dev tools → Network tab → look at the status code on the redirected request (301 or 302, not the final 200)
- A command-line check with
curl -Iagainst the old URL - A redirect checker that follows the full chain and shows every hop's status code, not just the final destination
That last option matters for a second reason: redirects often chain. /old-page redirects to /older-page which redirects to /new-page — two hops instead of one, each one losing a small amount of link equity along the way. Google recommends keeping redirect chains under 5 hops, but the honest best practice is one direct redirect, full stop. Every extra hop is authority leaking for no reason.
The redirect types worth knowing beyond 301 and 302
| Code | Meaning | When to use it | |---|---|---| | 301 | Moved permanently | Site migrations, URL restructures, merged pages — anything final | | 302 | Found (temporary) | A/B tests, short-lived promotions, maintenance pages | | 307 | Temporary redirect (strict) | Like a 302 but preserves the original request method — mostly relevant to APIs, not typical page redirects | | 308 | Permanent redirect (strict) | Like a 301 but preserves the original request method |
For nearly every content or page-move scenario a normal site owner deals with, the choice is between 301 and 302 — the 307/308 pair mostly matters to developers handling form submissions or API calls, not blog posts and landing pages. MDN's HTTP status code reference is the definitive technical source if you need the exact spec behavior for any of the four.
Common mistakes with redirects
Using 302 as the default and forgetting to change it. This is the single most common cause of the problem described above. If a redirect is meant to be permanent, explicitly set it to 301 — don't trust the platform default.
Redirecting everything to the homepage instead of the closest matching page. A blanket homepage redirect for every deleted URL tells search engines nothing about relevance, and it's a worse user experience than a targeted redirect to the most similar live page.
Leaving old redirects in place for years after they're no longer needed. Redirect chains accumulate over site redesigns. A URL from a 2022 redesign redirecting to a 2024 redesign URL redirecting to the current 2026 URL is a 3-hop chain nobody planned — check your site for broken and chained redirects periodically, not just when something visibly breaks.
Not checking after a migration. A migration plan often gets the redirect type right in a spreadsheet and wrong in the actual server config, because config syntax varies by platform (Nginx, Apache, Next.js next.config.js, a hosting provider's redirect rules UI) and it's easy to specify a 302 by accident in at least one of them. Always verify the live status code after deploying, not just the mapping document. Search Engine Journal's redirect audit checklist is a solid reference for verifying an entire migration's redirects at once instead of spot-checking a handful.
FAQ
What's the difference between a 301 and 302 redirect? A 301 tells search engines a page has moved permanently and transfers nearly all its ranking signals to the new URL. A 302 tells search engines the move is temporary, so the old URL keeps its ranking authority and stays indexed as canonical.
Does a 302 redirect hurt SEO? Not inherently — a 302 used correctly for a genuinely temporary change is fine. It becomes a problem when a permanent move is left as a 302, because ranking signals don't fully transfer to the new URL the way they would with a 301.
How do I check if my redirects are 301 or 302?
You can't tell from the browser alone since both land you on the same final page. Check the actual HTTP status code with browser dev tools, a curl -I command, or a redirect checker tool that shows every hop in the chain.
How many redirects can be chained together? Google recommends keeping chains under 5 hops, but each additional hop loses a small amount of link equity and adds load time. One direct redirect is best practice whenever possible.
Check your redirects before they cost you more rankings
Redirect mistakes are invisible in normal browsing and only show up when you check the actual status codes — which is exactly why they go unfixed for years. Run your URLs through the free redirect checker to see every hop and status code in the chain, and fix any 302 that should have been a 301 months ago.
See how your site scores - free
30+ SEO checks plus AI visibility. No credit card required.