robots.txt是任何搜索引擎優化的重要組成部分,也是SEOer的重要一課。

      但是,有時候robots.txt文件會被網站優化師SEOer忽視。

      無論你是否剛剛起步,或者你是一個優化老手,都需要知道robots.txt文件應該怎樣寫。

      那么,我們先來了解:


      什么是robots.txt文件?


      robots.txt文件可以用于各種各樣的事情。

      例如從讓搜索引擎知道去哪里找到你的網站站點地圖、告訴他們哪些頁面不需要抓取,以管理網站爬行預算。

      搜索引擎會定期檢查網站的robots.txt文件,看看是否有任何抓取網站的說明。我們稱這些特別的說明為“指令”。

      如果沒有robots.txt文件或者沒有適用的指令,搜索引擎將抓取整個網站。


      Okay,那什么是爬行預算(Crawl Budget)?

      簡單解釋下:

      谷歌和其他搜索引擎一樣,他們只有有限的資源可用于抓取和索引你網站的內容。

      如果你的網站只有幾百個網址,那么Google應該可以輕松抓取到所有網頁并將其編入索引。

      但是,如果網站很大,例如電子商務網站,有數千個包含大量自動生成的網頁(如搜索頁),那么Google可能無法抓取所有這些網頁,你將失去許多潛在的流量和可見性。


      所以我們要通過設置robots.txt文件用于管理網站爬行預算。


      谷歌表示:

      “?擁有許多低價值的網址會對網站的抓取和索引產生負面影響。“


      那些低價值的網址就比如像搜索頁一類的頁面。生成太多這些頁面,谷歌蜘蛛如果去爬行的話,將消耗大量爬行預算,以至于一些重要的頁面可能就不能被收錄了。

      使用robots.txt文件來幫助管理網站抓取預算,確保搜索引擎盡可能高效地(尤其是大型網站)抓取重要網頁而不是浪費時間去抓取登錄,注冊或支付頁面等頁面。


      你為什么需要robots.txt?


      從搜索引擎優化SEO的角度來看,robots.txt文件起著至關重要的作用。它告訴搜索引擎他們如何最好地抓取你的網站。

      使用robots.txt文件可以阻止搜索引擎訪問網站的某些部分防止重復內容,并為搜索引擎提供有關如何更有效地抓取你網站的有用提示

      在對robots.txt進行更改時要小心:因為設置失誤可能會使搜索引擎無法訪問網站的大部分內容。


      在Googlebot,Bingbot等機器人抓取網頁之前,它會首先檢查是否存在robots.txt文件,如果存在,則通常會遵循該文件中找到的路線。

      你可以通過robots.txt文件控制以下事情:

      1. 阻止訪問網站的某個部分(開發和登臺環境等)

      2. 保持網站內部搜索結果頁面不被抓取,編入索引或顯示在搜索結果中

      3. 指定站點地圖或站點地圖的位置

      4. 通過阻止訪問低價值頁面來優化抓取預算(登錄,支付頁面,購物車等)

      5. 防止將網站上的某些文件(圖像,PDF等)編入索引


      讓我們看一個例子來說明這一點:

      你有一個電子商務網站,訪問者可以使用篩選功能快速搜索你的產品,如通過銷量、價格排列。

      此篩選生成的頁面基本上顯示與其他頁面相同的內容。

      這對用戶很有用,但會混淆搜索引擎,因為它會創建重復的內容。

      如果搜索引擎把這些網頁編入索引,將浪費你寶貴的抓取資源。

      因此,應該設置規則,以便搜索引擎不訪問這些頁面。


      檢查您是否有robots.txt文件


      如果你不熟悉robots.txt文件,或者不確定你的網站是否有該文件,可以快速查看。

      方法:

      將 /robots.txt 添加到首頁URL的末尾。

      示例:www.yoursite.com/robots.txt

      如果沒有顯示任何內容,那么說明你的站點沒有robots.txt文件。那就應該設置一個了。


      如何創建robots.txt文件


      創建robots.txt文件是一個相當簡單的過程:

      新建文本文檔 ——>重命名為robots.txt(所有文件必須小寫)——> 編寫規則 ——>用FTP把文件上(放到根目錄下)傳到空間


      下面的文章是谷歌官方介紹,將向你robots.txt文件的創建過程,可以幫助你輕松建立你自己的robots.txt文件:

      https://support.google.com/webmasters/answer/6062596?hl=zh-Hans


      注意:

      robots.txt自身是一個文本文件。它必須位于域名的根目錄中并 被命名為"robots.txt"。位于子目錄中的 robots.txt 文件無效,因為爬蟲只在域名的根目錄中查找此文件。

      例如,http://www.example.com/robots.txt 是有效位置,http://www.example.com/mysite/robots.txt 則不是。


      如果你用WordPress建站,可以用virtual robots、yoast、all in one seo等插件創建和設置。


      Robots.txt示例


      以下是可以在自己的網站上使用robots.txt文件的幾個示例。

      允許所有爬蟲 /蜘蛛訪問所有網站內容:

      User-agent:*
      Disallow:

      禁止所有爬蟲 /蜘蛛訪問所有網站內容:

      User-agent:*
      Disallow:/

      這里可以了解到在創建站點robots.txt時出錯是多么容易,因為阻止整個站點被看到的區別在于:disallow指令(Disallow:/)中的簡單斜杠。


      阻止谷歌爬蟲 /蜘蛛訪問:

      User-agent:Googlebot
      Disallow:/

      阻止爬蟲 /蜘蛛訪問特定頁面:

      User-agent:
      Disallow:/thankyou.html

      從服務器的一部分中排除所有爬蟲:

      User-agent:*
      Disallow:/ cgi-bin /
      Disallow:/ tmp /
      Disallow:/junk/


      這是theverge.com網站上robots.txt文件的示例:



      一、說明theverge不想谷歌爬蟲去抓取這些目錄下的內容

      二、說明theverge不想任何爬蟲去抓取這些目錄下的內容

      三、theverge把所有的站點地圖列在robots.txt里面



      可以在此處查看示例文件:www.theverge.com/robots.txt

      可以看到The Verge如何使用他們的robots.txt文件,專門支出Google的新聞蜘蛛“Googlebot-News”(第一點),以確保它不會抓取網站上的這些目錄。

      重要的是要記住,如果想確保爬蟲不會抓取你網站上的某些頁面或目錄,那么可以在robots.txt文件的“Disallow”聲明中調出這些頁面和/或目錄,如上面例示的做法。

      另外,還可以在robots.txt規范指南中查看Google如何處理robots.txt文件,Google對robots.txt文件的當前最大文件大小限制。

      Google的最大大小設置為500KB,因此請務必注意您的網站robots.txt文件的大小。


      robots.txt文件的最佳做法


      以下內容提取于谷歌官方介紹,原文:

      https://support.google.com/webmasters/answer/6062596?hl=zh-Hans


      位置規則和文件名


      robots.txt文件應始終放在root網站的位置(在主機的頂級目錄中)并帶有文件名robots.txt,例如:https://www.example.com/robots.txt。

      請注意,robots.txt文件的URL與其他任何URL一樣,區分大小寫。

      如果在默認位置找不到robots.txt文件,搜索引擎會認為沒有指令。

      • 文件必須命名為 robots.txt。

      • 網站只能有 1 個 robots.txt 文件。

      • robots.txt 文件必須位于它所應用到的網站主機的根目錄下。例如,要控制對?http://www.example.com/?下所有網址的抓取,就必須將 robots.txt 文件放在根目錄下(即?http://www.example.com/robots.txt),而不能放在子目錄下(例如?http://example.com/pages/robots.txt)。

      • robots.txt 文件可應用到子網域(例如?http://website.example.com/robots.txt)或非標準端口(例如?http://example.com:8181/robots.txt)。


      語法


      • robots.txt 必須是 ASCII 或 UTF-8 文本文件。不允許包含其他字符。

      • robots.txt 文件由一條或多條規則組成。

      • 每條規則由多條指令(說明)組成,每條指令各占一行。

      • 每條規則包含以下信息:

        • 此規則的適用對象(即User-agent

        • 代理可以訪問的目錄或文件,和/或

        • 代理無法訪問的目錄或文件。

      • 系統會按照從上到下的順序處理這些規則,而且一個用戶代理只能匹配 1 個規則集(即與相應用戶代理匹配的首條最具體的規則)。

      • 系統的默認假設是:用戶代理可以抓取所有未被?Disallow:?規則禁止訪問的網頁或目錄。

      • 規則區分大小寫。例如,Disallow: /file.asp?適用于?http://www.example.com/file.asp,但不適用于?http://www.example.com/FILE.asp。


      規則 示例
      禁止抓取整個網站。?請注意,在某些情況下,Google 即使未抓取網站的網址,仍可能會將其編入索引。注意:這不適用于各種 AdsBot 抓取工具,此類抓取工具必須明確指定。

      User-agent: *

      Disallow: /

      禁止抓取某一目錄及其內容(在目錄名后面添加一道正斜線)。請注意,若想禁止訪問私密內容,則不應使用 robots.txt,而應改用適當的身份驗證機制。對于 robots.txt 文件所禁止抓取的網址,Google 仍可能會在不進行抓取的情況下將其編入索引;另外,由于 robots.txt 文件可供任何人隨意查看,因此可能會泄露您的私密內容的位置。

      User-agent: *

      Disallow: /calendar/

      Disallow: /junk/

      僅允許使用某一抓取工具

      User-agent: Googlebot-news

      Allow: /


      User-agent: *

      Disallow: /

      允許使用除某一抓取工具以外的其他所有抓取工具

      User-agent: Unnecessarybot

      Disallow: /


      User-agent: *

      Allow: /


      禁止抓取某一網頁(在正斜線后面列出網頁): Disallow: /private_file.html
      禁止 Google 圖片訪問某一特定圖片:

      User-agent: Googlebot-Image

      Disallow: /images/dogs.jpg

      禁止 Google 圖片訪問您網站上的所有圖片:

      User-agent: Googlebot-Image

      Disallow: /

      禁止抓取某一特定類型的文件(例如 .gif):

      User-agent: Googlebot

      Disallow: /*.gif$

      禁止抓取整個網站,但允許在這些網頁上顯示 AdSense 廣告(禁止使用除 Mediapartners-Google 以外的所有網頁抓取工具)。這種方法會阻止您的網頁顯示在搜索結果中,但?Mediapartners-Google?網頁抓取工具仍能分析這些網頁,以確定要向您網站上的訪問者顯示哪些廣告。

      User-agent: *

      Disallow: /


      User-agent: Mediapartners-Google

      Allow: /

      匹配以某一特定字符串結尾的網址?- 需使用美元符號 ($)。例如,示例代碼會禁止訪問以 .xls 結尾的所有網址:

      User-agent: Googlebot

      Disallow: /*.xls$


      優先順序

      重要的是要注意搜索引擎處理robots.txt文件的方式不同。默認情況下,第一個匹配指令總是有優先權。

      但是Google谷歌和Bing必應,更偏重于具體的目錄。

      就是說:如果指令的字符長度較長,則谷歌和必應會跟看重Allow指令。


      例子

      User-agent:*

      Allow:/ about / company /

      Disallow:/ about /

      在上面的示例中/about/,除了子目錄之外,所有搜索引擎(包括Google和Bing)都不允許訪問該目錄/about/company/


      例子

      User-agent:*

      Disallow:/ about /

      Allow:/ about / company /

      在上面的示例中,除Google和Bing之外的所有搜索引擎都不允許訪問/about/目錄,包括/about/company/

      但允許?Google和Bing?訪問/about/company/,因為該Allow指令比Disallow指令長,目錄位置更具體。


      指令


      你只能為每個搜索引擎定義一組指令。為一個搜索引擎設置多組指令會使它們混淆。


      • User-agent:[必需,每條規則需含一個或多個 User-agent 條目] ,填寫搜索引擎蜘蛛(抓取工具)的名稱。這是每條規則的首行內容。Web Robots Database 和 Google User Agent(抓取工具)列表中列出了大多數用戶代理名稱。支持使用星號 (*) 通配符表示路徑前綴、后綴或整個字符串。像下例中那樣使用星號 (*) 可匹配除各種 AdsBot 抓取工具之外(此類抓取工具必須明確指定)的所有抓取工具。示例:


        # 示例 1:僅屏蔽 Googlebot
        User-agent: Googlebot
        Disallow: /

        # 示例 2:屏蔽 Googlebot 和 Adsbot
        User-agent: Googlebot
        User-agent: AdsBot-Google
        Disallow: /

        # 示例 3:屏蔽除 AdsBot 抓取工具之外的所有抓取工具
        User-agent: *
        Disallow: /


      • Disallow:[每條規則需含至少一個或多個 Disallow 或 Allow 條目] 用戶代理不應抓取的目錄或網頁(相對于根網域而言)。如果要指定網頁,就應提供瀏覽器中顯示的完整網頁名稱;如果要指定目錄,則應以標記“/”結尾。支持使用通配符“*”表示路徑前綴、后綴或整個字符串。

      • Allow:[每條規則需含至少一個或多個 Disallow 或 Allow 條目] 上文中提到的用戶代理應抓取的目錄或網頁(相對于根網域而言)。此指令用于替換 Disallow 指令,從而允許抓取已禁止訪問的目錄中的子目錄或網頁。如果要指定網頁,就應提供瀏覽器中顯示的完整網頁名稱;如果要指定目錄,則應以標記“/”結尾。支持使用通配符“*”表示路徑前綴、后綴或整個字符串。


      • Sitemap:[可選,每個文件可含零個或多個 Sitemap 條目] 相應網站的站點地圖的位置。必須是完全限定的網址;Google 不會假定存在或檢查是否存在 http/https/www/非 www 等網址變體。站點地圖是一種用于指示 Google 應抓取哪些內容(而不是可以或無法抓取哪些內容)的好方法。詳細了解站點地圖。?示例:


        Sitemap: https://example.com/sitemap.xml
        Sitemap: http://www.example.com/sitemap.xml



      要盡可能具體

      disallow指令也會觸發部分匹配。

      在定義Disallow指令時盡可能具體,以防止無意中禁止訪問文件。


      例子

      User-agnet:*

      Disallow:/directory

      上面的示例不允許搜索引擎訪問:

      • /directory

      • /directory/

      • /directory-name-1

      • /directory-name.html

      • /directory-name.php

      • /directory-name.pdf

      所以要指明那個目錄是需要被禁止爬行的。


      另外

      網站管理員必須使蜘蛛程序遠離某些服務器上的目錄——保證服務器性能。比如:大多數網站服務器都有程序儲存在“cgi-bin”目錄下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是個好主意,這樣能夠避免將所有程序文件被蜘蛛索引,可以節省服務器資源。一般網站中不需要蜘蛛抓取的文件有:后臺管理文件、程序腳本、附件、數據庫文件、編碼文件、樣式表文件、模板文件、導航圖片和背景圖片等等。


      特定User Agent的指令,不包含在所有User Agent抓取工具的指令

      這個是什么意思?


      讓我們看一個明確的例子:

      User-agent: *

      Disallow:/ secret /

      Disallow:/ test /

      Disallow:/ not-started-yet /

      User-agent:googlebot

      Disallow:/ not-started-yet /

      在上面的示例中,除Google之外的所有搜索引擎都不允許訪問/secret//test//not-launched-yet/

      Google不允許訪問/not-launched-yet/,但允許訪問/secret//test/


      如果您不想讓googlebot訪問/secret//not-launched-yet/,那么需要googlebot特別重復這些指令:

      User-agent:*

      Disallow:/ secret /

      Disallow:/ test /

      Disallow:/ not-started-yet /

      User-agent:googlebot

      Disallow:/ secret /

      Disallow:/ not-started-yet /



      robots.txt文件有哪些限制?


      • 頁面仍出現在搜索結果中

      由于robots.txt而導致搜索引擎無法訪問的網頁,但如果它們是從已抓取的網頁進行鏈接,則仍會顯示在搜索結果中。例子:

      Protip:可以使用Google Search Console的網址刪除工具從Google中刪除這些網址。請注意,這些網址只會被暫時刪除。為了讓他們不在Google的結果頁面中,需要每90天刪除一次網址。

      • 緩存

      谷歌表示robots.txt文件通常緩存最多24小時。在robots.txt文件中進行更改時,請務必考慮到這一點。

      目前還不清楚其他搜索引擎如何處理robots.txt的緩存,但一般來說,最好避免緩存你的robots.txt文件,以避免搜索引擎花費超過必要的時間來接收更改。

      • 文件大小

      對于robots.txt文件,Google目前支持的文件大小限制為500 kb??梢院雎源俗畲笪募笮≈蟮娜魏蝺热?。


      檢查robots.txt文件和URL

      可以在舊版谷歌站長工具進行檢查。

      點擊? 抓取 > robots.txt測試工具

      可以看到你的robots內容,下面輸入想測試的url,點擊測試,就能知道該url是否有被robots.txt的指令給限制了。


      也可以通過下面鏈接直接進入:

      https://support.google.com/webmasters/answer/6062598?hl=zh-Hans


      總結最佳做法:


      1. 確保所有重要頁面都是可抓取的

      2. 不要阻止網站JavaScript和CSS文件

      3. 在站長工具檢查重要的URL是否被禁止抓取

      4. 正確大寫目錄,子目錄和文件名

      5. 將robots.txt文件放在網站根目錄中

      6. Robots.txt文件區分大小寫,文件必須命名為“robots.txt”(沒有其他變體)

      7. 請勿使用robots.txt文件隱藏私人用戶信息,因為它仍然可見

      8. 將站點地圖位置添加到robots.txt文件中。


      注意事項:


      如果你有一個子域多個子域在網站,那么你將需要對每個子域以及在主根域robots.txt文件。

      這看起來像這個

      store.yoursite.com/robots.txtyoursite.com/robots.txt。

      原因是,其他頁面可能鏈接到該信息,如果有直接鏈接,它將繞過robots.txt規則,并且內容可能仍會被索引。

      如果您需要阻止您的網頁在搜索結果中真正被編入索引,請使用不同的方法,例如添加密碼保護或向這些網頁添加noindex元標記。Google無法登錄受密碼保護的網站/網頁,因此他們無法抓取或索引這些網頁。


      不要在robots.txt中使用noindex

      雖然有人說noindex在robots.txt文件中使用指令是個好主意,但它不是官方標準,谷歌公開建議不要使用它。

      谷歌尚未明確原因,但我們認為我們應該認真對待他們的建議,因為:

      • 如果使用多種方式發出不索引的信號,那么很難跟蹤哪些頁面不應該被索引。

      • noindex指令不是萬無一失的,因為它不是官方標準。可能它不會被谷歌100%追蹤。

      • 我們只知道Google使用該noindex指令,其他搜索引擎(可能)不會將其用于noindex頁面。


      結論


      如果你之前從未使用過robots.txt文件,可能會有點緊張,但請放心使用,而且設置相當簡單。

      一旦熟悉了文件的細節,就可以增強網站的搜索引擎優化。

      通過正確設置robots.txt文件,將幫助搜索引擎爬蟲明智地花費他們的抓取預算,并幫助確保他們不浪費時間和資源來抓取不需要抓取的網頁。

      這將有助于他們以盡可能最好的方式在SERP中組織和顯示你的網站內容,意味著你將獲得更多的曝光。

      設置robots.txt文件并不一定需要花費大量的時間和精力。在大多數情況下,它是一次性設置,然后可以進行一些小的調整和更改,以幫助更好地塑造網站。

      我希望本文中介紹的做法、提示和建議有助你著手創建/調整你的網站robots.txt文件。


      附各大搜索引擎蜘蛛特征


      1. 百度蜘蛛:Baiduspider網上的資料百度蜘蛛名稱有BaiduSpider、baiduspider等,都洗洗睡吧,那是舊黃歷了。百度蜘蛛最新名稱為Baiduspider。日志中還發現了Baiduspider-image這個百度旗下蜘蛛,查了下資料(其實直接看名字就可以了……),是抓取圖片的蜘蛛。常見百度旗下同類型蜘蛛還有下面這些:Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取圖片)、Baiduspider-video(抓取視頻)、Baiduspider-news(抓取新聞)。注:以上百度蜘蛛目前常見的是Baiduspider和Baiduspider-image兩種。

      2. 谷歌蜘蛛:Googlebot這個爭議較少,但也有說是GoogleBot的。谷歌蜘蛛最新名稱為“compatible; Googlebot/2.1;”。還發現了Googlebot-Mobile,看名字是抓取wap內容的。

      3. 360蜘蛛:360Spider,它是一個很“勤奮抓爬”的蜘蛛。

      4、SOSO蜘蛛:Sosospider,也可為它頒一個“勤奮抓爬”獎的蜘蛛。

      5、雅虎蜘蛛:“Yahoo! Slurp China”或者Yahoo!名稱中帶“Slurp”和空格,名稱有空格robots里名稱可以使用“Slurp”或者“Yahoo”單詞描述,不知道有效無效。

      6、有道蜘蛛:YoudaoBot,YodaoBot(兩個名字都有,中文拼音少了個U字母讀音差別很大嘎,這都會少?)

      7、搜狗蜘蛛:Sogou News Spider搜狗蜘蛛還包括如下這些:

      Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou News Spider、Sogou Orion spider,(參考一些網站的robots文件,搜狗蜘蛛名稱可以用Sogou概括,無法驗證不知道有沒有效)看看最權威的百度的robots.txt ,http://www.baidu.com/robots.txt 就為Sogou搜狗蜘蛛費了不少字節,占了一大塊領地?!癝ogou web spider;Sogou inst spider;Sogou spider2;Sogou blog;Sogou News Spider;Sogou Orion spider”目前6個,名稱都帶空格。線上常見”Sogou web spider/4.0″ ;”Sogou News Spider/4.0″ ;”Sogou inst spider/4.0″ 可以為它頒個“占名為王”獎。

      8、MSN蜘蛛:msnbot,msnbot-media(只見到msnbot-media在狂爬……)

      9、必應蜘蛛:bingbot線上(compatible; bingbot/2.0;)

      10、一搜蜘蛛:YisouSpider

      11、Alexa蜘蛛:ia_archiver

      12、宜sou蜘蛛:EasouSpider

      13、即刻蜘蛛:JikeSpider

      14、一淘網蜘蛛:EtaoSpider“Mozilla/5.0 (compatible; EtaoSpider/1.0; http://省略/EtaoSpider)”根據上述蜘蛛中選擇幾個常用的允許抓取,其余的都可以通過robots屏蔽抓取。如果你暫時空間流量還足夠使用,等流量緊張了就保留幾個常用的屏蔽掉其它蜘蛛以節省流量。至于那些蜘蛛抓取對網站能帶來有利用的價值,網站的管理者眼睛是雪亮的。

      另外還發現了如 YandexBot、AhrefsBot和ezooms.bot這些蜘蛛,據說這些蜘蛛國外,對中文網站用處很小。那不如就節省下資源。




      Peace Out


      公眾號ID:yestupa
      掃碼關注圖帕先生
      獲取更多國外SEM、SEO干貨


      給我【在看】

      你也越好看!





      點贊(0) 打賞

      評論列表 共有 0 條評論

      暫無評論

      服務號

      訂閱號

      備注【拉群】

      商務洽談

      微信聯系站長

      發表
      評論
      立即
      投稿
      返回
      頂部