第 3 部分: 让 Web 页面进入搜索引擎索引
作为一名 Web 站点开发人员,使您的 Web 站点得到搜索引擎的关注是获得成功的关键因素之一。在这个共分四部分的系列中,您将学习对 Web 站点进行有机优化所需的基础知识。在这个系列的第 3 部分中,您将学习如何让 Web 站点的页面进入搜索索引。
Web 搜索是热点,而且越来越热门。四分之三的 Web 用户经常进行搜索,64% 的 Web 用户以搜索作为寻找信息的主要方法(参见 参考资料 中相关研究的链接)。这些用户会找到您的站点吗?您的 Web 站点会错过机会吗?
在本系列的前两部分中,Jennette Banks 概述了搜索营销(第 1 部分)以及关键词规划和优化的基础知识(第 2 部分)。
在第 3 部分中,我们重点介绍让 Web 站点的页面进入搜索索引所需的知识。搜索索引是 Google 和 Yahoo!? 这样的搜索引擎在用户进行搜索时使用的数据库。如果 Web 页面没有被编入搜索引擎的索引,那么引擎就不会找到它,所以将页面添加到索引中是取得 SEO 成功的关键一步。
我的站点上有多少页面进入了索引?
如果想知道您的站点上有多少页面进入了索引,那么先做个简单的测试。进入 Google 或者您喜欢的其他搜索引擎,搜索您公司的名称。如果公司名称是一个常见名称(比如 AAA Plumbing 或 Acme Industries),那么再加上地区(AAA Plumbing Peoria)或公司最出名的产品(Acme Industries sheet metal),看看您的站点是否被找到了。
如果发现一个 Web 站点根本 没有被编入搜索索引中,那么通常有两个原因:
站点是新的。如果 Web 站点是刚刚建立的,而且在搜索索引中没有其他站点链接到它,那么搜索引擎还没有发现它。在这种情况下,只需让其他某些站点链接到您的站点。
站点被禁止了。如果搜索引擎认为您的站点采用了不道德的(即黑帽)SEO 做法,就可能会从它们的索引中删除您的所有页面。如果您发现自己处于这种糟糕的境地,那么找一位搜索营销专家来对站点进行分析并找出违反道德的地方,在纠正问题之后,向搜索引擎请求予以 “宽恕”。
如果幸运的话,在搜索引擎中输入公司名称时,至少会找到您 Web 站点上的一个页面。通常情况是任何特定的搜索引擎只将您的部分页面编入了索引中,但是如果几乎所有页面都被编入了索引,就更好了。没有编入索引的页面越多,您站点的潜在访问者就越有可能转向您的竞争对手(如果他们的页面已编入索引)。
包含率
首先,计算包含率(inclusion ratio),也就是被搜索引擎编入索引的页面占总页面数的百分比。当然,理想的包含率是 100%,但是稍微低一些也可以让人满意。如果页面中只有不到 50% 被包含在搜索索引中,那么就要认真对待了。
为了计算包含率,将搜索引擎索引中的页面数除以您站点上的页面总数。如果您的 Web 站点相当小,那么估算站点的页面总数可能很容易,但是对于大型站点,有时候很难查明有多少个页面。对于大型站点,可以使用几种方法估算页面数:
询问 Web 管理员。Web 管理员以前肯定被问到过这个问题,他很可能已经做过研究。
统计内容管理系统中的文档数量。通常,每个文档会创建一个独特的页面,所以这会给出页面数的估计值。
使用工具:OptiSpider? 或 Xenu 等程序会检查站点并报告找到了多少个页面(参见 参考资料)。
对 Web 站点的规模进行估算之后,就要查明站点中有多少页面被编入了索引。Google、Yahoo! Search 和 MSN Search 都提供了 “site:” 操作符,它会报告您需要知道的信息。输入 site:,后面加上您的域名(比如 site:kodak.com),查看返回的结果。更方便的工具是 Marketleap 的免费工具 Saturation Reporting Tool(参见 参考资料),它会显示任何站点在每个搜索索引中的页面数。
爬行器路径
如果计算包含率的结果很糟糕,那么该怎么办呢?首先,我们回顾一下搜索引擎如何将页面编入索引。搜索引擎使用专门设计的称为爬行器(spider 或 crawler)的程序来检查站点上的页面。
爬行器收集每个页面的 HTML,并记录到其他页面的链接,这样以后它就可以去收集这些页面的 HTML。您可以想像到,经过足够长的时间之后,爬行器最终会找到 Web 上的每个页面(至少是每个链接到其他页面的页面)。获得页面,找到页面上的所有链接,然后获得链接到的那些页面,这个过程称为 “在 Web 上爬行”。
因为爬行器是这样工作的,创建对每个页面的链接可以简化让站点被编入索引的任务 —— 我们将这些技术称为爬行器路径(spider path)。您的站点已经包含路径,而且可能已经有了最重要的爬行器路径类型:站点地图。如果站点只包含少量页面,那么站点地图可以列出并链接到站点上的每个页面。
但是,站点地图不应该超过 100 个链接,所以比较大的站点地图必须链接到分类页面,这些页面再链接到站点上的其他页面。最大型的 Web 站点通常划分成针对各个国家的分站,这就需要特殊的站点地图,称为国家地图(country map),其中列出每个国家的名称并链接到各个国家站点的主页。爬行器非常喜欢这种技术。(参见 参考资料 中大型站点地图的示例。)
只有爬行器到了您的站点上,站点地图才会发挥作用,但是还有更加主动的使页面被编入索引的方法。Google 和 Yahoo! 都提供包含程序(inclusion program),专门用来使页面被编入索引。Google 的 beta 程序称为 Sitemaps(参见 参考资料),它是免费的,提供几种向 Google 爬行器通知页面位置的方法。甚至可以请求 Google 对您的一部分页面进行更频繁的索引更新。Yahoo! 提供一个付费的包含程序 SiteMatch(参见 参考资料),它承诺在 48 小时内对您的页面重新编制索引。(Google 对时间没有做出承诺。)
RSS feed 提供了另一种方法,可以在页面发布时使页面迅速地被编入索引。使用 Ping-O-Matic!(参见 参考资料)通知搜索引擎在 RSS feed 有了新条目,新条目常常会在一两天内被编入索引。
清理爬行器路径
徒步旅行的队伍要让开路者去探索和标出前进路线,但是开路者必须经常清理这些路径,使路径不会损毁或荒废。爬行器路径也是一样的;除非经常检查它们,否则很可能就会阻塞了。
如果您忽视了爬行器的工作方式,爬行器路径就很容易成为爬行器陷阱。对人来说很好的页面却可能阻碍爬行器。爬行器是自动的,所以不会像人类访问者那样填写注册表单。如果链接到站点上的页面所需的操作不仅仅是沿着 HTML 锚标记走,那么这个链接可能会对爬行器隐藏。
这意味着 JavaScript、Flash、frames 和 cookie 也会造成问题。如果您的 Web 页面没有这些技术就根本无法显示,那么页面就不会被爬行器编入索引。另外,如果用户需要这些技术才能使用链接,那么爬行器就无法沿着链接前进。
爬行器只查看 HTML 代码,就像有视力障碍的用户所用的屏幕阅读器一样。要想体会一下爬行器看到了什么,可以在查看页面时禁用浏览器对 cookie、JavaScript 和图形的支持,或者使用文本模式的 Lynx 浏览器或 Lynx Viewer(参见 参考资料)。如果页面可以使用 Lynx 完整地显示,那么它们很可能能够被编入索引。根本不显示或者显示得很不完整的页面不容易被搜索引擎找到。
即使您避免使用这些惹麻烦的技术,仍然可能会给爬行器造成阻碍。爬行器对 HTML 代码的正确性要求非常严格 —— 浏览器就要宽容多了。在浏览器中看起来很好的页面却可能阻碍爬行器,这会使爬行器看不到或误解整个页面或部分页面。HTML 检验服务(参见 参考资料)和 Firefox 浏览器可以发现这些错误。
还必须注意爬行器对每个页面的内容大小限制。大多数爬行器只对页面中的前 100,000 个字符编制索引。这个数字听起来似乎很大,但是如果在页面中添加 JavaScript 程序和样式表,或者把整个用户手册放进一个 PDF 文件中,那么很快就会达到这个限制。所以,可以考虑将手册分割为每章一个 PDF,并将所有 JavaScript 和样式表代码转移到外部文件中。
欢迎爬行器
清理了爬行器路径之后,必须确保爬行器是受欢迎的。最明显的建议是,当爬行器到达时,确保站点正在运行,能够做出响应。因为不知道爬行器什么时候会访问您的站点,频繁地停机(即 “维护时间窗”)会有风险,如果爬行器在站点停机时到来,它就会认为站点是失效的,从而转到其他站点去。
如果站点的响应速度非常慢,这几乎和完全失效一样糟糕,因为爬行器是按进度计划运行的。对于缓慢的站点,它们编入索引的页面更少,而且再次访问的频率更低,因为在同样的时间内它们能够在其他地方处理更多的页面。
即使您的站点通常不停机而且速度很快,仍然有可能由于错误地编写了机器人指令(robots instruction) 而将爬行器拒之门外。可以使用 robots.txt 文件让爬行器避开某些页面、目录或整个站点,所以如果站点的指令编写错了,就可能赶走爬行器。另外,每个页面都可以有一个 robots 标记,它指示爬行器是否将这个页面编入索引,以及是否沿着其中的链接前进(参见 参考资料。)
留住爬行器
即使您的站点欢迎爬行器,也不能保证它以后不会遗弃这个站点。
会阻碍爬行器的一个问题是对页面使用长的动态 URL。许多动态 URL 需要用参数来选择要显示的内容,比如来自 Canada 产品目录的产品 2372 的法文说明。爬行器很反感这些动态站点,因为参数的组合几乎是无穷的 —— 爬行器不希望在站点中迷路。当爬行器看到 URL 超过 1,000 个字符或者其中的参数超过两个时,它们往往会跳过这些页面。
如果您的站点存在这些有问题的 URL,就必须参考 Web 服务器的文档,研究如何改变 URL 的形式以使爬行器满意。例如,Apache 使用 “mod_rewrite” 功能(参见 参考资料)修改 URL,其他 Web 服务器也有相似的功能。
所谓的 “会话标识符” 也会吓走爬行器。一些程序员在 URL 中创建一个参数,用来捕捉关于当前访问者的信息(常常用 “id=” 加上惟一的字母数字编码来标识)。爬行器很讨厌这种技术,因为它导致成百上千的不同 URL 显示同样的内容。程序员应该将这一信息存储在 Web 应用服务器的会话层或者 cookie 中。(但是,正如前面讨论的,显示页面应该不需要 cookie,否则爬行器无法将它编入索引。)
分析了动态页面之后,还要注意另一个可能给页面造成麻烦的问题。重定向 这种技术告诉浏览器和爬行器请求的 URL 已经改变了。例如,如果您的公司改名了,它可能也会改变 Web 站点的域名,所以重定向可以将来自旧 URL 的所有访问者转到新的 URL。但是,对于爬行器有效的重定向方法只有一种:服务器端重定向,也称为 301 重定向(参见 参考资料)。其他重定向技术对浏览器是有效的,比如元刷新重定向和 JavaScript 重定向,但是爬行器无法沿着这些重定向的路径前进,这会使重定向的页面不被编入搜索索引。
结束语
显然,页面必须先被编入索引,然后搜索引擎才能找到它们,但是大多数页面没有被编入索引。在 1999 年,所有 Web 页面中大约有 16% 被搜索引擎编入了索引,但是几年之后,这个比例大大下降了:在 2001 年,估计只有 0.03% 的页面被编入了索引。
既然这个比例如此低,您的站点中很可能有许多页面没有被编入索引,因此这些页面不可能被搜索到。您现在知道应该如何解决这个问题了。
但是,仅仅进入搜索索引还不够。在这个 SEO 系列的第 4 部分中,我们将讨论大型 Web 站点特有的一些搜索营销问题,比如如何对动态页面进行优化、如何跨多国站点工作以及如何让大型团队进行协同工作。
第 4 部分: 改进大型站点的搜索营销
作为一名 Web 站点开发人员,使您的 Web 站点得到搜索引擎的关注是获得成功的关键因素之一。在这个共分四部分的系列中,您将学习对 Web 站点进行有机优化所需的基础知识。在这个系列的最后一部分中,您将学习专门针对大型 Web 站点或具有许多动态页面的站点的技术。
您的 Web 站点有多大?数千个页面?数百万个页面?如果页面数量超过几千个,那么在搜索引擎优化方面就会遇到在小型站点中没有的特殊问题。我们来谈谈如何对大型站点进行成功的 SEO。
大型 Web 站点对 SEO 提出了一些新挑战。如果您能够将整个 Web 团队集合在一间会议室中,那么您的站点还不算大。您或许拥有一家非常成功的企业,但是您的问题不同于我们这个四部分的 SEO 系列所探讨的问题。
在 第 1 部分 和 第 2 部分 中,Jennette Banks 概述了搜索营销以及关键词规划和优化的基础知识。在 第 3 部分 中,我们集中介绍了如何让页面进入搜索索引。在这三篇文章中,您看到了所有 Web 站点(无论规模如何)必须如何做才能吸引 Google 等互联网搜索引擎的关注。但是,大型 Web 站点确实有所不同。如果您的 Web 站点由数千甚至数百万页面组成,就会遇到这些特殊的 SEO 挑战。
在第 4 部分中,我们要解决大型 Web 站点特有的问题。我们将讨论维护大型 Web 站点的大型 Web 团队为什么会给搜索营销造成问题,还将探讨全球化 Web 站点和具有许多动态 Web 页面的站点的技术挑战。
说服大型组织关注搜索问题
大型站点的 SEO 之所以问题多多,是因为需要许多不同的小组都采取适当的措施,SEO 才能获得成功(参见 参考资料)。无论怎样对 Web 站点和 Web 团队进行组织,它们都会被划分为小组,这些小组就会造成问题。根据站点的不同,您可能会遇到下面这些问题或其中一部分问题:
多个专家团队。开发人员和信息架构师之间没有交流,营销人员和 Web 管理员之间也缺乏协作。
多个产品站点。您销售的每种产品都由单独的团队负责,他们都会从头开始设计站点的 Web 体验。
多种受众。每个营销团队都针对一个或多个目标市场对单独的 Web 站点进行设计。
多个国家和多种语言。玻利维亚站点和巴西站点由不同的团队负责。
多种技术。营销页面使用门户服务器,产品目录使用电子商务服务器 —— 而且这些技术来自不同的厂商。
尽管看似令人畏缩,但可以将整个 Web 站点上的多个 Web 小组组织起来,让他们表现得就像一个搜索营销团队一样。可以让各个小组采取一致的行动,这样就不会分散力量。正如在本系列前面的文章中所介绍的,每个 Web 站点的所有者都必须采取一些重要的措施,以确保搜索营销能够获得成功,但是大型站点需要采用更有组织的方式:
对 Web 团队进行培训。程序员必须恰当地使用 JavaScript 代码。文字编写人员必须在文本中使用目标关键词。如果不进行培训,Web 团队就不知道应该做什么。对于大型 Web 站点,这些低层任务在本质上没有特殊之处,但是在大型组织中需要掌握这种技能的人很多。全面的有组织的培训计划对于大型站点的成功非常重要。
设置标准。为编写 robots.txt 文件的方式建立一个标准。修改现有的内容标准以确保每个页面都有页面标题。简单地说,要确保所有标准都反映 SEO 最佳实践。提供了标准之后,每位专家都要完成搜索营销所需的任务,因为服从这些标准已经成了他们的工作。小型站点和大型站点之间的差异是,大型站点是过程驱动的。将适当的 SEO 实践添加进标准中之后,就可以使用这些过程来实现 SEO。
实施标准。尽可能检查完成的工作是否符合现有的过程(比如页面和代码复查)和其他项目规则。还可能需要实现一些新的检查方法。如果 Web 管理员忽视了关于重定向的标准,那么使用一个爬行器来检查重定向并标出不适当的重定向。如果文字编写人员忽视了在页面标题中包含关键词的要求,那么让您的爬行器检查站点上的每个页面,并报告没有适当页面标题的页面。要尽可能强制要求所有人遵守现有过程或刚建立的新过程。
衡量站点的进展。要不断关注针对重要关键词的搜索排名。度量 Web 站点的每个部分的流量并观察其变化趋势。统计符合重定向和内容标准的页面数量。然后,定期与 Web 站点每个部分的负责人分享这些结果。对每个业务单位的表现进行评分,这会督促各位负责人,他们进而会督促其下属完成所需的任务。
当然,这种组织性的变化会给人造成一定的压力。但是,如果将整个 Web 团队组织在一起并采用正确的实践,那么您的大型站点会由于好名声(使搜索者愿意点击您的页面)、高质量的内容(使其他站点愿意链接您的站点)和更高的营销预算(允许投资于更好的设计和技术)而获益。关于将团队组织在一起的更多信息,请参见 参考资料。
成功的关键是说服。计算增加的站点流量会带来多大的好处,从而说明搜索改进的价值。告诉大家竞争对手在搜索结果中的排名比您的公司高多少,让他们有急迫感。要求团队作为搜索者亲自体验一下,从而让他们理解为什么搜索改进那么重要。请记住,没有人存心破坏您的搜索改进计划 —— 他们只是没有意识到这些工作的意义。越充分地向他们解释这些工作的作用,让他们融入其中,就会越快地看到成果。
说服团队
在这个方面要多加努力。您知道什么方式最适合在公司中推广新思想吗?您的组织可以发布电子邮件新闻通告吗?召开会议?Blog?Podcast?Web 研究会?还是需要更个性化的接触方式?如果需要,可以为每个地区办公室制作 PowerPoint 幻灯片。要确保消息被可靠地发出和接收,从而改变团队的工作方式。
得到了团队成员的理解,他们在工作时已经考虑到了 SEO 原则,在此之后还可能要面对两个大挑战:如何跨全球范围进行搜索营销以及如何处理动态 Web 站点。
接触全球的受众
在一个国家用一种语言进行搜索营销有一定难度,随着 Web 站点涉及的国家和语言的增加,问题会成倍增加。我们先讨论国家问题,然后讨论语言问题。
搜索者常常希望将搜索结果限制于某一国家,尤其是在打算进行网上购物时:他们希望在自己的国家中找到一家使用本国货币进行交易的厂商。这很简单,不是吗?不完全是。为了进行有机搜索,判断每个页面的正确国家不能仅仅依靠搜索引擎的猜测。
那么,Google 和其他搜索引擎如何猜测页面的国家呢?它们使用站点域名(“mydomain.com”)的 IP 地址来判断站点的 Web 服务器所在的国家(参见 参考资料)。如果泰国页面实际上就在泰国,那么没问题。如果为了节约经费,针对东南亚的所有页面都放在中国,搜索引擎就会误认为这些泰国页面是属于中国的。
实际上,搜索引擎比这要聪明一点儿,但只是一点儿。除了查看服务器所在的国家之外,它们还会查看顶级域名(.com、.de 等等)来判断国家。无论页面驻留在哪里,在 URL 中使用国家顶级域名(比如 “de” 表示德国)的页面(比如 “www.deutschefirma.de”)会被认为是属于那个国家的页面。
遗憾的是,大多数全球化 Web 站点对每个页面都使用 “.com” 顶级域名。例如,IBM 的德国主页是 “www.ibm.com/de”,除非这个页面放在德国,否则搜索引擎不会意识到这个页面来自德国。这个问题很重要,因为如果搜索者将结果限制为来自德国的页面,他们就找不到这个来自 IBM 的页面。
幸运的是,有经验的搜索者已经习惯了搜索引擎的这一缺陷,所以他们常常会搜索用德语 编写(而不是来自德国)的页面,从而找到想要的页面。从长远来看,搜索引擎可能会变得更聪明,可以认出 IBM 的德国主页属于德国,到那时,搜索者就不需要这么有经验了。
语言问题
Google 和 Yahoo!? 都是美国的大型搜索引擎,但是对于世界的其他地方,怎么样呢?Google 实际上在许多国家都占据第一位,但是也要注意在一两个国家市场上占优势的本地搜索引擎(参见 参考资料)。一定要参阅 Search Engine Watch 报告(参见 参考资料),了解各国市场上搜索引擎的份额分布,这样就可以针对适当的搜索引擎进行 SEO 工作,并度量来自适当搜索引擎的流量。
搜索引擎不容易判断出页面的国家,但是它们在探测页面的语言方面要出色得多。搜索引擎一般会通过三方面的迹象来判断页面的语言:它的语言元标记,比如 <meta http-equiv="content-language" content="ja"> 表示日语;它的字符编码,比如 <meta http-equiv="content-type" content= "text/html; charset=shift-jis">;以及对内容进行分析。因为页面上编写的语言和字符编码常常不正确,所以只有在搜索引擎无法通过分析页面上的单词模式识别出语言的情况下,才会使用这些信息(参见 参考资料)。
在大多数情况下,搜索引擎会正确地探测出页面的语言,而不需要您采取任何措施。但是,对于单词非常少的页面,在页面上正确地编写语言和字符集元标记就很重要了;否则的话,当搜索者寻找用特定语言编写的页面时,搜索引擎就不会包含您的页面。
但是,让搜索引擎正确地探测出页面的语言只是个开始。如果您用英语执行所有 SEO 任务,并简单地将结果翻译成其他语言,就会遇到问题。假设您为产品选择了最流行的英语关键词,然后将它们翻译成德语:这不能保证您选择了最流行的德语单词。翻译出的单词在语言学上是正确的,但对于搜索不一定是最优的。如果在德国 SEO 工作中选择了意思正确但不常用的关键词,效果就会大打折扣(参见 参考资料)。
即使对页面的英语版本进行了精心的处理,使其包含正确的关键词,而且在每个页面上都使用适当数量的关键词,也不要指望标准的翻译过程会保持英语优化的成果。必须按照与英语页面相同的方式对德语页面进行优化,以求获得相似的 SEO 效果。
在进行全球化搜索营销活动时,要记住这些关于语言和国家的提示,这样才能在竞争中领先。
如何处理动态站点?
大型 Web 站点通常用动态页面进行装载 —— 它们使大型站点更容易保持新颖的内容和设计。但是,对于动态页面进行优化更困难。
Google 用同样的方式对待动态页面和静态页面的内容,所以本系列前面的文章中讨论的所有内容优化技术也适用于动态页面。
对于静态页面,文字编写人员只需编辑包含页面内容的 HTML 文件 —— 例如,在页面标题中添加关键词。动态页面就没这么简单了。因为动态页面是由程序动态地生成的,所以页面的内容来自两种不同类型的来源:
数据库。页面上变化的信息(动态部分)常常来自某种关系数据库或其他数据库。例如,产品描述页面可能会从电子商务目录数据库中提取信息。实际上,动态页面可以从许多来源提取信息,甚至是那些不称为数据库的来源,比如内容管理系统。
模板。页面上保持不变的信息(比如每个产品页面上都有的公司名称和 “添加到购物车” 按钮)常常保存在一个模板文件中,这个文件还指定使用哪些 HTML 标记来生成页面。
为了对动态页面上的内容进行优化,首先必须查明内容来自哪里,然后才能修改它。内容由负责更新数据库的小组来管理 —— 可能是内容管理系统的文字编写人员,或者是产品目录的数据输入员。
另一方面,模板常常由 Web 开发人员控制。在某些情况下,模板是一个容易更新的单独的文件 —— 大多数内容管理系统就采用这种方式。在其他时候,HTML 存储在软件本身中,所以程序员必须修改软件才能改变 HTML。
与修改静态页面相比,修改动态页面往往要花费更多精力和时间来说服团队。这是坏消息。好消息是,如果说服了团队修改一个动态页面,他们常常会修改所有动态页面。对于静态页面,修改一个页面时仅影响这一个页面。使用来自数据库的内容通常还会简化质量控制,因为与用 HTML 编辑器检查静态页面相比,数据输入程序可以更容易地检查输入。
结束语
SEO 很有挑战性,而在大型站点上挑战会成倍增加。有许多团队同时参与站点的管理,很难让他们向着同一方向努力。而且,多个国家和动态页面也会增加复杂性。
但是,如果您以前认为 SEO 在大型站点上是不可行的,现在应该知道,这是可行的,也应该知道该怎么去做了。