HomeAboutServices PortfolioSkillsToolsBlog TestimonialsContact

301 vs 302 redirect: which one to use and when

Key takeaways

  • A 301 redirect is permanent. It transfers link equity to the new URL and tells Google to index the destination instead of the original.
  • A 302 redirect is temporary. It keeps link equity on the original URL and tells Google the old address will return.
  • Google confirmed that 301 redirects pass full PageRank with no loss. There is no ranking penalty for using a 301.
  • Using a 302 for a permanent move delays link equity transfer, causes ranking fluctuations, and keeps the wrong URL in search results.
  • When in doubt, default to 301. The only time a 302 is correct is when the original URL is genuinely coming back.
Two roads diverging through trees, representing the choice between 301 permanent and 302 temporary redirects in SEO

Choosing the wrong redirect type is one of the most common technical SEO mistakes, and it can quietly drain your rankings for months before anyone notices. A 301 redirect and a 302 redirect look identical to users. Both send the browser from one URL to another. But behind the scenes, they send completely different signals to search engines about link equity, indexing, and ranking authority.

Pick the right one and your rankings transfer cleanly to the new URL. Pick the wrong one and Google keeps the old URL in its index, holds your link equity in the wrong place, and shows searchers a URL that no longer exists on your site.

This guide explains exactly what each redirect does, how they affect SEO differently, and gives you a clear decision framework so you never pick the wrong type again.

What are redirects?

A redirect is an instruction that sends users and search engines from one URL to a different URL. When a browser requests a page that has a redirect, the server responds with a status code (like 301 or 302) and the new destination URL. The browser then automatically loads the new URL.

For users, this happens instantly and invisibly. They click a link or type a URL, and they arrive at the destination page without realizing they were redirected. But for search engines, the status code matters enormously because it determines what happens to the original URL's rankings, backlinks, and index status.

HTTP defines several redirect status codes, but the two that matter most for SEO are 301 (permanent) and 302 (temporary). The others (303, 307, 308) serve specific technical purposes that most websites rarely need.

What is a 301 redirect?

A 301 redirect tells browsers and search engines that a page has permanently moved to a new URL. The original URL is gone and will not come back.

When Google encounters a 301:

  1. It transfers the ranking signals and link equity from the old URL to the new one
  2. It removes the old URL from its index
  3. It indexes the new URL in its place
  4. It updates any internal references it finds from the old URL to the new one

The HTTP response looks like this:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page/

A 301 is a clear, permanent signal. It tells Google: "Update your records. This page lives here now."

What is a 302 redirect?

A 302 redirect tells browsers and search engines that a page has been temporarily moved to a different URL. The original URL will return at some point.

When Google encounters a 302:

  1. It keeps the original URL in its index
  2. It retains the ranking authority on the original URL
  3. It shows users the content at the temporary destination
  4. It checks back periodically to see if the original URL has returned

The HTTP response looks like this:

HTTP/1.1 302 Found
Location: https://example.com/temporary-page/

A 302 tells Google: "The original page is coming back. Do not change your records."

Close-up of HTML code on a screen, representing the redirect status codes that guide browsers and search engines

The SEO difference between 301 and 302

The core difference comes down to what happens to link equity and indexing:

Link equity transfer

A 301 redirect transfers link equity (PageRank, backlink authority) from the old URL to the new one. Google confirmed in 2016 that 301 redirects pass full PageRank with no loss. Before that, the SEO community estimated a 10 to 15 percent loss, but that is no longer the case.

A 302 redirect keeps link equity on the original URL. The destination URL does not receive the ranking authority from the old page's backlinks. This makes sense for temporary moves, since the original will return and needs its authority intact.

Indexing behavior

With a 301, Google drops the old URL from its index and adds the new one. Search results show the new URL.

With a 302, Google keeps the old URL in its index. Search results continue showing the old URL, even though users who click it are redirected to the temporary destination. This is correct behavior for a genuinely temporary move, but creates problems when a 302 is used by mistake for a permanent change.

What happens when you use the wrong one

If you use a 302 for a permanent move:

  • The old URL stays in Google's index, showing a stale address in search results
  • Link equity stays on the old URL instead of transferring to the new one
  • The new URL may struggle to rank because it is not receiving the authority it should
  • After a long time, Google may start treating it as a 301 anyway, but this is unpredictable and can take months

If you use a 301 for a temporary move:

  • Google transfers link equity to the temporary page and drops the original from its index
  • When you try to bring the original back, it has lost its authority and must rebuild from scratch
  • You effectively destroy the SEO value of a page you intended to keep

When to use a 301 redirect

Use a 301 whenever the old URL is not coming back. Common scenarios:

Changing a URL slug

You rename /blog/seo-tips-2024/ to /blog/seo-tips/. The old URL is permanently retired. 301 redirect the old slug to the new one so backlinks and bookmarks still work.

Domain migration

You move your entire site from oldsite.com to newsite.com. Every page on the old domain should 301 redirect to its equivalent on the new domain. This is the single most important step in a domain migration because it transfers your entire backlink profile to the new domain.

Merging duplicate pages

