Java、图片、音频和视频。Flash文件、Java嵌入、音频和视频(无论以何种形式)呈现的内容大部分都是无法被搜索引擎爬行的,除了我们稍后要讲到的一些例外情况外,搜索引擎只能阅读HTML格式的文本,在图片或Java控制台中嵌入的关键词或段落是无法被爬虫看到的。同样,搜索引擎也很难读取音频或视频文件中的语句。不过,为了“爬行”音频内容并读取其中的含义,谷歌现已尝试使用诸如谷歌语音搜索之类的工具(在Steven Levy[Simon and Schuster]所著的In the Plex一书中首次被证实)。百度目前已经有了MP3搜索功能,Shazam和Jsaikoz应用程序也能够识别歌曲表述。
alt属性之前是作为标记的元数据,是针对视觉受损用户而创建的访问权限标签,而目前作为一种文本内容呈现方式,它能够在你展示图片或嵌入式非文本内容时向搜索引擎呈现一些文本内容。需要注意的是,a l t属性并不是一个非常有效的信号,而且在图片链接中并不能取代简易文本链接的使用,因为文本链接中包含一些描述性的锚文本。一个比较好的替代方法是在HTML内容中使用标题和文本描述。
网站导航是网站设计者自网站创建以来一直在思考和斟酌的部分,即便在搜索引擎未获得大量关注之前,导航便在帮助用户查找内容方面发挥了巨大的作用,另外,它还能帮助搜索引擎更好地理解你的网站。
搜索引擎适应性的基本要素
容。不要把这个原则和组织原则混淆,如W3C,这是HTML构建的指导原则。尽管遵循W3C指导原则是个不错的主意,但大部分网站都不会这样做,因此只要搜索爬虫能够解析代码,搜索引擎通常都会忽略掉这些违反原则的行为。
遗憾的是,网页导航和内容能够以人类可理解的方式运行,但搜索引擎爬虫是看不到的,或至少是有点难度的。
例如,我们有许多种方式能将网站页面内的内容和导航整合在一起,而绝大部分方式都是针对人类设计的,基本的HTML文本和HTML链接非常符合人类和搜索引擎爬虫的使用习惯,
可能会给爬虫造成障碍的网站元素
不过,许多其他类型的内容也可能会出现在网页中,这些内容符合人类的使用习惯,但并不完全适合搜索引擎,下面简单列举几类最常见的。
搜索和网页表单
许多网站包含搜索功能,这些“网站搜索”元素是专门的搜索引擎,能够索引并提供访问网站内容的路径。
这是一个比较热门的方法,能够帮助用户迅速找到访问复杂网站的路径。例如,Pew Internet网站在右上角提供“网站搜索”,对用户来讲这是一个非常不错的工具,但搜索引擎可能受到妨碍。搜索引擎的运行主要是通过爬行网页的链接结构——在大多数情况下,链接结构不会将表单或随机的搜索请求提交到搜索字段中,因此,任何仅能通过表单才能获取的网址或内容将不会呈现在谷歌和Bing面前。在网站搜索工具中,也是如此,因为搜索引擎不想索引这类内容(它们不想在自己的搜索结果中提供搜索结果)。
表单是一个提供互动性的好方法,最简单的便是许多网站都有的“联系我们”表单。
遗憾的是,爬虫不会填充或提交这类表单,因此,局限在表单中的内容是无法被搜索引擎获取的,在“联系我们”表单中,可能不会有什么太大的影响,但其他类型的表单可能会带来较大的问题。
如果网站的某些内容隐藏在付费专区或登录障碍之后,那么网站可能需要提供进入隐藏在障碍之后(阻碍登录的障碍)的内容的链接,或者运行“第一次点击免费”(我们将在6.10节“内容推送和搜索爬虫控制”部分讲解)。
Java、图片、音频和视频。Flash文件、Java嵌入、音频和视频(无论以何种形式)呈现的内容大部分都是无法被搜索引擎爬行的,除了我们稍后要讲到的一些例外情况外,搜索引擎只能阅读HTML格式的文本,在图片或Java控制台中嵌入的关键词或段落是无法被爬虫看到的。同样,搜索引擎也很难读取音频或视频文件中的语句。不过,为了“爬行”音频内容并读取其中的含义,谷歌现已尝试使用诸如谷歌语音搜索之类的工具(在Steven Levy[Simon and Schuster]所著的In the Plex一书中首次被证实)。百度目前已经有了MP3搜索功能,Shazam和Jsaikoz应用程序也能够识别歌曲表述。
alt属性之前是作为标记的元数据,是针对视觉受损用户而创建的访问权限标签,而目前作为一种文本内容呈现方式,它能够在你展示图片或嵌入式非文本内容时向搜索引擎呈现一些文本内容。需要注意的是,a l t属性并不是一个非常有效的信号,而且在图片链接中并不能取代简易文本链接的使用,因为文本链接中包含一些描述性的锚文本。一个比较好的替代方法是在HTML内容中使用标题和文本描述。
在过去几年中,许多提供转录服务的公司突然出现,推出自动文本生成功能,将音频或视频中的语句转录为文本。对富媒体页面进行转录,使你的内容能够被搜索引擎获取,同时也能被关键词搜索访客发现。另外,你还可以使用Dragon NaturallySpeaking等软件将“转录文本”口述给计算机。
AJAX和JavaScript。JavaScript激活网站的许多动态功能,且大部分功能都不会妨碍搜索引擎爬虫的运行。例外的情况是,页面必须使用JavaScript口令去访问另一个页面,或者去拉取爬虫无法在HTML中查看的内容,在某些情况下,这些内容是无法被搜索引擎爬虫看到的。不过,谷歌将设法运行JavaScript以访问这些内容。随着时间的推移,谷歌读取JavaScript的能力也在不断提高,而且会继续提高。
谷歌读取JavaScript的一个例子是Facebook Commence。FacebookCommence是一个由Facebook提供的系统,允许网站发布者收集来自网站用户的评论。图6-13显示的是TechCrunch网站页面内的Facebook Comments。
如果你查看这个博文的源代码,那么你在页面的HTML中可能看不到这些评论的文本串,这是因为这些评论被保存在Facebook中,而在页面被提出之后,会被网络服务器动态检索。
本例所涉及的文本类型之前是无法被搜索引擎索引的,当你在使用类似的JavaScript系统工具时,并不清楚谷歌或Bing会用它做什么。FacebookComments是一个被广泛应用的系统,能够帮助搜索引擎找到读取这些内容的途径,但直到2012年3月,这些内容依然无法被谷歌索引。
不过,从那时起,情况便有所改变,自2015年6月起,这类内容便可被谷歌索引,并且能够与该Facebook Comments所属的网站相关联。你可以对此进行测试(测试你的内容是否被索引),具体操作是:选取一行语句,在谷歌中运行搜索,将语句用双引号括起来,确保谷歌仅搜索顺序完全一致的语句
尽管谷歌最近指出它能执行大部分的JavaScript,但并不代表它会执行所有的JavaScript,因此,如果你的目的是创建能被搜索引擎看到的内容,那么最好将内容放在一个直接能在网页HTML中看到的表单中。
AJAX可能呈现一些搜索引擎无法爬行的内容方面的问题,因为AJAX使用数据库调用检索数据,而无须更新页面或更改网址,因此搜索引擎可能完全看不到隐藏在这些技术后面的内容(如图6-14所示
实际上,在2015年年初,谷歌就提出,它可能会放弃爬行AJAX页面。此后,2015年6月Eric Enge的一篇文章又进一步强调了这一点,谷歌Gary Illyes在文中说:“如果你仅有一个网址,而在该网址下,用户需要点击素材资料才能看到同一内容的不同排列次序或筛选程序,那么一般来讲,我们只会查看默认的内容。”
因此,如果你使用的是传统AJAX启用程序,那么你可能会考虑换一个爬行系统,以便搜索引擎追踪。AJAX应用程序非常符合用户的使用习惯,容易吸引用户的注意力,因此许多发布者对其难以割舍。对于这些传统的启用程序,一个比较好的解决方案是创建搜索引擎可追踪的链接和页面目录。
在创建链接和页面的次级结构时,确保提供给用户对这些页面的访问权限。在AJAX应用程序内,为访客设置“直接链接至该页面”的选项,并将该网址与你通过链接结构提供给搜索爬虫的网址相关联。AJAX应用程序不仅面临内容无法被爬行的问题,而且因为网址没有更改,无法收到来自用户的准确链接。
某些版本的AJAX使用#定界符,作为AJAX应用程序内的一个搜索字符串,它使你能够直接链接至应用程序内的其他页面,#被用作HTML书签标记,正常来讲,它后面的内容都会被搜索引擎忽略。
这主要是因为,网络浏览器仅使用#后面的内容跳至页面内的锚,而且这一动作在浏览器内即可完成。换句话说,浏览器不会发送全部的网址,因此参数信息(如#后面的文本)不会被传送回服务器。
在2009年,谷歌提出了一种能够使AJAX页面对搜索引擎可见的方法,稍后在谷歌开发者网站中提出的建议又对此有了进一步的解释。
谷歌提出的解决方案涉及对AJAX网址构建方式的调整,以使爬虫在AJAX网址被看作是一个静态页面时能够识别它们(静态页面总是会返回相同的内容),在此情景下,Google bot也能读取页面,采取与其他静态页面相似的方式索引和排名这一页面,并给它同样的机会与使用简单HTML编码的页面争夺排名。
其他类型的单页面应用程序框架,如Angular.js、Backbone.js或Ember.js可能也面临相同的问题,你可以在4.2.4节中的“Angular.js:做到SEO-友好”小节学习如何解决这些问题。
框架。框架于20世纪90年代中期出现,作为一种生成简单导航系统的方式而广受欢迎。遗憾的是,其可用性(99%的情况下)和搜索适应性(99.99%的情况下)却非常差。目前,内嵌框架和CSS能够替代对框架的需求,甚至当网站的需求要求相似功能时,上述两个功能也能满足用户的需求。
对于搜索引擎而言,框架和内嵌框架的最大问题在于它们经常在一个页面中囊括两个或多个网址的内容。对于用户来讲,由于搜索引擎仅会引导搜索用户进入一个网址,而框架可能会迷惑搜索引擎,因此可能会将访客引导到某个打算同时展示多个网址的网站的独立页面(孤立页面)。实际上,搜索引擎会将内嵌框架的内容看作一个独立页面的内容,一个与内嵌框架所在页面完全不同的页面。因此,在搜索引擎看来,只有内嵌框架内容的页面实际上是空白的。
另外,由于搜索引擎依赖链接,而框架页面经常在不更改网址的情况下修改页面内容,因此,外置链接经常会在无意间指向错误的网址。结果,那些连接至包含框架或内嵌框架页面的链接可能不会指向链接器想指向的内容。显示出如何使用框架将多个页面组合成一个网址,这会带来链接分散和爬行方面的问题。
搜索引擎适应性导航的指导原则
尽管搜索引擎爬虫近几年变得更加先进,但其基本前提和目标却没有发生变化:爬虫能够根据链接找到页面,记录它们在搜索引擎索引中找到的页面内容(索引是一个网址或网页数据的巨大储存库)。
除了上面提到的一些技巧,我们将介绍另外一些创建搜索引擎适应性导航的指导原则。
使用基于文本链接的导航结构
如果你选择使用Flash、JavaScript或其他搜索引擎无法解析的技巧创建导航,那么就需要为爬虫提供HTML格式的文本链接,确保自动机器人(及未安装所需浏览器插件的访客)能够访问你的页面。
谨防“爬虫陷阱”
即便是智能编码的搜索引擎爬虫,也可能会陷入网站页面之间无限的链接循环中。能够避开循环往复的301或302HTTP服务器代码(或其他重定向协议)的智能结构可以忽略这个问题,但有时,当你希望仅保留几十个关键的内容页面时,在线日历链接、无限循环的页码标记或通过多条途径获取的内容会为搜索引擎爬虫生成成千上万个页面。
注意会话标识和cookies
正如我们所讨论的,如果你限制用户访问页面的权限,或者根据一个cookie设置或会话标识重定向,那么搜索引擎可能就无法爬行你的内容。执行重复功能程序既无法识别cookies,也无法妥善处理会话标识(爬虫的每次访问都会获得一个具有不同会话标识的网址,搜索引擎会将这些具有会话标识的网址看作各不相同的网址)。尽管限制表单提交是不错的做法(因为搜索爬虫无论如何都不会提交表单),但限制内容通过cookie和会话标识的访问却是不提倡的。
注意服务器、主机和IP问题
服务器问题很少会带来搜索引擎排名的问题——但一旦造成问题,那么就会带来毁灭性的后果。搜索引擎非常清楚常见的服务器问题,如故障停机时间或过度加载,并且会给你调整的时间(尽管这意味着,在服务器出现机能障碍的这段时间里,你的内容不会被爬虫爬行)。另一方面,依靠内容分发网络(CDN)的网站可能会获得更多爬行的机会,而CDN则为网站提供显著的性能增强功能。
在某些情况下,主机的IP地址也需要多加留意,如果网站曾经向搜索引擎发送过垃圾邮件,那么其IP地址就会携带这些负面的关联分析,对爬行和排名造成不利影响。尽管搜索引擎对共享主机、专用服务器、专用IP地址或服务器平台不是非常挑剔的,但你按照这些路径便可免去许多麻烦。至少,你应该小心谨慎,找到一个你信任的主机,查看你得到的IP地址的历史和“清洁度”,因为搜索引擎已经对某些域名、主机、IP地址和IP存储块形成了偏见,搜索引擎从经验中得知这些域名或主机与垃圾邮件关系密切,因此本着对用户负责的态度,搜索引擎会将它们从索引中删除。由于网站拥有者并不参加这些操作过程,因此在陷入麻烦之前,
最好对网络主机进行调查。
一周热门 更多>