諮詢熱線:02-2369-8858

SEO相關的robots.txt 觀念總整理

SEO相關的robots.txt 觀念總整理

最後更新:2018/04/12 作者:Bruce
SEO相關的robots.txt 觀念總整理

robots.txt是一份純文字檔案,用以告訴網路爬蟲程式,網站上的哪些特定頁面禁止爬取。
有些時候,網站主並不希望某些頁面被抓取,例如依不同條件排序的商品列表頁面、某些無意義的頁面,或是仍在測試階段的頁面等等,為避免搜尋引擎因為爬取這些頁面而耗費網站其他部分被抓取的時間,或是因爬取某些頁面而造成伺服器流量的負擔,便可以利用robots.txt文件來指示這些網路爬蟲(又稱作網路蜘蛛、爬蟲程式、網路機器人、檢索器)。
以下做詳細的說明:

 

robots.txt如何運作
搜尋引擎的主要任務可以大概分成幾項:

  1. 爬取(檢索)網路上的各個網站並發現其中的網頁內容
  2. 將這些不同的網頁編成索引(將其收錄)
  3. 當使用者搜尋時,將索引中的網頁以適當的順序呈現

在開始爬取網站的內容前,搜尋引擎的網路爬蟲會先到網站根目錄下尋找這個robots.txt純文字檔,並根據其中所給予的指示,進行網站內容的爬取。然而,robots.txt文件中的指示並不是強制的,Googlebot等較為正派的網路爬蟲會按照文件中的指示行動,但並不是所有網路爬蟲都會這麼做。並且應注意是否有某些指示不為特定搜爬程式採用。

當robots.txt文件不存在或是沒有內容時,都代表搜尋引擎可以抓取網站的所有內容。

搜尋引擎的檢索(crawling)跟索引(indexing)屬於不同的程序,如果希望網頁不被檢索,應使用robots.txt;若希望網頁不被索引,則應使用noindex meta 標籤或其他方式。

在robots.txt中禁止爬取某個網頁,對遵循指示的搜尋引擎來說,該頁就是沒有內容的,可能因此讓其排名下降或消失於搜尋結果,但並無法確保頁面不會出現在搜尋結果中,搜尋引擎仍有可能透過其他導入連結進入,使得頁面被索引。

 
文件的基本形式
User-agent: 爬蟲程式的名字 
Disallow: 不應爬取的網頁網址 

由於robots.txt的主要功用是告訴網路爬蟲哪些網頁「不能」爬取,所以如上面所寫的兩行指示所形成的規則就可以當作一個最簡單的robots.txt檔案了。

指定網路爬蟲後,針對目錄或檔案的指示,應分開寫成獨立的一行。而針對不同爬蟲程式的指示間,則用空行加以間隔,如下圖:

 
可使用的指令
User-agent
必要項目,你可以在每項規則中指定一或多個user-agent,從Robots DatabaseGoogle檢索器清單中可以找到大部分的user-agent名稱。此指令可以搭配 * 萬用字元使用,例如,User-agent: * 的範圍即包括了Adsbot以外的所有爬蟲程式。

註:Adsbot為Google用以評估到達網頁體驗的檢索程式,為避免影響廣告,系統會忽略全面排除的項目,所以若要防止Adsbot爬取網頁,需特別針對它撰寫規則

Disallow
每項規則至少要有一個Disallow或Allow的指令,Disallow用以表示禁止爬蟲程式的項目。若為網頁,應撰寫完整的相對路徑;若為目錄,則必須以/作為結尾。

Allow
每項規則至少要有一個Disallow或Allow的指令,Allow用以表示允許爬蟲程式的項目,可覆蓋以Disallow禁止的項目。若為網頁,應撰寫完整的相對路徑;若為目錄,則必須以/作為結尾。

Crawl-delay 
非必要項目,用以告訴在開始抓取網頁前延遲多久,單位為毫秒。只是Googlebot會忽略這項規則,因為在Google Search Console中已經有關於限制檢索頻率的設定。

Sitemap
非必要,你可以透過這個指令指出XML網站地圖的位置,也可以同時提供多個網站地圖,分行列出即可,此項指令應使用絕對路徑。


在上面提到的Disallow與Allow指令中,可使用正規表達式裡面的 * 與 $ 字元,用途如下:

  • * 可代表0或一個以上的任何有效字元。
  • $ 代表網址結束。

 

4.常見的規則範例
下面以www.example.com為例,列出一些常見的規則,提供參考。

禁止抓取整個網站
如下的規則會禁止所有爬蟲程式抓取整個網站(但不包括Google的Adsbot檢索器)。

User-agent: *
Disallow: /

 

允許抓取整個網站
如下的規則會允許所有爬蟲程式抓取整個網站的內容,沒有建立robots.txt檔案或是該檔案沒有內容也會有一樣的效果。

User-agent: *
Disallow:

 

允許單一爬蟲程式抓取整個網站
如下的規則會禁止baiduspider以外的爬蟲程式抓取整個網站的內容。

User-agent: baiduspider
Allow: /

User-agent: *
Disallow: /

 

禁止特定爬蟲程式抓取特定目錄
如下的規則會阻止Google的檢索程式(Googlebot)抓取以www.example.com/folder1/為開頭的所有網頁內容。

User-agent: Googlebot
Disallow: /folder1/

 

禁止特定爬蟲程式抓取特定頁面
如下的規則會阻止Bing的檢索程式(Bingbot)抓取www.example.com/folder1/page1.html此頁面的內容

