优化爬虫抓取:robots.txt与sitemap.xml配置指南
robots.txt中的一个字符错误可能导致网站关键部分被屏蔽,从而引发流量下滑。在最近一个项目中,由于文件错误,产品目录页面无法被搜索引擎爬虫访问——有机流量在两周内下降了三分之一。Robots.txt管理爬虫访问权限,而sitemap.xml则设置扫描优先级。这些文件决定了谷歌和Yandex的索引效率。
robots.txt的指令与语法
Robots.txt放置在网站根目录,包含针对爬虫(如Googlebot、YandexBot等)的指令。关键指令包括:
- User-agent:指定爬虫。
User-agent: *适用于所有爬虫,User-agent: Googlebot仅针对谷歌。 - Disallow:禁止访问路径。
Disallow: /admin/屏蔽目录,Disallow: /search?屏蔽带搜索参数的URL。 - Allow:在已屏蔽目录中允许访问。例如:
User-agent: *
Disallow: /catalog/
Allow: /catalog/main-page/
- Sitemap:指向站点地图的链接,需放在User-agent块之外。
Disallow末尾的斜杠表示目录。无斜杠则匹配任何以该前缀开头的URL。Robots.txt不能完全阻止索引:外部链接仍可能将页面添加到索引中并显示警告。如需完全禁止索引,请使用元标签或授权机制。
基础robots.txt示例:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Allow: /
Sitemap: https://site.ru/sitemap.xml
此模板屏蔽了服务区域和筛选参数。
指令支持差异
| 指令 | 谷歌 | Yandex |
|--------------|--------|--------|
| User-agent | ✅ | ✅ |
| Disallow | ✅ | ✅ |
| Allow | ✅ | ✅ |
| Sitemap | ✅ | ✅ |
| Host | ❌ | ✅ |
| Crawl-delay | ❌ | ✅ |
| Clean-param | ❌ | ✅ |
Yandex的Host指令用于设置主镜像:Host: https://site.ru。谷歌忽略此指令——请使用Search Console。
robots.txt的放置与验证
- 在文本编辑器(如VS Code、Notepad++)中创建
robots.txt文件。 - 上传至根目录:
https://site.ru/robots.txt。 - 对于CMS:
- WordPress:使用Yoast SEO插件或FTP。
- Bitrix:通过管理面板文件管理器。
- Tilda/Wix:在面板设置中操作。
- 检查可访问性:在浏览器中打开URL(应显示文本,而非404/500错误)。
- 测试:使用Google Search Console(抓取)和Yandex.Webmaster(Robots.txt分析)。
语法错误可能导致指令被忽略或行为不可预测。
sitemap.xml的结构
Sitemap.xml列出重要URL以优化爬虫优先级。适用于页面超过100个、频繁更新或存在孤立页面的网站。
基础结构:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://site.ru/</loc>
<lastmod>2026-01-15</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</urlset>
标签说明:
loc:必填的URL。lastmod:实际修改日期。changefreq:更新频率(如daily/weekly;谷歌忽略,Yandex会参考)。priority:优先级,范围0.0–1.0。
限制:最多50,000个URL,文件大小不超过50 MB。如需更多,请使用站点地图索引:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://site.ru/sitemap-pages.xml</loc>
</sitemap>
</sitemapindex>
生成sitemap.xml
- CMS/插件:WordPress(Yoast)、Bitrix(营销模块)。自动更新,但需检查是否包含不必要URL。
- 在线生成器:适用于静态网站,需手动更新。
- 脚本:适用于SPA(如Next.js + next-sitemap)。在构建时生成。
放置在根目录或在robots.txt中指定。
文件集成
- 在robots.txt中添加:
Sitemap: https://site.ru/sitemap.xml。 - 提交至Google Search Console(站点地图)和Yandex.Webmaster(索引)。
- 验证:站点地图中的URL不应在Disallow中,且状态为200 OK。
高级站点地图
针对媒体内容:
图片:
<url>
<loc>https://site.ru/article/</loc>
<image:image>
<image:loc>https://site.ru/images/photo.jpg</image:loc>
<image:title>描述</image:title>
</image:image>
</url>
视频(片段):
<url>
<loc>https://site.ru/video-page/</loc>
<video:video>
<video:thumbnail_loc>https://site.ru/thumb.jpg</video:thumbnail_loc>
</video:video>
</url>
有助于提升在Google图片和Yandex.图片中的索引效果。
关键要点
- Robots.txt节省爬虫预算,但不能替代noindex。
- Sitemap加速新页面发现并优化网站结构。
- 始终检查冲突:站点地图中的URL必须可访问。
- 注意谷歌和Yandex在指令(如Host、Clean-param)上的差异。
- 对于大型网站,使用站点地图索引和媒体扩展。
— Editorial Team
暂无评论。