robots.txt

2026年9月6日

robots.txt 放在站点根路径,告诉爬虫哪些能抓、哪些别进。它不能当权限系统:不听话的客户端照样能请求;密钥和后台不要靠它保密。


字段

字段作用
User-agent爬虫名。* 表示大家;也可以写 GooglebotBaiduspiderbingbot
Disallow禁止的路径前缀
Allow允许的路径(用来在大片 Disallow 里开小门)
Crawl-delay抓取间隔秒数。Googlebot 不认
Sitemapsitemap 的绝对 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


参考文档