入口頁在蜘蛛池里的任務很明确:让搜尋蜘蛛進来,發現更多 URL,並顺着連結繼續走。但很多抓取問题不是出在内容质量和連結數量上,而是出在几行 meta 标簽里。标簽配置不当,蜘蛛可能直接跳過頁面,或者抓了頁面却不跟進連結。
meta robots 最常见的几種誤配
meta robots 决定頁面能否被索引、連結能否被追踪。入口頁通常希望蜘蛛抓取並跟進連結,因此模板里預設應该是 index,follow。實际工作中,問题往往来自複製粘贴和模板遗留。
- noindex 残留:從測試环境或舊模板繼承来的 noindex,會让入口頁不進入索引。虽然蜘蛛仍可能抓取並發現連結,但頁面本身失去积累,長期看並不划算。
- nofollow 全站化:為了防止權重传递,有些站点在入口頁所有連結上加 nofollow。蜘蛛可能因此减少甚至不追踪這些連結,URL 發現的效率會明顯下降。
- noarchive、nosnippet 誤用:這類指令主要影响摘要和缓存展示,一般不會阻断抓取,但没必要在入口頁叠加,容易让标簽检查變得混乱。
canonical 寫错,等于告诉搜尋引擎“別抓這里”
入口頁批量生成时,最容易犯的错誤是把 canonical 统一指向主站首頁或某個不相關的頁面。搜尋引擎會認為目前入口頁不是規范版本,可能减少抓取,至少不會把它当作需要認真對待的發現入口。
比較稳妥的做法是让每個入口頁 self-canonical,也就是 canonical 指向自身 URL。如果入口頁本身不打算被收錄,也可以不寫 canonical,但要接受搜尋结果中可能出現各種版本,或者頁面不進入索引。不要在多個入口頁之間互相 canonical,也不要把所有入口頁 canonical 到同一個目标。
nofollow 用在哪,不用在哪
nofollow 不是完全禁止抓取,但它會削弱蜘蛛對連結的追踪意愿。入口頁的主要出口連結,尤其是希望被發現的 URL,不建议加 nofollow。真正需要控制的通常是广告、登入、用戶评论等與 URL 發現無關的区域。
如果某個連結只是為了让用戶点击,不打算让蜘蛛跟進,可以加 nofollow;但如果整個入口頁的連結都加了 nofollow,入口頁就失去了主要作用。
X-Robots-Tag 與 meta 标簽冲突
HTTP 响應头里的 X-Robots-Tag 優先級高于頁面内的 meta 标簽。有时頁面源碼里寫的是 index,follow,但服務器全局加了 X-Robots-Tag: noindex,蜘蛛看到的仍是不索引。排查时不能只看 HTML,還要看响應头。
robots.txt 與 meta robots 不是一回事
robots.txt 的 Disallow 會阻止蜘蛛抓取頁面。頁面既然抓不到,里面的 meta robots 也就不會被讀取。如果入口頁被 robots.txt 屏蔽,蜘蛛無法進入,連結發現自然中断。入口頁一般不應在 robots.txt 里被禁止抓取;如果确實要禁止索引,用 meta robots 或 X-Robots-Tag 的 noindex 更直接。
抓取、索引和排名是三件事。meta 标簽主要影响前两步,不能指望它解决排名問题,但寫错會直接拖累抓取。
上线前可以做的检查
- 查看入口頁源碼,確認没有 noindex、nofollow 残留。
- 检查 canonical 是否指向自身,是否出現批量错誤。
- 查看 HTTP 响應头,確認没有意外的 X-Robots-Tag。
- 检查 robots.txt,確認入口頁路径没有被 Disallow。
- 用抓取工具或日誌確認蜘蛛是否真的訪問了出口連結,而不只是抓了入口頁。
- 模板改動後抽查一批域名,避免只检查主站。
简單原則
入口頁的标簽越简單越好:能索引就 index,follow,需要跟進連結就不要全站 nofollow,canonical 尽量自指。不要在一個頁面上叠加互相矛盾的指令,也不要把測試环境的标簽带到线上。定期抽查比一次性配置更重要。