凌峰创科服务平台

robots与网站地图该如何协同配合?

什么是 robots.txt 文件?

robots.txt(也称为“爬虫协议”或“机器人协议”)是一个位于网站根目录下的纯文本文件,它的作用是告知搜索引擎的爬虫(如 Googlebot、Baiduspider)哪些页面可以抓取,哪些页面不可以抓取

robots与网站地图该如何协同配合?-图1
(图片来源网络,侵删)

重要提示: robots.txt 是一个建议,而不是一个强制命令,遵守良好的爬虫会遵循它的规则,但恶意爬虫或不良行为者可以完全忽略它,对于敏感信息的保护,不能仅依赖 robots.txt

robots.txt 的基本语法

robots.txt 文件由一个或多个“记录组”构成,每个记录组包含两条指令:

  1. User-agent::指定这条规则适用于哪个爬虫。

    • 代表所有爬虫。
    • Googlebot:仅适用于 Google 的爬虫。
    • Bingbot:仅适用于 Bing 的爬虫。
    • 你也可以指定特定的用户代理,如 Googlebot-Image(Google 图片爬虫)。
  2. Disallow::告诉指定的爬虫,不允许抓取哪个路径。

    robots与网站地图该如何协同配合?-图2
    (图片来源网络,侵删)
    • 禁止抓取整个网站。
    • /private/:禁止抓取 private 目录下的所有页面。
    • /admin.html:禁止抓取特定的 admin.html 文件。
    • Disallow: 后面没有跟任何路径,表示允许抓取所有内容。

robots.txt 示例

示例 1:允许所有爬虫访问所有内容

User-agent: *
Disallow:

或者直接留空(什么都不写),效果相同。

示例 2:禁止所有爬虫访问整个网站

User-agent: *
Disallow: /

这通常用于网站上线前或维护期间,暂时阻止搜索引擎索引。

robots与网站地图该如何协同配合?-图3
(图片来源网络,侵删)

示例 3:禁止所有爬虫访问特定目录和文件

User-agent: *
Disallow: /private/
Disallow: /admin/
Disallow: /temp-file.html

这个规则允许爬虫访问网站的任何其他部分,但会跳过 privateadmin 目录和 temp-file.html 文件。

示例 4:针对不同爬虫设置不同规则

# 允许 Googlebot 访问所有内容
User-agent: Googlebot
Disallow:
# 禁止其他所有爬虫访问 /secret/ 目录
User-agent: *
Disallow: /secret/

什么是网站地图?

网站地图是一个 XML 文件,通常命名为 sitemap.xml,它列出了网站中所有重要页面的 URL,你可以把它想象成是给搜索引擎的一份清单”

网站地图的作用

  1. 帮助搜索引擎发现页面:对于新网站、大型网站或内容链接不深的网站,爬虫很难发现所有页面,网站地图能确保它们不会遗漏重要内容。
  2. 提供元数据:网站地图可以包含额外的信息,如:
    • <lastmod>:页面上次修改的日期,搜索引擎可以用它来判断页面内容的新鲜度。
    • <changefreq>的更新频率(如 "daily", "weekly", "yearly"),这只是一个提示,搜索引擎不一定遵循。
    • <priority>:相对于网站上其他页面的优先级(从 0.0 到 1.0),这同样只是一个提示,不代表搜索排名。

网站地图示例

一个简单的 sitemap.xml 文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.example.com/</loc>
    <lastmod>2025-10-27T18:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.example.com/about-us</loc>
    <lastmod>2025-10-25T15:30:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.example.com/blog/post-1</loc>
    <lastmod>2025-10-26T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

robots.txt 与网站地图的关系:如何协同工作?

robots.txt 和网站地图是合作关系,而不是互相替代,它们共同构成了网站与搜索引擎沟通的桥梁。

核心关系:

robots.txt 告诉爬虫“去哪里找网站地图”,而网站地图则告诉爬虫“网站上有哪些重要页面”。

robots.txt 中指定网站地图

你需要在 robots.txt 文件中使用 Sitemap: 指令来告诉搜索引擎你的网站地图文件存放在哪里。

语法: Sitemap: https://www.example.com/sitemap.xml

最佳实践:

  1. 放在文件顶部:将 Sitemap: 指令放在 robots.txt 文件的开头,这样爬虫能第一时间看到它。
  2. 使用完整 URL:务必使用 https:// 开头的完整 URL,而不是相对路径。
  3. 可以指定多个:如果你的网站有多个网站地图(一个主站地图,一个博客地图,一个图片地图),你可以在 robots.txt 中指定多个 Sitemap: 指令。

完整的 robots.txt 示例(包含网站地图)

这是一个功能完善的 robots.txt 文件示例:

# Sitemap location
Sitemap: https://www.example.com/sitemap.xml
# Crawler User-Agent specific rules
User-agent: Googlebot
# Allow Googlebot to access all parts of the site
Disallow:
User-agent: Bingbot
# Allow Bingbot to access all parts of the site
Disallow:
# Rules for all other crawlers
User-agent: *
# Disallow access to admin, private, and temporary files/directories
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.css$
# Allow access to all other files
Allow: /

解读这个示例:

  • 它告诉所有爬虫,网站地图在 https://www.example.com/sitemap.xml
  • 它为 Googlebot 和 Bingbot 设置了特殊规则,允许它们抓取所有内容。
  • 它为其他所有爬虫设置了限制,禁止访问管理后台、私有目录和临时文件等,但允许访问公开的静态资源(如图片、CSS、JS 文件,这些需要通过 Allow: 指令来覆盖 Disallow: 的限制)。

如何检查和管理?

  1. 创建和上传

    • robots.txt 文件:使用任何文本编辑器创建,命名为 robots.txt,然后通过 FTP 或文件管理器上传到你网站的根目录(public_html/www/)。
    • sitemap.xml 文件:可以使用 WordPress 插件(如 Yoast SEO, Rank Math)、在线生成器或编写脚本自动生成,同样上传到根目录。
  2. 测试工具

    • Google Search Console:提供了专门的“robots.txt 测试工具”和“站点地图”测试工具,你可以实时测试 robots.txt 规则是否生效,以及提交和监控网站地图的抓取状态。
    • Bing Webmaster Tools:也提供了类似的测试功能。
特性 robots.txt 网站地图
作用 指令:告诉爬虫什么不能抓取 清单:告诉爬虫有什么可以抓取
文件类型 纯文本文件 XML 文件
核心指令 User-agent, Disallow, Allow <urlset>, <url>, <loc>
关系 通过 Sitemap: 指令,引导爬虫去读取网站地图文件。 robots.txt 引用,为爬虫提供一份完整的页面索引。

一个健康的、对搜索引擎友好的网站,应该同时拥有一个配置正确的 robots.txt 文件和一个包含所有重要页面的 sitemap.xml 文件,并确保两者正确关联。

分享:
扫描分享到社交APP
上一篇
下一篇