|
|
|
|
|
創(chuàng)建 robots.txt 文件很簡(jiǎn)單,您可以在任何文本編輯器中創(chuàng)建一個(gè) robots.txt 文件,它是ASCII編碼的文本文件,而不是HTML文件。本文將詳細(xì)介紹 robots.txt 的語(yǔ)法及用法,以及各種注意問(wèn)題。
robots.txt
我們來(lái)看一個(gè)例子的robots.txt文件。下面的例子包括:
User-agent: Googlebot
Disallow:
User-agent: msnbot
Disallow: /
# /tmp/ 目錄或名為 /logs 的目錄或文件阻止所有機(jī)器人
User-agent: *
Disallow: /tmp/
Disallow: /logs # 稱(chēng)為 logs 的目錄或文件
應(yīng)該在User-Agent行上列出什么?User-agent 是特定搜索引擎機(jī)器人的名稱(chēng)。您可以設(shè)置一個(gè)條目以應(yīng)用于特定的機(jī)器人(通過(guò)列出名稱(chēng)),或者您可以將其設(shè)置為適用于所有機(jī)器人(通過(guò)列出作為通配符的星號(hào))。適用于所有機(jī)器人的條目如下所示:
User-Agent: *
主要機(jī)器人包括:Baiduspider(baidu),360spider(360搜索),Sosospider(騰訊搜索),Sogou web spider(搜狗),Googlebot(Google),Slurp(Yahoo!)等,各大搜索引擎機(jī)器人可參考《百度蜘蛛最新UA及各大搜索引擎蜘蛛爬蟲(chóng)UA匯總》。
請(qǐng)注意,Googlebot的 User-agent 指定的一組指令將被Googlebot遵守; 但Googlebot不會(huì)遵守*(所有機(jī)器人)的 User-agent 的指令。
在Disallow行應(yīng)該列出什么?列出您要阻止的頁(yè)面。您可以列出特定的URL或模式。該條目應(yīng)以正斜杠(/)開(kāi)始。
例子:
如果您通過(guò)http和https提供內(nèi)容,則需要為每個(gè)協(xié)議單獨(dú)使用一個(gè)robots.txt文件。例如,為了允許機(jī)器人對(duì)所有http頁(yè)面進(jìn)行索引,但沒(méi)有https頁(yè)面,您可以按照http協(xié)議使用robots.txt文件:
User-agent: *
Disallow:
而對(duì)于https協(xié)議:
User-agent: *
Disallow: /
每當(dāng)他們?cè)L問(wèn)網(wǎng)站時(shí),都會(huì)檢查robots.txt文件。一旦將robots.txt文件的規(guī)則上傳到站點(diǎn)的根目錄并且機(jī)器人進(jìn)入站點(diǎn),則robots.txt文件中的規(guī)則將會(huì)生效。訪問(wèn)的頻率根據(jù)流行度,權(quán)限以及內(nèi)容更新頻率的不同,機(jī)器人蜘蛛網(wǎng)的頻率有所不同。有些網(wǎng)站每天可能會(huì)被抓取多次,而其他網(wǎng)站可能每周只能爬行幾次。
主要的搜索引擎已經(jīng)開(kāi)始合作來(lái)推進(jìn)robots.txt文件的功能。如上所述,主要搜索引擎已經(jīng)采用了一些功能,而不一定是所有主要的引擎,可以更好地控制爬行。由于這些可能會(huì)受到限制,請(qǐng)務(wù)必謹(jǐn)慎使用。
◆ 抓取延遲:
某些網(wǎng)站可能會(huì)遇到大量流量,并希望將搜索引擎蜘蛛減慢,以允許更多的服務(wù)器資源來(lái)滿(mǎn)足常規(guī)流量的需求。抓取延遲是Yahoo,Live Search和Ask所認(rèn)可的特殊指令,指示抓取工具在抓取頁(yè)面之間等待的秒數(shù):
User-agent: msnbot
Crawl-delay: 5
◆ 模式匹配
模式匹配現(xiàn)在似乎可用于:Google,Yahoo和Live Search。模式匹配的價(jià)值相當(dāng)可觀。讓我們先看一下最基本的模式匹配,使用星號(hào)通配符。阻止訪問(wèn)以“private”開(kāi)頭的所有子目錄:
User-agent: Googlebot
Disallow: /private*/
您可以使用美元符號(hào)($)匹配字符串的末尾。例如,阻止以.asp結(jié)尾的URL:
User-agent: Googlebot
Disallow: /*.asp$
與在Perl和其他地方的正則表達(dá)式中發(fā)現(xiàn)的更先進(jìn)的模式匹配不同,問(wèn)號(hào)沒(méi)有特殊的權(quán)力。所以,阻止對(duì)包含問(wèn)號(hào)(?)的所有URL的訪問(wèn),只需使用問(wèn)號(hào)(不需要“轉(zhuǎn)義”或者使用反斜杠):
User-agent: *
Disallow: /*?*
阻止機(jī)器人抓取特定文件類(lèi)型的所有文件(例如.gif):
User-agent: *
Disallow: /*.gif$
這是一個(gè)比較復(fù)雜的例子。假設(shè)您的站點(diǎn)僅使用查詢(xún)字符串部分的URL(“?”),僅用于會(huì)話ID,并且您要排除包含動(dòng)態(tài)參數(shù)的所有URL,以確保機(jī)器人不會(huì)抓取重復(fù)的頁(yè)面。但是您可能希望包含以“?”結(jié)尾的任何URL。以下是如何實(shí)現(xiàn)的:
User-agent: Slurp
Disallow: /*? # 阻止包含 a 的URL
Allow: /*?$ # 允許所有以 a 結(jié)尾的URL
◆ 允許指令:
就像聽(tīng)起來(lái)一樣,它與Disallow指令相反,它提供了專(zhuān)門(mén)調(diào)用可能被抓取的目錄或頁(yè)面的能力。這在大部分或整個(gè)場(chǎng)地被禁止之后可能是有益的。
要允許Googlebot只進(jìn)入“google”目錄:
User-agent: Googlebot
Disallow: /
Allow: /google/
◆ Noindex指令:
該指令提供了從搜索結(jié)果中消除無(wú)代號(hào)無(wú)標(biāo)題列表的優(yōu)點(diǎn),但僅限于Google。它的語(yǔ)法恰好反映了Disallow。用Matt Cutts的話說(shuō):
Google允許在robots.txt中使用NOINDEX指令,它將完全從Google刪除所有匹配的站點(diǎn)URL。(這種行為可能會(huì)根據(jù)這個(gè)政策討論而改變,當(dāng)然這也是為什么我們還沒(méi)有談?wù)撨^(guò)這個(gè)問(wèn)題。)
◆ 網(wǎng)站地圖:
XML網(wǎng)站地圖文件可以告訴搜索引擎您網(wǎng)站上的所有頁(yè)面,并且可選地提供有關(guān)這些頁(yè)面的信息,例如哪些是最重要的以及更改頻率。它充當(dāng)一個(gè)自動(dòng)發(fā)現(xiàn)機(jī)制,讓蜘蛛找到XML站點(diǎn)地圖文件。您可以通過(guò)在robots.txt文件中添加以下行來(lái)告訴Google和其他搜索引擎您的Sitemap:
Sitemap: sitemap_location
sitemap_location是Sitemap的完整網(wǎng)址。此指令與 User-agent 行無(wú)關(guān),因此放在任何地方并不重要,不過(guò)一般是放在最后。所有主要的搜索引擎都支持Auto-Discovery Sitemap協(xié)議,包括Google,Yahoo,Live Search和Ask。
雖然 Auto-Discovery 提供了一種通知搜索引擎關(guān)于sitemap.xml文件的方法,但也值得通過(guò)其每個(gè)網(wǎng)站管理員控制臺(tái)(Google網(wǎng)站管理員中心,雅虎網(wǎng)站瀏覽器,實(shí)時(shí)搜索網(wǎng)站管理員中心)直接驗(yàn)證和提交站點(diǎn)地圖到搜索引擎 。