如何創(chuàng)建和提交 robots.txt 文件
robots.txt 文件應(yīng)位于網(wǎng)站的根目錄下。因此,對(duì)于網(wǎng)站 www.example.com,robots.txt 文件的路徑應(yīng)為 www.example.com/robots.txt。robots.txt 是一種遵循漫游器排除標(biāo)準(zhǔn)的純文本文件,由一條或多條規(guī)則組成。每條規(guī)則可禁止或允許所有或特定抓取工具抓取托管 robots.txt 文件的網(wǎng)域或子網(wǎng)域上的指定文件路徑。除非您在 robots.txt 文件中另行指定,否則所有文件均隱式允許抓取。
下面是一個(gè)包含兩條規(guī)則的簡(jiǎn)單 robots.txt 文件:
User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml
以下是該 robots.txt 文件的含義:
名為 Googlebot 的用戶代理不能抓取任何以 https://example.com/nogooglebot/ 開頭的網(wǎng)址。
其他所有用戶代理均可抓取整個(gè)網(wǎng)站。不指定這條規(guī)則也無妨,結(jié)果是一樣的;默認(rèn)行為是用戶代理可以抓取整個(gè)網(wǎng)站。
該網(wǎng)站的站點(diǎn)地圖文件路徑為 https://www.example.com/sitemap.xml。
格式和位置規(guī)則:
文件必須命名為 robots.txt。
網(wǎng)站只能有 1 個(gè) robots.txt 文件。
robots.txt 文件必須位于其要應(yīng)用到的網(wǎng)站主機(jī)的根目錄下。例如,若要控制對(duì) https://www.example.com/ 下所有網(wǎng)址的抓取,就必須將 robots.txt 文件放在 https://www.example.com/robots.txt 下,一定不能將其放在子目錄中(例如 https://example.com/pages/robots.txt 下)。如果您不確定如何訪問自己的網(wǎng)站根目錄,或者需要相應(yīng)權(quán)限才能訪問,請(qǐng)與網(wǎng)站托管服務(wù)提供商聯(lián)系。如果您無法訪問網(wǎng)站根目錄,請(qǐng)改用其他屏蔽方法(例如 meta 標(biāo)記)。
robots.txt 文件可以位于子網(wǎng)域(例如 https://site.example.com/robots.txt)或非標(biāo)準(zhǔn)端口(例如 https://example.com:8181/robots.txt)上。
robots.txt 文件僅適用于所在的協(xié)議、主機(jī)和端口內(nèi)的路徑。也就是說,https://example.com/robots.txt 中的規(guī)則僅適用于 https://example.com/ 中的文件,而不適用于子網(wǎng)域(如 https://m.example.com/)或備用協(xié)議(如 http://example.com/)。
robots.txt 文件必須是采用 UTF-8 編碼(包括 ASCII)的文本文件。Google 可能會(huì)忽略不屬于 UTF-8 范圍的字符,從而可能會(huì)導(dǎo)致 robots.txt 規(guī)則無效。
如何編寫 robots.txt 規(guī)則
規(guī)則是關(guān)于抓取工具可以抓取網(wǎng)站哪些部分的說明。向 robots.txt 文件中添加規(guī)則時(shí),請(qǐng)遵循以下準(zhǔn)則:
robots.txt 文件由一個(gè)或多個(gè)組(一組規(guī)則)組成。
每個(gè)組由多條規(guī)則(也稱為指令)組成,每條規(guī)則各占一行。每個(gè)組都以 User-agent 行開頭,該行指定了組適用的目標(biāo)。
每個(gè)組包含以下信息:
組的適用對(duì)象(用戶代理)
代理可以訪問的目錄或文件。
代理無法訪問的目錄或文件。
抓取工具會(huì)按從上到下的順序處理組。一個(gè)用戶代理只能匹配 1 個(gè)規(guī)則集(即與相應(yīng)用戶代理匹配的首個(gè)最具體組)。如果同一用戶代理有多個(gè)組,這些組會(huì)在處理之前合并到一個(gè)組中。
系統(tǒng)的默認(rèn)假設(shè)是:用戶代理可以抓取所有未被 disallow 規(guī)則屏蔽的網(wǎng)頁或目錄。
規(guī)則區(qū)分大小寫。例如,disallow: /file.asp 適用于 https://www.example.com/file.asp,但不適用于 https://www.example.com/FILE.asp。
# 字符表示注釋的開始處。在處理過程中,系統(tǒng)會(huì)忽略注釋。
Google 的抓取工具支持 robots.txt 文件中的以下規(guī)則:
user-agent: [必需,每個(gè)組需含一個(gè)或多個(gè) User-agent 條目] 該規(guī)則指定了規(guī)則適用的自動(dòng)客戶端(即搜索引擎抓取工具)的名稱。這是每個(gè)規(guī)則組的首行內(nèi)容。Google 用戶代理列表中列出了 Google 用戶代理名稱。使用星號(hào) (*) 會(huì)匹配除各種 AdsBot 抓取工具之外的所有抓取工具,AdsBot 抓取工具必須明確指定。例如:
# Example 1: Block only Googlebot
User-agent: Googlebot
Disallow: /
# Example 2: Block Googlebot and Adsbot
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /
# Example 3: Block all crawlers except AdsBot (AdsBot crawlers must be named explicitly)
User-agent: *
Disallow: /
disallow: [每條規(guī)則需含至少一個(gè)或多個(gè) disallow 或 allow 條目] 您不希望用戶代理抓取的目錄或網(wǎng)頁(相對(duì)于根網(wǎng)域而言)。如果規(guī)則引用了某個(gè)網(wǎng)頁,則必須提供瀏覽器中顯示的完整網(wǎng)頁名稱。它必須以 / 字符開頭;如果它引用了某個(gè)目錄,則必須以 / 標(biāo)記結(jié)尾。
allow: [每條規(guī)則需含至少一個(gè)或多個(gè) disallow 或 allow 條目] 上文中提到的用戶代理可以抓取的目錄或網(wǎng)頁(相對(duì)于根網(wǎng)域而言)。此規(guī)則用于替換 disallow 規(guī)則,從而允許抓取已禁止訪問的目錄中的子目錄或網(wǎng)頁。對(duì)于單個(gè)網(wǎng)頁,請(qǐng)指定瀏覽器中顯示的完整網(wǎng)頁名稱。它必須以 / 字符開頭;如果它引用了某個(gè)目錄,則必須以 / 標(biāo)記結(jié)尾。
sitemap: [可選,每個(gè)文件可含零個(gè)或多個(gè) sitemap 條目] 相應(yīng)網(wǎng)站的站點(diǎn)地圖的位置。站點(diǎn)地圖網(wǎng)址必須是完全限定的網(wǎng)址;Google 不會(huì)假定存在或檢查是否存在 http、https、www、非 www 網(wǎng)址變體。站點(diǎn)地圖是一種用于指示 Google 應(yīng)抓取哪些內(nèi)容的理想方式,但并不用于指示 Google 可以抓取或不能抓取哪些內(nèi)容。詳細(xì)了解站點(diǎn)地圖。 示例:
Sitemap: https://example.com/sitemap.xml
Sitemap: https://www.example.com/sitemap.xml
除 sitemap 之外的所有規(guī)則都支持使用通配符 * 表示路徑前綴、后綴或整個(gè)字符串。
與這些規(guī)則均不匹配的行將被忽略。
如需有關(guān)每個(gè)規(guī)則的完整說明,請(qǐng)參閱 Google 對(duì) robots.txt 規(guī)范的解釋頁面。
上傳 robots.txt 文件
將 robots.txt 文件保存到計(jì)算機(jī)后,您便可以將其提供給搜索引擎抓取工具。沒有一個(gè)統(tǒng)一工具可以幫助您完成這項(xiàng)工作,因?yàn)槿绾螌? robots.txt 文件上傳到網(wǎng)站取決于您的網(wǎng)站和服務(wù)器架構(gòu)。請(qǐng)與您的托管公司聯(lián)系,或在托管公司的文檔中進(jìn)行搜索;例如,搜索“上傳文件 infomaniak”。
上傳 robots.txt 文件后,請(qǐng)測(cè)試該文件是否可公開訪問,以及 Google 能否解析該文件。
測(cè)試 robots.txt 標(biāo)記
要測(cè)試新上傳的 robots.txt 文件是否可公開訪問,請(qǐng)?jiān)跒g覽器中打開無痕瀏覽窗口(或等效窗口),然后轉(zhuǎn)到 robots.txt 文件的位置。例如 https://example.com/robots.txt。如果您看到 robots.txt 文件的內(nèi)容,就可準(zhǔn)備測(cè)試標(biāo)記了。
Google 提供了兩種修復(fù) robots.txt 標(biāo)記相關(guān)問題的方式:
Search Console 中的 robots.txt 報(bào)告。您只能針對(duì)您網(wǎng)站上可供訪問的 robots.txt 文件使用此報(bào)告。
如果您是開發(fā)者,請(qǐng)了解并構(gòu)建 Google 的開源 robots.txt 庫,該庫也用在 Google 搜索中。您可以使用此工具在計(jì)算機(jī)上本地測(cè)試 robots.txt 文件。
向 Google 提交 robots.txt 文件
在您上傳并測(cè)試 robots.txt 文件后,Google 的抓取工具會(huì)自動(dòng)找到并開始使用您的 robots.txt 文件。您無需采取任何操作。如果您更新了 robots.txt 文件,并需要盡快刷新 Google 的緩存副本,請(qǐng)了解如何提交更新后的 robots.txt 文件。
Robots.txt舉例
1、允許所有搜索引擎抓取任何部分
User-agent: *
Disallow:
2、禁止所有搜索引擎抓取任何部分
User-agent: *
Disallow: /
3、不允許百度抓取zb_system目錄
User-agent: Baiduspider
Disallow: /zb_system/
4、禁止抓取/html/目錄下的所有以“.htm”為后綴的鏈接。
User-agent: *
Disallow: /html/*.htm
5. 僅允許抓取以“.html”為后綴的鏈接。
User-agent: *
Allow: .html$
Disallow: /
6. 禁止抓取網(wǎng)站所有的動(dòng)態(tài)頁面
User-agent: *
Disallow: /*?*
7. 允許抓取jpg圖片格式的文件,禁止抓取png圖片格式的文件
User-agent:*
Allow .jpg$
Disallow: .png$
Robots.txt總結(jié)
Robots.txt相對(duì)來說還是比較簡(jiǎn)單的,特別要注意Disallow: 有無/(斜杠)。有斜杠和無斜杠相差甚遠(yuǎn),這里大家一定要小心。





