技术 SEO 研究笔记:robots.txt、Sitemap、规范化、结构化数据
来源(官方,已验证可访问):
- robots.txt 简介: https://developers.google.com/search/docs/crawling-indexing/robots/intro?hl=zh-cn
- Sitemap 概览: https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview?hl=zh-cn
- 创建并提交 Sitemap: https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap?hl=zh-cn
- 规范化网址: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls?hl=zh-cn
- 结构化数据简介: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data?hl=zh-cn
一、robots.txt
定义:robots.txt 文件规定搜索引擎抓取工具可访问网站上的哪些网址。
官方核心声明(最常被误解的一点):此文件主要用于避免网站收到过多抓取请求,「它并不是一种阻止 Google 抓取某个网页的机制」——准确说,不是阻止网页出现在搜索结果的机制。要让网页不出现在 Google 中,应改用 noindex 或密码保护。
按文件类型的用途
- 网页(HTML、PDF 等):管理抓取流量(服务器负载、不重要页面)。警告:被 robots.txt 屏蔽的网页仍可能因其他页面链接到它而被索引,此时搜索结果中不显示说明文字。
- 媒体文件(图片、视频、音频):可管理抓取流量并阻止媒体文件出现在搜索结果中,但不阻止其他网页或用户链接到这些文件。
- 资源文件(脚本、样式表):可屏蔽不重要的资源,前提是缺失它们不影响 Google 对网页的解读。
四条局限性
- 指令非强制——遵守与否由抓取工具自行决定;Googlebot 等正规爬虫遵循,其他爬虫不一定。敏感内容要用密码保护等更安全的方法。
- 不同抓取工具解析语法的方式不同。
- 被屏蔽的网页若被其他网站链接,URL 及锚文本仍可能出现在搜索结果中。正确的阻断方式:密码保护、
noindex、彻底移除。 - 多种抓取与索引规则混用时可能相互冲突。
关键区分:robots.txt 控制抓取;noindex 控制索引/展示。两者不可互换,且给想用 noindex 的页面加 robots.txt 屏蔽反而会让 Google 看不到 noindex 指令。
二、Sitemap(站点地图)
定义:提供网站中网页、视频或其他文件的信息及其关系的文件,帮助搜索引擎更高效地抓取,并了解哪些内容重要、最后更新时间等属性。
官方声明:sitemap 帮助发现网址,但「不保证 sitemap 中的所有条目都会被抓取和编入索引」;提交只是给 Google 一个提示。
需要与不需要
| 可能需要 | 可能不需要 |
|---|---|
| 网站规模大(约超过 500 页) | 网站较小(约 500 页以内) |
| 新网站且外部链接少 | 站内链接完善 |
| 含大量富媒体(视频、图片)或 Google News 内容 | 需要展示的媒体/新闻页面少 |
WordPress、Wix、Blogger 等 CMS 通常已自动提供 sitemap。
格式与限制(来源:build-sitemap 页面)
- XML sitemap:最通用,支持图片/视频/新闻及 hreflang 本地化扩展。
- RSS / mRSS / Atom 1.0:多数 CMS 自动生成;通常只含近期更新的网址。
- 文本 sitemap:每行一个完整 URL,仅适用于可索引的文本内容。
- 通用限制:单个 sitemap 未压缩不超过 50MB、不超过 50,000 个网址,超限拆分或用 sitemap index 文件;UTF-8 编码;标记值实体转义;使用完全限定的绝对 URL;sitemap 位置只影响其所在目录及下级(通过 Search Console 提交的除外),建议放根目录。
- 提交方式:Search Console 站点地图报告;robots.txt 中写
Sitemap: https://example.com/my_sitemap.xml(可多行);Search Console API;Atom/RSS 可用 WebSub。
扩展(3 种)
- 视频条目:时长、评分、适龄级别。
- 图片条目:图片在网页中的位置。
- 新闻条目:报道标题和发布日期。
三、规范化网址(Canonicalization)
定义:当多个 URL 内容重复或高度相似时,Google 会选出一个规范网址(canonical URL)作为搜索结果中展示的版本;站长可通过信号影响这个选择。
重复内容常见成因:URL 跟踪参数(如 ?gclid=ABCD)、HTTP vs HTTPS、带/不带 www、移动版与桌面版、会话 ID。
价值:官方表述是帮助搜索引擎「将它们掌握的关于各个网址的信号整合到一个首选网址上」(如链接信号的合并)。
指定方法及权衡
| 方法 | 信号强度 | 特点 |
|---|---|---|
| 301 等重定向 | 强 | 明确告知目标为规范版本;需服务器配置 |
rel="canonical" link 标签 | 强 | 可把大量重复页映射到规范页;仅适用于 HTML;维护成本较高 |
rel="canonical" HTTP 响应头 | 强 | 支持 PDF 等非 HTML 文件;需服务器配置权限 |
| Sitemap | 弱 | 大型网站易维护,但只是建议性信号 |
最佳做法与禁忌
- 在规范网页本身也加
rel="canonical"(自引用规范,self-referencing canonical)。 - 使用绝对路径而非相对路径。
- 避免用不同方法为同一页面指定不同的 canonical。
- 客户端渲染(JavaScript)站点要确保规范信息出现在渲染后的 HTML 中。
- 禁止:用 robots.txt 做规范化;用网址移除工具替代规范化;把 URL fragment 指定为 canonical;在想保留的规范页上用
noindex。
其他规范化信号
- Google 默认优先选择 HTTPS 版本(除非证书无效等安全问题)。
- 多语言网站中,Google 优先选择 hreflang 集群中标注的 URL 作为该语言的规范版本。
- 官方声明:这些方法是建议而非硬性要求;即使不指定,Google 也会自动选择 canonical。
四、结构化数据(Structured Data)
定义:「一种提供网页相关信息并对网页内容进行分类的标准化格式」,向 Google 明确说明页面内容(如食谱的食材、烹饪时长、卡路里)。
作用:帮助 Google 理解内容,并启用富媒体搜索结果(rich results)等特殊展示。官方案例数据:Rotten Tomatoes 采用后网页点击率高 25%;Food Network 转换 80% 网页后访问量增 35%;乐天(Rakuten)用户停留时间 1.5 倍;雀巢(Nestlé)富媒体结果点击率高 82%。
三种格式
| 格式 | 位置 | 官方态度 |
|---|---|---|
| JSON-LD | <script> 嵌入 <head> 或 <body>,支持动态注入 | 推荐:「我们建议您使用最易于实现和维护的格式(在大多数情况下是 JSON-LD)」 |
| Microdata | HTML 属性,与可见文本交错 | 支持 |
| RDFa | HTML5 扩展,可用于 head 和 body | 支持 |
与 schema.org 的关系
- Google 搜索的结构化数据主要使用 schema.org 词汇,但以 Google 搜索中心文档为最终参考(schema.org 上很多属性对 Google 富媒体结果非必需)。
- data-vocabulary.org 标记已弃用。
准则
- 标记必须对应页面上用户可见的内容;不得标记用户看不到的信息,不得创建只放标记的空白页。
- 违反通用准则或各功能专属准则会导致富媒体结果不展示。
- 完整无误地提供必需属性,优于凑齐所有可选属性。
- 工具:开发用 Rich Results Test(富媒体搜索结果测试);上线后用 Search Console 的富媒体结果状态报告监控。
- 效果衡量:官方建议做对比测试——选有数月 Search Console 数据且无季节性波动的页面,部分加标记,按网址过滤对比数月数据。