robots.txt
2026年9月6日
robots.txt 放在站点根路径,告诉爬虫哪些能抓、哪些别进。它不能当权限系统:不听话的客户端照样能请求;密钥和后台不要靠它保密。
字段
| 字段 | 作用 |
|---|---|
User-agent | 爬虫名。* 表示大家;也可以写 Googlebot、Baiduspider、bingbot |
Disallow | 禁止的路径前缀 |
Allow | 允许的路径(用来在大片 Disallow 里开小门) |
Crawl-delay | 抓取间隔秒数。Googlebot 不认 |
Sitemap | sitemap 的绝对 URL,可写多条 |
同文件里既有 User-agent: * 又有具名分组时,具名爬虫走自己那组,没有具名再回退到 *。多段 * 怎么合并,各家实现不完全一样,尽量写清楚、少玩技巧。
掘金一类站点常见:* 禁止订阅、搜索一类无价值路径,再挂 sitemap。哔哩哔哩那种「主流引擎 Allow /,未具名的 Disallow: /」是更狠的白名单,仿之前要想清楚会不会误伤新爬虫。
App Router
app/robots.ts:
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{
userAgent: "*",
allow: "/",
disallow: ["/api/", "/admin/"],
},
],
sitemap: "https://example.com/sitemap.xml",
};
}
ts
多组规则用数组。构建后访问 /robots.txt 会看到类似:
User-Agent: *
Allow: /
Disallow: /api/
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
txt
Pages Router 项目也可以继续放 public/robots.txt 静态文件。本站 sitemap 是动态生成的,robots 里记得指向真实地址。
下一篇:sitemap.xml。