网站单篇收录其余不收录?三步排查与解决指南
刚上线的新站或改版后的老站,经常出现只有首页或某一篇文章被收录,其他内容页像“隐身”一样。
这种情况多半不是内容质量问题,而是爬虫在访问时遇到了障碍。
下面我按从简到难的顺序,教你自己定位并解决。
先确认:哪些页面没被收录
在百度搜索 site:你的域名 查看目前收录总数。
如果只有一两页,说明爬虫要么进不来,要么进来了却找不到其他页面。
第一步:检查爬虫入口是否被拦截
1. 查看 robots.txt
在浏览器地址栏输入 你的域名/robots.txt,看看是不是有很多 Disallow 规则。比如下面这种就会阻止所有爬虫:
User-agent: *
Disallow: /
如果发现误拦截,登录服务器修改网站根目录下的 robots.txt 文件。
你也可以在宝塔面板的「文件」中找到该文件,删除整段 Disallow 或只保留需要的规则。
2. 检查 Nginx/Apache 的访问控制
在服务器终端执行(以 Nginx 为例):
sudo nginx -t
sudo systemctl reload nginx
如果配置里加了 deny all 或 return 403 的 location 段,需要用文本编辑器打开对应站点的 conf 文件,把限制爬虫的规则注释掉。
第二步:确保爬虫能发现所有页面
1. 制作并提交站点地图
在宝塔面板 ->「网站」-> 对应站点 ->「站点地图」中一键生成 XML 文件。如果没有这一项,可以使用插件(如 Rank Math SEO 或 Yoast SEO)自动生成。然后把生成的 sitemap 地址提交到百度资源平台 ->「普通收录」->「站点地图」中。
2. 检查内部链接结构
零基础用户可以在浏览器安装“SEOquake”插件,打开任意未被收录的页面,点击插件图标查看该页面“内部链接数”。如果只有首页链接到这个页面,其他页面都没有指向它,爬虫就很难找到。手动在相关文章末尾添加一个链接,或者在导航、归档页里增加入口。
第三步:排查技术层面的“隐形屏蔽”
1. 查看响应状态码
右击未收录页面 ->“检查” ->「Network」标签,刷新页面,点击第一个请求,查看 Status Code。如果是 200 正常,跳过;如果是 301/302,确认跳转目标是否合理;如果是 404/500,需要修复页面路径或程序问题。
2. 检查服务器 IP 是否被百度屏蔽
登录百度资源平台 ->「抓取诊断」输入未收录的网址,点击“抓取”并查看“抓取结果”。如果显示“抓取失败-其他”,说明百度爬虫从你的服务器获取内容时遇到了问题。尝试关闭 CDN 或安全软件(如 ModSecurity、宝塔防火墙)的 CC 防护,测试抓取是否正常。
3. 检查 HTTPS 证书
如果站点使用 HTTPS,确保证书有效且没有中间层重定向到 HTTP。在浏览器地址栏看锁标志,如果是“不安全”,百度爬虫很可能放弃抓取。
避坑:几个容易忽略的细节
- 不要手动刷点击:以为模拟用户行为能提升收录,实际上百度会识别并降权。
- 不要反复提交同一个页面:每天提交一次就够,频繁提交可能被封禁。
- 检查百度资源平台的“索引量”:有些页面抓取成功但未被索引,这种情况通常是内容质量或相似度问题。可以在平台里查看“页面分析”给出的建议。
- 确保页面首屏速度快:图片过大、JS 阻塞都会导致爬超时。用
pagespeed.web.dev测试,把移动端分数做到 60 分以上。
效果验证:怎么确认问题解决了
- 在百度资源平台手动提交所有需要收录的页面(“普通收录”->“手动提交”)。
- 等待 1-3 天,再次使用
site:你的域名查看收录总数是否增加。 - 如果 5 天后仍未增加,请重复第一步的 robots.txt 检查和服务器抓取诊断,很可能还有一处拦截被遗漏了。
如果你正在处理网站单篇收录其余不收录的情况,建议先从 robots.txt 和站点地图入手,这两步解决了 80% 的问题。
遇到异常时优先回看上面的避坑和高频问题部分,别急着改代码。