在由三部分组成的系列文章的第一部分中,我们了解了什么是机器人以及为什么爬行预算很重要。让我们看看如何让搜索引擎知道什么是重要的以及一些常见的编码问题。
如何让搜索引擎知道什么是重要的
当机器人爬行您的站点时,有许多线索引导它通过您的文件。
像人类一样,机器人通过链接了解你网站上的信息。但它们也会查看您的代码和目录,寻找特定的文件、标记和元素。让我们来看看其中的一些元素。
robots . txt
机器人在您的站点上查找的第一件事是您的robots.txt文件。
对于复杂的站点,robots.txt文件是必不可少的。对于只有少量页面的小型站点,robots.txt文件可能不是必需的——没有它,搜索引擎机器人将会抓取您站点上的所有内容。
使用robots.txt文件,有两种主要方式可以指导bot程序。
1. 首先,您可以使用“disallow”指令。这将指示机器人忽略特定的统一资源定位器(url),文件,文件扩展名,甚至你的网站的整个部分:
用户代理:广告
不允许:/ /例子
虽然禁止指令将停止机器人爬行您的网站的特定部分(因此节省爬行预算),它将不一定停止页面被索引和显示在搜索结果,如可以在这里看到:
你不希望在你的搜索列表中看到“这个页面没有可用的信息”这一含糊不清、毫无帮助的信息。
上面的例子是因为census.gov/robots.txt中的不允许指令:
用户代理:广告
Crawl-delay: 3
不允许:/目录/
2. 另一种方法是使用noindex指令。不索引某个页面或文件不会阻止它被抓取,但是,它会阻止它被索引(或从索引中删除它)。这个robots.txt指令是非官方支持的谷歌,而不支持所有必应(所以一定要有一个用户代理:*集合不允许Bingbot和其他机器人,而不是Googlebot):
用户代理:广告
Noindex: / /例子
用户代理:*
不允许:/ /例子
显然,由于这些页面仍在抓取中,因此它们仍将耗尽您的抓取预算。
这是一个经常被忽略的问题:disallow指令实际上会撤销元robots noindex标签的工作。这是因为不允许阻止机器人访问页面的内容,因此不能看到和遵守元标签。
使用robots.txt文件来聚集机器人的另一个警告是,并非所有机器人都表现良好,有些甚至会忽略您的指令(特别是寻找漏洞的恶意机器人)。要获得更详细的概述,请查看Robots.txt的更深入内容。
XML站点地图
XML站点地图帮助机器人理解站点的底层结构。需要注意的是,机器人使用你的站点地图作为一个线索,而不是一个权威的指南,关于如何索引你的站点。机器人还会考虑其他因素(比如你的内部链接结构)来判断你的网站是关于什么的。
使用可扩展标记语言(XML)网站地图最重要的一点是,要确保发送给搜索引擎的信息与robots.txt文件一致。
不要把机器人发送到你阻止它们进入的页面;考虑您的爬行预算,特别是当您决定使用自动生成的站点地图时。您不希望无意中让爬行器对数千页稀薄的内容进行排序。如果你这样做了,他们可能永远无法到达你最重要的页面。
第二件最重要的事情是确保XML站点地图只包含规范的url,因为谷歌将XML站点地图视为规范化信号。
规范化
如果你的站点上有重复的内容(这是不应该的),那么rel= ” canonical “链接元素告诉机器人哪个URL应该被认为是主版本。
你需要注意的一个关键地方就是你的主页。许多人没有意识到他们的站点可能在不同的url上存放同一页面的多个副本。如果一个搜索引擎试图索引这些页面,就会有他们将访问重复内容过滤器的风险,或者至少稀释你的链接资产。注意,添加规范链接元素并不会阻止机器人抓取重复页面。下面是一个例子,这样的主页索引多次被谷歌:
分页
正确地设置rel= ” next “和rel= ” prev “链接元素是很棘手的,很多人都很难做到这一点。如果你运行一个电子商务网站,每个类别有很多产品,rel=next和rel=prev是必要的,如果你想避免陷入谷歌的重复内容过滤器。
假设你有一个卖滑雪板的网站。假设你有50种不同的型号可供选择。在主类别页面上,用户可以查看前10个产品,以及每个产品的名称和缩略图。然后他们可以点击到第二页