0%

正威網路行銷工作室,專注於基隆、台北與全台客製化網頁設計,提供專業 RWD 響應式、SEO 搜尋引擎優化、品牌形象設計與網站維護託管服務。

搜尋文章
聯絡資訊
地址基隆市仁二路 220 號 5 樓
追蹤我們

WordPress robots.txt 怎麼寫?虛擬 robots.txt、Sitemap 設定與 noindex 正確用法

鍵盤上的 SEO 按鍵

robots.txt 是放在網站根目錄的一個純文字檔,用來告訴搜尋引擎的爬蟲:「網站上哪些地方不用來抓」。爬蟲來抓網站之前,會先讀取 https://你的網址/robots.txt。

這篇文章 2015 年的版本,提供了一份擋掉 wp-content、wp-includes、分類分頁、feed 等十幾行的 robots.txt。這份寫法現在反而會傷害 SEO,請不要再用,下面會說明原因與現在的正確做法。

WordPress 已經自動產生 robots.txt

WordPress 網站就算根目錄沒有 robots.txt 檔案,打開 https://你的網址/robots.txt 也會看到內容。這是 WordPress 自動產生的虛擬 robots.txt,預設內容大致是:

純文字
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

每一行的意思:

  • User-agent: *:下面的規則適用所有爬蟲。
  • Disallow: /wp-admin/:不用抓後台。
  • Allow: /wp-admin/admin-ajax.php:但這個檔案要開放,很多前台功能會用到它。
  • Sitemap::網站地圖的位置。WordPress 5.5 起內建網站地圖,會自動加上這一行;有裝 SEO 外掛的話,會換成外掛產生的網站地圖。

對大多數網站來說,這樣就夠了。

幾個補充:

  • 舊版文章說「沒有 robots.txt 會產生 404 錯誤頁、被收錄成錯誤頁面」,這是錯的。找不到 robots.txt 時,搜尋引擎只會當成「全部都可以抓」,不會把它當成網頁收錄;何況 WordPress 本來就會產生虛擬的版本。
  • 打開 robots.txt 出現 404 的話,檢查「設定 → 固定網址」是不是選了最陽春的「預設」格式,虛擬 robots.txt 需要搭配其他格式的固定網址才會運作。WordPress 也要裝在網域的根目錄,robots.txt 才會在正確的位置。
  • robots.txt 如果回應伺服器錯誤(例如 500),Google 可能會暫停抓取整個網站,要盡快處理。

需要自訂時,三種改法

想擋掉特定路徑(例如購物網站排序、篩選條件產生的大量網址)或特定爬蟲時,擇一使用:

  1. 用 SEO 外掛編輯(推薦):Yoast SEO、Rank Math 都有 robots.txt 編輯功能(Yoast 在「工具」的檔案編輯器,Rank Math 在「一般設定」裡),不用自己連 FTP。
  2. 上傳實體檔案:在網站根目錄放一個 robots.txt,WordPress 的虛擬版本就會失效,完全以你的檔案為準。記得自己寫上 Sitemap 那一行。
  3. 用程式修改:WordPress 提供 robots_txt 這個 filter,可以改寫虛擬 robots.txt 的內容,適合外掛或主題開發者。

自己寫實體檔案的話,從預設內容開始,再加上需要的規則:

純文字
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

Sitemap 那一行要換成你的網站地圖網址;用 Yoast SEO 或 Rank Math 的話,通常是 https://你的網址/sitemap_index.xml。網站地圖的設定與提交方式,請看WordPress 網站地圖怎麼做。

為什麼舊寫法會傷害 SEO?

逐條看舊版文章的寫法:

  • Disallow: /wp-content/ 和 Disallow: /wp-includes/:這兩個資料夾裡是主題的 CSS、JavaScript 和你上傳的圖片。Google 現在會像瀏覽器一樣「看」網頁,抓不到 CSS 和 JS,就無法正確判斷版面、手機版好不好用;擋掉 wp-content 也會讓 uploads 裡的圖片無法出現在 Google 圖片搜尋。這兩行一定要拿掉。
  • 分類、標籤的分頁(/category/*/page/、/tag/*/page/):分頁是爬蟲找到舊文章的路徑之一,擋掉反而讓舊文章更難被發現。
  • feed(/feed):RSS feed 不會造成問題,搜尋引擎也會用它發現新內容,不需要擋。
  • 附件頁(/attachment/):WordPress 6.4 起,新安裝的網站預設已經關閉附件頁;SEO 外掛也能把附件頁轉到圖片本身。用這些方式處理,比用 robots.txt 擋好。
  • 留言分頁、replytocom、trackback:WordPress 的文章頁本身就有 canonical(標準網址)標籤,搜尋引擎會把這些重複的網址歸回原本的文章,不需要擋。
  • 站內搜尋結果(/?s=):WordPress 5.7 起,站內搜尋結果頁會自動加上 noindex,Google 看到後就不會收錄,不需要另外擋。

