You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置robots.txt禁止爬虫抓取带特定查询参数的URL

一、robots.txt部署位置说明

仅需在网站根目录部署单份robots.txt即可,子目录下放置的robots.txt不会被任何主流搜索引擎爬虫识别。
按照robots协议标准,所有爬虫只会请求域名根路径下的robots.txt(即https://www.example.com/robots.txt),不会主动爬取子目录下的同名配置文件,之前尝试子目录部署不生效是协议本身的规则限制,不是配置写错。

二、之前规则失效的原因

之前写的两条规则都存在语法匹配问题:

  • Disallow: ?share=pinterest$:Disallow规则从域名后的路径起始位置开始匹配,直接以?开头无法匹配任何带前置路径的URL;同时$结尾匹配符仅Google等少数爬虫支持,通用场景下依赖该符号会导致规则对大部分爬虫失效。
  • Disallow: /wordpress/*/?share=pinterest:通配符*后多余的/会导致匹配逻辑出错,无法命中/wordpress/[文章slug]/?share=pinterest这类结构的URL,且规则仅覆盖wordpress目录,无法覆盖根目录下可能出现的同参数链接。
三、正确的拦截规则

直接在根目录的robots.txt中写入以下配置即可拦截全站所有带?share=pinterest参数的链接:

User-agent: *
Disallow: *?share=pinterest

规则说明:

  • User-agent: *代表规则对所有搜索引擎爬虫生效,避免仅配置Googlebot导致其他搜索引擎漏拦截
  • 前缀*通配符匹配任意长度的路径,不管链接位于根目录还是/wordpress子目录,只要查询参数携带share=pinterest就会被拦截
  • 不添加$结尾符,兼容所有支持robots协议的爬虫,不会出现规则识别失败问题
四、生效优化建议
  • 修改完robots.txt后,直接到对应搜索引擎的站长平台主动提交更新后的robots.txt文件,触发爬虫重新解析,无需等待自然爬取周期,一般数小时内即可生效
  • 现有链接上的noindex属性可以保留,和robots.txt规则形成互补:robots.txt负责阻止爬虫发起抓取请求,noindex负责兜底避免已抓取过的链接被收录;如果担心nofollow属性影响内部权重传递,可以移除该属性,不会影响拦截收录的效果。

内容的提问来源于stack exchange,提问作者rwkiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:27:39