Robots.txt 設定錯誤有哪些?整站封鎖、Sitemap 衝突、測試站錯誤

Robots.txt 是網站和 Google 爬蟲之間的第一道關卡,它決定了哪些頁面可以被爬、哪些不行。它的設定其實不難,但只要一個地方寫錯,可能整個網站都不會被 Google 收錄,偏偏這種錯又很難自己發現。這篇文章介紹 Robots.txt 是什麼、基本語法,還有三個中小企業最常犯、會讓網站被 Google 移除索引的設定錯誤,以及該怎麼檢查。

Robots.txt 是什麼?可以做什麼、不能做什麼

很多人以為 Robots.txt 是用來讓網站消失,或保護機密頁面的,這個誤會其實有點危險,方向錯了,設定就會出問題。它是一個放在網站根目錄的純文字檔,網址是網域加上 /robots.txt,作用是告訴搜尋引擎的爬蟲,哪些頁面可以爬、哪些不要爬。

要注意的是,Robots.txt 是一種請求,不是命令。像 Google、Bing 這種正規的爬蟲會遵守,但惡意爬蟲根本不會理,所以它不能拿來當安全防護。

還有一個最常被搞混的地方,是 Robots.txt 和 noindex 的差別。有些人會用 Robots.txt 把一個頁面 Disallow,以為這樣它就不會出現在搜尋結果,其實不會。Disallow 只是叫 Google 不要爬那一頁,但只要有其他網站連到它,Google 還是可能把網址列進搜尋結果,只是沒有內容、標題空白。真的不想讓某一頁出現在 Google,要用 noindex,而且那一頁本身要能被爬到,Google 才讀得到 noindex。

Robots.txt 的四個基本指令

語法不複雜,但每一個指令的作用要弄清楚,因為一個符號就可能影響整個網站。常用的指令有四個。

User-agent 用來指定這組規則對哪個爬蟲生效,星號代表全部,Googlebot 就只針對 Google。Disallow 是告訴爬蟲不要爬某個路徑,留空就代表沒有任何限制。Allow 用來在 Disallow 的範圍裡開一個例外,放行某個路徑。Sitemap 則是告訴爬蟲 Sitemap 放在哪,這一行建議每個 Robots.txt 都加上。

最要小心的是一個斜線的差別。Disallow 後面接一個斜線(Disallow: /),代表封鎖整個網站,接 /admin/,就只封鎖 admin 這個路徑底下的頁面。差一個斜線,就是全站被封和只封後台的差別。

三個會讓網站被移除索引的常見錯誤

接下來是重點,三個中小企業最常犯、也最嚴重的設定錯誤。

錯誤一:整站封鎖

最致命的就是整站封鎖。常見的情況是,WordPress 網站在開發階段,怕 Google 爬到還沒做完的內容,設了 Disallow: / 先擋住全站,等開發完成,卻忘了改回來。網站正式上線之後,Google 每次來爬都被擋掉,排名掉光、流量歸零,但網站看起來一切正常,老闆常常完全沒發現。檢查方式很簡單,直接在瀏覽器打網域加 /robots.txt,看有沒有 Disallow: / 這一行,要修就把它留空、或整行刪掉,只保留真的想擋的路徑。

錯誤二:Robots.txt 和 Sitemap 互相衝突

第二個是 Robots.txt 和 Sitemap 打架。在 Robots.txt 擋掉某個路徑,Sitemap 裡卻又放了那個路徑的網址,Google 看到 Sitemap 有這個網址、去爬卻被擋回來,白白浪費爬蟲資源,收錄效率也會下降。更麻煩的是,Search Console 會把它們標成「已封鎖」,等於提交的 Sitemap 反而變成扣分。原則很簡單,出現在 Sitemap 裡的網址,Robots.txt 就不能 Disallow,兩邊只能留一個。

錯誤三:測試站沒設防爬

第三個是忘了幫測試站設防爬。很多中小企業除了正式站,還有一個測試站,內容常常和正式站一模一樣。如果這個測試站可以公開連上、Robots.txt 又沒設 Disallow: /,Google 會把正式站和測試站一起爬,看到兩個內容相同的網站,就判定為重複內容,連帶影響正式站的排名。做法是把測試站的 Robots.txt 設成全站 Disallow,或更保險,直接幫測試站加上密碼保護,讓爬蟲進不來。

WordPress 加 Rank Math 怎麼設 Robots.txt

如果網站是用 WordPress 加 Rank Math,其實不用手動編輯檔案,後台就能設定。Rank Math 內建了 Robots.txt 編輯器,在一般設定裡的 Edit robots.txt,改完會即時生效,不必用 FTP 上傳。

Rank Math 的預設設定通常是安全的,大致是擋掉 /wp-admin/ 後台、放行 admin-ajax.php(很多 WordPress 功能要靠它),再把 Sitemap 指到 Rank Math 自動產生的網址。設定完之後,可以到 Google Search Console 的 robots.txt 報表,看看 Google 抓到的是哪個版本,也能測試某個網址到底是被允許還是被擋。

哪些路徑該擋、哪些不該擋

不是所有不重要的頁面都該封鎖,過度封鎖和完全不封鎖,其實一樣會出問題。

