← Back to Blog
Guide

What Is a 301 Redirect? (And When to Use 302, 307, 308)

April 14, 202611 min readBulk URL Checker Team

Redirects are one of the most important tools in web development and SEO, but choosing the wrong type can quietly cost you traffic and rankings. A 301 redirect and a 302 redirect look identical to users — both send them from one URL to another. But to search engines, the difference is significant. One tells Google to transfer all ranking power to the new URL. The other tells Google to keep the old URL in its index.

This guide covers the four HTTP redirect status codes you need to know: 301, 302, 307, and 308. You will learn exactly what each one does, when to use it, and how to implement it correctly. If you have ever wondered whether your redirects are helping or hurting your site, this is the reference you need.

What Is a Redirect?

A redirect is an instruction from a web server that sends browsers and search engine crawlers from one URL to a different URL. When you type a URL into your browser or click a link, the server can respond with a redirect status code (in the 3xx range) along with a Location header that specifies where to go instead.

Redirects happen for many reasons: a page moved to a new URL, a website migrated to a new domain, an old URL structure was replaced with a cleaner one, or a temporary promotion page needs to point somewhere else. The redirect status code tells the browser — and search engines — whether this move is permanent or temporary, and that distinction has real consequences for SEO.

For a broader overview of all HTTP status codes including redirects, see our complete guide to HTTP status codes.

301 Redirect: Moved Permanently

A 301 redirect tells browsers and search engines that a page has permanently moved to a new URL. The original URL should no longer be used, and all future requests should go to the new location.

This is the most common redirect type and the one you will use most often. When Google encounters a 301 redirect, it does three things:

  1. Sends users to the new URL
  2. Transfers the ranking signals (link equity, PageRank) from the old URL to the new one
  3. Eventually removes the old URL from its index and replaces it with the new one

SEO Impact of 301 Redirects

The SEO implications of a 301 redirect are significant. Google has confirmed that 301 redirects pass full PageRank to the destination URL. This means if your old page had backlinks from authoritative sites, that ranking power transfers to the new URL when you use a 301.

However, this transfer is not instant. After implementing a 301 redirect, expect Google to take days to weeks to fully process the change. During this period, you may see temporary ranking fluctuations. This is normal and typically resolves as Google consolidates the signals.

When to Use a 301 Redirect

  • Changing a URL slug: You renamed /old-page-name to /new-page-name
  • Domain migration: Moving from oldsite.com to newsite.com
  • Consolidating duplicate content: Merging two similar pages into one
  • Switching from HTTP to HTTPS: Redirecting all HTTP URLs to their HTTPS equivalents
  • Removing www: Standardizing on example.com instead of www.example.com (or vice versa)
  • Site restructuring: Changing your URL hierarchy, such as moving from /blog/2026/post to /blog/post

Key Rule: If the Move Is Permanent, Use 301

Whenever you change a URL and the old URL will never come back, use a 301 redirect. This is the safest choice for preserving your search rankings and ensuring link equity flows to the correct destination. When in doubt between 301 and 302, the answer is almost always 301.

302 Redirect: Found (Temporary)

A 302 redirect tells browsers and search engines that a page has temporarily moved to a different URL. The original URL is still valid, and the client should continue using it for future requests.

The key difference from a 301 is the word “temporarily.” When Google encounters a 302, it keeps the original URL in its index rather than replacing it with the new one. In theory, a 302 does not pass link equity to the destination URL because the move is not permanent.

When to Use a 302 Redirect

  • A/B testing: Temporarily sending a percentage of traffic to a variant page
  • Maintenance pages: Temporarily redirecting to a “we will be right back” page
  • Geolocation redirects: Sending users to a country-specific version of a page based on their location
  • Seasonal content: Temporarily redirecting a product page to a sale page, with plans to revert
  • Login gates: Redirecting unauthenticated users to a login page before returning them to the original URL

Warning: 302s That Should Be 301s

One of the most common redirect mistakes is using a 302 when the move is actually permanent. Many CMS platforms default to 302 redirects. If you moved a page permanently and used a 302, Google may keep the old URL in its index indefinitely and may not pass full link equity to the new URL. Google has stated it will eventually treat long-running 302s as 301s, but relying on this is risky. Always use the correct code from the start.

307 Redirect: Temporary Redirect (Method Preserved)

A 307 redirect is the HTTP/1.1 replacement for the 302 status code. It serves the same purpose — indicating a temporary redirect — but with one critical technical difference: the HTTP method used in the original request is guaranteed to be preserved.

Why does this matter? With a 302 redirect, browsers historically changed POST requests to GET requests when following the redirect. This was technically a violation of the HTTP specification, but it became standard browser behavior. The 307 status code was introduced to fix this ambiguity: when a server returns a 307, the browser must use the same HTTP method (GET, POST, PUT, etc.) for the redirected request.

