301 vs 302 debate
Here is a question that looks something like this: Are 301s, 302s, and canonicals all basically the same?
My short answer is “No, they are not”
Let’s get into a deep discussion now…
A 301 redirect situation is what we call a permanent redirect. Let’s assume we have an old URL-A, and the new URL-B. Now I am permanently moving/redirecting my entire site URL-A(old) to URL-B(new). It means I have done 301 here. So I want to tell Google two things and all bots and browsers:
i) Send the people to the new URL (URL-B)
ii) Pass all the signals PR, ranking signals, authority, etc..that should go to the new page as well.
So people and bots should both end up with the new page called URL-B.
Debate on 302:
Here 302 situation is something like a one-day sale. Assume that we have a website main page with products.
We can not put the particular product sale information on the main page of the website. So we need a separate URL to move the customer to grab that offer. So here I am creating a new domain and did a 302, a temporary redirection. Here my running website is URL-B and created new domain URL-C, and I have done temporary redirection to URL-B to URL-C.
So I want to tell Google, all the signals, rankings, the PR, for Google’s sake keep it with the old page(URL-B) this is the main one. But send people to this other page(URL-C) just for a couple of days, and then we’re going to take that away URL-C.”
So here two different things. One of these tells the bots, “Hey, this is the new home,” and the other one tells it, “Hey, stick around here. This is going to come back, but we want people to see the new thing.”
What happen if I do temporary redirection and leave it for more than six months?
“”Long term 302’s treated as a permanent redirection 301’s””
It doesn’t make sense if you do 302 and leave it up for more than six months. Google will think that we meant it to be permanent redirection and we made a mistake. So Google will pass all the ranking signals and people to URL-B.
Let’s observe the image once we did URL-C canonical to URL-A.
It’s meaningless and absolutely wrong. Here URL-A is already redirected to URL-B, and now URL-B is the permanent url. Here is no question of doing canonicalization to URL-A right!. Suppose if do URL-C canonical to URL-B, yes some meaning exist in this.
In the above case, we are giving a bad signal to search bots. Users/customers may not found the difference but bots will crawl deeply and they can’t end up with URL-A.