WordPress 的 robots.txt 要怎麼設?先搞懂它能做和不能做的事

WordPress 的 robots.txt 要怎麼設?先搞懂它能做和不能做的事

最後更新:2026/10/13

臺北一間工作室的網站改版上線,老闆在網路上找到一份「WordPress robots.txt 優化範本」,照抄進網站根目錄。幾週後用 Search Console 檢查網址,Google 看到的頁面版面全亂,還列出一堆無法載入的檔案。原因是範本裡有一行把 /wp-content/ 整個擋掉,Google 讀不到網站的 CSS 和圖片。

robots.txt 是一個很小的文字檔,寫錯一行影響卻很大。這篇先說清楚它能做什麼、不能做什麼,再看 WordPress 自動產生的內容,最後教你怎麼安全地加規則。

不想自己改?把這篇交給 AI

把這篇的網址(或全文)連同下面這段話貼給 AI:

我的網站是 WordPress。我想照下面這篇文章,檢查我網站的 robots.txt 有沒有寫錯,需要的話用程式碼安全地加規則。
請先問我:目前 robots.txt 的內容(請叫我打開「我的網址/robots.txt」,整段複製給你)。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)

改之前先備份,密碼不要貼給 AI。

robots.txt 只管「爬不爬」,不管「收不收錄」

robots.txt 放在網站根目錄,搜尋引擎的爬蟲來之前會先讀它,看哪些地方不用爬。這裡常被誤會的一點是:擋住爬取,不等於不會出現在搜尋結果。

Google 的官方說明寫得很清楚,robots.txt 不是讓網頁不出現在 Google 的方法。被 robots.txt 擋住的網址,如果有其他網頁連到它,仍然可能出現在搜尋結果裡,只是沒有描述文字。真的不想被搜到的頁面,要用 noindex 標記,或設定密碼保護;而且 noindex 要被爬蟲讀到才有效,同一個頁面如果又被 robots.txt 擋住,爬蟲看不到 noindex,反而會失效。

所以 robots.txt 適合用來減少爬蟲浪費時間的地方,例如站內搜尋結果、購物車的參數網址,不適合用來藏東西。

WordPress 自動產生的 robots.txt

WordPress 網站的根目錄通常沒有 robots.txt 這個檔案,但打開 你的網址/robots.txt 卻看得到內容,那是 WordPress 即時產生的。裝了 WooCommerce 的網站,我們在測試站看到的是這樣:

User-agent: *
Disallow: /wp-content/uploads/wc-logs/
Disallow: /wp-content/uploads/woocommerce_transient_files/
Disallow: /wp-content/uploads/woocommerce_uploads/
Disallow: /*?add-to-cart=
Disallow: /*?*add-to-cart=
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://你的網址/wp-sitemap.xml

WordPress 擋住後台,留下 admin-ajax.php(很多前台功能要用到它);WooCommerce 擋住記錄檔、付費下載的檔案,以及「加入購物車」的參數網址;最後一行告訴搜尋引擎網站地圖在哪裡。這份預設的內容對大部分網站已經夠用。購物車、結帳、我的帳戶這些頁面,WooCommerce 另外在頁面上加了 noindex,不需要再用 robots.txt 擋。

如果網站根目錄放了一個真的 robots.txt 檔案,伺服器會直接給出那個檔案,WordPress 自動產生的內容就不會出現。所以抄範本之前,先想清楚你是不是真的需要自己寫一份。

「阻擋搜尋引擎索引這個網站」做了什麼

「設定 → 閱讀」裡有一個「阻擋搜尋引擎索引這個網站」的勾選,網站製作期間常會打勾。我們勾了之後比較:robots.txt 只少了最後那行 Sitemap,並沒有擋住整個網站;起作用的是每個頁面都多了一行 noindex, nofollow 的標記,告訴搜尋引擎不要收錄。

這也呼應前面講的原則:要讓頁面不被收錄,靠的是 noindex。上線時記得把這個勾選取消,不然網站一直不會出現在搜尋結果裡。

用程式碼加規則

想在預設內容上加規則,不要自己放一個實體檔案,用 WordPress 的 robots_txt 過濾器加,原本的內容會保留,之後 WooCommerce 或 SEO 外掛加的規則也不會被你蓋掉:

// 在 WordPress 自動產生的 robots.txt 加規則
// (網站根目錄有實體 robots.txt 檔案時,這段不會生效)
add_filter('robots_txt', function ($output, $public) {
    if (!$public) {
        return $output; // 「阻擋搜尋引擎索引」打勾時不動
    }
    // 1. 站內搜尋結果頁不用爬:加進原本「所有搜尋引擎」那一段
    $extra = "Disallow: /?s=\nDisallow: /search/\n";
    if (preg_match('/^User-agent: \*\R/mi', $output)) {
        $output = preg_replace('/^User-agent: \*\R/mi',
            "User-agent: *\n" . $extra, $output, 1);
    } else {
        $output = "User-agent: *\n" . $extra . "\n" . $output;
    }
    // 2. 不想讓 AI 公司拿內容去訓練,可以加這兩段
    $output .= "\nUser-agent: GPTBot\nDisallow: /\n";
    $output .= "\nUser-agent: Google-Extended\nDisallow: /\n";
    return $output;
}, 10, 2);

第一部分把站內搜尋結果頁加進原本的規則裡。站內搜尋的網址可以無限組合,爬蟲在這裡打轉沒有意義。第二部分是近年才出現的需求:GPTBot 是 OpenAI 的爬蟲,Google-Extended 是 Google 用來決定內容能不能拿去訓練 AI 模型的標記。Google 的說明特別寫了,擋 Google-Extended 不會影響網站在 Google 搜尋的收錄和排名。要不要擋,看你怎麼看待自己的內容被拿去訓練 AI;不擋也完全沒問題。

程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。

改完要檢查的事

打開 你的網址/robots.txt,確認內容是你想要的。到 Google Search Console 的「設定」,有一份 robots.txt 報告,可以看到 Google 最近抓到的版本,以及有沒有讀取錯誤。

最後提醒兩件事。第一,不要擋 /wp-content/ 或 /wp-includes/,CSS、JavaScript、圖片都在裡面,Google 要讀得到才能正確判斷你的網頁。第二,如果你用安全外掛把後台網址改成別的名稱,看一下 robots.txt:我們看過有網站改了後台網址,robots.txt 裡卻把新的後台路徑寫了出來,等於公告給所有人看。

搜尋引擎看得懂,客人才找得到

robots.txt、網站地圖、noindex,都是讓搜尋引擎正確理解網站的工具。上線前的完整檢查,可以看〈WordPress 網站上線前的檢查清單〉。

網站要被搜尋到,前提是你有一個自己的網站,而不是只有社群帳號,這是〈IG 帳號不是你的資產〉想說的事。MIMI 專做客製化網頁設計,網站結構和基本的 SEO 設定會在製作時一起處理。MIMI 提供臺北網頁設計服務,臺北的店家、工作室可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。

WordPress 網站搬家:換主機、換網域的步驟和常見問題
WordPress 上傳一張圖變十幾張?停止產生多餘縮圖,省下主機空間

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

我的車
願望清單
最近瀏覽過的
類別