robots.txt 文件由一條或多條規則組成。每條規則可禁止(或允許)特定抓取工具抓取相應網站中的指定文件路徑。通俗一點的說法就是:告訴爬蟲,我這個網站,你哪些能看,哪些不能看的一個協議。
內容目錄
為什麼要使用 robots.txt
搜索引擎(爬蟲),訪問一個網站,首先要查看當前網站根目錄下的robots.txt,然後依據裡面的規則,進行網站頁面的爬取。也就是說,robots.txt起到一個基調的作用,也可以說是爬蟲爬取當前網站的一個行為準則。那使用robots.txt的目的,就很明確了。
- 更好地做定向SEO優化,重點曝光有價值的鏈接給爬蟲
- 將敏感文件保護起來,避免爬蟲爬取收錄
編輯與創建robots.txt 文件
Robots.txt 文件是必須放在網站根目錄裡,如果你的網址是example.com 是可以讀取到的。
網址位置:
http://example.com/robots.txt
搜尋引擎的使用者代理
以搜尋引擎蜘蛛的User-agent來說,使用robots.txt文件來控制,是最普通的規範方式。當搜尋蜘蛛爬取網站時,他們會以使用者代理User-agent來識別、以下提供些參考範例
最常發現的搜尋引擎使用者代理:
Googlebot
Yahoo!
bingbot
最常被阻擋的搜尋引擎使用者代理:
AhrefsBot
Baiduspider
Ezooms
MJ12bot
YandexBot
搜尋引擎蜘蛛是會以robots.txt文件規則來抓取網站
robots.txt 文件有許多的規則,可以控制搜尋蜘蛛如何爬取你得網站。
User-agent: 可以具體指定哪一個User-agent是適用的,如*是萬用搭配於全部的User-agent。
Disallow: 設定檔案或是資料夾,不允許被搜尋蜘蛛爬取。
設定全部搜尋引擎延遲爬取
如果你的網站有1000頁,搜尋蜘蛛可能在幾分鐘內檢索全部的網站,然而這有可能導致系統資源使用過度,在短時間內讓全部的網頁超過負荷,導致網頁無法瀏覽。
延遲30秒的時間,將允許搜尋蜘蛛在8.3小時內檢索1000張網頁。
延遲500秒的時間,將允許搜尋蜘蛛在5.8天內檢索1000張網頁。
你也可以設定Crawl-delay:所有的搜尋蜘蛛立即搜尋。
User-agent: *
Crawl-delay: 30
允許搜尋蜘蛛爬取全部網站
在預設空白情況下,搜尋引擎蜘蛛還是會爬取你的網站,不過你還是可以指定它是允許的。
User-agent: *
Disallow:
不允許搜尋蜘蛛爬取全部網站
User-agent: *
Disallow: /
不允許搜尋蜘蛛爬取特定一個網站
你可以運用這些規則,不允許特定的搜尋引擎蜘蛛爬取你的網站。
User-agent: Baiduspider
Disallow: /
不允許全部搜尋蜘蛛爬取特定的檔案
如果有些檔案如contactus.htm, index.htm, 或是store.htm我們不想要搜尋蜘蛛爬取,我可以使用:
User-agent: *
Disallow: /contactus.htm
Disallow: /index.htm
Disallow: /store.htm
除了指定的以外,不允許全部搜尋蜘蛛爬取
如果我們只想讓Googlebot爬取我們的/private/目錄,但是不允許其他搜尋蜘蛛爬取,我們可以這樣使用:
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow: /private/
當Googlebot讀取我的robots.txt文件時,會去理解文件內容,不會禁止全部目錄的爬取。
robots.txt的示例
如下:
# first group
User-agent: Baiduspider
User-agent: Googlebot
Disallow: /article/# second group
User-agent: *
Disallow: /Sitemap: https://www.xxx.com/sitemap.xml
以上:
- 允許百度和谷歌的搜索引擎訪問站內除 article 目錄下的所有文件/頁面(eg: article.html 可以,article/index.html 不可以);
- 不允許其他搜索引擎訪問網站;
- 指定網站地圖所在。
假如你允許整站都可以被訪問,則可以不在根目錄添加 robots 文件。