新站上線 robots.txt 常見錯誤:全站封鎖、擋 CSS 與 sitemap 路徑

新站上線 robots.txt 常見錯誤:全站封鎖、擋 CSS 與 sitemap 路徑

作者:平白設計編輯部|發布與最後查證:2026-09-25|適用:台灣(中華民國)|技術資訊,不保證搜尋排名

新網站上線後,如果搜尋流量遲遲沒有起色,第一件事不是改內容,而是打開 robots.txt 檢查。很多開發者在測試階段會用 Disallow: / 擋掉全站爬蟲,正式上線卻忘了移除;或者不小心封鎖了 CSS 與 JS 資料夾,導致搜尋引擎無法正確渲染頁面。這篇文章整理新站上線最常見的 robots.txt 錯誤、Sitemap 路徑寫法,以及上線前該確認的技術清單。這是純技術檢查流程,不保證排名或收錄速度。

文章重點

  • 測試期全站封鎖沒移除是最常見的低級錯誤
  • WordPress 阻擋搜尋引擎選項上線前務必關閉
  • 封鎖 wp-content 會讓搜尋引擎無法渲染版面
  • robots.txt 不能取代 noindex 來移除已索引網址

測試站的全站封鎖指令別忘移除

在本地或測試機開發時,為了避免未完成頁面被搜尋引擎抓到,通常會在 robots.txt 加入 Disallow: / 來擋掉所有爬蟲。這個做法在測試環境很合理,但正式上線時若忘記刪除,整個網站就會對搜尋引擎關門。這是最容易發生、也最容易忽略的失誤。

要確認這個問題,直接在瀏覽器輸入你的網域加上 /robots.txt,例如 example.com/robots.txt。如果看到 User-agent: * 下面接著 Disallow: /,代表全站都被封鎖了。正確的上線版本應該只封鎖不需要爬取的路徑,例如後台登入頁或購物車結帳流程。

移除全站封鎖後,建議立刻到 Google Search Console 提交 Sitemap,讓系統知道網站已經準備好被讀取。不過要注意,送出 Sitemap 只是通知,不代表馬上會被收錄。這段等待期間,你可以同步檢查其他技術細節,確保沒有遺漏。

鍵盤旁的空白檢查清單
上線前先移除測試期的全站封鎖

WordPress 的阻擋搜尋引擎設定

如果你用 WordPress 架站,後台的「設定」→「閱讀」裡有一個「阻擋搜尋引擎索引這個網站」的核取方塊。勾選它時,WordPress 會自動產生一份擋全站的 robots.txt。很多開發者在建置初期會勾起來,但上線切換時忘記取消,導致網站一直處於封鎖狀態。

這個選項本質上是幫你在 robots.txt 裡寫入 Disallow: /,跟手動加的效果一樣。差別在於它是透過系統動態產生的,有時候你直接去伺服器找檔案還找不到實體檔。所以檢查時一定要進後台確認這個選項有沒有被取消,不要只看 FTP 裡的檔案。

除了這個核取方塊,有些外掛或佈景主題也會在 header 塞入 noindex 標籤。上線前最好用瀏覽器的開發者工具檢視原始碼,搜尋 noindex 關鍵字,確保沒有殘留。這類問題跟 改版後 favicon 路徑怎麼抽樣 的檢查邏輯類似,都需要逐項比對。

User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/sitemap.xml

CSS 與 JS 被封鎖造成的渲染問題

早期 SEO 觀念常建議把 /wp-content/ 或 /css/、/js/ 等資源目錄擋起來,認為這樣可以節省爬蟲預算。但現在的搜尋引擎需要執行 JavaScript 和載入 CSS 才能正確理解頁面結構。如果你把這些目錄封鎖了,搜尋引擎看到的會是沒有樣式的破碎畫面,甚至讀不到關鍵內容。

Google 官方明確建議不要封鎖渲染頁面所需的資源。如果你的網站依賴前端框架或動態載入內容,擋掉 JS 可能導致搜尋引擎完全抓不到文字。檢查方式是到 Search Console 使用「網址檢查」工具,查看實際渲染後的截圖,確認跟使用者看到的畫面一致。

這類資源路徑的檢查,其實跟 改版後 web manifest 怎麼抽樣 的概念相通:都是確認靜態資源的路徑在上線後是否正確可存取。建議把 /wp-content/themes/ 和 /wp-content/plugins/ 從 Disallow 清單中移除,讓爬蟲能順利讀取樣式與腳本。

資料中心的伺服器機櫃
移除索引要用 noindex 不是 robots.txt

Sitemap 路徑必須使用絕對網址

