robots.txt 與 sitemap.xml:別讓官網把 Google 擋在門外
官網改版後流量歸零,多半不是 Google 要時間,而是 robots.txt 從上線那天就把爬蟲擋在門外。五種誤設與六步驗證流程。

官網重做完上線兩個月,老闆發現一件怪事:公司名稱搜得到首頁,但三十幾頁服務介紹、案例、文章,Google 一頁都沒收。找廠商問,回答是「再等等,Google 要時間」。等了半年還是一樣。
這種情況有很大機率不是等的問題,而是網站根目錄那個幾百 bytes 的純文字檔,從一開始就把搜尋引擎擋在門外——上線前為了不讓客戶提前看到,開發階段設了全站封鎖,正式上線那天沒人記得拿掉。
robots.txt 和 sitemap.xml 是官網上最沒人看、卻最容易一次毀掉整站流量的兩個檔案。它們沒有後台介面、不會報錯、改壞了畫面也完全正常。這篇把兩者的分工、最常見的誤設、以及上線前該怎麼驗證,整理成一份看得懂也做得到的流程。
Photo by Umut Tülüoğlu on Unsplash
一、先搞清楚三件事是三件事,不要混在一起
很多誤設的根源,是把「爬」、「收錄」、「有哪些頁」當成同一件事在處理。它們是三套獨立機制:
- robots.txt 管「可不可以爬」。放在
https://你的網域/robots.txt,是一份給爬蟲看的通行規則。它只能阻止抓取,不能決定收不收錄。 - meta robots 的 noindex 管「可不可以收錄」。寫在每一頁的 HTML 裡(或用 HTTP 標頭 X-Robots-Tag)。這是唯一能明確要求「不要出現在搜尋結果」的方式。
- sitemap.xml 管「我有哪些頁希望你知道」。它是一份清單、一種推薦,不是命令。放進去不保證被收錄,沒放進去也不代表不會被收錄。
最常被搞混的組合是:想讓某一頁不要出現在搜尋結果,於是在 robots.txt 加一條 Disallow。結果爬蟲不能進去看那一頁,就永遠讀不到頁面裡的 noindex,反而可能因為外部有連結指向它,而讓那個網址帶著空白摘要留在搜尋結果裡。要不被收錄,就得讓爬蟲進得去、看得到 noindex。這個邏輯反直覺,但它是整件事最關鍵的一個觀念。
二、robots.txt 最常見的五種誤設
1. 上線後沒拿掉全站封鎖
開發或測試階段常見的寫法是:
User-agent: *
Disallow: /
WordPress 後台「設定 → 閱讀」也有一個「阻擋搜尋引擎索引這個網站」的勾選。開發時勾上很合理,但交付流程裡若沒有一條「上線後取消勾選」的檢查,它就會一直留著。這是台灣中小企業官網改版後流量歸零最常見的單一原因,而且從前台完全看不出來。
2. 為了「安全」把 CSS、JS 一起擋掉
有些舊教學會建議封鎖 /wp-includes/、/wp-content/plugins/ 這類目錄。問題是現在的搜尋引擎會實際渲染頁面,樣式表和腳本被擋住,它看到的就是一個排版崩掉、內容跑掉的版本,行動裝置友善度與版面判讀都會受影響。靜態資源目錄原則上不要擋。
3. 在 robots.txt 裡寫 noindex
Google 早在 2019 年就正式停止支援 robots.txt 內的 Noindex: 指令。這種寫法今天等於沒寫,卻常讓人誤以為已經處理好了。要 noindex,請回到頁面本身。
4. 把 sitemap 或重要參數頁一起擋住
有些封鎖規則寫得太寬,例如 Disallow: /*? 想擋掉追蹤參數,卻連帶擋掉了帶參數的正常分類頁;或者擋了 /sitemap 開頭的路徑,讓提交的 sitemap 根本讀不到。寫規則時要具體,例如只擋 Disallow: /*?utm_,不要用大範圍的萬用字元一次掃掉。
5. 把後台路徑寫在 robots.txt 裡當成防護
robots.txt 是任何人都能打開的公開檔案。把 /admin-secret/、/backup-2024/ 寫進去,等於主動告訴所有人這些路徑存在——包含惡意掃描的人。robots.txt 是一份禮貌性的請求,願意遵守的爬蟲會遵守,惡意程式完全不會理它。真正的保護是密碼、權限與防火牆,不是這個檔案。
一份適合多數中小企業官網的 robots.txt,通常不需要複雜到哪裡去:
User-agent: *
Allow: /
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://你的網域/sitemap_index.xml
三、sitemap.xml 該放什麼、不該放什麼
sitemap 的價值在「乾淨」,不在「完整」。一份塞滿垃圾網址的清單,會讓搜尋引擎降低對它的信任,抓取預算也被浪費在沒意義的頁面上。判斷標準其實只有一句話:只放你希望出現在搜尋結果、而且現在狀態正常的網址。
應該放進去的:
- 回傳 200 的正常頁面
- canonical 標籤指向自己的頁面(不是指向別頁的複本)
- 沒有 noindex 的頁面
不該放進去的:
- 301/302 轉址的舊網址
- 404、已下架的商品頁
- 標籤頁、作者頁、日期彙整頁這類自動產生的薄內容(除非它們真的有在做流量)
- 感謝頁、購物車、結帳頁、會員中心
- 站內搜尋結果頁
- 已經被 noindex 的頁面——同一個網址不要一邊叫人收、一邊叫人別收
幾個技術上的限制值得記住:單一 sitemap 檔最多 50,000 個網址、未壓縮不超過 50MB;超過就拆檔,再用一個 sitemap index 檔把它們串起來。lastmod 要誠實填寫實際內容更新時間,把全站日期每天自動改成今天,並不會換來更頻繁的抓取。至於 priority 和 changefreq,Google 已明確表示不使用,填了也只是自我安慰。
WordPress 站特別容易踩的一個坑
WordPress 從 5.5 版起內建了 /wp-sitemap.xml,而 Yoast、Rank Math 等 SEO 外掛也會各自產生一份。結果同一個網站存在兩三份內容不一致的 sitemap,有的含標籤頁、有的不含,提交到 Search Console 的又是第三份。這不會造成災難,但會讓後續排查變成猜謎。選定一個來源,把其他的關掉,只留一份。
Photo by Amsterdam City Archives on Unsplash
四、測試站被 Google 收錄了怎麼辦
這是改版期間另一個高頻狀況:廠商在 test.公司網域.com 或某個暫時網址上做新站,內容和正式站幾乎一樣,而且沒設任何封鎖。等到正式站上線,搜尋公司名稱跳出來的卻是測試站。
比較穩的處理順序是這樣:測試環境從第一天就加 HTTP Basic 驗證(帳號密碼),這比 robots.txt 或 noindex 都可靠,因為爬蟲連頁面都拿不到。如果已經被收錄了,別急著把測試站整個關掉——網址變成 404 之後,移除的速度反而更慢也更不可控。建議先保留站台、對所有頁面加上 noindex 或 301 轉到正式站對應頁,再到 Search Console 送出暫時移除,等確認搜尋結果清乾淨後才收掉環境。
五、AI 爬蟲要不要擋?先分清楚兩種用途
近兩年 robots.txt 多了一個新的決策題:OpenAI 的 GPTBot、Anthropic 的 ClaudeBot、Perplexity 的爬蟲等等,要不要放進來。討論這件事之前,得先把兩種用途分開:
- 拿去訓練模型——資料被收進訓練集,對你的網站沒有直接回流。
- 即時檢索後引用——使用者提問時去抓你的頁面,回答裡可能附上你的來源連結。
不同業者用不同的 user-agent 名稱區分這兩件事,也會隨時間調整。對多數靠官網接詢問單的中小企業來說,被 AI 助理引用到、附上連結,是新的曝光管道,全面封鎖等於自己退出這個入口。反過來,如果你的主力資產是付費內容、獨家資料庫或大量原創圖庫,選擇性封鎖訓練用爬蟲就有它的道理。
要擋的話,寫法是分開列出 user-agent:
User-agent: GPTBot
Disallow: /
但要清楚兩件事:第一,這同樣只是禮貌性請求,不遵守的爬蟲照樣抓得到;第二,Google 的 AI 功能與 Googlebot 共用抓取管線,想擋 AI 卻不影響一般搜尋排名,實務上很難做到乾淨切割。這是一個商業取捨題,不是技術正確題,決定前先想清楚你的流量目前靠什麼進來。
六、上線前後的驗證流程
這兩個檔案的特性是「改壞了完全沒感覺」,所以驗證必須排進流程,不能靠感覺:
- 用瀏覽器直接打開
你的網域/robots.txt,肉眼確認沒有Disallow: /。這一步十秒,卻能擋掉最嚴重的意外。 - 打開 sitemap 網址,確認讀得到、格式正常、網址數量和你心裡的頁數大致吻合。如果官網三十頁但 sitemap 有三百個網址,多出來的幾乎都是標籤頁或參數頁。
- Search Console 的 robots.txt 報告,確認 Google 最後一次讀取的版本、狀態正常。
- Sitemap 報告,看提交後「已發現的網址數」與實際數量的落差。
- 網址審查工具抽驗三到五個重要頁面,看「已允許檢索嗎」和「可以建立索引嗎」兩項是否都通過。
- 排進日曆:每次改版、換主機、裝新外掛之後重跑一次上面五步。這幾個動作都有機會默默覆蓋掉 robots.txt。
結語:花十分鐘,換掉一次半年的停滯
官網 SEO 有很多需要長期投入的工作——內容、結構、外部連結,都不是一週能看到結果的事。但 robots.txt 和 sitemap.xml 不屬於那一類。它們是通過或不通過的開關題,而且檢查成本極低。
如果你負責公司官網,今天可以做的事很具體:打開 你的網域/robots.txt 看一眼,再打開 sitemap 看一眼。如果第一個檔案裡有 Disallow: /、或者 sitemap 打不開、或者網址數量離譜地多,那你找到的可能不只是一個設定錯誤,而是過去半年流量一直上不來的原因。
ORON 提供官網建置、客製化系統與成效行銷服務。如果你的網站改版後流量始終沒回來、或想在上線前把技術 SEO 的基本項一次檢查清楚,歡迎與我們聯繫討論。