301重定向详解:SEO意义、具体实现方法和301状态码检测


重定向,或者叫跳转,是seo界非常关注的话题。http状态码(详见:做SEO应该知道的HTTP状态码)中3打头的都属于跳转,有301、302、303等,我们经常接触的是301和302。301是永久的重定向,302是临时的或原因不明的重定向,我们需要重点了解301重定向。 一、从SEO角度看,凡是重定向都应该用301。3打头的状态码中,只有301是对搜索引擎友好的,主要基于两个方面的考虑:避免内容重复。网站开发人员如果不懂seo,通常会随意写跳转代码,http状态码往往是302或303,而不是301,所以要特别注意。虽然从用户体验考虑,301重定向和非301重定向没有任何区别,但是seo要求尽量减少网站上内容重复,非301重定向算内容重复,301重定向不算。集中网页权重。每个被搜索引擎收录的网页都被赋予了一定的权重(详见搜索引擎算法),当有两个网页内容相同时,我们希望只保留一个网页,把另一个网页的权重转移到这个网页上来,有利于这个网页的排名。在搜索引擎的蜘蛛看来,如果抓取A网页时返回的状态码是301,并被跳转到B页面,就会把A页面的权重转移到B页面,这正是我们所希望的。二、301重定向怎么做?对于php、asp、asp.net等各种情况,301跳转的具体实现各不相同。Ethan亲自用过php和asp,尤其熟悉php,重点讲讲这两个,涉及我们最经常遇到的两种任务:单页面301重定向和不带www域名到带www域名的整站301重定向(整站301重定向能够帮助解决首选域问题)。php单页面301重定向:<?phpheader(“HTTP/1.1 301 Moved Permanently”);header(“Location: http://www.newdomain.com/page.html”);exit();?>php整站301重定向:<?phpif (substr($_SERVER[‘HTTP_HOST’],0,3) != ‘www’) {header(‘HTTP/1.1 301 Moved Permanently’);header(‘Location: http://www.’.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’]);}?>asp单页面301重定向:<%Response.Status=”301 Moved Permanently”Response.AddHeader=’Location’,’http://www.new-url.com/’%>asp整站301重定向:<%If InStr(Request.ServerVariables(“SERVER_NAME”),”www”) = 0 ThenResponse.Status=”301 Moved Permanently”Response.AddHeader “Location”,”http://www.”& Request.ServerVariables(“HTTP_HOST”)& Request.ServerVariables(“SCRIPT_NAME”)End if%>三、301重定向检测建议使用firefox浏览器的LiveHTTPHeaders插件,Ethan建议下载这个直接来自www.mozilla.org的中文版firefox浏览器,再下载或在线安装LiveHTTPHeaders,在线安装需首先运行firefox浏览器。安装好LiveHTTPHeaders插件后,在firefox浏览器的【工具】菜单里多出【Live HTTP headers】,点击打开监视窗口,进入Capture状态。注意一定要先打开监视窗口,再用火狐打开要检查状态码的网页。seowlyx.com用301重定向到了www.seowlyx.com,下图是LiveHTTPHeaders检查结果,一般都出现在监视窗口的第一或第二条记录。图中:要检测的url。请求头信息。响应头信息。响应的状态码为301。