用户登录
个人主页 用户中心 我的订单 添加授权 管理授权
退出登录
用户登录 用户注册
欢迎来到 UC建站系统

一个做了三年外贸站的朋友突然问我,怎么让百度搜不到自己的网站,我说你用robots.txt拦截Spider就行,但他说试过了没用,后来才发现他漏了这三步

先说清楚一件事:robots.txt只是一个"请勿入内"的告示牌,不是一把锁。百度蜘蛛完全可以选择无视它继续抓取——只是正规搜索引擎一般都会遵守这个君子协议。所以想让百度真的看不到你的网站信息,不能只靠一个robots.txt,得三层防护一起上。下面按"还没被收录"和"已经被收录了"两种情况分别说。

一、robots.txt是第一道防线,但多数人写错了

robots.txt要放在网站根目录下,浏览器访问 你的域名/robots.txt 能直接打开才生效。最常见的写法是:

User-agent: Baiduspider
Disallow: /

这两行的意思是:对所有百度蜘蛛(Baiduspider),禁止抓取网站所有页面。但这里有三个坑,多数人踩了还不知道:

坑一:百度蜘蛛不止一个UA

百度除了 Baiduspider,还有 Baiduspider-mobile(移动端蜘蛛)、Baiduspider-image(图片蜘蛛)、Baiduspider-video(视频蜘蛛)等多个变体。如果你只写 Baiduspider,其他蜘蛛照样来抓。正确写法应该是通配:

User-agent: Baiduspider
User-agent: Baiduspider-mobile
User-agent: Baiduspider-image
Disallow: /

坑二:robots.txt只管"不抓",不管"不展示"

就算百度遵守robots.txt不去抓你的页面内容,但如果别的网站已经链接到了你的网站,百度依然可能在搜索结果里展示你的网址和标题(只是没有内容摘要)。这叫"只索引不抓取"——百度通过外链知道你这个URL的存在,但因为robots.txt的限制没有去抓内容。搜索结果里会显示一句"由于该网站的robots.txt文件存在限制,无法提供内容摘要"。

坑三:robots.txt改完不是立刻生效

百度蜘蛛不是24小时盯着你的robots.txt。它有自己的抓取周期,短则几小时,长则几天。你改了robots.txt之后,百度可能要过3到7天才会在下一次抓取时看到新的规则。这期间如果有别的页面已经链接到你,百度还是会按旧规则处理。

二、meta标签才是真正的"不收录"指令

robots.txt告诉百度"别来抓",但已经抓过的、或者通过外链知道的页面,robots.txt管不了是否展示。真正让百度不在搜索结果中显示某个页面的,是HTML里的meta标签:

<meta name="robots" content="noindex,nofollow">

这行代码放在HTML的 <head> 区域。效果是:

1 - 一个做了三年外贸站的朋友突然问我,怎么让百度搜不到自己的网站,我说你用robots.txt拦截Spider就行,但他说试过了没用,后来才发现他漏了这三步 - UC建站系统

指令作用百度遵守情况
noindex不要把这个页面加入搜索结果索引百度明确支持,是最有效的禁止收录方式
nofollow不要追踪这个页面上的链接百度支持,但主要用于阻止权重传递
noarchive不要保存网页快照百度部分支持,可能不生成快照
noimageindex不要索引页面上的图片百度图片搜索会参考此指令

robots.txt 和 meta noindex 的核心区别

对比维度robots.txt Disallowmeta noindex
百度会不会抓取页面不抓取内容会抓取内容,但不索引
搜索结果中是否出现可能出现网址+标题(无摘要)完全不出现在搜索结果中
适用场景阻止抓取节省服务器带宽页面内容不想被任何人搜到
建议两者配合使用:robots.txt阻止抓取 + meta标签禁止索引,双保险

三、服务器层面的拦截——.htaccess和Nginx规则

前面两个方法都是"协议层面"的——告诉百度"请你别来"。但如果你的需求是彻底不让百度蜘蛛访问服务器(比如网站有敏感数据,或者不想给百度贡献任何流量),可以在服务器层面直接拒绝百度蜘蛛的请求。

Apache (.htaccess)

在网站根目录的 .htaccess 文件中添加:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC]
RewriteRule .* - [F,L]

效果:所有来自百度蜘蛛的请求直接返回 403 Forbidden,连robots.txt都不会被读取。

Nginx

在 nginx.conf 的 server 块中添加:

