编辑:卢龙新城建站 关注: 时间:2019-12-17 17:37:14
温馨提示:专业网站建设、小程序制作、APP开发,尽在新城建站,详询 15544599750(手机、微信、QQ同号)
文前导读:
URL参数也叫URL query,是一个最复杂,最容易被忽视,最容易被妥协的问题。他是网站运营中必不可少的元素,如果简单的去除,其他部门就无法工作了。静态化是的话题,URL参数经常被用于以下几方面:
同一个实体的不同状态展示,比如同一个酒店,在不同时间点会有不同的房间库存:http://www.travel.com/hotel/123/?checkindate=2015-06-09&checkoutdate=2015-06-10
为了统计不同渠道的流量:http://www.a.com/?tracking=website_a
为了统计不同渠道,具体模块的点击量:http://www.a.com/?tracking=website_a&click_spot=zone_abc
调试:http://www.a.com/product/item123/?debug=true
为了解决这个问题,首先要弄清URL的定义。以我的理解,每一个URL是一个静态的、独立不重复的、有意义的实体,一般也有检索意义(就是有人会搜)。比如一个人、一辆车、一条道路、一个零件。而不能混入各种"状态",比如这个人生病的时候,难道就不是他自己了么? 一件商品在促销的状态难道是另一件商品了么?
理论上canonical标签就可以解决这个问题了, 但是从实际测试结果看,百度对这个标签的支持优先级非常低, 几乎可以忽略不计。那么我的解决方案是这样的:
1. 建立好网站的思维导图和元信息。 (可参考:SEO健康度 )
2. 所有和SEO元信息相关的参数都放到路径中去
3. 所有和SEO元信息不相干的参数都放到#后边,因为#后边不影响web服务器返回的内容。简单的说就是用"#"替代"?"。
4. 每个页面中都利用js获取#后边的参数对,通过二次请求发回给统计服务器
5. 如果#后边的参数影响页面内容,比如酒店的入住日期。那么这部分内容用ajax加载就行,他是不稳定的,不属于页面内容的一部分。(当然还有变通的办法,暂不赘述。)
6. 原始的#锚点定义肯定会冲突,定义一个#后边的变量,并用js控制屏幕滚动,来保证原始锚点的作用。
大小写
如果网站的技术架构用的是开源系统,一般是不会有这个问题的。如果使用了微软的技术架构,这个问题非常常见:
http://www.a.com/newyork/
http://www.a.com/Newyork/
http://www.a.com/NewYork/
我的建议是统一使用小写,大写自动跳转为小写(小心301死循环!)。
目录的规范
很多网站同时存在这样的URL,无形中把收录量扩大了一倍:
http://www.a.com/product/123
http://www.a.com/product/123/
上边第一个路径的意思是在product目录下有一个123文件。第二个路径的意思是在product目录下有一个123目录,这个目录下可能有很多文件,但是他代表众多文件中的index.html或index.php或default.aspx等优先级最高的那个文件。为了避免歧义,我定义文件都是用".html"结尾的。
为了减少重复收录,那么按我的习惯是:
http://www.a.com/product/123 => http://www.a.com/product/123/
http://www.a.com/product/123 => http://www.a.com/product/123.html
总结
1. 所有部门统一使用SEO定义的URL,屏蔽非SEO URL的入口。
2. 用"#"替代"?"
3. 统一使用小写
4. 保证目录的规范
5. 把不规范的URL跳转到规范的URL
拓展阅读:
卢龙网站推广谈互联网“黑色五月”:网易、支付宝、携程宕机拷问
本文由新城建站整理发布,喜欢请收藏,转载请保留链接 卢龙网站推广分享如何避免大量重复URL被百度收录https://www.nccpu.net/lulong/32831.html