什么是跟踪链接
跟踪链接是URL参数(URL query)的一种表现形式,常见的URL表达式就是“url?参数”;而跟踪链接就是通过对网址的参数进行一定的设计可以让百度统计或者是其他的统计工具可以根据参数进行识别。比如对于百度统计常用的方式有:
www.chateach.com?utm_source=baidu&utm_medium=sem&utm_content=P1&utm_term=计划名,通过参数的设计可以让百度统计的指定跟踪模块识别,根据计划单元关键词,对流量进行有效的统计。
跟踪链接导致大量重复页面
对于SEO优化工作,其中的一个重点就是保重网站中不出现重复的页面;如果存在大量的重复页面会导致网站权重的分散,页面之间形成相互竞争以及不收录的问题。对于跟踪链接来说,我们为了完成不同渠道数据统计,我们对于同一个URL会使用不同的URl参数,这样直接导致了就会重现一个页面出现过个链接的情况。
对于搜索引擎抓取的时候,对于这种链接是作为不同URL进行抓取,不会认定为是同一个页面;举例,比如网站没有做伪静态url地址没有重写之前,网站URL动态链接的表达形式就是以URL参数进行实现的,所以你所谓的跟踪链接,对于蜘蛛确实认定为是不同的页面进行处理。
如何避免重复抓取
robots封禁:在robots.txt文件中使用“Disallow: /*?*”,可以让蜘蛛不去抓取带有url参数的链接,也就是动态链接。但是问题在于有的站点没有采用伪静态就会导致全站不能抓取;同时对于百度的主动推广方式(页面被访问的时候,向搜索引擎推送当前链接), 那么被封禁了就让费了这类的推送。
301跳转:301跳转是我们解决重复页面常见的使用方式,可以把重复页面跳转重定向到我们指定的页面,对于权重的集中有着很大的作用。但是如果对于跟踪链接使用301重定向,在解决重复链接的同时也会让统计效果失效。
canonical标签:canonical标签的定义这边就不具体说了,简单的讲就是在重复页面上使用canonical标签指定到标准页面,目的是告诉搜索引擎那个页面是这些重复页面中的标准版本。但是这个标签谷歌支持的还可以,但是百度等搜索引擎支持的不是很好,基本上没有什么效果。
那么如何解决
一个比较简单的方案就是就是把跟踪链接中的?修改成#号;#后边不影响web服务器返回的内容,对于链接中的作用代表的是在当前链接中的页面位置,让我们在页面中设置一个锚点,点击的时候就会在url尾部出现#锚点名称。
这边就出现一个解决方案的一个弊端,就是在#跟踪链接下页面的锚点就会失效,好在这个可以通过使用js代码实现效果来代替。对于搜索引来说因为这个#是指代替当前页面中的位置,因此不会抓取#后面的内容,也就是说#加参合参数对于搜索引擎都是同一个页面,这样就解决了跟踪链接导致出现大量的重复页面;同时网站的动态页面依然可以正常的进行抓取,又不影响数据的统计。