Robots.txt:区分抓取、索引与访问控制

内容摘要

Robots.txt向遵守规则的爬虫提供抓取指令。它不限制人的访问,也不保证Google移除某个网址。

摆放存储设备与精密工具的无人数字取证工作台
本文目录

针对正确网址理解规则

示例中的通用组禁止/internal-search/,但允许/internal-search/help/。这些路径仅供说明。Sitemap提供发现内容的地址,并非索引命令。应先确认是否有更具体的爬虫组适用。

User-agent: *
Disallow: /internal-search/
Allow: /internal-search/help/
Sitemap: https://example.com/sitemap.xml

选择符合目标的控制方式

  • 私有资源需要服务器端身份验证与授权。写入robots.txt并不能保护资源。
  • 要让公开页面退出索引,必须让爬虫读取noindex。禁止抓取可能阻止它看到该指令。
  • 针对性限制无价值页面的抓取,同时保留渲染所需资源的可访问性。

检查实际响应

检查正确协议、主机和端口根目录下的文件,以及准确网址、大小写和适用组。使用Search Console的robots.txt报告和网址检查工具。搜索中的可见变化可能需要再次抓取。

一手资料

在更改 robots.txt 文件之前测试访问路径。

robots.txt 规则控制抓取,但不能保证从索引中删除。阻止必须抓取才能读取 noindex 指令的页面可能会产生矛盾的信号。

  • 测试确切的 URL 和适用的爬虫组。
  • 比较 robots 规则、HTTP 响应和页面指令。
  • 每次更改后,通过 HTML 链接重放发现过程。

一手资料:Google Search Central — Crawling and indexing. 相关方法:阅读实用指南.

JavaScript渲染内容

收到的HTML可能不同于浏览器显示。

  • 保存同一URL收到的HTML和执行JavaScript后的DOM。核对标题、主要回答、href链接及canonical。
  • 未登录时模拟API缓慢或失败。永久加载或返回200的空白页需要明确处理。
  • 检查robots是否阻止必要资源,以及内部URL能否直接打开。用可用的检查工具查看渲染后的HTML。

可复现的验收案例

虚构示例:数据不代表客户或实际观察结果。

查看案例输入
{
    "response_status": 200,
    "html_link": "<span onclick=\"navigate()\">Item</span>",
    "rendered_text": true,
    "script_failure_test": true
}

预期判断

可点击span不能代替href链接。也要测试脚本失败时的内容。

验证步骤

  1. 记录HTML、渲染内容及href链接。
  2. 关闭脚本,测试核心导航。
  3. 保留两种状态的canonical及robots。

Google Search Central — JavaScript SEO basics

200能证明内容可被索引吗?

不能。还需检查内容、索引指令与资源;状态码不保证索引。

一手资料:Google Search Central — JavaScript SEO basics. 相关方法:阅读实用指南.

URL迁移

每个旧地址应通向相关的对应内容。

  • URL、语言、入站链接
  • 保留、合并或删除及理由
  • 最终地址、状态、canonical和语言版本
  • 负责人、日期、问题及解决结果

一手资料:Google Search Central — Site moves with URL changes. 相关方法:阅读实用指南.

Robots.txt:抓取、索引与证据

此语言版本的详细参考说明以英语提供。

Read groups before selecting the longest rule

Groups for the same token combine; * is a fallback and is not added to a specific group. Line order is not a general priority rule.

  • Identify applicable groups before matching rules against the path.
  • Use the most specific match; for equivalent rules the RFC recommends Allow.
  • Do not infer deindexing or access protection from Disallow alone.

Review the twelve robots.txt cases →

References reviewed