if ($http_user_agent ~* "Baiduspider") {
  return 403;
}

效果同上,直接返回403。如果想让百度蜘蛛觉得"这个网站不存在",可以把403改成444(Nginx专用,直接断开连接不返回任何内容)。

⚠ 服务器拦截的副作用要注意

服务器直接返回403,百度蜘蛛会把这个URL标记为"无法访问",多次尝试失败后可能会把页面从索引中移除——如果你想要的就是这个效果,那正好。但要注意:

  • 百度站长平台的"抓取诊断"会显示失败,但不影响正常用户访问
  • 如果你的网站用了CDN(如百度云加速),CDN层可能会缓存403响应,需要额外处理
  • 只屏蔽百度蜘蛛不影响Google、必应等其他搜索引擎

四、已经被百度收录了,怎么让它"消失"?

以上三种方法是"预防"——在百度还没收录的时候阻止它。但如果你的页面已经被收录了,搜索结果里能搜到,这时候只加robots.txt或meta标签是来不及的——因为百度已经把你的页面存进索引库了。

你需要走百度官方提供的"删除"流程:

步骤一:让页面返回404状态码

这是最核心的一步。百度只接受已经确实不存在的页面进行删除。操作方式:

  • 如果你真的想删掉这个页面:直接删除文件,让服务器返回404
  • 如果页面还在但要隐藏:可以在代码层面设置——当检测到百度蜘蛛UA时返回404,普通用户访问时正常显示。但这属于"cloaking",有风险
  • 最简单的方法:把页面删掉或用301跳转到新页面(301只能转移权重,不会删除旧URL的展示)

步骤二:去百度站长平台提交死链

登录 ziyuan.baidu.com(百度搜索资源平台),验证你的网站所有权后:

  1. 左侧菜单找到 "网页抓取 → 死链提交"
  2. 准备一个txt文件,每行一个需要删除的URL
  3. 上传文件,百度会在2-7个工作日内处理

步骤三:使用"闭站保护"(整站隐藏)

如果你的需求是整个网站都不想出现在百度搜索结果里,可以直接用百度站长平台的"闭站保护"功能。开启后,百度会在1-3天内将你的网站所有页面从搜索结果中移除。关闭保护后,网站会恢复展示。

适用场景:网站改版期间、被黑后清理期、临时下架整个站点、企业更换域名过渡期

五、只对百度隐藏,不影响Google和其他搜索引擎

很多外贸站、海外业务站点的需求很明确:我只想让百度看不到,Google、Bing照样要收录。这个需求实现起来其实很简单——因为robots.txt、meta标签和服务器规则都支持按搜索引擎单独设置。

2 - 一个做了三年外贸站的朋友突然问我,怎么让百度搜不到自己的网站,我说你用robots.txt拦截Spider就行,但他说试过了没用,后来才发现他漏了这三步 - UC建站系统

robots.txt 按搜索引擎分别设置

# 禁止百度所有蜘蛛
User-agent: Baiduspider
Disallow: /

User-agent: Baiduspider-mobile
Disallow: /

# 允许Google
User-agent: Googlebot
Allow: /

# 允许Bing
User-agent: Bingbot
Allow: /

# 允许其他所有搜索引擎(兜底)
User-agent: *
Allow: /

关键点:把百度相关的规则放在前面,其他搜索引擎放后面。robots.txt是从上到下匹配的,先匹配到的规则生效。

.htaccess/Nginx 按UA分别拦截

上面第三节的服务器规则,本身就是按 User-Agent 匹配的,只对含 Baiduspider 的UA返回403,Googlebot、Bingbot等完全不受影响。这是最干净的做法。

六、三个容易被忽略的"百度能看见你"的入口

很多人把robots.txt、meta标签、服务器拦截全做了,结果过段时间一搜,百度还是能看到自己的信息。排查下来,往往是漏了这几个地方:

入口一:CDN/云加速缓存了旧页面

如果你用了百度云加速、Cloudflare等CDN服务,CDN会缓存你的页面。你在源站改了robots.txt或加了noindex标签,但CDN缓存的是旧版本——百度蜘蛛访问CDN节点时看到的还是老内容。改完规则后一定要刷新CDN缓存。

入口二:其他网站转载了你的内容

这是最无奈的情况。你自己的网站屏蔽了百度,但有人把你的文章转载到了别的网站(可能是采集站、论坛、知乎等),百度通过那些网站一样能搜到你的内容。这种情况下你只能联系转载方删除,或者用百度站长平台的"快照删除"功能逐一投诉。

