robots.txt 與 sitemap 的正確設定
第二章:搜尋基礎篇 · 第 30 題
robots.txt 與 sitemap.xml 是網站與搜尋引擎「溝通」的兩個基礎檔案。前者告訴爬蟲「哪些不要抓」,後者告訴爬蟲「這些頁面請來抓」。設定得當,能大幅提升索引效率;設定錯誤,可能導致整站消失在搜尋結果中。
robots.txt 基本語法
robots.txt 必須放在網站根目錄(如 https://example.com/robots.txt),基本語法:
User-agent: Baiduspider
Disallow: /admin/
Disallow: /search?
Allow: /
User-agent: Googlebot
Disallow: /admin/
Allow: /
Sitemap: https://example.com/sitemap.xml
關鍵規則:
User-agent:指定針對哪個爬蟲(*代表所有)Disallow:禁止抓取的路徑Allow:允許抓取(優先級高於Disallow)Sitemap:宣告sitemap地址
哪些路徑應該屏蔽?
| 應屏蔽 | 原因 |
|---|---|
| /admin/ 或 /wp-admin/ | 後台管理頁面,無SEO價值 |
| /search? 或 /s? | 站內搜尋結果頁,產生大量低品質重複頁 |
| /cart/ /checkout/ | 購物車、結算頁,無索引價值 |
| /?sort= /?filter= | 排序/篩選參數頁面,造成重複內容 |
| /tag/ (視情況) | 標籤頁內容如果太薄,建議屏蔽 |
| /api/ | 介面地址,不應出現在搜尋結果 |
千萬別屏蔽的:
- CSS和JS檔案(百度需要渲染頁面)
- 圖片目錄(除非你不想圖片被索引)
- 行動端頁面
sitemap.xml 格式與規範
標準sitemap格式:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page1</loc>
<lastmod>2025-06-15</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
最佳實務:
- 每個sitemap檔案不超過50,000條URL,檔案大小不超過50MB
- 超過限制時使用sitemap索引檔案拆分:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
<lastmod>2025-06-20</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2025-06-18</lastmod>
</sitemap>
</sitemapindex>
提交渠道
- 百度搜尋資源平台:搜尋服務 → 普通收錄 → sitemap提交(支援txt和xml格式)
- Google Search Console:索引 → 站點地圖 → 新增新的站點地圖
- Bing Webmaster Tools:站點地圖 → 提交站點地圖
百度還支援透過「主動推送API」即時提交新頁面URL,對即時性內容(如新聞)特別有用。
sitemap更新頻率建議
| 網站類型 | 更新頻率 | 說明 |
|---|---|---|
| 新聞資訊 | 每小時/即時 | 配合百度主動推送 |
| 電商網站 | 每天 | 商品上下架變動頻繁 |
| 企業官網 | 每週 | 內容變動不頻繁 |
| 部落格網站 | 發布新文章時 | 可用CMS自動更新 |
常見錯誤
- robots.txt寫了Disallow: /但忘了改回來:整站被屏蔽,這是最災難性的錯誤
- sitemap中包含被robots屏蔽的URL:邏輯矛盾,搜尋引擎會困惑
- sitemap中包含404頁面:浪費抓取配額
- lastmod日期造假:每次都寫當前日期,搜尋引擎會忽略這個欄位
- 未在robots.txt中聲明sitemap位置:雖然不是必須,但推薦加上
- sitemap編碼錯誤:必須使用UTF-8編碼,URL中的特殊字符需要轉義
實務建議
- 上線前必檢查robots.txt:許多網站開發階段用
Disallow: /屏蔽了全站,上線後忘記修改,導致幾個月沒有收錄 - sitemap只放你希望被收錄的規範URL:不放帶參數的重複頁、不放noindex頁面、不放重定向源URL
- 每月檢查一次sitemap健康度:用Screaming Frog等工具掃描,確保sitemap中沒有4xx/5xx錯誤頁面
用 AI 工具解決:robots.txt 與 sitemap 配置生成
場景一:根據網站類型產生 robots.txt
我的網站是 [企業官網/電商/內容部落格],基於 [WordPress/自研],不需要屏蔽的目錄有 [CSS/JS/圖片],需要屏蔽的是 [後台/搜尋頁/參數頁]。請幫我產生一份完整的 robots.txt:分 Baiduspider 和 Googlebot 寫,屏蔽後台和站內搜尋,Allow CSS/JS/圖片,最後聲明 sitemap 地址。同時註釋每行規則的作用,方便我理解。
場景二:從現有 URL 清單產生 sitemap.xml
這是我的網站的所有 URL 清單(貼上 sitemap 或 URL 清單)。請幫我:1) 过濾掉帶參數、含 admin/search 等不應收錄的 URL;2) 按 sitemap 規範產生 XML,每條包含 loc、lastmod(用給定的日期)、changefreq、priority;3) 如果超過 5 萬條,拆成 sitemap index 格式。
場景三:檢查 sitemap 裡的"雷"
這是一份 sitemap.xml(貼上內容)。請幫我檢查:1) URL 是否都符合 robots.txt 的允許規則(我同時貼出 robots.txt);2) 有沒有包含 noindex 頁面或 301 重定向源;3) lastmod 是否合理(有沒有全是今天的);4) XML 編碼和轉義是否正確。
場景四:產生正則,屏蔽參數型重複 URL
我的網站 URL 帶這些參數:?sort=、?filter=、?page=、?utm_source=、?session_id=。請幫我產生 robots.txt 裡的正則表達式規則來屏蔽這些參數頁,並說明每條的匹配範圍和可能誤傷的情況。
注意:AI 的界線
- robots.txt 是"一票否決"設定:AI 產生後務必逐行人工復核,尤其不能出現
Disallow: /全站屏蔽,上線前在瀏覽器直接訪問 robots.txt 確認 - sitemap 內容要真實:AI 只能按你貼的 URL 產生,它不會知道哪些頁面是 noindex 或已刪除,你得自己先過濾
- 別讓 AI 編造 lastmod:lastmod 造假會被搜尋引擎忽略並降低信任,日期必須來自你的真实檔案修改時間
