ToolPal
笔记本电脑键盘前的机器人玩偶

robots.txt 生成器:2分钟为您的网站创建正确的文件

📷 Prateek Katyal / Pexels

robots.txt 生成器:2分钟为您的网站创建正确的文件

robots.txt的实用指南:它的作用、开发者常犯的错误,以及如何为您的网站生成正确的文件。

D作者: Daniel Park2026年4月7日2分钟阅读

robots.txt是那种创建一次之后就被遗忘的文件之一。对于小型内容网站,这通常没问题。但对于有管理员面板、暴露的暂存路径、内部搜索结果页面或重复内容的网站,配置错误(或缺失)的robots.txt可能悄悄地造成数月的SEO问题。

本指南介绍robots.txt的实际作用、它不做什么(常见混淆的来源),以及如何为常见网站类型编写正确的文件。您可以使用robots.txt生成器无需记忆语法即可构建您的文件。

robots.txt实际上做什么

robots.txt是放置在域名根目录的纯文本文件,告诉网络爬虫应该和不应该爬取哪些URL。关键词是"爬取",而不是"索引"。

文件位于https://yourdomain.com/robots.txt。当Googlebot、Bingbot或其他爬虫访问您的网站时,它们首先获取这个文件。根据找到的内容,决定要跟踪哪些URL。

最简单的robots.txt如下:

User-agent: *
Allow: /

这告诉所有爬虫可以爬取所有内容。功能上与没有robots.txt相同。

限制性的可能如下:

User-agent: *
Disallow: /admin/
Disallow: /internal/
Disallow: /api/

每个指令都是应用于一个或多个User-agent组的DisallowAllow行。

爬取与索引的区别(这很重要)

很多开发者认为在robots.txt中屏蔽URL会将其从Google搜索结果中删除。并不会,这确实会造成真实问题。

屏蔽URL时实际发生的情况:

  • Googlebot停止爬取该URL,不会跟踪该页面的链接,不会读取其内容
  • 但如果其他已索引的页面链接到被屏蔽的URL,Google仍然可以发现该URL的存在
  • Google可能仍会在搜索结果中显示该URL,并附带类似"此页面没有可用信息"的通用描述

因此,如果您希望某页面完全从搜索结果中排除,单独使用Disallow是不够的。您需要noindex指令,但问题在于:如果页面被阻止爬取,Googlebot无法读取noindex标签来执行它。

这造成了令人沮丧的局面:要使用noindex,您必须允许页面被爬取。

基本原则:

  • 使用robots.txt Disallow防止爬虫在对SEO不重要的页面(暂存路径、内部API、重复过滤页面)上浪费爬取预算
  • 使用noindex元标签防止特定页面出现在搜索结果中
  • 对于真正敏感的页面(管理员面板、私有内容),使用实际的身份验证,而不是robots.txt

User-Agent:针对特定爬虫

User-agent字段允许您针对所有爬虫或特定爬虫。

User-agent: *

星号表示"所有未另行指定的爬虫"。大多数robots.txt文件将此用于一般规则。

您也可以针对指定的爬虫:

User-agent: Googlebot
Disallow: /no-google/

User-agent: Bingbot
Disallow: /no-bing/

User-agent: *
Disallow: /admin/

规则按user-agent组应用。Googlebot遵循Googlebot块。如果没有匹配的块,它会回退到*块。

您可能特别想管理的一些爬虫:

  • Googlebot — Google的主要网络爬虫
  • Googlebot-Image — Google专用图片爬虫
  • Bingbot — Microsoft Bing
  • GPTBot — OpenAI的训练爬虫(内容网站的新兴关注点)
  • anthropic-ai — Anthropic的训练爬虫
  • AhrefsBotSemrushBotMJ12bot — SEO和分析工具

如果您想特别屏蔽AI训练爬虫:

User-agent: GPTBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: *
Allow: /

这越来越常见。是否对您的网站真的重要是另一个问题,但语法是正确的。