入口三:百度系产品自带的索引

百度不仅仅通过网页搜索收录内容。如果你在百度知道、百度贴吧、百度文库、百度百科等百度自家产品里提到过你的网站或内容,这些信息在你的网站屏蔽后依然能被搜到。百度系产品的删除需要走各自的申诉渠道,和站长平台的死链提交是两套流程。

七、选哪种方案?看你的具体需求

你的需求推荐方案生效时间
新网站,从一开始就不想让百度收录robots.txt + meta noindex 双保险立即(对新页面)
只想不让百度抓取,Google照常robots.txt中只对Baiduspider设Disallow3-7天
已经被收录,想把单个页面删掉页面返回404 → 百度站长平台死链提交2-7个工作日
整个网站想从百度消失百度站长平台闭站保护 + 服务器拦截1-3天
彻底不给百度任何访问.htaccess/Nginx 403拦截 + robots.txt + meta立即

最后说一点:技术层面上,让百度看不到你的网站完全能做到,而且方法很成熟。真正的问题是——你是不是真的需要这样做?大部分情况下,百度收录是免费流量来源,屏蔽百度等于自断一条路。如果是担心某些敏感页面被搜到(比如内部系统、测试页面、用户隐私数据),那就用meta noindex精准控制单页,不用整站屏蔽。如果是外贸站担心百度展示中文搜索结果影响品牌形象——那就在robots.txt里只屏蔽百度,Google和Bing照常收录,完全不冲突。

八、用百度站长平台"抓取诊断"验证是否生效

做完以上设置后,怎么确认百度真的看不到你的网站了?不能光等——等几天后搜一下发现还在,就白等了。用百度站长平台的"抓取诊断"工具可以立刻验证:

  1. 登录 ziyuan.baidu.com,验证网站所有权
  2. 左侧菜单 "网页抓取 → 抓取诊断"
  3. 输入你要测试的URL,点击"抓取"
  4. 如果显示 "robots封禁""服务器错误""403",说明拦截生效了
  5. 如果显示 "抓取成功",说明还有漏洞,回去检查上面七个步骤哪个没做好

一个小技巧:如果你的网站还没被百度收录、也没注册站长平台,可以先把robots.txt和meta标签配好,然后用百度站长平台的"手动提交"功能提交首页——如果提交后几天都没被收录,就说明你的拦截设置生效了。

九、常见误区和注意事项

误区:"robots.txt里写Disallow就够了"

不够。robots.txt只是告诉百度"别来抓",但百度通过外链分析、域名备案信息等渠道依然可以知道你的网站存在。如果别人链接到你,搜索结果里可能出现你的网址(没有内容摘要)。要做到完全不出现,必须加上meta noindex标签。

误区:"改完就立刻生效"

robots.txt和meta标签的生效都需要百度蜘蛛下次访问时才能读取。这个周期可能是几小时到一周。服务器层面的403拦截是立刻生效的,但百度已经索引的内容不会立刻删除,需要配合死链提交或闭站保护。

误区:"加了noindex后之前的收录就自动消失了"

不会。noindex只对新抓取的内容生效。已经被索引的页面,需要百度重新抓取时读到noindex标签才会从索引中移除。这个过程可能长达数周。想快速删除,还是得走死链提交流程。

一个你可能会忽略的问题:域名备案信息

即使你的网站内容完全不被百度收录,你的域名如果在中国大陆备案了,百度搜索你的域名本身时,可能还是会出现备案信息相关的记录。这不是网页收录,是域名层面的信息,robots.txt和meta标签都无法屏蔽。唯一的办法是使用海外域名注册商且不做国内备案。

说穿了,让百度看不到你的网站信息这件事,技术实现不难,关键是想清楚你到底要什么效果。是只对百度隐藏?还是整站从互联网上消失?是还没被收录提前预防?还是已经被收录了要删除?不同场景对应的方案完全不一样。把robots.txt、meta noindex、服务器拦截三层组合起来用,再配合百度站长平台的死链提交和闭站保护,基本没有搞不定的情况。唯一的例外是——如果你的内容被第三方网站转载了,那百度搜出来的结果不是从你网站来的,你管不了。

相关推荐
在线客服
👇找客服拿折扣
QQ咨询&售后
在线时间
11:00 ~ 5:30
QQ:3155555535
👇联系QQ
👇联系WX
首页 程序 帮助 登录