以 WordPress 來說,值得擋的通常是 /wp-admin/ 後台、/wp-includes/ 系統檔、站內的搜尋結果頁(會產生大量動態網址),還有內容很薄、重複性高的標籤頁。如果是一人經營的網站,作者頁幾乎和首頁重複,也可以擋掉。

反過來,不該擋的,是任何想被 Google 收錄的頁面,還有圖片、CSS、JS 這些檔案。早期有人會把 CSS、JS 擋掉,但現在 Google 建議開放,這樣它才能正確顯示頁面。RSS 的 /feed/ 也不要擋,擋了會讓 Google Discover 抓不到網站的更新。

Robots.txt 在整個 SEO 裡的位置

Robots.txt 只是技術 SEO 的一小塊,但因為它在最上游,影響可能很大。

這裡有個觀念叫爬蟲預算。Google 每次來爬網站的資源是有限的,如果有幾千個低品質的頁面都開放給它爬,這些預算就會花在沒用的頁面上,真的重要的內容反而被晾在一邊、收錄變慢。中小企業的網站規模,通常還不到爬蟲預算緊張的程度,但只要超過幾百頁,Robots.txt 的策略就開始重要了。

另外要記得,設完 Robots.txt 不代表技術 SEO 就做完了。它只是讓 Google 爬蟲進得來的第一步,後面還有 Sitemap、頁面速度、Core Web Vitals、結構化資料這些要顧。

改完 Robots.txt,記得通知 Google

很多人改完就放著等 Google 自己更新,其實可以主動加速。到 Search Console 的 robots.txt 報表點重新整理,就能請 Google 重新抓最新的版本,通常幾小時到一兩天就會更新。

改完之後的兩到四週,建議盯幾個數字。看 Search Console 的索引涵蓋範圍,確認已索引的頁數有往對的方向走,如果做的是解封,「因 robots.txt 封鎖」的數量應該會下降。萬一自然搜尋流量在改動後突然下跌,要立刻回頭檢查 Robots.txt。遇到比較細的語法問題,直接查 Google 官方的 robots.txt 文件最準。

最後附上一份可以每半年檢查一次的清單:

  • 直接打開網域加 /robots.txt,確認檔案存在、讀得到。
  • 確認沒有 Disallow: /(測試站除外)。
  • 確認 Sitemap 的網址正確,而且有寫在 Robots.txt 裡。
  • 有測試站的話,確認測試站設了 Disallow: /。
  • 到 Search Console 確認,沒有正常的頁面被「因 robots.txt 封鎖」。

Robots.txt 本身不難,難的是不知道自己設錯了。最常見的情況,是網站開了一兩年,老闆完全不曉得 Robots.txt 有問題,每天產出新內容卻進不了索引,等於白做。想確認 Robots.txt、Sitemap 和收錄狀況都沒問題,最快的方式是做一次 SEO 技術健檢,把 Search Console、Robots.txt、Sitemap 三個一起看。Posty 做的,就是把 SEO 技術健檢、內容規劃、自動產出到排名追蹤這條線自動化,讓沒有專職 SEO 人員的中小企業也能持續維護技術面。想看實際怎麼運作,可以參加 Posty AI 自動獲客系統的免費說明會,用真實案例說明,也可以直接加 Posty 的 LINE,聊聊自己網站的狀況,不強迫購買。

Robots.txt 常見問題 FAQ

Robots.txt 跟 noindex 差在哪?該用哪個?

Robots.txt 的 Disallow 是叫 Google 不要爬這個頁面,但 Google 可能還是會把網址列進搜尋結果(只是沒有內容)。noindex 是叫 Google 不要把這個頁面收錄進搜尋結果,但 Google 必須能爬到頁面,才讀得到 noindex 標籤。如果只是想省爬蟲預算,用 Robots.txt。如果只是不想出現在搜尋結果,用 noindex。

WordPress 網站的 Robots.txt 要怎麼設才安全?

用 Rank Math 內建的 Robots.txt 編輯器,預設設定通常就夠安全,會擋掉 /wp-admin/、放行 admin-ajax.php、加上 Sitemap 連結。最重要的是確認沒有 Disallow: /(單一斜線)這一行,那會封鎖整個網站。

Robots.txt 設定完,多久 Google 才會更新?

Google 通常每隔幾天到幾週會自動重新抓取。想加速,可以到 Google Search Console 的 robots.txt 報表點重新整理,請 Google 立刻重抓,通常幾小時到一兩天就會更新。

Robots.txt 可以保護網站的機密頁面嗎?

不能。Robots.txt 只是請求,正規的爬蟲會遵守,惡意爬蟲完全無視。而且 Robots.txt 本身是公開的,任何人都能直接看網站的 /robots.txt,列在裡面的路徑反而等於公告這些頁面存在。機密頁面要用帳號密碼保護,不能靠 Robots.txt。

測試站(staging)需要特別設定 Robots.txt 嗎?

需要,而且要設 Disallow: / 封鎖整站。測試站如果沒擋,Google 會同時爬正式站和測試站,把兩個一模一樣的網站判定為重複內容,正式站的排名會受影響。更保險的做法是幫測試站加上密碼保護,讓爬蟲進不來。

購物車