When to Use a 307 Redirect

  • Form submissions: When a POST request needs to be temporarily redirected to a different endpoint while preserving the POST method and body
  • API redirects: When an API endpoint temporarily moves and clients must preserve the original HTTP method
  • HSTS redirects: Browsers use 307 internally for HTTP Strict Transport Security redirects from HTTP to HTTPS

For standard webpage redirects where the original request is a GET (which is the vast majority of page visits), 307 and 302 behave identically. The distinction only matters when non-GET methods like POST are involved.

SEO impact: Google treats 307 the same as 302. The original URL stays in the index, and the redirect is considered temporary. For SEO purposes, there is no difference between 302 and 307.

308 Redirect: Permanent Redirect (Method Preserved)

A 308 redirect is the permanent counterpart to 307, just as 301 is the permanent counterpart to 302. It indicates that a resource has permanently moved to a new URL, and — like 307 — it guarantees that the HTTP method will not change during the redirect.

The 308 status code was defined in RFC 7538 to address the same method-changing ambiguity for permanent redirects. With a 301, browsers may change a POST request to a GET. With a 308, the POST method (and request body) must be preserved.

When to Use a 308 Redirect

  • Permanent API endpoint changes: When an API endpoint permanently moves and clients must continue using the same HTTP method
  • Form action URLs: When a form submission endpoint permanently changes and POST requests must be preserved

For typical webpage redirects (GET requests), 308 and 301 are functionally identical. Google treats 308 the same as 301 for indexing and link equity purposes. Unless you specifically need method preservation on a permanent redirect, 301 is the standard choice because it has broader support across older clients.

Comparison Table: 301 vs 302 vs 307 vs 308

Here is a side-by-side comparison of all four redirect types:

Feature301302307308
TypePermanentTemporaryTemporaryPermanent
HTTP MethodMay change to GETMay change to GETPreservedPreserved
Passes Link EquityYes (full)No (or partial)No (or partial)Yes (full)
Indexed URLNew URLOriginal URLOriginal URLNew URL
Browser CachingCached by defaultNot cached by defaultNot cached by defaultCached by default
HTTP VersionHTTP/1.0+HTTP/1.0+HTTP/1.1+HTTP/1.1+
Common Use CaseURL changes, migrationsA/B tests, temp pagesPOST-preserving tempPOST-preserving perm

Check Your Redirects in Bulk

Upload a list of URLs and see every status code, redirect chain, and final destination instantly. 300 free checks, no credit card required.

Check URLs Free →

How Redirects Affect SEO: Link Equity and Indexing

Understanding how redirects pass (or fail to pass) link equity is essential for any SEO strategy. Here is what happens behind the scenes:

Permanent Redirects (301, 308) and Link Equity

When you set up a 301 or 308 redirect, you are telling Google: “This page has permanently moved. Transfer everything — rankings, backlinks, authority — to the new URL.” Google processes this by consolidating signals from the old URL onto the new one. Over time, the old URL drops out of the index entirely.

This is why 301 redirects are critical during website migrations. Without them, every backlink pointing to your old URLs becomes worthless. The link equity those backlinks carried disappears instead of transferring to your new pages.

Temporary Redirects (302, 307) and Link Equity

Temporary redirects send a different signal: “This page will come back. Keep the original URL in the index.” Because the move is temporary, Google does not fully transfer link equity to the destination URL. The authority stays with the original URL.

This is the correct behavior when the redirect is genuinely temporary. But if you accidentally use a 302 for a permanent move, you are telling Google to hold onto a URL that will never return — and the link equity sits in limbo instead of flowing to your new page.

How to Implement Redirects

Here are code examples for implementing redirects on the most common platforms:

Apache (.htaccess)

# 301 Permanent Redirect
Redirect 301 /old-page https://example.com/new-page

# 302 Temporary Redirect
Redirect 302 /temp-page https://example.com/other-page

# Using RewriteRule for pattern-based redirects
RewriteEngine On
RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=301,L]

Nginx