重要觀念:Disallow 不等於不收錄

很多人以為在 robots.txt 寫了 Disallow,那個網頁就不會出現在 Google。不是這樣的。

  • Disallow 只是叫爬蟲「不要來抓內容」。
  • 如果其他網站有連結到這個網址,Google 還是可能把網址收錄進搜尋結果,只是沒有內容摘要。Search Console 裡會看到「已建立索引,但遭到 robots.txt 封鎖」這類狀態。
  • robots.txt 是公開的,任何人都看得到你擋了哪些路徑,不能拿來隱藏機密頁面。需要保密的內容請用密碼或會員登入保護。

不想被收錄,要用 noindex

真的不希望某個網頁出現在搜尋結果(例如感謝頁、會員專區、測試頁),正確做法是讓網頁帶有 noindex 標記,而且不要在 robots.txt 擋它。爬蟲要抓得到網頁,才看得到 noindex。

方法一:SEO 外掛(最簡單)

Yoast SEO、Rank Math 在每篇文章、頁面的編輯畫面下方,都有「是否允許搜尋引擎在結果中顯示」或「No Index」之類的選項,設定即可。

方法二:程式碼

WordPress 5.7 起有 wp_robots 這個 filter,可以在 functions.php 加入(建議放在子主題或 Code Snippets 外掛裡):

PHP
add_filter( 'wp_robots', function ( $robots ) {
    if ( is_page( array( 'thank-you', 'members' ) ) ) {
        $robots['noindex'] = true;
    }
    return $robots;
} );

把 thank-you、members 換成頁面的網址代稱(slug),這些頁面的 <head> 裡就會出現含有 noindex 的 robots 標籤。已經裝了 SEO 外掛的話,用外掛的設定就好,避免兩邊的設定互相打架。

PDF 等非網頁檔案

PDF、Word 檔沒有 <head> 可以放標籤,要用 HTTP 標頭 X-Robots-Tag。Apache 主機可以在 .htaccess 加入:

Apache (.htaccess)
<IfModule mod_headers.c>
  <FilesMatch "\.pdf$">
    Header set X-Robots-Tag "noindex"
  </FilesMatch>
</IfModule>

「阻止搜尋引擎索引這個網站」

後台「設定 → 閱讀」的「阻止搜尋引擎索引這個網站」,勾選後 WordPress 會在所有頁面加上 noindex,適合網站還在開發、測試的時候。網站正式上線後一定要記得取消勾選,這是新網站搜尋不到的常見原因之一。

想擋 AI 爬蟲?

有些網站不希望內容被拿去訓練 AI,可以在 robots.txt 針對特定爬蟲擋掉,例如:

純文字
User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /
  • GPTBot 是 OpenAI 的爬蟲,CCBot 是 Common Crawl 的爬蟲。
  • Google-Extended 控制的是內容能不能用在 Google 的 AI 模型,不影響 Google 搜尋的收錄與排名。
  • robots.txt 是「請求」而不是強制,遵不遵守取決於對方。要不要擋,是網站自己的選擇,也要考慮被 AI 服務引用可能帶來的曝光。

改完怎麼檢查?

  • 用瀏覽器打開 https://你的網址/robots.txt,確認內容是你要的。
  • Google Search Console 的「設定」頁面裡有 robots.txt 報告,可以看到 Google 最近一次讀到的內容、有沒有錯誤。
  • 想知道某個網址有沒有被擋,在 Search Console 上方的「網址審查」輸入網址查詢。

延伸閱讀

robots.txt、noindex 和網站地圖都是 SEO 的基本功,寫錯一行就可能讓整個網站搜尋不到。正威網路行銷是 25 年經驗的基隆網頁設計工作室,提供 SEO 搜尋引擎優化與網站維護託管,歡迎來聊聊。

分享這篇文章

返回文章列表更多「Wordpress代碼教學」文章

發表留言

還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。

讓我們一起打造
您的專屬網站!