You have two pages covering the same topic. You decide to keep one and retire the other. 301 redirect the retired page to the one you are keeping. This consolidates their combined link equity onto one stronger page. This works hand-in-hand with canonical tags, though redirects are the stronger signal.

HTTP to HTTPS migration

Every HTTP URL should 301 redirect to its HTTPS equivalent. This is standard practice and ensures that all link equity flows to the secure version.

Removing a page with a relevant replacement

You discontinue a product but have a successor product page. 301 redirect the old product to the new one. Users who bookmarked the old page or arrive from external links see the closest relevant replacement, and the link equity transfers to the new page.

WWW to non-WWW (or vice versa)

Pick one version and 301 redirect the other. Having both www.example.com and example.com without redirects creates duplicate content across your entire site.

When to use a 302 redirect

Use a 302 only when the original URL is genuinely temporary and will come back. Legitimate scenarios are much less common than 301 use cases:

A/B testing

You temporarily redirect a percentage of traffic from /pricing/ to /pricing-v2/ to test a new layout. The test runs for a few weeks, and then you either keep the original or permanently switch. During the test, a 302 preserves the original page's authority.

Site maintenance

Your site is down for maintenance and you redirect all traffic to a temporary "back soon" page. The original pages will return when maintenance ends. Use a 302 so Google does not drop your real pages from the index.

Seasonal or promotional redirects

You redirect /deals/ to /black-friday-sale/ during November, then switch it back afterward. The deals page is a permanent fixture of your site that temporarily shows different content.

Geo-based redirects

You redirect users from one country to a localized version of a page. The original URL still serves users from other regions. A 302 tells Google that the original is still the primary version.

The golden rule

If you are not 100 percent sure the original URL will return, use a 301. A permanent redirect that turns out to be temporary causes less damage than a temporary redirect that should have been permanent. You can always undo a 301 by redirecting back, but you cannot recover the months of delayed equity transfer caused by an incorrect 302.

What about 307 and 308 redirects?

HTTP also defines 307 and 308 redirects. These are less common but worth understanding:

307 Temporary Redirect

A 307 works like a 302 (temporary) but with one technical difference: it preserves the original HTTP method. If a POST request is redirected with a 302, the browser may convert it to a GET request. A 307 guarantees the POST stays a POST. This matters for forms and API endpoints, not for typical web pages.

For SEO purposes, Google treats 307 the same as 302.

308 Permanent Redirect

A 308 works like a 301 (permanent) but also preserves the HTTP method. Like the 307, it prevents POST-to-GET conversion during the redirect.

For SEO purposes, Google treats 308 the same as 301. Both transfer full link equity and signal a permanent move.

For most websites, 301 and 302 are sufficient. Use 307 and 308 only when you specifically need to preserve the HTTP method during the redirect, which is typically an API or application concern rather than an SEO one.

How to implement redirects

Apache (.htaccess)

# 301 Redirect (permanent)
Redirect 301 /old-page/ https://example.com/new-page/

# 302 Redirect (temporary)
Redirect 302 /sale/ https://example.com/summer-sale/

# Redirect entire domain
RewriteEngine On
RewriteCond %{HTTP_HOST} ^oldsite\.com [NC]
RewriteRule ^(.*)$ https://newsite.com/$1 [R=301,L]

Nginx

# 301 Redirect
rewrite ^/old-page/$ /new-page/ permanent;

# 302 Redirect
rewrite ^/sale/$ /summer-sale/ redirect;

# Redirect entire domain
server {
    server_name oldsite.com;
    return 301 $scheme://newsite.com$request_uri;
}

Cloudflare Workers / Pages

# In _redirects file
/old-page/ /new-page/ 301
/sale/ /summer-sale/ 302

WordPress (PHP)

// In functions.php or a redirect plugin
function custom_redirects() {
    if ($_SERVER['REQUEST_URI'] === '/old-page/') {
        wp_redirect('/new-page/', 301);
        exit;
    }
}

For WordPress sites, redirect plugins like Redirection or the redirect features built into Rank Math and Yoast handle this without touching code.

Next.js

// In next.config.js
module.exports = {
  async redirects() {
    return [
      {
        source: '/old-page/',
        destination: '/new-page/',
        permanent: true, // 301
      },
      {
        source: '/sale/',
        destination: '/summer-sale/',
        permanent: false, // 302
      },
    ];
  },
};

Redirect chains and loops

Two redirect problems that silently damage SEO:

Redirect chains

A redirect chain occurs when URL A redirects to URL B, which redirects to URL C, which redirects to URL D. Each hop adds latency and wastes crawl budget. Google follows up to 10 redirects in a chain, but link equity can diminish with each hop, and longer chains increase the chance that Google stops following before reaching the final destination.

Chains typically accumulate over time as you redirect old pages to newer pages and then redirect those to even newer pages. The fix is straightforward: update all redirects to point directly to the final destination URL. URL A should redirect to URL D, not through B and C.

Redirect loops

A redirect loop occurs when URL A redirects to URL B, and URL B redirects back to URL A. The browser bounces between them indefinitely until it gives up and shows an error. This completely breaks access to both pages for users and search engines.

