站点地图与 robots
站点地图和 robots.txt 都和抓取有关,但用途完全不同:Sitemap 帮助搜索系统发现你希望被抓取的重要 URL,robots.txt 则用来声明哪些路径不希望被抓取。
XML Sitemap
最常见的 Sitemap 是 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-09-23</lastmod>
</url>
<url>
<loc>https://example.com/google-search-central/</loc>
<lastmod>2026-09-23</lastmod>
</url>
</urlset>
Sitemap 中应该放规范 URL,而不是所有可能的 URL。不要把以下页面提交进去:
- 被
noindex标记的页面。 - 返回 404、5xx 或需要登录的页面。
- canonical 指向其他 URL 的重复页面。
- 搜索结果页、筛选参数页、测试页。
robots.txt
robots.txt 位于站点根目录:
User-agent: *
Disallow: /admin/
Disallow: /search
Sitemap: https://example.com/sitemap.xml
它适合阻止抓取无意义或消耗资源的路径,例如管理后台、站内搜索结果和大量参数组合。
它不适合用来隐藏敏感信息。只要 URL 公开可访问,就不应该把密钥、用户隐私或内部数据放在页面里。
robots 与 noindex 的区别
| 方法 | 作用 | 适合场景 |
|---|---|---|
robots.txt Disallow |
阻止抓取路径 | 后台、搜索结果页、无限参数页 |
meta robots noindex |
允许抓取但不要索引 | 可访问但不希望进入搜索结果的页面 |
HTTP X-Robots-Tag |
对 HTML 或非 HTML 资源控制索引 | PDF、图片、接口响应、批量规则 |
如果页面已经被 robots.txt 阻止,Googlebot 可能无法读取页面里的 noindex。因此,想从索引中移除页面时,通常应先允许抓取并提供 noindex,等状态稳定后再决定是否阻止抓取。
多 Sitemap
大型站点可以使用 Sitemap 索引文件,把不同类型的 URL 拆开:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
</sitemap>
</sitemapindex>
拆分后更容易定位问题:如果产品页 Sitemap 读取失败,不会影响文章页 Sitemap 的排查。
检查清单
https://example.com/robots.txt可以直接访问。- Sitemap 中只包含可索引的规范 URL。
robots.txt没有误拦 CSS、JavaScript、图片等页面渲染资源。- Search Console 的 Sitemap 报表能读取文件。
- 站内链接、canonical 和 Sitemap 指向同一套 URL 规则。