做网站的人大多听过站点优化这个词,但真到动手改配置的时候,不少人只盯着页面标题和关键词密度,把 robots 和 sitemap 这类基础文件随手一放就不管了。其实这两个文件直接决定了搜索引擎能不能顺利抓到该抓的页面,也影响着整站收录效率。
很多人以为 robots.txt 就是写几行 Disallow 就行,但规则匹配是前缀匹配,一不小心就会误伤。比如想屏蔽后台目录,写成 Disallow: /admin 没问题,但如果写成 Disallow: /adm,那 /admin 和 /admission 开头的路径全被挡掉了。
还有一点,Allow 指令的优先级在不同爬虫下表现不一致。Google 支持 Allow 覆盖 Disallow,但部分小搜索引擎根本不认。下面是个相对稳妥的写法:
User-agent: *
Disallow: /wp-admin/
Disallow: /tmp/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
把 Sitemap 地址直接写进 robots 里,能省去提交入口的步骤,爬虫一来就能看到。
我见过不少站点丢一个 sitemap.xml 在根目录,半年不更新。动态内容多的站,新页面迟迟进不了 sitemap,收录自然慢。如果是 WordPress 或类似 CMS,可以用定时任务生成分卷 sitemap:
# 每日凌晨重建 sitemap
0 0 * * * /usr/bin/php /var/www/html/gen_sitemap.php
当 URL 超过五万条,单文件会被截断,得拆成 sitemap_index.xml 再指向子文件。结构大概是这样:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex>
<sitemap><loc>https://example.com/sitemap1.xml</loc></sitemap>
<sitemap><loc>https://example.com/sitemap2.xml</loc></sitemap>
</sitemapindex>
之前帮一个电商站做站点优化,他们原来 robots 里 Disallow 了整个 /search 目录,结果站内很多带筛选条件的商品列表页全不被抓。我们改成只屏蔽带参数的无效搜索,保留干净的分类筛选路径,两周后收录量涨了三成。
| 配置项 | 调整前 | 调整后 |
|---|---|---|
| robots 屏蔽 | /search 全禁 | 仅禁 ?q= 空查询 |
| sitemap 更新 | 手动月更 | 每日自动 |
| 收录率 | 约 41% | 约 73% |
有些服务器默认对 xml 文件加了压缩协商,但爬虫请求时没带 Accept-Encoding,返回 200 却是乱码。这种问题在 nginx 里加一行就好:
location ~* \.xml$ {
types { application/xml xml; }
add_header Content-Type application/xml;
}
另外 CDN 边缘节点缓存了旧的 robots,你改了源站,搜索引擎看到的还是老规则。缓存规则里把 robots.txt 设成不缓存,或者短 TTL,能少踩坑。
curl -X POST "https://www.google.com/ping?sitemap=https://example.com/sitemap.xml"
日常看覆盖率报告,哪批 URL 被机器人拒了,回头查 robots 和 meta 标签是不是冲突。有时候页面 head 里写了 <meta name="robots" content="noindex">,sitemap 却还列着它,这种矛盾会让爬虫困惑。
站点优化不是一次性的事,robots 和 sitemap 作为爬虫入口,值得每次改版都过一遍。
把上面这些细节理顺,不用堆关键词也能让搜索引擎更顺手地理解你的站。很多流量增长不是靠大改版,就是把这类被忽略的缝补好了。
评论
加载中...