NEW CASE
Antana

We create digital solutions that work for businesses


Give us a call +38 (066) 35-14-529

Let's take the first step towards your website — write to us

Close
August 30, 2026 5 min read

301 vs 302 Redirects: When to Use Each and How to Check Them

SEO
301 vs 302 Redirects: When to Use Each and How to Check Them

You moved the site to https, changed the URL structure or merged two pages. Everything opens, visitors notice nothing. Then a month later rankings slip, and the cause gets blamed on content, competitors or the latest Google update.

Often the reason is simpler: the redirect was set with the wrong code. Here is how 301 differs from 302, why chains hurt, and how to check all of it in five minutes.

301 vs 302: the difference that costs rankings

Both codes send the visitor onward. To them there is no difference at all — the browser just opens another page. To a search engine these are two fundamentally different statements.

Code What it tells the search engine What happens to equity
301 The old URL will never return Transfers to the new page
302 This is temporary, the old URL returns Stays with the old URL

This is where the costliest mistake hides. You moved permanently but used a 302 — so Google keeps treating the old URL as primary, waiting for it to come back. Link equity built up over years never reaches the new page.

The trouble is that everything looks fine. The site opens, orders come in, nobody raises an alarm. The decline starts weeks later, when the connection to the migration is no longer obvious.

Which code to use when

The rule is simple: ask yourself whether the old URL will come back.

301 — a permanent redirect:

  • moving to a new domain;
  • switching from http to https;
  • changing the URL structure after a redesign;
  • merging two similar pages into one;
  • removing a section and pointing it at the closest match.

302 — temporary:

  • maintenance on a page;
  • a promotion ending next week;
  • a product temporarily out of stock but returning;
  • split-testing two versions of a page.

In nine cases out of ten you want a 301. When in doubt, use it: an error in that direction costs less.

Chains: when one hop is not enough

The second common problem is a URL that leads not directly but through several hops. For example: http://site.com/oldhttps://site.com/oldhttps://site.com/new.

Technically it works. But every hop drains some signal and adds another round trip to the server. On a poor mobile connection a person notices it, and Google typically stops following after about five hops.

The worst kind of chain is a loop, where a URL leads back to itself after a few steps. The browser gives up and the visitor sees an error.

You can trace your own site with the redirect chain checker: it shows every hop with its code and response time.

How it looks in the configuration

On Apache the rules live in the .htaccess file in the site root and take effect as soon as you save:

Task Rule
A single page Redirect 301 /old-page/ /new-page/
Whole site to https Via RewriteCond %{HTTPS} off and RewriteRule with the [R=301,L] flag

On Nginx redirects are declared in the server block, and the server must be reloaded afterwards or the rule will not apply.

WordPress and similar platforms have redirect plugins. Convenient, but remember that each rule there means a database query on every request. With hundreds of rules that shows.

The most frequent mistakes

Everything to the homepage. A section was removed and every URL sent to the homepage. Google reads that as a soft 404 and transfers no equity at all. The right approach is to redirect to the closest match, and where none exists, serve an honest 404.

A redirect to a 404. The rule points at a page that was later deleted. The visitor hits an error, the equity vanishes, and without a check it is hard to notice.

Dropped parameters. The rule strips the query string and the UTM tags go with it. The ads run, the page opens, yet analytics shows every visit as direct. One of those problems discovered six months later.

Internal links to old URLs. The site links to an address that redirects. The redirect fires on every menu click — a waste of both time and crawl budget.

A checking routine

  1. Run your main pages through the chain checker and look at the hop count and codes.
  2. Confirm it is a 301 and not a 302. Some modules default to 302.
  3. Shorten chains: instead of A → B → C, set A → C and B → C.
  4. Fix internal links pointing at old URLs.
  5. Check your canonical tags — they must not contradict the redirects.
  6. A week later, see in Search Console whether the old URLs have left the report.

How long results take

Google has to recrawl the pages to see the change. For a small site that is usually one to two weeks; for a large catalogue up to a month. Submitting the main pages in Search Console speeds it up.

The old URL will not leave the index immediately — it may keep appearing for a while. That is normal and does not mean the redirect is broken.

In short

Use 301 for permanent changes and 302 only for what is genuinely temporary. Keep chains down to a single hop, preserve parameters, and point internal links straight at the final URL.

Check yours in five minutes: redirect chain, single URL check, canonical tags.

Rate this article
It helps us write better content
Be the first to rate 5.0 of 5 0 votes

Recommended reading

Let’s create something amazing together

Become a clientBecome a client
Telegram Viber Call us