Whoops

你是否遇過這種狀況:網站改版三個月,重要頁面卻始終不出現在 Google 搜尋結果,但你明明寫了好內容、也提交了 Sitemap。你懷疑主機、懷疑速度、懷疑演算法,卻沒想到元兇可能是一份你從沒開過的文字檔。robots.txt。這個檔案是網站根目錄裡的一個純文字檔,體積通常不到 1 KB,卻能決定 Google 的爬蟲能不能走進你的網站大門。

三分鐘重點:robots.txt 是放在網站根目錄的純文字檔,用來告訴搜尋引擎爬蟲「哪些路徑可以爬、哪些不要爬」。它不是拿來移除已收錄頁面的工具,而是控制「爬蟲的進入權與抓取範圍」。寫對了,能保護爬取預算、加速索引;寫錯了,可能把整個網站封鎖在 Google 之外。在 AI 搜尋時代,它還多了一個新任務:決定 GPTBot、Google-Extended 這類 AI 爬蟲能不能讀取你的內容。

接下來會把 robots.txt 的原理、語法、實戰寫法、常見錯誤,以及 2026 年最熱門的「要不要擋 AI 爬蟲」抉擇一次講清楚。你讀完,應該能自己寫出一份安全又有效率的 robots.txt,不必再把命運交給主機預設值。

robots.txt 是什麼?一句話講透

robots.txt 是一份放在網站根目錄的純文字檔,網址固定是 https://你的網域/robots.txt。它的角色,是網站對外發布的「爬蟲通行規則」。任何守規矩的搜尋引擎爬蟲(Googlebot、Bingbot 都是),在開始抓取你的網站之前,會先來讀這份檔案,看看哪些路徑允許進入、哪些被列為禁止區域(見 Google 搜尋中心的 robots.txt 簡介,2025 年 9 月)。

換句話說,robots.txt 做的事很單純:它是「建議」,不是「圍牆」。Google 在文件裡講得很明白,robots.txt 是一套協定(protocol),Google 會盡力遵守,但惡意爬蟲、不守規矩的程式照樣會無視它。所以如果你用它來擋後台登入頁,那是對君子有效、對小人無效,真正的敏感資料必須靠帳號密碼與伺服器層級的驗證來保護。

一個比喻:網站大門口的「管理員佈告欄」

把你的網站想像成一棟開放大樓,Googlebot 是來拜訪的訪客。robots.txt 就是掛在大門口的佈告欄,上面寫著:「一樓大廳、二樓展間歡迎參觀;三樓倉庫、四樓機房請勿進入。」訪客看到佈告欄,會客氣地照辦。但這只是禮貌性的引導,並沒有實體門鎖。真正能鎖門的,是後端的權限控管。換個角度想,這份檔案也是你跟搜尋引擎之間的一份默契:你負責把規則寫清楚、講明白,對方負責盡量遵守。雙方各司其職,網站的爬取與收錄才能跑得順暢。

這個比喻很關鍵,因為它同時點出 robots.txt 的能力邊界:它能引導爬蟲走對路,但無法強制任何人。一旦你誤以為它是鎖,把「不希望被排名的頁面」全塞進 Disallow,你就踩進了 SEO 最經典的陷阱之一。這部分後面會專門拆開來講。

這份檔案對 SEO 的影響,比你想像的大

很多人以為 robots.txt 只是個「技術設定」,交給工程師處理就好。這個想法很危險。這份檔案直接影響三件事,每一件都跟你的自然流量有關。一個寫錯的規則,可以讓你花三個月經營的內容完全消失在搜尋結果;一個寫對的規則,可以讓你的網站在同等內容下被收錄得更完整、更迅速。它的影響力往往無聲無息,等你察覺時,要嘛流量已經歸零,要嘛對手已經超前。

第一,能不能被爬。如果 robots.txt 把某個路徑封鎖,Googlebot 就不會去抓那個路徑下的頁面。頁面不被爬,就不會被收錄進索引,自然也不會出現在搜尋結果(見 Google 搜尋中心的搜尋運作說明,2025 年 9 月)。你寫得再好的文章,只要被 Disallow 擋住,等於從未存在。

第二,被爬得多有效率。Google 對每個網站都有一個「爬取預算」(crawl budget),也就是它在一定時間內願意花多少資源來抓你的頁面。如果你的網站有大量低價值頁面(篩選參數網址、搜尋結果頁、分頁迴圈),Google 會把寶貴的爬取額度浪費在這些頁面上,反而重要的內容排不到。透過 robots.txt 封鎖這些低價值路徑,能把爬取預算集中到真正該被收錄的頁面。這是大型網站(頁面數破萬的電商、內容站)一定要做的功課,想深入理解可以參考這篇爬取預算優化指南

