站点里總有一些頁面不该出現在搜尋结果里:後台入口、尚未定稿的測試頁、重复的參數頁、只在一段時間内開放的临时頁。能處理它們的工具不止一個,用错了,常常會出現“屏蔽了却還在索引里”,或者“该抓的没抓、该走的没走”。
先分清“不让抓”和“不让收”
抓取和收錄是两段動作:蜘蛛来取頁面内容是一段,把這些内容放進索引、未来可能被展示是另一段。robots.txt 管的是前一段,noindex 管的是後一段。把两者混為一谈,是大多數誤操作的来源。
三個工具各自能做什么
- robots.txt 里的 Disallow:告诉蜘蛛不要来抓這個路径。但 URL 本身仍可能進入索引——如果別處有連結指向它,结果列表里也许會出現一個没有摘要的條目。它並不保證頁面消失。
- noindex(meta 标簽或 X-Robots-Tag 响應头):允许抓取,蜘蛛取到内容後看到标记,再把頁面排除在索引之外。這是“让頁面离開索引”最常用的手段。
- nofollow:寫在連結上,表示“這個連結不必跟着走”。它影响的是連結關系,跟頁面本身是否被索引無關,別拿它当屏蔽工具。
最典型的坑:两個一起用
如果 robots.txt 先挡住了抓取,蜘蛛就讀不到頁面里的 noindex 标记,于是想屏蔽的頁面反而可能以“無摘要”的形式留在索引里。
合理的顺序是:想让頁面离開索引,先放開抓取,让 noindex 能被讀到;等索引里的记錄清理得差不多了,再考虑要不要在 robots.txt 里彻底禁止抓取。
想干净地處理一個頁面,按這個顺序走
- 確認頁面能正常返回 200,蜘蛛可以訪問到。
- 加上 noindex 标记。如果頁面主要靠 JavaScript 渲染,用响應头形式的 X-Robots-Tag 更稳,可以避免标记迟迟不被识別。
- 把该 URL 從站点地图里移除,同时清理指向它的站内連結,减少再次被發現的入口。
- 如果頁面已经下架、不再存在,让它返回 404;確認永久刪除的可以用 410,信号更明确一些。
- 站長平台的移除工具可以應急,但它偏临时,源头不改,過段時間還可能回来。
几個容易忽略的细节
- canonical 是“合並”信号,不是“排除”信号。它说的是哪個版本更能代表内容,不负责让頁面消失。
- 登入墙、密碼保護的頁面,只要 URL 被連結引用,仍可能出現在索引里。
- robots.txt 里的路径区分大小寫,寫错一個字母基本等于没寫。
- noindex 的頁面不要放進站点地图,两邊信号互相矛盾,蜘蛛只會反复来確認。
- 改完之後用抓取測試工具確認一次,看到标记确實被讀到再收工。
把這些工具按“抓取”和“收錄”分開理解,再按顺序执行,能省掉大部分来回折腾。真正值得检查的不是用了哪個标簽,而是頁面上给出的信号有没有互相打架。