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