第三,被誰爬。2026 年的 robots.txt 不只面對傳統搜尋引擎,還面對一大群 AI 爬蟲:OpenAI 的 GPTBot、Google 的 Google-Extended、各家訓練資料採集器。要不要放行牠們,直接影響你的內容會不會成為 AI 模型的訓練材料,也影響你會不會在 AI 搜尋結果裡被引用。這是一個全新的策略決策,傳統 SEO 教學幾乎沒碰過。

「封鎖」不等於「隱形」,這個觀念最常被誤解

很多站長把 robots.txt 的 Disallow 想成「隱形斗篷」,以為加了封鎖,頁面就會從世界上消失。這個誤解會帶來兩種代價。第一種代價是前面提過的:已經被收錄的頁面不會因為被封鎖就自動移除,反而會以你看不到的方式繼續存在於索引。第二種代價更隱晦:如果你封鎖了一個頁面,卻同時有大量外部網站連向它,Google 可能會根據外部連結的錨點文字,給這個頁面一個「它自己都無法控制」的排名與描述,因為 Google 讀不到頁面內容來校正這個推測。

換句話說,robots.txt 的 Disallow 是「請爬蟲別來看」,不是「讓這個頁面不存在」。真正想讓頁面從索引消失,正確的工具是 noindex;想讓頁面連外部都看不到,正確的工具是刪除頁面加上 410 狀態碼。把這三件事的層次分清楚,你的技術 SEO 才會精準。

這個觀念之所以重要,是因為它牽動你對整份 robots.txt 的設計哲學。一份好的 robots.txt,封鎖的應該是「本來就不該被收錄、且還沒被收錄」的東西(後台、篩選參數、搜尋結果頁),拿來補救「已經被收錄但你不想要」的頁面只會適得其反。前者是預防,後者要用別的工具。

Googlebot 讀到你的 robots.txt 時,實際發生什麼

要真正懂 robots.txt,你必須知道爬蟲讀檔的順序,以及檔案不存在或出錯時會怎麼反應。它直接決定你的網站會不會被意外封鎖,重要性遠超過一般人以為的冷知識。

Googlebot 的標準流程是:拜訪一個網域時,先抓 /robots.txt,再依規則決定接下來能抓哪些網址。它會把抓到的檔案快取一段時間(通常約 24 小時),所以你改了 robots.txt 之後,不會立刻生效,需要等 Google 重新抓取(見 Google 的 robots.txt 建立說明,2025 年 9 月)。

HTTP 狀態碼決定一切

這裡有一個很多人看漏的細節:當 Googlebot 來抓 /robots.txt 時,伺服器回傳的狀態碼,會被 Google 解讀成完全不同的意思。三種情況整理成下表。

HTTP 狀態碼Google 的解讀實際後果
200(成功)檔案存在,依照內容規則爬取正常運作,你寫的規則生效
404(找不到)沒有規則=完全開放Google 假設「沒有任何限制」,整站都會被爬
5xx(伺服器錯誤)暫時抓不到,視為「全站暫時封鎖」Google 會停止抓取整個網站,直到能正常讀到檔案為止

看出問題了嗎?如果你因為改版,把 robots.txt 弄成回傳 500 錯誤,Google 會把整個網站當成「暫時禁止進入」,所有頁面都不會被抓。這比寫錯規則還慘,因為你根本不知道自己被擋了。技術 SEO 健檢的第一步通常是打開瀏覽器手動訪問 https://你的網域/robots.txt,確認它回傳 200、而且內容是預期的。這個動作只要 5 秒,卻能抓出最致命的問題。

五個核心指令,看懂就能上手

robots.txt 的語法其實很簡單,整份檔案由幾組「規則群組」組成,每個群組針對特定的爬蟲(user-agent)設定允許或禁止的路徑。你只需要認識五個關鍵字。

指令作用範例
User-agent指定這組規則要套用給哪個爬蟲;* 代表全部User-agent: Googlebot
Disallow禁止爬蟲抓取指定路徑Disallow: /wp-admin/
Allow明確允許某個被 Disallow 涵蓋的子路徑Allow: /wp-admin/admin-ajax.php
Sitemap宣告你的 XML Sitemap 網址,方便爬蟲找到Sitemap: https://example.com/sitemap.xml
Crawl-delay要求爬蟲每次抓取間隔幾秒(Google 已不支援)Crawl-delay: 10

