网站robots.txt怎么写?这4个实例让你秒懂
很多网站管理员对robots.txt这个文件既熟悉又陌生。熟悉是因为几乎每个网站都需要它,陌生是因为真正能把它写对的人并不多。今天我们就通过几个实际案例,让你彻底掌握这个看似简单却至关重要的文件。
首先明确一点:robots.txt不是权限控制工具,而是礼貌的访问建议。搜索引擎爬虫通常会遵循其中的规则,但恶意爬虫完全可能无视它。所以不要把敏感信息的保护完全寄托在robots.txt上。
来看第一个实例——新站点的标准配置。如果你的网站刚上线,希望所有搜索引擎都能抓取,但暂时屏蔽一些测试目录,可以这样写:User-agent: * Disallow: /tmp/ Disallow: /test/ Disallow: /admin/ Allow: / 这里的星号代表所有爬虫,三个Disallow行分别屏蔽了临时文件、测试目录和管理后台。最后一行Allow: /确保除了明确屏蔽的目录外,其他内容都允许抓取。
第二个实例针对内容型网站。假设你运营一个技术博客,希望加快内容收录,但屏蔽站内搜索页面和用户个人页面:User-agent: * Disallow: /search? Disallow: /user/ Sitemap: https://www.example.com/sitemap.xml 注意这里使用了?来屏蔽所有带查询参数的搜索页面,避免产生大量无效收录。同时提供了sitemap地址,方便爬虫快速发现新内容。
电商网站的配置需要更细致。商品页面要开放,但购物车、订单历史等隐私信息必须屏蔽:User-agent: * Allow: /product/ Disallow: /cart Disallow: /checkout Disallow: /order-history Disallow: /user/profile 这里特别使用了Allow优先原则,先明确允许商品目录,再逐个屏蔽需要保护的路径。这种写法在复杂规则下更清晰。
新闻媒体类网站通常有独家内容,可能希望限制某些聚合类爬虫:User-agent: * Disallow: User-agent: MJ12bot Disallow: / User-agent: DotBot Disallow: / Sitemap: https://www.example.com/sitemap.xml 这个配置允许大多数爬虫,但专门屏蔽了两个内容聚合爬虫。记得在屏蔽特定爬虫时,要准确知道它们的官方名称。
配置robots.txt时常见几个坑。第一个是路径大小写问题,在Linux服务器上,/Admin/和/admin/是两个不同路径。建议统一使用小写。第二个是通配符误解,robots.txt标准不支持*通配符,但主流搜索引擎都扩展支持了$表示URL结尾。第三个是屏蔽了整个网站却忘了取消,我就见过一个客户抱怨网站半年没收录,结果是robots.txt里写着Disallow: /。
如何验证配置是否正确?各大搜索引擎都提供了测试工具。Google Search Console和Bing Webmaster Tools中都有robots.txt测试功能。上传前先用这些工具检测,能避免很多低级错误。特别是检查Allow和Disallow规则是否有冲突。
动态网站要特别注意。很多CMS生成的URL带有参数,比如?sessionid=123这种,可能会被单独抓取造成内容重复。这时可以用Disallow: /*?*来屏蔽所有带参数的URL。但要注意这可能也会屏蔽正常的搜索页面,需要根据实际情况调整。
移动端和桌面端是否需要不同配置?通常不需要。现代搜索引擎都能自动适应。但如果你有独立的移动站点(如m.example.com),记得为每个子域名单独配置robots.txt。主站的配置不会自动应用到子域名。
最后强调一个关键点:robots.txt应该放在网站根目录,并且可以通过yourdomain.com/robots.txt直接访问。我曾经遇到一个案例,网站管理员把文件放在错误目录,还奇怪为什么规则不生效。检查方法很简单,用浏览器直接打开这个地址看看能否正常显示。
实际部署时,建议循序渐进。先设置基本规则,通过搜索引擎的抓取统计观察效果,再逐步优化。不要太激进地屏蔽大量目录,可能会误伤正常页面的收录。记住,robots.txt是辅助工具,合理使用能让网站更健康,滥用反而会影响SEO效果。
现在你应该对robots.txt的配置有了全面认识。不妨检查一下自己网站的配置,看看是否还有优化空间。一个好的robots.txt就像给爬虫的清晰路标,既指引它们去该去的地方,也提醒它们避开禁区。