我们在使用百度统计中的SEO建议检查网站时,总是发现“静态页参数”一项被扣了18分,扣分原因是“在静态页面上使用动态参数,会造成spider多次和重复抓取”。一般来说静态页面上使用少量的动态参数的话并不会对spider的抓取造成什么影响,但要是一个网站静态页面上使用的动态参数过多,那么最后就有可能会造成spider多次和重复抓取了。

  要解决“在静态页面上使用动态参数,会造成spider多次和重复抓取”这一SEO问题,我们需要用到Robots.txt(机器人协议)来限制百度spider对网站页面的抓取,robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

  详解如何通过创建Robots.txt来解决网站被重复抓取,我们只需要设置一个语法。
      User-agent: Baiduspider(仅对百度蜘蛛有效)
  Disallow: /*?* (禁止访问网站中所有的动态页面)
  这样就可以防止动态页面被百度索引,避免出现网站被spider重复抓取了。有些人说:“我的网站是使用伪静态页面的,每个网址html前面都带有?怎么办?” 这种情况的话就使用另一个语法。
      User-agent: Baiduspider(仅对百度蜘蛛有效)
  allow: .htm$(仅允许访问以".htm"为后缀的URL)
  这样就可以让百度蜘蛛只收录你的静态页面,而不索引动态页。其实网站SEO知识还有很多,都需要我们一步一步的去摸索,通过实践去发现真理。注重用户体验的网站才是长久发展的基本点。

  禁止网站被搜索抓取的一些方法:

先在站点的根目录下新建一个robots.txt文本文件。当搜索蜘蛛访问这个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索蜘蛛就会先读取这个文件的内容:

文件写法
User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符,user-agent分号后需加空格。
Disallow: / 这里定义是禁止爬寻站点所有的内容
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图 告诉爬虫这个页面是网站地图
 
下面列出来的是比较出名的搜索引擎蜘蛛名称:
Google的蜘蛛: Googlebot
百度的蜘蛛:baiduspider
Yahoo的蜘蛛:Yahoo Slurp
MSN的蜘蛛:Msnbot
Altavista的蜘蛛:Scooter
Lycos的蜘蛛: Lycos_Spider_(T-Rex) 
Alltheweb的蜘蛛: FAST-WebCrawler/ 
INKTOMI的蜘蛛: Slurp
SOGOU的蜘蛛:Sogou web spider/4.0和Sogou inst spider/4.0

按照以上的说明,我们可以给大案一个示例,以Sogou的来说,禁止抓取的robots.txt代码写法如下:
User-agent: Sogou web spider/4.0
Disallow: /goods.php 
Disallow: /category.php

解决在静态页面上使用动态参数,造成spider多次和重复抓取的问题的更多相关文章

  1. 浅谈在静态页面上使用动态参数,会造成spider多次和重复抓取的解决方案

    原因: 早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环. 所以蜘蛛为了避免之前现象就不读取动态的url,特别是带?的url 解决方案: 1 ...

  2. dedecms--将静态页面转化为动态页面

    最近在用dedecms二次开发项目,需要对文章内容页设置权限,会员未登录不允许查看,这个需要先在后台设置将静态页面转化为动态页面 具体步骤: 1:将主页设置为动态浏览 2:进入后台→系统→SQL命令行 ...

  3. 页面上有两个元素id相同,js中如何取值

    页面上有两个table,id都是”cont2",现要在js中取到这两个table,改变样式. js实现: var tab2=document.all.cont2(1);var  tab=do ...

  4. 关于线上JVM动态参数设置调优

    p.p1 { margin: 0; -webkit-hyphens: auto; font: 16px Arial; color: rgba(68, 68, 68, 1); -webkit-text- ...

  5. javaweb页面上展示动态图片

    HTML <img alt="点击设定" name="CONSTRUCTIONPLANHIS_IMAGE_curr_img_0" src="vi ...

  6. python解决自动化测试静态页面加载慢的情况

    # coding:utf8from selenium import webdriverimport time # 创建一个ChromeOptions的对象option = webdriver.Chro ...

  7. 浅谈php生成静态页面

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  8. UGUI OnValueChanged 动态参数指定

    在选择方法的时候注意,选择最上面的动态参数的方法.

  9. 抓取Js动态生成数据且以滚动页面方式分页的网页

    代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...

随机推荐

  1. Golang源码探索(二) 协程的实现原理(转)

    Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱,虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻底 ...

  2. Powser Design 16.5 导入Mysql数据库的bug

    在Power Designer 16.5中,想导入mysql的某个数据库,选择导入后会导入全部数据库. 解决方案: 打开powerdesigner.选择file--->reverse engin ...

  3. python 二叉树实现带括号的四则运算

    #!/usr/bin/python #* encoding=utf-8 s = "20-5*(0+1)*5^(6-2^2)" c = 0 top = [0,s[c],0] op = ...

  4. 富文本编辑器 CKeditor 配置使用 (带附件)

    Ckeditor下载地址:http://ckeditor.com/download 1.CKeditor的基本配置 var textval=CKEDITOR.instances.TextArea1.g ...

  5. Jmeter Dash Report(HTML Report)删除Hits Per Second graph的方法

    通过命令行 Non GUI的方式执行jmeter的jmx脚本可以生成HTML Report(Dash Report). 这个report默认自带了很多种图表报告,比如statistics,Over t ...

  6. Python学习—基础篇之常用模块

    常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  7. Nancy.Net之旅-初次见面

    Welcome Nancy   首先,欢迎来到Nancy!我们的主要灵感是Ruby的Sinatra框架,因此Nancy以Frank Sinatra的女儿名字命名.许多人想知道NancyFx中的Fx是什 ...

  8. 【SVN】关于提交代码时的问题

    将项目上传到SVN弹出框提示One added/edited TODO item was found. Would you like to review it? 然后百度说这样解决: 造成这个原因是因 ...

  9. 获取select下拉框选中的的值

    有一id=test的下拉框,怎么获取选中的那个值呢? 分别使用javascript方法和jquery方法 <select id="test"  name="&quo ...

  10. 分组\聚合\F\Q查询

    一.分组和聚合查询 1.aggregate(*args,**kwargs)  聚合函数 通过对QuerySet进行计算,返回一个聚合值的字典.aggregate()中每一个参数都指定一个包含在字典中的 ...