這裡有幾個重點要記住。第一,Disallow: 後面留空,代表「允許全部」,等於沒設限;而 Disallow: / 代表「禁止整站」。這兩者差一個斜線,結果天差地遠。第二,Google 支援的路徑比對規則包含 *(任意字串)和 $(行尾結束)兩個萬用字元,讓你能精準地封鎖像是 /*?sort= 這類帶排序參數的網址(見 Google 的 robots.txt 規格,2025 年 9 月)。

第三,Crawl-delay 這個指令雖然寫進檔案不會報錯,但 Google 已經不再理會它,Google 會用自己的演算法決定爬取節奏。所以如果你寫 Crawl-delay: 30 想放慢 Google 來減輕主機負擔,實際上是沒有效果的,別白費力氣。

規則衝突時,Google 怎麼決定聽誰的

當檔案裡同時存在多組規則,Google 的處理邏輯有一套明確的優先順序,不是「從上到下遇到第一條就停」。這套邏輯如果你搞錯,會寫出看似嚴謹、實際上漏洞百出的檔案。

Google 會先選出與爬蟲名稱最具體相符的 user-agent 群組;若有多個同樣具體的群組,會合併其中規則,而 User-agent: * 的通用群組不會與專屬群組合併(依 robots.txt 規格)。接著再比較相符規則的路徑長度,通常由較具體、較長的路徑優先;若 allowdisallow 同樣具體,Google 會採用限制較少的規則。

舉個具體例子,假設你的檔案長這樣:

User-agent: *
Disallow: /private/

User-agent: Googlebot
Disallow: /private/
Allow: /private/public-report.pdf

對 Googlebot 來說,*Googlebot 兩組雖然都匹配,但 Google 只套用具體指名 Googlebot 的那一組;在這組裡,/private/public-report.pdf 這條 Allow 規則的路徑長度(26 個字元)比 Disallow: /private/(9 個字元)更長,所以最終 Googlebot 可以抓取這份 PDF。附帶一提,正因為通用群組不會被併入計算,範例裡的 Googlebot 那組才需要重複寫一次 Disallow: /private/;只寫在 * 那組的封鎖,對有專屬群組的爬蟲不生效。這就是 Allow 用來「在禁止區域裡開一個例外通道」的典型手法,也是 WordPress 範本裡為什麼要特意保留 admin-ajax.php 的原因。

這個機制很實用,但也容易讓人掉以輕心,尤其當檔案裡同時存在通用群組與專屬群組時,實際生效的規則可能跟你直覺相反。實務上的習慣是:寫完之後,用網址檢查工具或第三方測試器逐一驗證關鍵網址,不要用肉眼猜。

五種網站的 robots.txt 寫法範例

光講語法太抽象。下面直接整理出五種最常見網站的範本,你可以對照自己的情況調整。每種範本背後都有明確的「為什麼這樣寫」。

範本一:內容部落格(WordPress)

WordPress 是目前全球市佔率最高的內容管理系統,根據 W3Techs 的統計(2026 年 6 月),WordPress 在所有使用已知 CMS 的網站中佔有壓倒性的比重。它的後台目錄不該被索引,但某些 AJAX 處理程式需要被爬到才能正常渲染。

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /*/feed/$
Disallow: /*/feed/rss/$
Disallow: /trackback/
Disallow: /?s=
Disallow: /search/

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

這個範本的邏輯是:封鎖後台與登入頁、封鎖 RSS feed 與 trackback(這些會製造大量重複內容)、封鎖站內搜尋結果頁(/?s=/search/,這些頁面對 SEO 沒有價值卻會吃掉爬取預算),同時保留 admin-ajax.php 讓前端功能正常運作。最後一行用 Sitemap 指令主動告知 XML Sitemap 的位置,讓爬蟲不必自己摸索。如果你還不太熟悉 XML Sitemap 的運作,可以參考這篇XML Sitemap 完整介紹

範本二:電商網站

電商網站是爬取預算最容易出問題的類型,因為它會自動產生大量篩選、排序、分頁網址,動輒把一個 500 頁的商品目錄膨脹成好幾萬個變體網址。你需要封鎖這些變體,把爬蟲精力集中在真正的商品頁。

User-agent: *
Disallow: /*?sort=
Disallow: /*?order=
Disallow: /*?color=
Disallow: /*?size=
Disallow: /*?page=
Disallow: /cart
Disallow: /checkout
Disallow: /account
Disallow: /search?q=

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

範本三:開發中或測試環境

如果你的網站有測試站(staging),你通常會希望整站不被 Google 收錄,避免測試內容汙染正式站的索引。這時可以用 Disallow: / 封鎖整站。但要特別注意,只有在你確定這個網域不要任何搜尋流量時才能這樣寫,千萬別把這行寫進正式站的 robots.txt。

User-agent: *
Disallow: /

範本四:放行 Google 但擋特定爬蟲

有時你想對大部分爬蟲關門,但對 Google 開放。你可以這樣寫,先放行 Googlebot,再封鎖其他所有爬蟲。Google 會從所有匹配的群組中挑選最具體的那組 user-agent 規則套用,書寫順序不影響結果

User-agent: Googlebot
Disallow:

User-agent: *
Disallow: /

範本五:多語系網站的注意事項

如果你的網站同時服務台灣、香港、中國等多個市場,透過子目錄(例如 /zh-tw//zh-hk/)或子網域分隔語系,robots.txt 的設計要多一層考量。多語系網站通常會搭配 hreflang 標籤,告訴 Google 每個語言版本之間的對應關係。這時你絕對不能封鎖任何一個語言版本的目錄,否則 Google 讀不到 hreflang 訊號,就無法正確地把對的版本送給對的市場使用者。多語系的完整設定觀念,可以參考這篇多語系 SEO 與 hreflang 指南

實務上,多語系網站的 robots.txt 通常只需要封鎖共通的後台與系統路徑,語系目錄本身保持完全開放。真正該花心力的地方,是確保每個語言版本都能被正常爬取、收錄,並透過 hreflang 正確互相指向。robots.txt 在這裡的角色是「不要妨礙」,把舞臺留給 hreflang 與內容本身。

最常見的致命錯誤

robots.txt 是那種「寫對沒人感謝你、寫錯大家找你算帳」的檔案。實務上最常見的災難有下面幾種,希望你別重蹈覆轍。

第一種,也是最經典的:Disallow: / 留在正式站上線後的 robots.txt 裡。這通常發生在開發階段,工程師為了不讓測試站被收錄,寫了 Disallow: /,網站正式上線時忘了拿掉。結果整站被 Google 完全封鎖,搜尋流量歸零。這個錯誤出現的頻率高得嚇人,而且當事人往往要等好幾週才會發現「怎麼都沒流量」。排查的第一步永遠是打開 /robots.txt 看內容。

第二種,用 robots.txt 來移除已經被收錄的頁面。這是觀念上的根本錯誤。假設你有一篇過時的促銷頁面,已經被 Google 收錄了,你想讓它從搜尋結果消失。於是你在 robots.txt 加了 Disallow: /old-promo。結果是:Google 不再爬那個頁面,但它仍然保留在索引裡,因為它從沒收到「請移除」的訊號。更糟的是,因為你禁止爬蟲讀取,Google 看不到頁面內容,反而可能用別人引用你的外部連結文字來推測內容,讓這個過時頁面繼續以錯誤的面貌出現在搜尋結果。正確做法是用 noindex,這部分可以參考這篇robots.txt 與 noindex 為什麼不能同時用,務必看懂。

第三種,封鎖了 CSS 與 JavaScript 檔案。早期有人為了節省爬取資源,把 /wp-includes//*.css/*.js 整個 Disallow。這在現代是自殺行為,因為 Google 採取 mobile-first 索引,它需要渲染頁面才能正確理解內容與體驗,而渲染需要讀取 CSS 與 JS(見 Google 的 Mobile-first 公告,2023 年 10 月)。擋掉這些資源,Google 看到的會是一個殘缺、跑不出來的頁面,等於自己把排名分數往下壓。行動流量已是全球網路流量的主力(Statista 的行動流量統計,2026 年 4 月),行動版本的完整呈現絕對不能被你的 robots.txt 破壞。

第四種,大小寫與斜線搞混。robots.txt 的路徑比對是大小寫敏感的,/WP-Admin//wp-admin/ 是兩條不同的路徑。如果你封鎖了 /WP-Admin/,但實際後台路徑是小寫,這條規則等於沒生效。這類低級錯誤在主機搬家或網址重整後特別容易冒出來。

第五種,把 robots.txt 當成內部連結管理的替代品。有人以為封鎖某個頁面,Google 就不會把它的內部連結權重算進去,於是拿它來做精細的連結權重調度。這是誤解。robots.txt 控制的是「要不要爬」,不是「要不要傳遞權重」。真正想管理內部連結的流向,應該從網站架構與內部連結策略下手,門口貼告示牌這件事根本幫不上忙。

網站搬家與改版時,robots.txt 怎麼處理

這是一個實務上極度重要、卻很少有教學認真對待的情境。網站搬家或大改版,是 SEO 流量最容易斷崖式下滑的時刻,而 robots.txt 往往是風暴中心之一。如果你曾經歷過那種改版後流量腰斬的惡夢,就會明白箇中風險;完整的搬家防災觀念,整理在這篇SEO 網站搬家與改版指南,這裡只聚焦 robots.txt 的部分。

搬家分兩種情況,處理方式完全相反。第一種是換主機、換 CMS、但網域不變。這種情況下,robots.txt 應該原封不動從舊站搬到新站,規則、路徑、Sitemap 網址都保持一致。最常見的災難是新站用了 CMS 預設的 robots.txt(很多預設值會封鎖整站或重要目錄),而你沒注意到,導致上線後流量歸零。實務上的鐵律是:新站上線前,逐字比對舊站與新站的 robots.txt,任何差異都要有明確理由。

第二種是換網域,例如從 old.com 搬到 new.com。這時舊網域的 robots.txt 絕對不能封鎖任何東西,因為你需要 Google 持續爬取舊網域,才能正確處理你設定的 301 重導向,把舊網址的權重轉移到新網址。如果在舊網域加了 Disallow: /,Google 看不到 301 的目標,權重轉移就會中斷,等於親手把多年累積的 SEO 資產歸零。這個錯誤看似離譜,卻真實發生過,原因通常是有人急著「把舊站關掉」卻沒想清楚順序。

一個更微妙的點:搬家期間,新舊兩個網域的 robots.txt 會同時存在於 Google 的快取裡。你需要耐心等待重新抓取,並透過 GSC 主動提交新網域的 Sitemap,加速 Google 認識新的結構(見 Google 的 Sitemap 說明,2025 年 9 月)。這段過渡期可能持續數週,期間流量會波動,這是正常的,但前提是你沒有在 robots.txt 上犯下前面說的那些致命錯誤。

robots.txt 與 noindex 的關鍵差別

這個主題值得單獨拉出來講,因為它是 SEO 初學者最容易混淆的觀念,也是最容易造成反效果的誤用。以下用一個對照表把兩者的本質差異講清楚。

比較項目robots.txtnoindex
作用階段爬取階段(爬蟲要不要抓)索引階段(抓到了要不要收錄)
典型位置根目錄的純文字檔頁面 HTML 的 meta tag 或 HTTP header
能移除已收錄頁面嗎不能,反而會讓頁面留在索引能,明確告訴 Google 不要收錄
適合封鎖整個目錄嗎適合(例如後台、搜尋結果頁)適合單一頁面或可逐一標記的範圍
兩者混用的後果如果同時用 robots.txt 封鎖又想靠 noindex 移除,noindex 會失效,因為爬蟲根本進不去讀到 noindex 標籤

這個表格最後一行是最關鍵的:兩者混用會互相打架。你想用 noindex 讓某頁面從索引消失,卻又同時在 robots.txt 封鎖那個頁面,Googlebot 進不去就讀不到 noindex,頁面反而繼續留在索引裡。正確的做法是:要移除已收錄頁面,就移除 robots.txt 的封鎖、改用 noindex;要從一開始就不讓某目錄被爬,就用 robots.txt。想更深入了解 noindex 本身的運作,可以讀這篇noindex 完整介紹

AI 搜尋時代的新抉擇:要不要放行 GPTBot?

這是 2026 年最值得花腦筋思考的 robots.txt 議題,也是大多數傳統教學完全沒覆蓋的盲區。自從大型語言模型崛起,一群全新的爬蟲出現在網路上,牠們的目的不是建立搜尋索引,而是收集訓練資料與建構即時檢索庫。OpenAI 的 GPTBot 就是其中最具代表性的一個,它會抓取公開網頁用來訓練與改進模型(依 OpenAI 的說明文件,2025 年 9 月)。

這帶來一個兩難:放行,你的內容會被吸收進 AI 模型,但換來的是 AI 搜尋結果裡有機會引用你、帶來品牌曝光;封鎖,你保住了內容不被免費搬走,但也等於主動退出 AI 搜尋的版圖。這不是一個有標準答案的問題,而是取決於你的商業模式與內容策略

Google-Extended 與 GPTBot 的兩難

Google 自己也推出了 Google-Extended 這個獨立的 user-agent,讓站長可以單獨決定「要不要讓內容被用於 Google 的 AI 產品(例如 AI Overviews 的模型訓練)」,而不影響傳統的搜尋索引(見 Google-Extended 的官方說明,2025 年 9 月)。這個設計很聰明:它把「被搜尋」和「被 AI 訓練」拆成兩個開關,你可以選擇讓 Google 正常索引你的網站,同時不授權內容用於 AI 模型訓練。

要把這件事想清楚,你需要先認識目前最活躍的幾個 AI 爬蟲 user-agent。以下整理成一張對照表,幫你快速掌握每個的來歷與用途。

AI 爬蟲 user-agent背後的服務抓取內容的用途
GPTBotOpenAI(ChatGPT)模型訓練與檢索增強
Google-ExtendedGoogle(Gemini、AI Overviews)AI 模型訓練,獨立於搜尋索引
CCBotCommon Crawl(開放資料集)公開網頁快照,被多家模型間接使用
PerplexityBotPerplexityAI 搜尋的即時檢索與引用
Claude-User / anthropic-aiAnthropic(Claude)模型訓練與回覆時的內容擷取

這張表透露出一個關鍵事實:不同的 AI 爬蟲,目的不盡相同。有的是純訓練資料採集(Common Crawl),有的是即時搜尋引用(PerplexityBot),有的兩者皆有(GPTBot)。所以「要不要擋 AI 爬蟲」這個問題,其實應該拆解成「擋哪一個、為了什麼理由擋」。

下面用一個簡單的決策框架幫你釐清。第一個問題:你的內容變現模式是什麼?如果你靠廣告、聯盟行銷、品牌曝光獲利,內容被 AI 引用等於多一個免費曝光管道,傾向放行。如果你靠付費內容、會員訂閱、獨家研究獲利,被免費搬走等於稀釋你的商品價值,傾向封鎖。第二個問題:你的品牌在 AI 搜尋結果裡的能見度重要嗎?如果重要,你至少要放行那些會在回覆裡「引用來源」的爬蟲(例如 PerplexityBot),因為這類引用會帶來真實的點擊與品牌觸及。

這個決策跟你整體的 AI 搜尋策略緊緊綁在一起。如果你正在思考「你的內容到底要不要、以及如何被 AI 引用」,建議把視野拉大到整個 AI 搜尋優化的版圖,這篇AI Overviews 與 SEO能給你更完整的脈絡。robots.txt 的 AI 爬蟲設定,只是這盤棋裡的一步。

如果你決定封鎖主要的 AI 爬蟲,常見寫法是這樣,列出你想擋的 user-agent:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

反過來,如果你想放行,就什麼都不寫,或者明確標示 Allow: /。實務上的建議是:如果你的網站靠內容變現、靠品牌曝光獲客,傾向放行,因為在 AI 搜尋時代,被 AI 引用本身就是新的流量入口,封鎖等於自動棄賽;如果你的內容是付費產品、會員專屬、或具有高商業機密價值,傾向封鎖。這個決策跟整體的 AI 搜尋策略綁在一起,如果你還在摸索 AI 時代的 SEO 方向,可以先讀這篇llms.txt 介紹,它探討的是另一種 AI 時代的實驗性文件,跟 robots.txt 互為對照。

robots.txt 與其他技術 SEO 設定的協同關係

很多人把 robots.txt 當成獨立存在的小檔案,事實上它跟一整套技術 SEO 設定是互相牽動的。搞懂這層協同關係,你才不會在做某一項設定時,不小心把另一項搞壞。以下用幾個常見的搭配情境說明。

第一個搭配是robots.txt 與 canonical 標籤。canonical 的作用是告訴 Google「這幾個網址其實是同一份內容,請以這個為標準版本」。但如果其中某些重複網址被 robots.txt 封鎖了,Google 讀不到 canonical 訊號,合併就會失敗。原則很簡單:需要傳遞 canonical 訊號的頁面,不能被 robots.txt 擋住。想理解 canonical 的完整機制,可以讀這篇Canonical 標籤指南,重複內容的處理觀念也整理在這篇重複內容指南

第二個搭配是robots.txt 與結構化資料。如果你在商品頁埋了 Schema 標記,卻又把那個頁面的某些資源封鎖,Google 在驗證結構化資料時可能讀不到完整資訊,導致豐富結果(rich result)失效。結構化資料是搶佔搜尋結果版面的利器,別讓一個 robots.txt 規則把它的效果抵銷。完整的觀念可以參考這篇結構化資料介紹

第三個搭配是robots.txt 與 JavaScript 渲染。現代網站大量使用 JavaScript 來動態產生內容,Google 需要先抓取並執行 JS 才能看懂你的頁面。如果你的 robots.txt 封鎖了 JS 檔案,Google 就只能看到一個空殼,排名自然上不去。這是前面「封鎖 CSS 與 JS」那個錯誤的延伸,想深入了解爬蟲如何處理 JS,這篇JavaScript SEO 介紹講得很清楚。

說到底,robots.txt 是技術 SEO 這台機器裡的一個齒輪。它跟 canonical、結構化資料、JS 渲染、網站架構全部咬合在一起。單獨看它沒有意義,要把它放回整個系統裡檢視,才知道哪裡該封鎖、哪裡千萬不能碰。

三個免費工具幫你驗證 robots.txt

寫完 robots.txt 不代表工作結束,你需要驗證它是否如預期運作。這裡有三個免費工具,是技術 SEO 健檢時最常用的組合。

第一個,直接用瀏覽器打開 /robots.txt。這是最快的檢查方式。在網址列輸入你的網域加上 /robots.txt,按下 Enter,看看回傳的是不是一份純文字、內容正確的檔案。如果看到 404、500、或一堆 HTML 錯誤頁,問題就出在伺服器層,先修這個。這個動作看起來幼稚,卻能過濾掉八成以上的低級災難,健檢通常都從這裡開始。

第二個,Google Search Console 的 robots.txt 報表。登入 GSC(如果你還沒安裝,先看這篇Google Search Console 介紹),在「設定」裡可以找到 robots.txt 報表,它會列出 Google 為你的網站找到的 robots.txt、最後一次抓取的版本、抓取狀態、檔案大小與解析問題,也能回看近 30 天的歷史版本。要注意的是,Google 已在 2023 年底移除舊版的 robots.txt 測試工具,這份報表只能「看」,不能模擬規則;想確認某個網址有沒有被擋,可以改用網址檢查工具看單一網址的檢索狀態,開發者也可以用 Google 開源的 robots.txt 解析庫在本機驗證規則(見 GSC 的 robots.txt 報表說明,2026 年 8 月)。

第三個,爬蟲模擬工具(例如 Screaming Frog)。它能在本地跑一個模擬爬取,把你的整站跑一遍,並標示出哪些網址被 robots.txt 封鎖、哪些被 noindex 標記。這對大型網站特別有用,因為人工檢查幾萬個網址不現實,你需要工具一次性把問題攤開來。Screaming Frog 的完整用法,可以參考這篇Screaming Frog 中文教學。技術 SEO 的全貌遠不止 robots.txt,建議把它放進更大的技術性 SEO 指南框架裡一起檢視。

驗證時要特別留意的三個陷阱

這些工具都以 Google 為主要對象;GPTBot、ClaudeBot 等 AI 爬蟲沒有共用的官方測試器。若要確認封鎖或放行是否生效,可從伺服器日誌驗證 AI 爬蟲的後續請求。

工具會給你結果,但判讀結果需要經驗。以下列出三個驗證時最容易誤判的情況,幫你少走冤枉路。

第一,robots.txt 的快取延遲。你剛改完檔案,立刻去 GSC 的 robots.txt 報表看,可能還是舊版本,因為 Google 抓取的是快取版本。如果你看到結果跟預期不符,先確認是不是還在快取有效期內。耐心等 Google 重新抓取(快取通常約 24 小時),必要時在報表裡請求重新抓取,往往就能解決。

第二,驗證時的 user-agent 對象。Googlebot 有一般 Googlebot、Googlebot-Image、Googlebot-News 等變種,AI 爬蟲又是另一批 user-agent,各自套用的規則可能不同;用爬蟲模擬工具或第三方測試器驗證時,如果你只測了預設值,可能漏掉特定爬蟲被封鎖的情況。建議針對你最在意的爬蟲類型逐一測過。

第三,把「允許抓取」誤當成「保證收錄」。robots.txt 測試通過,只代表 Google「可以」爬這個頁面,不代表它「一定會」收錄。收錄與否還取決於內容品質、搜尋意圖匹配、網站整體權重等數十個因素。如果你測試發現頁面沒被封鎖卻一直沒被收錄,問題通常出在別的地方,要往索引層面去查,可以先看這篇GSC 網頁索引報表的理解方式。

動手前的行動清單

讀到這裡,你應該已經具備寫出一份安全有效 robots.txt 的知識。但知識要變成行動才有價值。下面給你一份六步驟的檢查清單,照著走,今天就能把風險降到最低。

  1. 立刻打開你的 /robots.txt。在瀏覽器輸入你的網域加上 /robots.txt,確認它回傳 200、內容合理。如果看到 Disallow: / 而你的網站正在追求流量,這就是紅色警報。
  2. 盤點被 Disallow 的路徑。逐條檢視每一條 Disallow 規則,問自己:「這條路徑真的不該被收錄嗎?」特別留意有沒有不小心封鎖到重要分類頁、商品頁、或 CSS/JS 資源。
  3. 加上 Sitemap 指令。在檔案最後加上 Sitemap: https://你的網域/sitemap.xml,主動告知你的網站地圖位置。如果你想完整了解 Sitemap 與爬取的關係,這篇網站 Sitemap 入門指南是很好的起點。
  4. 決定你的 AI 爬蟲策略。想清楚要不要放行 GPTBot、Google-Extended,把決定寫進 robots.txt。這不是工程問題,是商業策略問題。
  5. 用 GSC 驗證。改完之後,先到 Google Search Console 的 robots.txt 報表確認 Google 已抓到新版本,再用網址檢查工具或爬蟲模擬工具驗證幾個關鍵網址,確認規則如你預期生效。別等流量掉了才回頭查。
  6. 建立定期複檢的習慣。robots.txt 不是寫一次就永遠正確。每次網站改版、加新功能、換主機、或新增大量頁面類型時,都要回頭檢查這份檔案是否還符合現況。建議把它列進每次技術健檢的固定清單,不依賴記憶。

robots.txt 看起來是技術細節,本質卻是「你如何對搜尋引擎與 AI 爬蟲介紹你的網站」這件事的起點。一份寫得清楚的 robots.txt,等於在大門口掛上一塊清楚、禮貌、有原則的告示牌,讓每一個來拜訪的爬蟲都知道該往哪走、哪裡別碰。這種基礎功做紮實了,後面所有 SEO 與 GEO 的努力才不會被一個低級錯誤抵銷。

實務上還有另一種極端:有人因為害怕寫錯,乾脆什麼都不寫,讓網站完全沒有 robots.txt。這在小型網站上勉強可以接受,因為 Google 會把 404 當成「完全開放」,網站規模小、爬取預算不是瓶頸時影響有限。但一旦你的網站長大,開始出現篩選參數、分頁、搜尋結果頁這類低價值網址,缺乏 robots.txt 等於放任爬蟲把寶貴的爬取額度浪費在垃圾頁面上。不寫本身就把控制權交給別人,談不上真正的中性選擇。

迴避解決不了問題。花十分鐘把這份檔案寫對,才是真正該做的事。你的網站打算長期經營下去的話,這份不到 1 KB 的檔案,值得你今天撥出時間,認真把它看懂、改對。SEO 從來不靠一個大招翻盤,靠的是無數個像這樣的基礎功,一點一滴堆疊出長期的自然流量。現在,輪到你動手了。

常見問題

Allow 和 Disallow 衝突時 Google 會採用哪一條?
採「最具體者勝出」原則:比對規則時,路徑寫得越長、越精確的那條會被採用;若兩條路徑等長且互相衝突,則採限制最少的那一條,也就是 Allow 優先。書寫順序不是判斷依據,實務上也不建議刻意製造衝突。
可以用 robots.txt 隱藏敏感頁面嗎?
不建議。robots.txt 是公開檔案,列出敏感路徑等於主動揭露;它不具強制性,惡意爬蟲照爬不誤;即使 Google 不爬,只要有其他頁面連到它仍可能被建立索引。隱藏敏感頁面應交給密碼保護或伺服器層級的驗證。
robots.txt 怎麼擋 GPTBot 等 AI 爬蟲?
針對特定 AI 爬蟲的 User-agent 單獨寫規則即可,例如「User-agent: GPTBot」搭配「Disallow: /」就能擋 OpenAI 的訓練爬蟲。Google-Extended、ClaudeBot、CCBot、PerplexityBot 等可比照辦理,但這仍是君子協議,且會失去在該平台被引用的能見度。
robots.txt、noindex、canonical 要怎麼選?
看頁面兩個條件:值不值得被收錄、需不需要傳遞權重。值得收錄又需要權重的頁面(如商品頁)直接放行;不值得收錄但需要傳遞權重的輔助頁(如分頁)放行加上 noindex;既不值得收錄又不需要權重的頁面(如內部搜尋結果)才寫進 Disallow。重複網址問題則交給 canonical 處理。
robots.txt 改完多久會生效?
不會立即生效。Google 會把讀到的 robots.txt 快取約 24 小時,期間仍按舊規則行事;改完後要等 Google 重新抓取,可在 GSC 的 robots.txt 報表確認 Google 最後抓到的版本,必要時請求重新抓取。

主題聚落|技術 SEO 與網站架構 看「SEO 搜尋引擎優化」中樞 →

相關文章

褚崇名(Sliven) 創辦人・巫普斯科技有限公司

長期投入技術 SEO、GEO/AEO 與 AI 搜尋實務。本站文章以可驗證資料、公開來源與實作觀察整理而成。

完整作者介紹LinkedInGitHubX

想把這篇的方法用在自己的站上?

SEO 健檢、GEO/AEO 引用優化、網頁設計諮詢——把文章裡的方法落地到你的網站。