User-agent: Bingbot
Disallow: /folder1/page1.html

 

指定特定字串結尾的網址
如下的規則可以封鎖任何以.gif為結尾的網址,亦可以應用在特定類型檔案的禁止。

User-agent: Googlebot
Disallow: /*.gif$

 

如何建立robots.txt檔案
你可以使用幾乎所有的文字編輯器來建立robots.txt文件,或是利用robots.txt測試工具建立。但應避免使用文書編輯軟體,以免所儲存的格式或是不相容的字元引發內容剖析的問題。

此純文字檔的檔案名稱必須為robots.txt,檔名區分大小寫,且檔案只能有一個,必須放置於網站主機的根目錄下。
以https://www.example.com/ 為例,robots.txt的位置就必須為https://www.example.com/robots.txt。

子網域需各自建立其robots.txt檔案,如https://blog.example.com/ 應建立於https://blog.example.com/robots.txt

建立後的robots.txt檔案是公開的,任何人只要在根網域的後方輸入/robots.txt就可以看到網站禁止爬取的網頁是哪些,所以在建立檔案內的指令時要特別考慮這點。

 

robots.txt的SEO最佳做法

(1) 確定你想要被檢索的頁面沒有透過robots.txt阻擋。

(2) 透過robots.txt阻止檢索的網頁,當中的連結並不會被爬蟲經過,這代表,被連結的頁面如果沒有來自其他網頁的連結,該網頁不會被檢索,並且可能不會被收錄。

(3) 如果想避免較敏感的資料出現在搜尋結果,不要使用robots.txt,應該使用其他方式如密碼保護或robots meta directives。

(4) 搜尋引擎會快取robots.txt的內容,但通常會在一天內更新,如果你改變了該檔案的內容,並希望其盡快生效,你可以將其提交給Google

(5) 針對搜尋引擎爬蟲的指示好多!有robots.txt又有robots meta directives,兩者間的差別在於:robots.txt給予網路爬蟲關於搜爬網站目錄的指示;而robots meta directives則是針對個別頁面給予是否索引的指令。

 

cover image credit:Designed by Dooder / Freepik

本文作者:Bruce

熱門文章

行銷STP 品牌市場定位:報紙廣告實戰演練

先了解自己,才能走進對的道路,成長茁壯,發揚光大。   你了解自己的產品服務嗎? 在艱難的行銷道路上,是否開始迷失方向? 好的定位讓您上天堂,沒有明確定位將會讓你如同陷入泥淖,越陷越深離目標越來越遠。   今日來分享奇寶績效師日常....

在你的FB粉絲專頁新增Instagram頁籤!

不知道你有沒有注意過,有些粉絲專頁上會有Instagram的應用程式。 如果你也是常使用Instagram分享圖片做行銷的廠商,可以一起看看鳩竟要如何連結這兩種社群平台喔!   首先,請用粉絲專頁管理員的身分登入FB(請確保是以個人的身分) 接著請在搜尋....

醫學美容行銷,不得不知的六大必修課程 (上....

Yumi : 醫學美容產業在廣告規範上相對嚴謹,廣告行銷事前作業一個都不能少!   上月底衛福部公告修正醫療法,當消息一出,在醫美界投下一大震撼彈,引起相關產業的議論,很多診所紛紛調整各自的網站,避免受罰,再加上廣告平台政策對於醫學美容產業各別有....

FB社群經營第一步,專頁設定看這邊!

經營FB專頁一直是大家很關心、想學習的題目,上次Doris也貼心的為大家整理了小編Check List! 但在開始PO文與粉絲們互動前,有哪些是你不可錯過的設定呢?   封面照和大頭照 這應該算是基本中的基本,讓訪客對你的品牌會產品建立第一印象 封面照:828x315....

延伸閱讀

robots meta標籤和x-roborts-tag HTTP回應標....

robots meta 指令,是一小段程式碼,用以指示網路爬蟲如何索引或搜爬網頁內容,本篇文章將介紹標題所述的兩種指令方式。先前介紹過的robots.txt文件,功用是給予網路爬蟲對於網站整體該如何檢索(搜爬)的指示;而本文中介紹的robots meta指令,則是給予網路爬蟲對於網頁層....

結構化資料標記,讓google更懂網站的心!

結構化資料標記,讓Google更懂網站的心!   你有沒有在搜尋資料的時候,在結果頁上看到有些網頁呈現出來的資訊就是比其他人還要豐富?能夠展示公司網站中重要頁面、最近的活動、發文、或是在地商家的評等。 而在網頁的html程式碼中做結構化資料標記,....

Google我的商家驗證教學,幫助你完成商家曝....

搜尋公司相關產品或是公司名稱的時候,如果能夠跳出畫面右方紅框的資訊,對於商家絕對是大大加分! 想要做到這件事,首先,你必須先去Google驗證商家。 如果今天已經新增商家或是搜尋到要驗證的商家後,Google提供下列幾種驗證方式- 索取附有驗證碼的明....

描述標籤(Meta Description)的SEO優化

什麼是Meta Description? Meta Description,或者稱作描述標籤,是html代碼中用以簡短描述網頁內容的一個標籤,其格式如下: 你在描述標籤中所撰寫的內容,並不會呈現在網頁上被使用者看到,只有在原始碼和搜尋結果中,才能看到當中的文字。 這些內容,會出現....

Copyright © KPN SEO 2015. All Rights Reserved / 台北市大安區羅斯福路三段301號8樓 02-23698858 service@kpnweb.com

線上客服