在 robots.txt 裡宣告 Sitemap 位置時,必須使用完整的絕對網址,包含 https:// 協定。很多人習慣寫相對路徑,例如 Sitemap: /sitemap.xml,但這不符合規範,部分爬蟲可能無法正確辨識。正確的寫法是 Sitemap: https://example.com/sitemap.xml。

如果你的網站有多個 Sitemap,例如文章、產品、分類各一個,可以在 robots.txt 裡分行列出所有網址。也可以只放一個 Sitemap 索引檔的網址,讓索引檔再去指向其他子 Sitemap。無論哪種方式,每一行都必須是完整的絕對網址,不能偷懶省略網域。

寫好之後,記得用 Search Console 的 robots.txt 測試工具驗證語法是否正確。這個工具會告訴你哪些路徑被允許、哪些被封鎖,也能即時發現拼字錯誤或格式問題。另外,Sitemap 本身的內容也要定期檢查,確保沒有包含已刪除或重新導向的舊網址。

robots.txt 不是移除索引的工具

這是一個非常常見的誤解:很多人以為在 robots.txt 裡封鎖某個網址,就能讓它從搜尋結果消失。事實上剛好相反,如果一個頁面已經被索引,你後來才在 robots.txt 擋掉它,搜尋引擎反而無法讀取頁面上的 noindex 標籤,導致該網址繼續留在搜尋結果裡。

要真正移除已索引的頁面,正確做法是在該頁面的 HTML head 裡加入 meta name=”robots” content=”noindex” 標籤,或者在 HTTP 標頭裡設定 X-Robots-Tag: noindex。前提是搜尋引擎必須能爬到這個頁面,所以千萬不要在 robots.txt 裡同時封鎖它。

如果你想更深入了解標籤的設定方式,可以參考 改版後 og:locale 怎麼抽樣 那篇文章裡提到的 meta 標籤檢查技巧。總結來說,robots.txt 是用來控制「要不要爬」,而不是控制「要不要顯示」。兩者用途完全不同,混用會造成反效果。

新站上線 robots.txt 檢查清單
檢查項目 正確做法 常見錯誤
全站封鎖指令 僅封鎖必要路徑如 /admin/ 保留 Disallow: / 未移除
WordPress 設定 取消阻擋搜尋引擎選項 上線後仍維持勾選狀態
資源目錄 開放 CSS 與 JS 供爬蟲讀取 封鎖 /wp-content/ 目錄
Sitemap 路徑 使用含 https 的絕對網址 寫成相對路徑或拼錯檔名
移除索引需求 使用 noindex 標籤處理 誤用 robots.txt 封鎖來移除

可以先做

  • 上線當天直接開啟瀏覽器檢查 robots.txt 內容
  • 用 Search Console 網址檢查工具驗證渲染結果
  • 確認 Sitemap 網址能正常開啟且格式正確
  • 逐一核對 WordPress 後台閱讀設定是否已關閉阻擋

不要當成已完成

  • 不要把 robots.txt 當成移除搜尋結果的工具
  • 不要封鎖 CSS 與 JS 等前端渲染所需資源
  • 不要假設開發環境的設定會自動在正式站更新
  • 不要只靠肉眼檢查,務必用工具驗證爬蟲視角

常見問題

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

搜尋引擎通常會在數小時到一天內重新抓取 robots.txt,但實際生效時間取決於爬蟲排程。你可以用 Search Console 要求重新驗證,加快系統讀取新版本的速度。

可以用 robots.txt 隱藏敏感資料嗎?

不行。robots.txt 是公開檔案,任何人都能直接查看。它只是禮貌性的指引,惡意爬蟲完全可以無視。敏感資料應該用伺服器權限或密碼保護來處理。

Disallow 空白代表什麼意思?

Disallow: 後面不接任何路徑,代表允許所有爬蟲存取整個網站。這跟 Disallow: / 完全相反,後者是封鎖全站。上線時通常會使用空白的 Disallow 搭配特定路徑封鎖。

沒有 robots.txt 檔案會有問題嗎?

不會有嚴重問題,搜尋引擎會預設允許爬取所有頁面。但建議還是放一份,至少用來指定 Sitemap 位置,並封鎖不需要被抓取的後台或測試路徑。

重點摘要

  1. 上線前務必移除測試期的全站 Disallow 指令
  2. WordPress 阻擋搜尋引擎選項需確認已取消
  3. CSS 與 JS 資源目錄不應被封鎖以免影響渲染
  4. 移除索引應使用 noindex 而非 robots.txt 封鎖

撰文:SEO顧問MARS