避免对搜索引擎的蜘蛛制造麻烦,不要使用不利于抓取网页内容的代码,如果需要跳转,应该使用301转向,不要采用html嵌套,动态网址静态化
在网站的设计时,为了更好的实现我们想要的效果,可能会忽略对搜索引擎的友好度。搜索引擎的蜘蛛虽然在尽量模仿人访问网页的过程,但是它毕竟只是一个程序,并没有长着眼睛和大脑。设计网页时要考虑到蜘蛛的采集习惯,尽量避免出现蜘蛛陷阱,蜘蛛在抓取有陷阱的网页时会产生困惑,进而对网页的抓取产生负面影响。
避免使用的代码
1、JavaScript
JavaScript是一段具有一定功能的程序代码,既然是一个程序,那么它至少会具有两个特点:1、输出的内容是动态的,2、需要一定的条件才能触发。蜘蛛不会抓取动态的内容,蜘蛛不知道如何触发也不会去主动触发JavaScript的运行。
对于静态的内容,应该静态展示,尽量不要使用JavaScript去生成静态内容。
2、flash
flash的定位虽然是动画,但是也可以通过flash展现文章和图片,在过去很多收费网站都会使用flash来显示网页内容,避免被用户复制粘贴,像:以前的百度文库、道客巴巴。既然用户无法取得flash中显示的文本和图片,那么搜索引擎的蜘蛛也是得不到的。
因此使用flash虽然可以让网站变得很炫,但是搜索引擎的蜘蛛是无法抓取的。
使用301跳转
图33-2:301转向可转移权重
301跳转是将一个网址永久的跳转到另一个网址,这种跳转是在网页的头文件中实现的。虽然我们应该尽量不要使用任何形式的网址跳转,但是因为一些特殊的原因不得不使用,比如:原来的域名由于某些原因被注销了,现在有了更好的域名,两个网站合并为一个网站等。因此搜索引擎的蜘蛛对301跳转还是认同的。
对于其它的跳转方式就不应该使用了,比如:302跳转、JavaScript跳转、Mete Refresh跳转等,这些跳转是在网页下载后进行的跳转,搜索引擎的蜘蛛是不会继续跟踪的。除非你跳转后的网页不需要蜘蛛来抓取,否则不要使用这些跳转方式。
避免使用HTML嵌套
图33-3:HTML嵌套示例
HTML嵌套的意思就是在一个HTML网页中加入另外一个HTML网页。
对于用户来说,网页打开后可能并不知道是两个网页嵌套在一起的,但是在网页源代码中是看得出来的,这种网页通过二次加载实现,相当于先后打开了两个网页。
搜索引擎的蜘蛛在抓取网页时得到的是第一个网页的源代码,并不知道里面还有一个网页。这样的网页,它的正文一般包含在第二个网页中,第一个网页只是一些框架,没有实际内容。蜘蛛面对这样的网页会发生困惑,不知道网页中包含的内容是什么,蜘蛛可能就不会收录,即使收录了收录的内容也不是网页的正文。
使用静态网页
严格意义上的静态网页在现在的网络环境下已经不适用了,现如今基本上都是通过网络编程语言临时生成的一个页面。这种做法是无可厚非的,但是对于搜索引擎的蜘蛛来说这种做法意味着不确定性。
1、使用编程语言生成一个静态页面,必然需要传递一些参数过去。有时候同样的或者相似的页面可能会传递不同的参数,参数不同意味着这是两个网页,事实上显然不能当做两个网页来处理。
假设网页编程语言的地址为:www.xxx.com/index.php,需要传递两个参数,第一个参数blog表示文章序号,第二个参数cid表示用户标识,完整网址为:www.xxx.com/index.php?blog=1&cid=abcd,这时不同的用户打开同一个网页cid是不同的,就表示是不同的网址。
2、页面是用网络编程语言临时生成的,这就意味着同一个网址下可能会展现为不同的内容。蜘蛛抓取的内容和用户打开的内容可能不一致,或者今天的内容和明天的内容可能不一样。
因此蜘蛛在抓取这种动态的页面时会很谨慎,不利于对我们网站内容的抓取。
现在常见的做法有两种,1、伪静态。2、每次修改网站内容时,生成一个静态页面保存在服务器上。
任何蜘蛛陷阱都是不应该存在的,我们应该尽量避免
转载请注明:网创网 www.netcyw.cn/b33.html
加油!!!