說明:雖然建設網站的目的大部分是為了優化搜索引擎排名,實現互聯網營銷,但特殊情況下,仍會遇到“不希望搜索引擎收錄”的需求,例如因為一些原因做了一個內容與主站幾乎相同的二級站,但因為內容高度相似,百度關鍵詞排名一部分給了二級站,影響了主站點的排名,這個時候就有這個必要斬斷百度的收錄。這里給出一個能有效禁止百度等搜索引擎收錄的解決方案。
一、Robots.txt只能禁止抓取,無法禁止收錄
很多人認為在robots.txt中禁止百度蜘蛛爬取就等於禁止收錄,這是嚴重的誤解。
- robots.txt文件可以告訴搜索引擎哪些目錄和文件可以抓取,哪些不可以。經過實踐發現,即使禁止搜索引擎抓取根目錄,robots文件也並不能實現禁止百度等搜索引擎收錄。
- 如果一個網站的外鏈較多,基本上無法通過正常手段禁止百度收錄,淘寶便是一個典型的案例(淘寶的robots.txt設置為禁止抓取根目錄,但首頁依然被收錄)。關於robots.txt的作用、文件格式、使用方法,可參考>>百度站長平台的說明。
二、通過Nginx判斷user_agent禁止百度等搜索引擎訪問,實現禁止收錄
既然不能直接禁止抓取,那就干脆禁止百度蜘蛛等搜索引擎訪問,思路是:判斷user_agent
,如果是百度蜘蛛、谷歌機器人等搜索引擎的user_agent
,就返回403或者404,這樣百度等搜索引擎就會認為這個網站無法打開或者不存在,自然也就不會收錄了。
其實之前也寫過類似的文章《Apache/Nginx/PHP 屏蔽垃圾 UA 爬蟲的方法》可以參考一下
這里Nginx的配置代碼如下:
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") { return 403; }
通過curl
模擬搜索引擎抓取,測試以上代碼有效,並在多次項目實踐中驗證了此方法的可行性,實現了徹底禁止百度收錄!
#模擬百度搜索引擎 curl --user-agent "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" http://**.**.com #模擬谷歌 curl --user-agent "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" http://**.**.com