robots.txt 怎麼寫?語法規則、常見錯誤與測試方法
  1. 首頁
  2. 知識庫
  3. SEO 搜尋引擎最佳化
  4. robots.txt 怎麼寫?語法、常見錯誤與測試方法

SEO 搜尋引擎最佳化

robots.txt 怎麼寫?語法、常見錯誤與測試方法

作者:更新日期:2026-10-11

重點答案

robots.txt 是放在網站根目錄的純文字檔,用 User-agent、Disallow、Allow 與 Sitemap 幾個欄位,告訴搜尋引擎檢索器哪些網址可以抓、哪些不要抓。它控制的是「檢索」而不是「收錄」:被 Disallow 的網址仍可能因外部連結出現在搜尋結果中,想讓網頁不出現請改用 noindex 或密碼保護。寫好後用 Search Console 的 robots.txt 報表與網址檢查工具確認生效。

robots.txt 是什麼?它管的是「檢索」,不是「收錄」

一句話定義:robots.txt 是一個放在網站根目錄、名稱固定為 robots.txt 的純文字檔,用來告訴搜尋引擎的檢索器(爬蟲)可以存取網站上的哪些網址。任何人都能在瀏覽器網址列輸入「網域/robots.txt」看到它,例如 example.com/robots.txt。

根據 Google 搜尋中心的〈robots.txt 簡介〉,這個檔案的主要用途是管理檢索器對網站造成的流量,避免網站因為要求過多而超載,或讓 Google 少花時間在不重要、內容相似的網頁上;它並不是讓網頁從 Google 搜尋結果消失的工具。這一點是整篇文章最重要的觀念,後面幾乎每一個常見錯誤,都跟搞混「檢索」和「收錄」有關。

搜尋引擎處理一個網頁大致分成三步:先「檢索」(下載網頁內容),再「建立索引」(理解內容並存進資料庫),最後才在搜尋時「呈現」。robots.txt 只作用在第一步,它能叫檢索器不要下載某個網址,卻管不到 Google 從其他地方得知這個網址的存在。

robots.txt 對不同檔案類型的效果

Google 依檔案類型說明了 robots.txt 的實際效果,三種情況差異很大,動手寫規則前先對照一次:

檔案類型用 robots.txt 封鎖後會怎樣適合的用法
網頁(HTML、PDF 等文字格式)檢索器不會抓取內容;但若其他網頁連結到它,網址仍可能被收錄,搜尋結果只顯示網址、不顯示說明管理檢索流量、避開不重要或重複的網頁;不能拿來隱藏網頁
媒體檔案(圖片、影片、音訊)可以讓這些檔案不出現在 Google 搜尋結果中,但無法阻止其他網站或使用者直接連到檔案不想讓特定圖片或影片出現在圖片、影片搜尋
資源檔案(CSS、JavaScript、圖片等)Google 讀不到這些資源時,可能無法正確理解依賴它們的網頁只封鎖對頁面呈現沒有影響的資源;版面與內容需要的 CSS、JS 不要擋

Disallow 不等於「不出現在搜尋結果」

很多教學會說「把不想被搜尋到的頁面寫進 Disallow」,這是最常見的誤解。Google 的規格文件寫得很清楚:被禁止檢索的網頁,Google 不會讀取內容,但仍可能為該網址建立索引並在搜尋結果中顯示,只是不會有網頁摘要。在 Search Console 的網頁索引報表裡,這種情況會出現「已建立索引,但遭到 robots.txt 封鎖」的狀態。

更麻煩的是,如果你在網頁上設了 noindex,又同時用 robots.txt 擋住它,Google 根本讀不到那個 noindex,網址反而可能繼續留在搜尋結果裡。想讓頁面不被收錄,應該讓檢索器讀得到頁面,再用 noindex 告訴它不要收錄;三種收錄控制工具(noindex、canonical、301 轉址)怎麼選,本站整理在 noindex、canonical、301 怎麼選這篇。