常见的Disallow模式

以下是适用于常见情况的正确模式:

屏蔽整个目录

User-agent: *
Disallow: /admin/

末尾的斜杠很重要。/admin/屏蔽/admin/settings/admin/users等。没有斜杠,/admin也会屏蔽字面意义上名为/administrator/admin-login的页面,这可能不是您想要的。

屏蔽特定文件

User-agent: *
Disallow: /private-page.html

屏蔽URL查询参数(过滤页面)

电商网站通常可以通过许多过滤组合访问相同的产品:/products?color=red&size=L&sort=price。这会产生重复内容。屏蔽它们:

User-agent: *
Disallow: /*?

这会屏蔽任何带有查询字符串的URL。请小心,如果您的重要页面使用查询字符串(某些单页应用会这样),这也会屏蔽它们。更有针对性的方法:

User-agent: *
Disallow: /products/*?

这只屏蔽/products/下的查询字符串URL。

在被屏蔽的目录中允许特定路径

有时您想屏蔽目录的大部分但允许一个路径:

User-agent: *
Disallow: /account/
Allow: /account/signup

user-agent块内的顺序很重要。大多数爬虫会应用最具体的匹配规则。

Sitemap指令

您可以(也应该)在robots.txt中包含您的站点地图URL:

User-agent: *
Disallow: /admin/

Sitemap: https://yourdomain.com/sitemap.xml

Sitemap指令放在末尾,任何user-agent块之外。这不仅仅是礼貌,Google会积极使用它来发现和优先爬取您的重要页面。

如果您有多个站点地图(对于有图像或视频站点地图的大型网站很常见):

Sitemap: https://yourdomain.com/sitemap.xml
Sitemap: https://yourdomain.com/sitemap-images.xml

您还应该直接在Google Search Console中提交站点地图,但在robots.txt中包含它可确保任何读取该文件的爬虫自动发现它。

Crawl-Delay:谨慎使用

一些爬虫支持Crawl-delay指令:

User-agent: *
Crawl-delay: 10

这告诉爬虫在请求之间等待10秒。最初用于防止爬虫对小型服务器造成压力。

问题是:Googlebot忽略它。 Google明确表示他们不支持Crawl-delay。如果您需要减少Googlebot的爬取速率,请在Google Search Console的爬取速率设置中进行。

Bingbot等其他爬虫支持Crawl-delay,所以它并非完全无用,但对于Google来说,它没有任何效果。不要依赖它进行速率限制。

损害SEO的常见错误

屏蔽CSS和JavaScript文件

这曾经是常见建议。"屏蔽爬虫访问脚本和样式表以节省带宽。"这是不好的做法。Google需要渲染您的页面来正确评估它们,而渲染需要CSS和JavaScript。如果您屏蔽这些:

# 不要这样做
User-agent: *
Disallow: /wp-content/
Disallow: /assets/
Disallow: /*.css$
Disallow: /*.js$

Google无法看到您的页面实际外观,这可能影响排名。允许爬虫访问您的静态资源。

忘记暂存和开发环境

如果您的暂存环境可以通过staging.yourdomain.comyourdomain.com/staging/访问,请确保:

  1. 在身份验证后面(推荐)
  2. 在robots.txt中被屏蔽

Google索引的暂存内容会造成重复内容问题。这是快速迭代网站的常见疏忽。

使用robots.txt保护敏感内容

这值得重申。robots.txt不是访问控制。该文件是公开可读的。任何人都可以访问yourdomain.com/robots.txt,准确查看您试图隐藏的路径。如果这些路径引人注目,人们会直接访问它们。对于真正敏感的内容,请使用服务器端身份验证。

意外屏蔽站点地图

# 这意外地屏蔽了站点地图
User-agent: *
Disallow: /
Allow: /public/

Sitemap: https://yourdomain.com/sitemap.xml

在这个例子中,/sitemap.xmlDisallow: /屏蔽,因为它与Allow: /public/例外不匹配。文件中的sitemap指令不会自动解除对站点地图URL的屏蔽。您需要明确添加Allow: /sitemap.xml

位置错误

robots.txt必须位于域名根目录。yourdomain.com/robots.txt有效。yourdomain.com/blog/robots.txt什么都不做,爬虫不会在那里查找。

另外,yourdomain.com的robots.txt不影响subdomain.yourdomain.com。如果您想在那里控制爬取,每个子域名都需要自己的robots.txt。

常见网站类型的robots.txt示例

标准内容或营销网站

User-agent: *
Allow: /

Sitemap: https://yourdomain.com/sitemap.xml

如果没有什么需要隐藏的,也没有重复内容问题,保持简单。

WordPress网站

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://yourdomain.com/sitemap.xml

Allow: /wp-admin/admin-ajax.php很重要。一些主题和插件使用这个端点来实现Googlebot需要访问以进行正确渲染的前端功能。

有过滤页面的电商网站

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /search?
Disallow: /products/*?sort=
Disallow: /products/*?page=

Sitemap: https://yourdomain.com/sitemap.xml

购物车和结账页面不应被索引。账户页面是用户特定内容。过滤/排序URL组合会产生重复内容。

有API路由的Next.js或单页应用

User-agent: *
Disallow: /api/
Disallow: /_next/
Allow: /_next/static/
Allow: /_next/image

Sitemap: https://yourdomain.com/sitemap.xml

屏蔽API路由。屏蔽Next.js内部路径,但渲染器需要的静态资源和图像优化端点除外。

测试您的robots.txt

不要假设您的文件是正确的,请验证它。

Google Search Console有robots.txt测试器(设置 > robots.txt)。您输入URL路径,它告诉您当前robots.txt是否允许或屏蔽Googlebot,以及Google上次获取该文件的内容。

Search Console中的URL检查工具可让您检查单个URL,并查看Google是否可以访问和渲染它们。

各种SEO套件的robots.txt检查器等第三方工具可以验证语法并测试多个user-agent。在处理网站整体SEO设置时,SEO元数据生成器OG图像生成器是有用的辅助工具。

对robots.txt进行更改后,您可以使用URL检查工具请求Google重新获取它,尽管更改通常会在几天内传播。

生成您的robots.txt

手动编写robots.txt并不复杂,但很容易在语法上出现小错误:缺少斜杠、指令位置错误、user-agent块覆盖范围不符合预期。

robots.txt生成器让您选择要配置的爬虫、要屏蔽的路径,添加站点地图URL,并获得干净、有效的输出。它比查找语法更快,减少了因拼写错误而损失重要页面爬取覆盖的机会。

生成后,将文件放在Web服务器的根目录,并验证它可以通过yourdomain.com/robots.txt访问。对于大多数框架:

  • Next.js:添加public/robots.txt或在App Router中使用robots.ts路由
  • Gatsby:放在static/robots.txt
  • Hugo:放在static/robots.txt
  • 普通HTML网站:放在Web服务器提供服务的根目录

对于Next.js App Router用户,您也可以以编程方式生成它:

// app/robots.ts
import { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: ['/admin/', '/api/'],
    },
    sitemap: 'https://yourdomain.com/sitemap.xml',
  }
}

对于规则可能依赖于环境变量的网站(例如,在暂存环境中屏蔽所有爬虫),这种方法更可取。


robots.txt很简单,但围绕它的误解,特别是爬取与索引的区别,会造成真实的、有时难以调试的SEO问题。一次性正确设置文件,在Search Console中测试,然后您就可以真正忘记它了。

常见问题

D

关于作者

Daniel Park

Senior frontend engineer based in Seoul. Seven years of experience building web applications at Korean SaaS companies, with a focus on developer tooling, web performance, and privacy-first architecture. Open-source contributor to the JavaScript ecosystem and founder of ToolPal.

了解更多

分享文章

XLinkedIn

相关文章