【发布时间】:2011-02-01 05:52:11
【问题描述】:
好吧,故事是这样的:
多年来,我们已经为我们的一个品牌建立了一个网站,网站设计非常糟糕,最近进行了全面检修,主要是设计,还有一些后端代码。
原来的网站使用了诸如example.com/products/item/127之类的链接,因此我想将它们更改为对用户友好,尤其是包含产品名称,现在相同的链接显示为example.com/product/127/my-jucy-product/。
自从我们切换后,我们看到我们的 Google 搜索结果受到了打击(我们的正常搜索词在第一页,现在我们更接近第四了!)。我们遇到的另一个问题是,尽管我编写了从旧到新的 301 重定向,但旧产品的链接尚未更新为新链接。 301 不是从.htaccess 触发的,而是在我们的 PHP 框架中。
我查看了网站是如何从仍在 Google 中的旧链接加载的,这是 firebug 报告的内容:
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
所以谷歌链接有一个 302,很好。但是当旧链接进入我们的框架时返回 302!只有在它最终到达框架的正确部分之后才会执行 301,所以这是我的问题:
我们的旧链接没有改变,我们的 Google 排名大幅下降的原因是因为 Google 在 301 之前看到的是 302?
当时我不愿意和我们的.htaccess 搞混,因为它变得非常复杂,而且我处于一些非常紧张的时间限制之下,现在我想知道这是否是一个错误的决定,也许我应该重新审视它。
非常感谢!
编辑
臭虫,刚刚注册了网站管理员工具,我发现到处都是重定向错误,数百个!我想这是我的问题。
编辑 2
因此,仔细观察,似乎是因为我很懒惰并且没有使用.htaccess 来重定向我的 URL,我想避免这样做,因为当时只需抛出一个 PHP 标头就更容易了,不管我现在有开始将我们的框架转换为更多地依赖.htaccess,这不仅解决了问题(好吧,我们会在我获得谷歌抓取时看到)而且它还显着提高了速度!
【问题讨论】:
标签: .htaccess seo http-status-code-301 http-status-code-302