# 301 Permanent Redirect
server {
    location /old-page {
        return 301 https://example.com/new-page;
    }

    # 302 Temporary Redirect
    location /temp-page {
        return 302 https://example.com/other-page;
    }

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

Next.js (next.config.js)

// next.config.js
module.exports = {
  async redirects() {
    return [
      {
        source: '/old-page',
        destination: '/new-page',
        permanent: true, // 308 by default in Next.js
      },
      {
        source: '/temp-page',
        destination: '/other-page',
        permanent: false, // 307 by default in Next.js
      },
    ]
  },
}

Note that Next.js uses 308 for permanent redirects and 307 for temporary redirects by default, rather than 301 and 302. For SEO purposes, this is functionally equivalent. If you specifically need a 301, you can use the statusCode property instead of permanent.

Common Redirect Mistakes

Even experienced developers and SEOs make redirect mistakes. Here are the ones that cause the most damage:

1. Using 302 When You Mean 301

This is the single most common redirect mistake. Many server configurations and CMS platforms default to 302 redirects. If you changed a URL permanently and used a 302, Google may keep the old URL indexed and may not transfer link equity to the new page. Always verify the redirect type after implementation.

2. Redirect Chains

A redirect chain occurs when URL A redirects to URL B, which redirects to URL C, which may redirect again. Each hop adds latency, wastes crawl budget, and introduces a risk of the chain breaking. Google will follow up to about 10 redirects before giving up, but best practice is to keep every redirect to a single hop.

Redirect chains commonly build up over time as URLs get moved repeatedly without updating the original redirects. For example, during a migration you redirect /page-v1 to /page-v2. A year later, you rename it to /page-v3 and add another redirect from /page-v2 to /page-v3. Now /page-v1 goes through two hops. The fix is to update the first redirect to point directly to /page-v3.

Learn how to detect and fix these in our guide on finding and fixing redirect chains.

3. Redirect Loops

A redirect loop occurs when URL A redirects to URL B, and URL B redirects back to URL A. The browser gets stuck in an infinite cycle and eventually displays an error. Redirect loops are caused by conflicting rules — for example, one rule redirects HTTP to HTTPS while another redirects HTTPS back to HTTP.

Loops are easy to create when multiple redirect rules interact. Always test your redirects after implementation to confirm they resolve to a final 200 status code.

4. Not Redirecting All URL Variations

When you move a page, you need to redirect every variation of the old URL that might be linked to or indexed: with and without trailing slashes, with and without www, HTTP and HTTPS versions, and any query string variations that had traffic. Missing even one variation means lost link equity from backlinks pointing to that version.

5. Removing Redirects Too Early

Some teams remove 301 redirects after a few months, assuming Google has fully processed the change. This is risky. External backlinks pointing to the old URL will break, losing their link equity. Keep 301 redirects in place indefinitely, or at minimum for one to two years after the change. The performance cost of maintaining redirects is negligible.

How to Check Your Redirects

Verifying your redirects are working correctly requires checking several things: the status code, the redirect chain (if any), and the final destination URL. Here are the best ways to do this:

  1. Use a redirect checker: Our redirect checker tool shows the full redirect chain for any URL, including every hop and the final status code.
  2. Check in bulk: If you are auditing redirects after a migration or site restructure, upload your URL list to check hundreds of redirects at once and identify chains, loops, and incorrect status codes.
  3. Command line: Run curl -IL https://example.com/old-page to see every redirect hop and the final response. The -L flag follows redirects, and -I shows only headers.
  4. Browser DevTools: Open the Network tab in Chrome DevTools, navigate to the URL, and look for 301/302 status codes in the response. Enable “Preserve log” to see the full redirect chain.

After a site migration, checking every redirect is not optional — it is the single most important step in preserving your rankings. See our website migration checklist for a complete walkthrough.

Audit Your Redirects After Migration

Upload your old URLs and verify every redirect lands on the right page with the right status code. Catch broken redirects, chains, and loops before they hurt your rankings.

Start Free Redirect Audit →

Summary: Which Redirect Should You Use?

Choosing the right redirect comes down to two questions: Is the move permanent or temporary? Do you need to preserve the HTTP method?

  • 301 — Use for all permanent URL changes. This is the default choice for SEO. It passes full link equity and tells search engines to index the new URL.
  • 302 — Use for genuinely temporary moves where the original URL will return. Keep the original URL in the index.
  • 307 — Use instead of 302 when you need to guarantee the HTTP method (POST, PUT) is preserved during the redirect. Identical to 302 for SEO.
  • 308 — Use instead of 301 when you need method preservation on a permanent redirect. Identical to 301 for SEO. Next.js uses this by default for permanent redirects.

For the vast majority of website redirects, 301 is the correct choice. Use it for domain migrations, URL changes, HTTPS upgrades, and page consolidation. Only reach for 302 when the move is genuinely temporary, and only reach for 307 or 308 when method preservation matters.

Whatever redirect type you choose, verify it is working correctly. Use a redirect checker to confirm the status code, follow the chain, and ensure users and search engines reach the right destination.

Related Articles

How to Check for 404 Errors on Your Website

Find and fix 404 errors hurting your SEO with Google Search Console, crawlers, and bulk checkers.

Free vs Paid Broken Link Checkers

When free tools are enough and when you need a paid broken link checker.

How to Find Broken Links on Any Website (2026 Guide)

Free methods, browser tools, and bulk checking to find and fix broken links on any website.

We use analytics cookies to improve your experience. Opt out anytime in Cookie Settings. Privacy Policy

Settings