一.robots.txt 具體作用
1. 對搜索引擎做出規定,抓取或者不抓取。
2. 由於有些資訊規定了不讓抓取,所以可以保護到一些必要的資訊,比如:網站後台,多用户資訊。
3. 節省搜索引擎抓取資源。
二.robots.txt 規則
1.User-agent,用於告訴識別蜘蛛型別。比如,User-agent: Baiduspider 就是指百度蜘蛛。
各類蜘蛛列舉如下:
百度蜘蛛:Baiduspider
谷歌機器人:GoogleBot
360 蜘蛛:360Spider
搜狗蜘蛛:Sogou News Spider
雅虎蜘蛛:“Yahoo! Slurp China” 或者 Yahoo!
有道蜘蛛:Youdaobot 或者 Yodaobot
Soso 蜘蛛:Sosospider
2.Allow,允許蜘蛛抓取指定目錄或檔案,預設是允許抓取所有。
3.Disallow,不允許蜘蛛抓取指定目錄或檔案。
4. 萬用字元,“*”,匹配 0 或多個任意字元。
5. 終止符,“$”,可以匹配以指定字元結尾的字元。
舉個例子:下面是一個 wordpress 站羣程序的 robots.txt
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /feed
Disallow: /*/feed
Disallow: /comments/feed
Disallow: /*.js$
Disallow: /*?*
Sitemap: https://www.weixiaoduo.com/sitemap.xml
解釋:
User-agent: *:對所有搜索引擎都使用下面的規則。
Disallow: /wp-admin/:不讓蜘蛛抓取根目錄下的 wp-admin 資料夾。
Disallow: /*.js$:不讓蜘蛛抓取根目錄下所有的 js 檔案。
Disallow: /*?*:不抓取所有的動態鏈接。
Sitemap: https://www.weixiaoduo.com/sitemap.xml:給蜘蛛提供網站地圖,方便蜘蛛抓取 WordPress 網站內容。
三.robots.txt 注意事項
1. 如果你希望搜索引擎收錄網站上所有的內容,那麼就不要建立 robots.txt 檔案。
2. 如果同時存在動態和靜態鏈接,那麼建議遮蔽動態鏈接。
3.robots.txt 只能是遮蔽站內檔案的,對站外檔案沒有遮蔽功能。
4.User-agent,Allow,Disallow,Sitemap 的首字母都是大寫的。
5.User-agent,Allow,Disallow,Sitemap 的冒號後面都是有空格的,沒有寫空格直接寫接下來的內容會出錯。
6. 網站通常會遮蔽搜索結果頁面。因為搜索結果頁和正常展示的內容頁相比,標題和內容上相同的,而這兩個頁面鏈接是不同的。那搜索引擎該將這篇文章歸屬於哪個站羣內鏈呢? 這樣就會造成站羣內鏈之間相互競爭,造成內部資源損耗。
比如上面舉的例子,那個 wordpress 站羣程序,在沒有設定偽靜態,還是動態鏈接的時候,搜索結果頁面鏈接都包含有/?s=,而 標題和內容 與 正常展示的動態鏈接內容頁重複,可以通過 Disallow: /?=*來遮蔽搜索結果頁面。
而現在那個 wordpress 站羣程序已經設定了偽靜態,也設定了 Disallow: /*?*,Disallow: /*?*本身就包含了 Disallow: /?=*,所以 Disallow: /?=*這句寫不寫都沒有關係
7. 建議遮蔽 js 檔案。 Disallow: /*.js$,以 .js 結尾的路徑統統被遮蔽,這樣就遮蔽了 js 檔案。
8. 路徑是區分大小寫的。 Disallow: /ab/ 和 Disallow: /Ab/ 是不一樣的。
9.robots.txt 會暴露網站相關目錄,寫 robots.txt 時要考慮到這一點。
10. 有些 seo 會將檔案直接備份在站羣服務器中,檔案是 .zip 格式,然後在 robots.txt 中遮蔽。個人不建議這樣,這就是明顯告訴人家你的備份檔案位置。建議檔案和資料都備份到本地。
11. 一些特殊規則對比:
①Disallow: /和 Disallow: / ab (/後面有個空格,再有 ab) 是一樣的,/後面多了個空格,蜘蛛之認空格前面那一段,就是 Disallow: /,所以兩個都是遮蔽整站的。
②Disallow: /ab 和 Disallow: /ab*是一樣的。比如兩個都能遮蔽 http://域名/ab,http://域名/abc,http://域名/abcd 。
③Disallow: /ab/和 Disallow: /ab 是不一樣的。很明顯,Disallow: /ab 範圍更廣,包含了 Disallow: /ab/。因為 Disallow: /ab/只能遮蔽 http://域名/ab/,http://域名/ab/…. 這樣的路徑,也就是隻能遮蔽 ab 目錄和 ab 目錄下的檔案不被蜘蛛抓取。