robots.txt、noindex 與密碼保護三種控制方式的差別示意圖
三種控制方式管的是不同階段:robots.txt 控制「抓不抓」,noindex 控制「收不收」,密碼保護才能決定「看不看得到」。

你的網站需要 robots.txt 嗎?先判斷三種情況

先說結論:沒有 robots.txt 的網站,Google 會視為沒有任何檢索限制,整個網站都可以檢索。Search Console 說明中心也表示,沒有 robots.txt 檔案代表 Google 可以檢索網站上所有網址,這本身沒有問題。所以「要不要寫」取決於你有沒有真正需要限制的網址,而不是「SEO 一定要有」。

網站情境需要自己寫規則嗎建議做法
頁數不多的形象官網、部落格通常不需要讓所有網頁都可檢索,只在檔案中寫上 Sitemap 位置即可
使用架站平台或代管服務多半不能也不必直接編輯Google 說明 Wix、Blogger 這類服務可能無法直接改 robots.txt,改用平台的搜尋設定(例如每頁的索引選項)
電商或有篩選、排序、站內搜尋的網站值得規劃封鎖會產生大量組合的篩選網址與站內搜尋結果頁,保留商品頁與分類頁
伺服器資源有限、被檢索拖慢的網站需要,但先找原因先查是哪些網址被大量檢索,再用規則排除;緊急降載另有做法(見後文狀態碼一節)
測試站、內部系統不要只靠 robots.txt用帳號密碼保護;robots.txt 是公開檔案,列出的路徑反而等於公告位置

最後一列常被忽略。robots.txt 的國際標準 RFC 9309 在安全考量一節特別提醒,這個協定不能取代真正的內容安全措施,把路徑寫進 robots.txt 等於公開告訴所有人這些路徑存在。後台、客戶資料、報價單這類內容,一定要用登入權限保護,而不是寫一行 Disallow 了事。

小提醒robots.txt 只對「願意遵守」的檢索器有效。Google 說明,Googlebot 和值得信任的檢索器會遵守規則,但並非每個檢索器都會照做;惡意爬蟲完全可以無視它。

robots.txt 語法:四個欄位與「群組」怎麼讀

