robots.txt写错了会怎样?别让一个文件挡住整个网站
问一:robots.txt到底管什么,不管什么?搜索引擎蜘蛛访问网站时,第一件事就是找根目录下的robots.txt,按里面的规则决定哪些内容可以抓取、哪些跳过。但官方文档说得很明确:robots只能控制抓取,不能让页面从搜索结果里消失——被Disallow的页面如果被外链指向,依然可能以「无内容摘要」的形态出现在结果里。想让页面不出现在搜索结果,用的是noindex;两件事,两个工具,别混——用错工具,问题不但没解决还会加深。
问二:Disallow和noindex怎么配合?经典误区是「Disallow了就不会被收录」,结果恰恰相反:Disallow挡住了蜘蛛,noindex的meta标签反而抓不到了。正确用法分三种情况:整站或整目录不要被索引——robots里Disallow即可;单个页面不要索引、但允许抓取(比如保留权重流动)——页面头部加meta robots的noindex标签;非HTML资源(比如一批PDF文件)——在服务器配置里给响应加X-Robots-Tag头,nginx里几行配置就能对指定后缀全局生效,比逐个改文件省事得多。
问三:写robots.txt有哪些语法雷区?雷区一:规则顺序——先写限制范围大的,再写精细放行规则,蜘蛛按从上到下首次匹配生效,顺序写反规则就废了。雷区二:文件编码必须UTF-8,否则可能解析失败,整份文件的行为不可预测。雷区三:把后台、隐私数据寄托在robots上——robots只是君子协定,恶意爬虫会直接无视它;真要保密,用密码保护或登录验证,这才是物理层面的墙。写完必做一步:用搜索资源平台的robots测试工具校验语法,肉眼看着没问题的规则,工具常能查出笔误——一个冒号、一个大小写,都足以改变规则含义。
问四:noindex用在哪里最合适?典型场景:搜索结果页、带参数的筛选页、重复的标签聚合页、感谢页、后台预览页——这些页面被收录只会稀释站点质量。操作上优先用页面级meta标签;整类非HTML文件用X-Robots-Tag响应头批量处理;用Wix、Blogger这类CMS的,可能无法直接编辑robots,用平台自带的搜索设置开关替代。用了noindex的页面记得保留在sitemap之外,也别再为它堆内链——信号一致,处理才干脆——robots放行、noindex拦截、sitemap排除,三处口径要对齐。
写在最后robots和noindex是两把不同的钥匙:一把管门禁,一把管名单。收录出问题时先查robots是否误伤,做精细控制时记得noindex才是正主。定期验证、改动留备份,这个小文件值得大谨慎——它一行规则的影响,是整站级别的。