HTTP Redirect 301, 302 對 SEO 的影響

最近用 CodeIgniter 這套 Framework 改寫了某個以前寫好的程式,為了要把舊的 PageRank 正確導到新的地方去,有幾種作法:

1. 在 CodeIgniter 本身處理:
用 CI 本身支援 URI Routing 設定的方法,像是這麼做:$route['resouce_location'] = 'controller/method';,但這種作法的原意是希望網址的語意可以更清晰(而不必新增太多 Controller)。不過對這個問題來說,我還是偏愛用下面的第三種方法來解這個問題。

2. 在程式層面處理:
寫一個 Controller ,當然要遵照 CodeIgniter 的命名規則,然後裡面再搭配 Redirect 的方法。當造訪該頁面的時候送一個新的 HTTP Header 給瀏覽器,重新定向。不過這個方法更是畫蛇添足,所以也不考慮。

3. 使用 Apache 的 mod_rewrite ,利用 .htaccess 來實做重新定向功能。
而這也是我目前的作法。

寫法類似這樣:

RewriteEngine On
RewriteBase /
Redirect 301 /old_resource http://www.example.com

要注意的是,必須在 Redirect 後面加上 301 字樣,要不然 Apache 預設送出的 Status 是 302 。

301 和 302 一樣都可以轉址,使用者感覺不出來差異。不過 301 是永久轉址(Permanent Redirect)而 302 是暫時轉址(Temporary Redirect)。對搜尋引擎來說,使用 301 才會把正確的把舊 PageRank 轉移到網址上去。

例外,目前 Google 提供的 Webmaster Tool 很好用,除了原本的 sitemap.xml 之外,甚至可以提交 RSS Feed 當作 Sitemap ,真的是非常人性化。

更詳細的狀態代碼可以看:HTTP/1.1: Status Code Definitions

update: 20090624 這次用 301 轉址約 11 天就有效果:

現在網址                                     現在PR   原本網址
http://stat.lab3.tw/                              8   沒動
http://stat.lab3.tw/register/convert              7   之前沒這頁
http://stat.lab3.tw/register                      7   /signup
http://stat.lab3.tw/register/forget_password      7   /forget
http://stat.lab3.tw/status                        7   沒動
http://stat.lab3.tw/faq                           7   沒動
http://stat.lab3.tw/forum                         7   /history

整個 PR 轉移過程我等了大約 11 天 6/13 – 6/24,最近沒有 Google Dance 。

UPDATE: 2009/08/19
這個方在轉換網域有點問題,我把整個網域(stat.lab3.tw)都轉換到 SiteStates.com ,用程式判斷 REQUEST URI 然後送出轉向的 301 Header ,不過這次很慘,轉換不是很順,希望我的 PR 早點回來(網站管理員工據說法,至少兩個網域的狀態 – 轉入、轉出 – 要持續 180 天以上),另外在網站管理員工具裡面,「變更網址」的設定僅限套用至根目錄層級網域(嘆氣)。

UPDATE: 2011/11/23
因為某些原因,我又回來編輯這篇文章,

我新的 Domain: SiteStates.com 目前的 PR 是 7 ,至於 stat.lab3.tw (我以前舊的網域) 的 PR 目前則從兩年前的 8 降到現在的 7 之後維持不變。

Posted in 碎碎念
3 comments on “HTTP Redirect 301, 302 對 SEO 的影響
  1. teinby says:

    thank you! I really liked this post!

  2. Angeles says:

    Рost tгès fascinant

  3. Јe mme permets de publier un commwntairе daոs le but de féliciteг
    lе webmaster

Leave a Reply

Your email address will not be published.