Loops usually happen during misconfigured HTTP-to-HTTPS or WWW-to-non-WWW redirects, where the server-level redirect conflicts with an application-level redirect. Test every redirect after implementing it to catch loops immediately.

8 redirect mistakes that cost rankings

1. Using 302 for permanent moves

The most common mistake. You change a URL permanently but use a 302 because it is the default in some CMS platforms and frameworks. Google keeps the old URL indexed and holds link equity there instead of transferring it. Use 301 for anything permanent.

2. Not redirecting at all

Deleting a page without setting up a redirect returns a 404 error. Every backlink pointing to that page loses its value entirely. If the page had any ranking authority, that authority disappears. Always redirect deleted pages to the most relevant replacement.

3. Redirecting to the homepage

When you retire a page and cannot find a close match, redirecting to the homepage seems logical. But Google treats this as a "soft 404." It signals that the content is gone and there is no real replacement, which means Google ignores the redirect for ranking purposes. The link equity does not transfer. Redirect to the most topically relevant page, even if it is not a perfect match.

4. Forgetting redirects during migration

Launching a redesigned site with new URL structures and forgetting to set up redirects from the old URLs is a common disaster. Every old URL returns a 404, all backlinks break, and rankings can drop 50 percent or more overnight. Create a complete redirect map before any migration.

5. Redirect chains longer than two hops

Each time you restructure URLs, check whether older redirects are creating chains. A single redirect from old to new is fine. A chain of four or five redirects slows page load, wastes crawl budget, and can cause Google to stop following the chain before reaching the final page.

6. Redirecting to a page with different content

Redirecting a page about "dog training" to a page about "cat food" confuses users and search engines. Google may interpret this as a soft 404 because the content does not match what the original URL's backlinks describe. Redirects should go to the most relevant replacement content.

7. Using JavaScript redirects

A JavaScript redirect (window.location.href = '/new-page/') does not send a proper HTTP status code. Google may or may not follow it, and it does not clearly signal whether the move is permanent or temporary. Always use server-side redirects (HTTP 301 or 302) instead of client-side JavaScript redirects.

8. Leaving old 302 redirects in place indefinitely

A 302 that has been in place for two years is not temporary. Google may eventually treat it as a 301, but "eventually" is unpredictable. Audit your redirects periodically and convert any long-standing 302s to 301s if the original URL is not coming back.

How to audit your redirects

Regular redirect audits catch problems before they compound. Here is a practical process:

Step 1: Crawl your site

Use Screaming Frog, Sitebulb, or Ahrefs Site Audit to crawl your site and identify all redirects. Export the results including the source URL, destination URL, status code, and number of hops in any chains.

Step 2: Identify incorrect redirect types

Look for 302 redirects that have been in place for more than a few weeks. If the original URL is not coming back, convert them to 301s. Also look for 301 redirects on pages that should be temporary (seasonal pages, A/B tests).

Step 3: Find and fix chains

Filter for redirect chains (any redirect where the destination is also a redirect). Update each chain so the first URL points directly to the final destination. This is especially important after multiple rounds of URL changes.

Step 4: Check for broken redirects

Verify that every redirect destination returns a 200 status code. A redirect pointing to a 404 page or another redirect that also 404s wastes link equity and breaks the user experience.

Step 5: Monitor in Google Search Console

Check the "Pages" report for redirect-related issues. Google flags redirect errors, long redirect chains, and URLs that return unexpected status codes. Address these as part of your regular SEO audit process.

Frequently asked questions

What is the difference between a 301 and 302 redirect?

A 301 redirect signals a permanent move and transfers link equity to the new URL. Google drops the old URL from its index and replaces it with the new one. A 302 redirect signals a temporary move and keeps link equity on the original URL. Google keeps the old URL indexed and expects it to return. The key decision factor is whether the original URL is coming back. If it is not, use a 301.

Do 301 redirects pass full link equity?

Yes. Google confirmed in 2016 that 30x redirects no longer lose PageRank. A 301 redirect passes the full link equity from the old URL to the new one. Before 2016, estimates suggested a 10 to 15 percent loss, but that is no longer the case. There is no ranking penalty for using a 301 redirect.

What happens if I use a 302 redirect instead of a 301?

Google will initially keep the old URL indexed and hold its ranking authority there. Over time, if the 302 stays in place long enough, Google may start treating it as a 301, but this is unpredictable and can take months. During that time, the old URL may appear in search results instead of the new one, and the new URL may struggle to rank without the transferred link equity.

When should I use a 302 redirect?

Use a 302 redirect only when the move is genuinely temporary and you plan to bring the original URL back. Common use cases include A/B testing, site maintenance pages, seasonal promotions, and geo-based redirects. If you are not certain the original will return, default to a 301.

Need help setting up redirects correctly or fixing redirect issues on your site? I offer technical SEO services that include redirect audits, migration planning, and redirect chain cleanup. Or start with a full SEO audit to identify all the redirect issues affecting your rankings. Get in touch to discuss your project.

B
Bikesh Tamang
SEO Specialist & front-end developer in Kathmandu, Nepal, helping businesses rank higher and turn traffic into customers. More about me →