網頁跳轉的目的本來很簡單,就是當用戶或系統需要時從一個頁面轉向另一個頁面,跳轉時的HTTP的狀態碼一般為200,301,302中的一個,下面先列出各狀態碼出現的情況,然後再解釋各狀態碼有什麼不同:
200 正常狀態,未發生任何事,普通頁面浏覽一般都是200
301 永久性轉移(Permanently Moved),SEO必用的招式,會把舊頁面的PR等信息轉移到新頁面
302 暫時性轉移(Temporarily Moved),很常用的招式,也是SEO最容易被判作弊的方式
狀態碼200的跳轉:
1. <meta http-equiv="refresh" content="3; URL=default.aspx" />
2. Server.Transfer("default.aspx");
3. URLRewrite--嚴格來說,這個不算是跳轉,只是一種URL“欺騙”
4. <a>--不知道我把這個標簽也列為一種跳轉會不會有人有意見
狀態302的跳轉:
Response.Redirect("default.aspx");
狀態301和的跳轉: Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", http://www.code-123.com);
對於用戶來說,各個跳轉都差不很多,都可以達到目的。但對於SEO來說,這些差得很遠,狀態200第三條使用合適對SEO有很大好處,但狀態200的第一條和狀態302卻基本沒有一點益處,然後很可惜,302跳轉被用到了滿大街。
很久很久以前,那時候搜索引擎還很傻,好多人利用meta refresh來獲得強大的SEO效果,後來直接被搜索引擎給干掉了。再後有很多人開始用302做跳板,後來也被干掉了,比如那兩個著名的案例:Business.com和BMW。欺騙搜索引擎,後果很嚴重。所以現在很少有人在跳轉上做SEO,但是有些不可避免的跳轉還是要繼續存在著,如何防止這些跳轉起到負面影響呢?於是有人研究了301跳轉。
順便提下那個404,好多網站在出錯時都會有一個自定義的錯誤頁面,但很可惜也有很多人忘記了這個狀態碼,直接搞個錯誤頁面一般都還是200,搜索引擎會收錄這個頁面,但很多不同URL的404都跳轉到這一個頁面時,會被認為大量重復頁,最慘的就是404太多了,被認為站內無效、重復內容過多,所以做自定義錯誤頁面時一定記得返回個404回去。