# 301 vs 302 Redirects: Which One to Use and When

Author: Fatih Emin Çakıroğlu (https://fatihemincakiroglu.com)
Source: https://fatihemincakiroglu.com/en/blog/301-302-yonlendirme
Published: 2026-10-20
Updated: 2026-10-20

Changing a URL, removing a product or moving to HTTPS means connecting the old address to the new one. The wrong redirect type can keep the old URL in search results for months or stop the new page from receiving the signals you expect.

This article covers the difference between 301, 302, 307 and 308, how Google interprets them, chain and loop problems, and what to do when a server-side redirect is not possible.

> Short answer: Use 301 (or 308) when the change is permanent and 302 (or 307) when it is temporary. Google treats a permanent redirect as a strong signal that the target should become the canonical URL; with a temporary redirect, the old URL usually stays in search results.

## What is the difference between 301 and 302?

Google's redirects documentation splits the codes into two groups. With a permanent redirect, the new URL is expected to show in results; with a temporary one, the indexing pipeline does not use the redirect as a canonical signal and the source page may stay in results.

| Method | Google's interpretation | Typical use |
| --- | --- | --- |
| 301 Moved Permanently | Permanent, strong signal | URL change, domain move, HTTPS migration |
| 308 Permanent Redirect | Permanent, same as 301 | Permanent move where the request method must be kept |
| 302 Found | Temporary, weak signal | Short campaign, maintenance, A/B test |
| 307 Temporary Redirect | Temporary, same as 302 | Temporary move where the method must be kept |
| 303 See Other | Temporary | Result page after a form submission |
| Instant meta refresh (0 s) | Permanent | When you have no server access |
| Delayed meta refresh | Temporary | Not recommended for SEO |

The mistake I see most in practice is a 302 on a permanent URL change. Some CMS plugins create 302s by default, so always test the status code.

## When to use 301 and when to use 302

**Use 301 / 308**
- Slug or folder structure changed
- Two similar pages were merged
- HTTP to HTTPS or www to non-www
- Domain change
- A permanently removed product has a direct replacement

**Use 302 / 307**
- A few days of maintenance
- Temporary stand-in for a page that will return
- Time-limited campaign page
- Redirect-based A/B test
- Flows such as login or cart steps that need no indexing

The deciding question is simple: will this redirect ever be reverted? If not, it is permanent. Google also recommends permanent redirects only when you are sure the redirect will not be reverted.

In e-commerce, do not rush with out-of-stock products. If the item will return, keep the page live and state availability; if it is gone for good, 301 to a close replacement or return 404/410. I often see hundreds of products redirected to the homepage get reported as soft 404 in Search Console. For catalogue structure, see [e-commerce SEO consulting](https://fatihemincakiroglu.com/en/industries/ecommerce-seo-consulting).

## When do you need 307 and 308?

Under the HTTP standard, 307 and 308 require the client to resend the request to the new address without changing its method (for example POST); with 301 and 302, browsers may turn a POST into a GET.

For SEO, Google's HTTP status code documentation treats 307 as equivalent to 302 and 308 as equivalent to 301. For normal pages, 301 and 302 are enough; if your developers use 308, it is processed as a permanent redirect too.

> **The 307 you see in your browser** On a site with HSTS, the browser upgrades HTTP to HTTPS before contacting the server and dev tools may show this as an internal 307. To see what your server actually returns, check with a tool such as curl or with a site crawler.

## How to clean up redirect chains and loops

A chain is when A redirects to B and B to C. According to Google's documentation, its crawlers follow up to 10 redirect hops by default. Still, every extra hop adds load time and risk, so the goal is always a single hop.

In a loop, A goes to B and B returns to A, so the page never loads. Loops usually come from two conflicting rules: one adds a trailing slash, the other removes it. The rules below send the old slug to the final address, protocol and host included, in one hop:

```
# Apache (.htaccess)
Redirect 301 /eski-urun/ https://example.com/urunler/yeni-urun/

# Nginx
location = /eski-urun/ {
    return 301 https://example.com/urunler/yeni-urun/;
}
```

Chains pile up when a second migration follows the first and old rules stay unchanged. Point every URL in the old map directly to its final target and update internal links too. Linking internally to a redirecting URL means one more unnecessary hop.

## When to use meta refresh and JavaScript redirects

Google describes server-side redirects as the method with the highest chance of being interpreted correctly. The other methods are for when you have no server access.

- **Server-side (3xx)**: First choice. Set up via .htaccess, Nginx, CDN rules or a CMS redirect module.
- **Meta refresh**: Instant (0 seconds) is read as permanent, delayed as temporary. Useful on static hosting.
- **JavaScript**: Google recommends it only when server-side and meta refresh are impossible; if rendering fails, it may never be seen.
- **Visible link**: If nothing else works, leave an explained link to the new address; Google calls this a crypto redirect and treats it as a last resort.

I often find client-side redirects on React or Next.js sites. For how rendering works, see [JavaScript SEO](https://fatihemincakiroglu.com/en/blog/javascript-seo).

## Checklist for writing redirect rules

- [ ] Is it 301/308 for permanent changes and 302/307 for temporary ones?
- [ ] Does every old URL reach its final target in a single hop?
- [ ] Does the target return 200 and actually replace the old page's content?
- [ ] Have internal links, canonical tags, hreflang and the sitemap been updated?
- [ ] Have query parameters and uppercase/lowercase variants been tested?
- [ ] After going live, did a site crawler check for chains and loops?

For bulk rules, the [301 redirect generator](https://fatihemincakiroglu.com/en/tools/redirect-generator) produces Apache and Nginx rules. For large moves such as a domain or platform change, I cover URL mapping, testing and monitoring in the [site migration SEO guide](https://fatihemincakiroglu.com/en/guides/site-tasima-seo); [SEO-friendly URL structure](https://fatihemincakiroglu.com/en/blog/url-yapisi-seo) helps when planning new slugs.

Redirects are one part of the crawling and indexing topics in the broader [technical SEO guide](https://fatihemincakiroglu.com/en/guides/teknik-seo). To review your migration plan together, see [SEO consulting](https://fatihemincakiroglu.com/en/seo-consulting) or [book an intro call](https://fatihemincakiroglu.com/en/book-a-call).

## Frequently Asked Questions

### How long should a 301 redirect stay in place?

For site moves, Google recommends keeping redirects as long as possible, generally at least a year. If external sites link to the old URLs, keeping the rules permanently is safer.

### Does a 301 redirect cause ranking loss?

A correctly mapped 301 is the method Google recommends for passing signals to the new URL. Lasting losses usually come from other mistakes, such as mass redirects to irrelevant pages or weakened content.

### Should I use a redirect or a canonical tag?

Use a redirect if users never need to see the old page. If both pages must stay accessible, such as parameterised filter pages, a canonical fits better. A canonical is a hint; a redirect moves the user as well.

### Should a deleted page return 404 or be redirected with 301?

If another page serves the same need, use a 301. If there is no equivalent, returning 404 or 410 is an honest and correct signal.

### Is the “Page with redirect” status in Search Console a problem?

Usually not; it means redirecting URLs are not indexed and the target is processed instead. It is a problem only if you see a URL there that you want indexed. For reading indexing statuses in general, see [crawled but not indexed pages](https://fatihemincakiroglu.com/en/blog/tarandi-dizine-eklenmemis).

### Should redirects live in a plugin or on the server?

A CMS plugin is practical for a handful of rules. With thousands of rules, regex rules at the server or CDN level are faster and easier to manage.

---
Please attribute as: "Fatih Emin Çakıroğlu (fatihemincakiroglu.com)". Original: https://fatihemincakiroglu.com/en/blog/301-302-yonlendirme