robots.txt 的每一行都是「欄位:值」的格式,欄位名稱不分大小寫(User-agent 和 user-agent 相同),冒號後面的空格可有可無,但加上比較好讀。井字號(#)後面的文字是註解,檢索器會忽略。Google 支援的欄位只有四個:

欄位作用寫法重點
User-agent指定下面的規則適用哪個檢索器,是每個群組的第一行星號(*)代表所有檢索器,但不包含 AdsBot 系列,AdsBot 要另外點名
Disallow不允許檢索的路徑以斜線(/)開頭;指目錄時以 / 結尾;沒有寫路徑的 Disallow 會被忽略
Allow允許檢索的路徑,常用來在被封鎖的目錄中開放某個子目錄或檔案寫法同 Disallow;路徑值區分大小寫
Sitemap告訴搜尋引擎 Sitemap 的位置必須是含 https:// 的完整網址;可以寫多行;不屬於任何群組

Google 的〈如何編寫及提交 robots.txt 檔案〉用了一個簡單範例說明這些欄位,換成白話就是下面這份檔案的意思:

檔案內容(逐行)意思
User-agent: Googlebot開始一個只給 Googlebot 看的群組
Disallow: /nogooglebot/Googlebot 不能檢索以 /nogooglebot/ 開頭的網址
User-agent: *開始一個給其他所有檢索器的群組
Allow: /其他檢索器可以檢索整個網站(不寫也一樣,預設就是允許)
Sitemap: https://www.example.com/sitemap.xmlSitemap 的完整網址

群組:一個檢索器只會套用一組規則

從一行 User-agent 開始,到下一行 User-agent 之前的規則,就是一個「群組」。這裡有一個關鍵規則:對某個檢索器來說,只有一個群組會生效,就是 User-agent 寫得最明確、最符合它名稱的那一組,其他群組一律忽略,而且群組在檔案中的先後順序不影響判斷。

舉例來說,如果檔案裡同時有「User-agent: *」和「User-agent: Googlebot」兩組,Googlebot 只會看自己那一組,寫在星號群組裡的封鎖規則,對 Googlebot 完全不起作用。很多人在星號群組加了一行 Disallow,卻發現 Google 照樣檢索,原因就在這裡。若真要兩組都套用,必須把規則在 Googlebot 群組裡再寫一次。

另外兩個細節:同一個檢索器若被寫在好幾個群組,Google 會先把它們合併成一組;多個 User-agent 也可以連續寫在一起,共用下面的規則。至於 Sitemap 行,它不屬於任何群組,放在檔案開頭或結尾都可以。

Google 常見檢索器的 User-agent 名稱

一般網站很少需要針對個別檢索器寫規則,但如果只想讓圖片不出現在 Google 圖片搜尋,就需要知道名稱。下表整理 Google 常見檢索器清單中,robots.txt 會用到的幾個名稱:

User-agent 名稱影響範圍常見用途
GooglebotGoogle 搜尋(含探索)與 Google 圖片、影片、新聞等產品大多數規則只需要針對它或星號
Googlebot-ImageGoogle 圖片,以及搜尋中顯示圖片、標誌、網站小圖示的功能不想讓某些圖片出現在圖片搜尋
Googlebot-Video影片相關的搜尋功能不想讓某些影片檔被檢索
Googlebot-NewsGoogle 新聞新聞網站才需要個別設定

AI 公司的檢索器(例如用於模型訓練的檢索器)也是用 robots.txt 的 User-agent 控制,但它們各自的名稱、影響範圍和「擋了會不會影響搜尋」都不一樣,本站另外整理在 GEO/AIO AI 搜尋主題頁的「AI 爬蟲與預覽控制」一節,這裡不重複。

Google 不支援的寫法:crawl-delay、noindex、nofollow

網路上流傳的範本常出現 Crawl-delay 或在 robots.txt 裡寫 Noindex,對 Google 都沒有作用。Google 的規格文件明列只支援上面四個欄位,不支援 crawl-delay 等其他欄位。Google 也在 2019 年宣布,自 2019 年 9 月 1 日起不再處理 robots.txt 中的 noindex 等未支援規則,要讓網頁不被收錄,請改用網頁上的 robots meta 標記或 X-Robots-Tag 回應標頭。

路徑比對與萬用字元:* 和 $ 怎麼用

Disallow 和 Allow 後面的路徑,是從網址的路徑開頭逐字比對。只要網址路徑「以這段文字開頭」就算符合,而且路徑值區分大小寫:Disallow: /file.asp 擋得住 /file.asp,卻擋不住 /FILE.asp。Google 與其他主流搜尋引擎支援兩個萬用字元:星號(*)代表零個或多個任意字元,錢字號($)代表網址結尾。

規則路徑會符合不會符合
/根目錄與所有網址(無)
/$只有首頁首頁以外的所有網址
/fish/fish、/fish.html、/fish/salmon.html、/fishheads、/fish.php?id=anything/Fish.asp、/catfish、/?id=fish、/desert/fish
/fish//fish/、/fish/salmon.htm、/fish/?id=anything/fish、/fish.html、/animals/fish/
/*.php/index.php、/folder/filename.php?parameters、/filename.php//windows.PHP(大小寫不同)
/*.php$/filename.php、/folder/filename.php/filename.php?parameters、/filename.php5
/fish*.php/fish.php、/fishheads/catfish.php?parameters/Fish.PHP

從表格可以看出幾個容易踩雷的地方。第一,結尾的星號會被忽略,/fish* 和 /fish 完全相同,不必畫蛇添足。第二,/fish 和 /fish/ 差一個斜線,範圍差很多:前者連 /fishheads 都會擋到,後者只擋 /fish/ 資料夾裡面的東西。第三,比對是從路徑開頭算起,/fish 不會擋到 /desert/fish;想擋「任何位置出現某段文字」的網址,要在前面加星號。

規則衝突時,誰說了算?

同一個群組裡,Allow 和 Disallow 可能同時符合某個網址。Google 的判斷原則有兩條:先看哪條規則的路徑比較長(比較明確),就用那一條;如果一樣長,就採用限制最少的規則,也就是 Allow。國際標準 RFC 9309 的寫法相同:最明確的比對以字元數最多為準,Allow 與 Disallow 相等時應採用 Allow。

網址規則結果與原因
/pageAllow: /p 與 Disallow: /可檢索:/p 比 / 長,比較明確
/folder/pageAllow: /folder 與 Disallow: /folder可檢索:一樣長時採用限制最少的 Allow
/page.htmAllow: /page 與 Disallow: /*.htm不可檢索:/*.htm 較長,符合的字元較多
/Allow: /$ 與 Disallow: /可檢索:/$ 比較明確
/page.htmAllow: /$ 與 Disallow: /不可檢索:/$ 只符合首頁,所以由 Disallow: / 生效

最後兩列的組合很實用:「Allow: /$」搭配「Disallow: /」,代表只開放首頁、其他全部封鎖。不過這種寫法在一般企業網站很少需要,寫之前先確認你真的想讓其他網頁都不被檢索。

中文網址與編碼

如果網址路徑含有中文,Google 會把規則與網址都轉成百分比編碼再比對,所以直接寫中文或寫編碼後的字串,效果相同。真正要注意的是檔案本身:robots.txt 必須以 UTF-8 編碼儲存,Google 會忽略不屬於 UTF-8 範圍的字元,可能讓含中文的規則失效。

常見情境怎麼寫?七個可直接套用的範例

下面的範例以「User-agent: *」為例,代表規則給所有檢索器。實際使用時,把路徑換成你網站真正的路徑;每個範例都是一個完整群組,如果檔案裡已經有其他群組,記得前一節提到的規則:針對 Googlebot 另有群組時,要在那一組也寫一次。

情境寫法(每行以「/」分隔)說明
允許所有檢索器檢索整個網站User-agent: * / Disallow:Disallow 後面留空等於沒有限制;也可以直接不放 robots.txt
封鎖整個網站User-agent: * / Disallow: /只適合暫時性的特殊情況;正式網站誤留這行會讓檢索全面停止
封鎖某個目錄User-agent: * / Disallow: /admin/目錄以斜線結尾;後台仍要用登入保護
封鎖目錄但開放其中一個檔案User-agent: * / Disallow: /docs/ / Allow: /docs/catalog.pdfAllow 的路徑較長,所以 catalog.pdf 可檢索
封鎖站內搜尋結果頁User-agent: * / Disallow: /search站內搜尋會產生大量內容重複、沒有獨立價值的網址
封鎖帶篩選參數的網址User-agent: * / Disallow: /*?*color= / Disallow: /*?*size=依 Google 多面向導覽說明,篩選組合通常不值得檢索;商品頁與未篩選的分類頁要保持開放
不讓某資料夾的圖片出現在圖片搜尋User-agent: Googlebot-Image / Disallow: /images/private/只影響圖片相關功能,網頁本身仍可被檢索

以上範例最後都可以再加一行 Sitemap,寫上完整網址,例如「Sitemap: https://www.example.com/sitemap.xml」。Google 的說明把兩者的分工講得很清楚:Allow 和 Disallow 告訴 Google「可以」或「不可以」檢索什麼,Sitemap 則告訴 Google「應該」檢索哪些網址。網站有多個 Sitemap 時,可以寫多行。

寫一份新的 robots.txt:四個步驟

  1. 用純文字編輯器(記事本、TextEdit 等)建立檔案,不要用 Word 這類文書軟體,它們可能加入彎引號等不相容的字元;存檔時選 UTF-8 編碼
  2. 檔名必須是全小寫的 robots.txt,一個網站只能有一份
  3. 依前面的範例寫入規則,每個群組以 User-agent 開頭,最後加上 Sitemap 完整網址
  4. 上傳到網站主機的根目錄,讓它出現在「https://你的網域/robots.txt」,再依後文的方法測試

已經有 robots.txt 的網站,修改時先把線上版本下載或複製下來,在原檔上改,避免漏掉原本就有的規則。Google 也提醒,如果你沒有上傳檔案到網站根目錄的權限,例如網站放在別人網域的子目錄下,就要請網域管理者代為修改。

檔案位置與適用範圍:每個主機各自一份

robots.txt 只對「放置它的那個主機、通訊協定和通訊埠」有效,這一點在網站有多個子網域時特別重要。https://example.com/robots.txt 的規則,不會套用到 https://shop.example.com/,也不會套用到 http://example.com/。每個子網域都要有自己的檔案。

robots.txt 網址適用於不適用於
https://example.com/robots.txthttps://example.com/ 底下所有路徑https://other.example.com/、http://example.com/、https://example.com:8181/
https://www.example.com/robots.txthttps://www.example.com/https://example.com/、https://shop.www.example.com/
https://example.com/folder/robots.txt不是有效的 robots.txt檢索器不會到子目錄找這個檔案

實務上最常見的狀況是:主網站和網路商店、部落格分別在不同子網域,管理者只改了主網域的 robots.txt,就以為全站都套用了。也有人把檔案放進 /pages/ 之類的子目錄,結果完全沒有作用。放錯位置的 robots.txt,對檢索器來說等於不存在。

用 Search Console 的網域資源時,robots.txt 報表會列出網站上檢索次數最多的前 20 個主機各自的 robots.txt,是一次檢查所有子網域的好方法。Search Console 本身的設定與網域驗證方式,可以參考 Google Search Console 怎麼用。

最常見的 10 個錯誤與修正方式

下面這張表整理 robots.txt 最常見的錯誤,每一項都對照 Google 文件中的規則,可以拿來逐項檢查自己的檔案:

錯誤實際後果怎麼修正
網站上線後忘了刪除 Disallow: /整個網站停止被檢索,新內容進不了索引上線檢查清單加一項:打開 /robots.txt 確認沒有全站封鎖
用 Disallow 隱藏不想被搜到的網頁網址仍可能因外部連結被收錄,只是沒有摘要讓網頁可被檢索,改用 noindex;機密內容用密碼保護
同一頁設了 noindex 又被 robots.txt 封鎖Google 讀不到 noindex,網址可能繼續出現先移除 robots.txt 的封鎖,等網頁從索引消失
封鎖了版面需要的 CSS、JavaScriptGoogle 可能無法正確理解網頁內容只封鎖對呈現沒有影響的資源
把規則寫在星號群組,以為對 Googlebot 也有效若另有 Googlebot 群組,星號群組的規則對它無效在 Googlebot 群組重複寫入需要的規則
路徑大小寫不符/Admin/ 擋不到 /admin/照實際網址的大小寫撰寫,必要時兩種都寫
放在子目錄或只放主網域其他主機或錯誤位置的規則完全不生效每個子網域根目錄各放一份
用文書軟體編輯或非 UTF-8 編碼彎引號、亂碼讓規則無法解析用純文字編輯器,以 UTF-8 存檔
寫 Crawl-delay、Noindex 期待 Google 照做Google 忽略這些欄位改用 Google 支援的方法(noindex 標記、降載狀態碼)
用 robots.txt 列出後台、測試站路徑路徑公開,任何人都看得到用登入權限保護,不必寫進 robots.txt

這十項裡,第一項的殺傷力最大。新網站建置期間為了不讓半成品被收錄,常會先設全站封鎖,正式上線時卻忘了拿掉,結果網站上線好幾週都沒有任何曝光。網站搬家時也一樣,舊站的封鎖規則或 noindex 沒有及時移除,是 Google 列出的常見遷移錯誤之一;搬家的完整步驟可以參考 網站搬家怎麼做。

第二、三項則是「越想藏、越藏不住」的典型。要記得,robots.txt 是公開的、只管檢索的檔案;決定一個網頁「出不出現在搜尋結果」,要靠網頁本身的 noindex 或 HTTP 標頭,決定「誰能看到」則要靠登入權限。

怎麼測試 robots.txt?確認規則真的生效的方法

規則寫好、上傳之後,不要假設它一定正確。Google 建議的測試流程可以拆成四個層次,從「檔案在不在」一路檢查到「某個網址到底有沒有被擋」:

  1. 確認檔案可公開存取:用瀏覽器的無痕視窗開啟「https://你的網域/robots.txt」,能看到檔案內容才算成功;看到登入頁、錯誤頁或空白,代表檢索器也拿不到
  2. 查看 Search Console 的 robots.txt 報表:開啟報表後確認擷取狀態為「已擷取」、上次檢查時間,以及「問題數」欄位有沒有剖析錯誤或警告
  3. 用網址檢查工具測試個別網址:輸入你擔心被誤擋的重要網頁,查看檢索是否被允許;修改規則後可按「測試線上網址」看最新結果
  4. 對照網頁索引報表:查看「網址遭到 robots.txt 封鎖」與「已建立索引,但遭到 robots.txt 封鎖」兩種狀態的網址,確認被擋的都是你刻意排除的網頁

Search Console 說明中心的〈robots.txt 報表〉說明,這份報表會顯示 Google 為網站前 20 個主機找到的 robots.txt、上次檢索時間與遇到的警告或錯誤,出現「錯誤」時規則無法使用,「警告」則不影響;點進檔案還能看到過去 30 天內擷取到的不同版本,方便對照是哪一次修改出了問題。

修改後多久生效?什麼時候要「要求重新檢索」

Google 通常會快取 robots.txt 的內容,最多保留 24 小時,所以修改後不一定馬上生效。如果你剛解除了重要網址的封鎖,或修正了嚴重錯誤,可以在 robots.txt 報表中選取檔案旁的更多選項,點「要求重新檢索」。不過說明中心也提醒,Google 本來就會經常重新檢索 robots.txt,一般修改不需要特別提出要求,而且解除封鎖不保證那些網址會立刻被重新檢索。

舊版「robots.txt 測試工具」去哪了?

早期 Search Console 有一個可以貼上網址、即時測試是否被封鎖的「robots.txt 測試工具」,2023 年底已由現在的 robots.txt 報表取代。現在要測試單一網址,請用網址檢查工具;開發人員則可以使用 Google 公開的開放原始碼 robots.txt 剖析程式庫(也就是 Google 搜尋實際使用的程式庫),在自己電腦上測試規則。

檢查習慣每次修改 robots.txt 前,先把舊版本存一份並記下日期。Search Console 只保留 30 天的擷取版本,自己留存紀錄,日後排查索引數量變化時才有依據。

robots.txt 本身出錯會怎樣?狀態碼、快取與檔案大小

很少人注意到:robots.txt 這個檔案「回應什麼狀態碼」,會直接改變 Google 的檢索行為。依 Google 對 robots.txt 規格的說明,整理如下:

robots.txt 回應Google 的處理方式要注意什麼
2xx 成功讀取並套用檔案中的規則確認內容是純文字規則,不是 HTML 頁面
3xx 重新導向至少追蹤 5 次重新導向;超過就視為 404避免重新導向鏈過長,讓檢索器能順利取得檔案
4xx(429 除外)視為沒有 robots.txt,也就是沒有任何檢索限制不要用 401、403 來限制檢索頻率,它們沒有這個效果
5xx 伺服器錯誤前 12 小時停止檢索整個網站;之後 30 天內沿用最後一個可用版本這是最危險的狀況,robots.txt 出錯可能讓整站停擺
DNS 或網路錯誤、逾時比照伺服器錯誤處理主機不穩時,robots.txt 也要列入監控

5xx 這一列值得多看兩眼。根據 Google 的說明,如果 robots.txt 存在卻回應伺服器錯誤,Google 會在最初 12 小時內停止檢索網站,接下來 30 天沿用上一個可用版本;30 天後仍未修正,若網站其他部分大致正常,Google 會當作沒有 robots.txt。換句話說,一個看似無關緊要的小檔案出錯,可能讓整個網站的檢索暫停。國際標準 RFC 9309 也規定,robots.txt 因伺服器錯誤無法取得時,檢索器必須假設全部禁止。

檔案格式與大小限制

  • 大小上限 500 KiB:Google 會忽略超過的部分。規則太多時,把要排除的內容集中到少數目錄,用一行目錄規則取代大量單一網址
  • 換行與編碼:每行以 CR、CR/LF 或 LF 分隔,以 UTF-8 儲存;檔案開頭的 BOM 等無效內容會被忽略
  • 無效行會被略過:Google 只使用能夠剖析的行,寫錯的那一行不會讓整份檔案失效,但那條規則等於沒寫
  • 快取:一般最多 24 小時;無法更新時(例如逾時或 5xx)會延長使用舊版本

網站被檢索拖慢時,不要急著改 robots.txt

有時網站主發現 Googlebot 請求太多、主機變慢,第一反應是在 robots.txt 加封鎖。Google 的〈降低 Google 檢索頻率〉說明建議先找原因:檢索量暴增最常見的原因,是篩選、排序功能或日曆產生了大量網址。真的需要在幾小時到一兩天內緊急降載,可以讓伺服器暫時回應 500、503 或 429 狀態碼;但最多不應超過一到兩天,否則持續出現這些狀態碼的網址可能被移出索引。

用架站平台怎麼辦?以 Sharing AI 為例的檢查方式

使用架站平台或代管服務的網站,往往不能直接上傳 robots.txt。Google 在建立 robots.txt 的說明開頭就提到,Wix、Blogger 這類服務可能不需要、也無法直接編輯 robots.txt,而是透過平台的搜尋設定告訴搜尋引擎哪些網頁要不要檢索或收錄。這時候你的工作從「寫規則」變成「確認平台產生的規則是否合理」。

以本站知識庫介紹的 Sharing AI 架站平台為例,官方列出的功能包含自動產生 robots.txt 與 Sitemap。以本站自己的網站來說,開啟「網域/robots.txt」可以看到只有一個給所有檢索器的群組,封鎖少數幾個非公開頁面的路徑(例如 /preview/),最後一行寫著 Sitemap 的完整網址。這樣的設定讓正式網頁都能被檢索,同時避開不需要被檢索的路徑。

  1. 在瀏覽器開啟「你的網域/robots.txt」,確認檔案存在、沒有「Disallow: /」這種全站封鎖
  2. 確認 Sitemap 那一行的網址能正常開啟,並在 Search Console 提交同一個網址
  3. 不想被收錄的單一頁面(例如表單感謝頁、內部活動頁),在後台頁面設定的「SEO 基本設定」選擇不索引(noindex),而不是設法改 robots.txt
  4. 在 Search Console 的 robots.txt 報表確認擷取狀態正常,網頁索引報表中沒有重要網頁被封鎖

第三步是平台使用者最需要記住的:在平台上控制「某一頁不要出現在搜尋結果」,用的是頁面的索引設定,而不是 robots.txt。這也正好符合 Google 的建議,noindex 才是讓網頁不被收錄的正確工具。表單感謝頁的實際設定方式,可以參考 網站表單怎麼設計中的說明。

上線前後的 robots.txt 檢查清單

把下面這份清單放進網站上線、改版、搬家時的例行檢查,大部分問題都能在發生前攔下來:

  • 正式網站的 robots.txt 沒有「Disallow: /」,建置期的全站封鎖已移除
  • 每個子網域(www、商店、部落格)各自的 robots.txt 都檢查過
  • 想讓搜尋者找到的網頁都沒有被 Disallow,版面需要的 CSS、JavaScript 沒有被擋
  • 不想被收錄的網頁使用 noindex,且沒有同時被 robots.txt 封鎖
  • 後台、客戶資料、測試站用登入權限保護,而不是只靠 robots.txt
  • 檔案為 UTF-8 純文字、小於 500 KiB,路徑大小寫與實際網址一致
  • 沒有 Crawl-delay、Noindex 這類 Google 不支援的欄位期待生效
  • Sitemap 行寫的是含 https:// 的完整網址,且與 Search Console 提交的一致
  • 修改後在 robots.txt 報表確認「已擷取」、沒有錯誤,並用網址檢查工具測試幾個重要網頁
  • 保留每次修改前的版本與日期,方便日後對照索引數量變化

robots.txt 只是讓 Google 順利找到網站的其中一環。網站剛上線、想從頭確認收錄狀況,可以從 網站 SEO 健檢第一步開始;網站內部的連結結構會影響檢索器能不能找到每一頁,做法整理在 內部連結怎麼做。如果希望有人協助檢查網站的檢索與索引設定、排出改善順序,也可以了解分享家的 AI SEO 顧問服務;更多搜尋相關主題,都收錄在 SEO 搜尋引擎最佳化主題頁。

FAQ

常見問題

robots.txt 一定要有嗎?

不一定。沒有 robots.txt 時,Google 會視為沒有任何檢索限制,整個網站都可以檢索,這本身沒有問題。只有在需要排除特定網址,例如篩選參數或站內搜尋結果頁時,才需要撰寫規則。

用 Disallow 封鎖的網頁,就不會出現在 Google 搜尋結果嗎?

不會保證。Disallow 只讓 Google 不檢索內容,若其他網頁連結到它,網址仍可能被收錄,只是沒有摘要。想讓網頁不出現在搜尋結果,請改用 noindex 或密碼保護。

robots.txt 要放在哪裡?

必須放在主機的根目錄,例如 https://example.com/robots.txt,放在子目錄不會生效。每個子網域、每種通訊協定各自適用自己的 robots.txt,主網域的檔案不會套用到其他子網域。

Allow 和 Disallow 同時符合一個網址時,聽誰的?

Google 會採用路徑較長、較明確的那條規則;如果兩條一樣長,就採用限制最少的 Allow。例如 Allow: /p 與 Disallow: / 同時符合 /page 時,網址可以檢索。

robots.txt 可以寫 Crawl-delay 或 Noindex 嗎?

可以寫,但 Google 不會理會。Google 只支援 User-agent、Allow、Disallow 與 Sitemap 四個欄位,並自 2019 年 9 月 1 日起不再處理 robots.txt 中的 noindex,請改用網頁上的 noindex 標記。

修改 robots.txt 後多久會生效?

Google 通常最多快取 24 小時,之後會自動讀取新版本。若剛解除重要網址的封鎖或修正嚴重錯誤,可以在 Search Console 的 robots.txt 報表點選「要求重新檢索」。

怎麼知道某個網址有沒有被 robots.txt 擋住?

用 Search Console 的網址檢查工具輸入該網址,可以看到檢索是否被允許;網頁索引報表中的「網址遭到 robots.txt 封鎖」狀態,也會列出被擋的網址樣本。

用架站平台不能改 robots.txt,怎麼讓某一頁不被收錄?

使用平台提供的頁面索引設定,把該頁設為不索引(noindex)。Google 也建議,使用代管服務的網站透過平台的搜尋設定控制收錄,而不是直接編輯 robots.txt。

分享家創意行銷

想把方法用在自己的網站或團隊?

先聊聊目前的目標與現況。