There has been a number of threads in the last few months where members were complaining that Google is not following 301 redirect and that the page that responds with 301 redirect is in SERPs instead of the redirect target page:
Dec 5, 2013 Google now chooses my shortest url possible, ignoring 301/canonical [webmasterworld.com]
Nov 15, 2013 Google returns both correct and incorrect versions of 301ed url [webmasterworld.com]
Oct 5, 2013 Old Site Back in SERPs Two Months After Site Migration [webmasterworld.com]
Jan 31, 2014 Change Of Address Has Changed Back [webmasterworld.com]
In a recent hangout
English Google Webmaster Central office-hours hangout [youtube.com], starting at 46:37, the following question was asked:
Q: And then shouldn't be that the target is part of the Google's index and not the first one? Because some pages are not basically indexed although they are the target of 301 redirect.
John Mueller answered:
That depends a bit on which how we actually index that, so what would happen here is we would crawl and index all of these pages and then we might see that one of these URLs is actually a nicer looking URL or we have more signals pointing to that URL, maybe canonical, maybe a lot of links pointing to that URL and we will actually show that other URL, the one that is still redirecting instead of the final destination URL in Search Results.
So oftentimes we'll see that, especially from URLs that redirect from the root of the domain to the lower level page and we try to show a more reasonable URL in Search Results even if we know that it actually redirects somewhere else in the end.
So it is not that there is anything technically wrong with that kind of setup but you might see that we just show one of higher level pages instead of the lower level URLs just because it looks nicer in the Search Results.
Although the example here is a case where the home page redirects to a lower level URL, from our threads we can also see that Google went for a shorter versioin of URL when the redirect was done from one internal page to another.
So if you are creating a new URL structure and need to redirect:
- make sure the new URLs are better (and perhaps shorter/less folders) than the old ones
- make sure your canonical link element is implemented correctly
- try to change as many external links as possible to point to a new URL
Otherwise you risk Google showing old URLs in SERPs.