301轉向和網址規范化

寫瞭網址規范化後,尚奇公司的柳先生建議再深入討論一下301轉向/重定向。下面就談談我所瞭解的301轉向在搜索引擎優化方面的應用。

什麼是301轉向?

301轉向(或叫301重定向,301跳轉)是當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。

其它常見的狀態碼還包括,200表示一切正常,404網頁找不到,302暫時轉向,等等。

為什麼要做網址轉向?

除瞭前面介紹過的網址規范化問題外,還有很多需要做網址轉向的情形。比如,為保護版權,你擁有不同TLD的多個域名:

company.com
company.net
company.org
company.com.cn
company.cn
等等。

很自然這些域名全部指向一個網站。如用company.com為主域名,其它域名就可以轉向到company.com。

或者你註冊瞭公司全稱域名longcompanyname.com,但太長,你也註冊瞭縮寫域名方便用戶記住lcn.com,其中一個做主域名,另一個就可以轉向到主域名。

為什麼要用301轉向?

網址轉向方法主要包括:301轉向,302轉向,JavaScript轉向,PHP/ASP/CGI轉向,METAREFRESH網頁META刷新,等。302轉向可能會有URL規范化問題。其它方法都是常用的作弊手法,當然不是說不可以正當地用,方法本身沒有錯,但被作弊者用多瞭,搜索引擎對這些可疑的轉向都很敏感。何必冒險呢。

當網頁A用301重定向轉到網頁B時,搜索引擎可以肯定網頁A永久的改變位置,或者說實際上不存在瞭,搜索引擎就會把網頁B當作唯一有效目標。好處是,第一,沒有網址規范化問題,第二,也很重要的,網頁A的PR網頁級別會傳到網頁B。

很多時候其它網站會鏈接到

/index.html
/index.html

而不是你希望的

這樣鏈接的PR也會傳遞到所有URL,如果你用301轉向把前三個URL轉到

PR也就集中在網頁瞭。

怎樣判斷網站有網址規范化問題?

英語中有句話,東西沒壞就別修理。很多網站沒做301轉向排名也沒影響,那就別動它。

如果你覺得網站排名沒有預想的好,可以看看是否有網址規范化問題:

1)查一下這些URL是否都有差不多的PR值和網頁快照:

/index.html
/index.html

如果是,那可能有問題。

2)搜一下site:domain.com看是否結果中有多個主頁版本。

3)你的網站是否在Google有大量網頁被標為“補充材料”(SupplementalResult)。一般認為被歸為“補充材料”是網址規范化問題的征兆。

怎樣做301轉向

如果你用的是Unix/Linux主機,可以用文件(Unix/Linux中用於目錄特定指令如密碼,轉向,錯誤處理等的文件)。

比如把/old.htm轉到/new.htm,可以用這個指令:

redirect301/old.htm/new.htm

redirectpermanent/old.htm/new.htm

如果要把所有形式的URL用301重定向轉到,包括:

/about.htm
轉到/about.htm

/dir/index.htm
轉到/dir/index.htm

等等,還要用到mod_rewrite:

Options+FollowSymLinks
RewriteEngineon
RewriteCond%{HTTP_HOST}^domain.com[NC]
RewriteRule^(.*)$/$1[L,R=301]

如果你用的是Windows主機,應該在控制面板做301轉向設定。

補充:在網址規范化評論裡回答石頭王的問題,可能對大傢有幫助:

據我所知,HTML無法做301轉向。在HTML裡隻能做JS或METAREFRESH,但不是301轉向。HTML一被讀取,就已經返回200OK狀態碼瞭。

如果你的頁面是ASP或PHP還可以做301轉向:

ASP:

<%
Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, ” “
>

PHP:

Header(“HTTP/1.1301MovedPermanently”);
Header(“Location:”);
?>

另外,DOThtaccess文件隻是一個普通文字文件,你用Notepad建這個文件,放上指令,存在你帳號的根目錄下就行瞭。不需要修改Apache。