Right, here's the story:
We have had a website for one of our brands now for many years, the site design was very bad and recently did a complete overhaul, mostly design, but also some of the backend code.
The original site was using links such as this example.com/products/item/127
and thus I wanted to change them to be move user friendly, especially to include the product name, the same link now reads example.com/product/127/my-jucy-product/
.
Since our switch over we have seen our Google results take a beating (we were on the first page for our normal search terms, now we're nearer the 4th!). The other problem we're having is that the links to the old products haven't updated to the new links despite me coding a 301 redirect from old to new. The 301 is not being fired from .htaccess
, but in our PHP framework.
I had a look at how the site is being loaded from a old link that is still in Google and here's what firebug is reporting:
GET <google link> 302 Found
GET example.com/products/item/127 302 Found
GET example.com/products/item/127 301 Moved Permanently
GET example.com/product/127/my-jucy-product/ 302 Found
So the Google link has a 302, good. But when the old link comes in our framework is returning a 302! It's only afterwards when it finally hits the right part of the framework does it 301, so here's my question:
Is the reason our old links have not changed and our Google Ranking has significantly nose dived because Google is seeing a 302 before the 301?
At the time I was reluctant to mess with our .htaccess
because it had become pretty complicated and I was under some pretty intense time constraints, now I'm wondering whether this was an incorrect disicion and perhaps I should revisit it.
Many thanks!
Edit
Bugger, just signed up to the Webmaster Tools and I'm getting redirect errors all over the place, hundreds of them! I think this is my problem.
Edit 2
So on closer inspection it looks as if it is because I was being lazy and not using .htaccess
to redirect my URLs, I wanted to avoid doing this as it was easier at the time just to throw a PHP header, regardless I have now started convert our framework to depend more on the .htaccess
, not only has this solved the problem (well, we'll see when I get a google crawl) but it has also improved the speed dramatically!