先拿一个具体URL,用关闭脚本和开启脚本两种方式各取一次响应,比较两者标题、正文首段和主要链接是否一致。差异通常来自三种原因:内容由脚本注入、静态输出的是占位模板、或服务端按User-Agent返回不同结果。缺少日志权限时,仍可用curl、浏览器开发者工具和百度搜索资源平台的抓取诊断做最小验证,但只能判断“两种结果不同”,不能直接得出“百度因此不收录”的结论。
不要从整站开始。选一个已经提交、且你怀疑收录异常的URL,记录三件事:完整地址、请求时是否带Cookie、请求头里的User-Agent。这三项固定后,后续比较才有意义。
用命令行取静态响应:
curl -s -A "Mozilla/5.0" "https://example.com/page" | head -c 2000
把返回内容保存成文件,检查<title>、<h1>、正文首段和<a href>。这一步拿到的是“不带脚本执行”的结果。再在浏览器里打开同一URL,等页面稳定后查看渲染后的DOM,把同样的字段抄下来。两份记录并排,差异位置往往集中在标题、正文主体或分页链接上。
把发现分成三类,处理顺序不同。
如果静态响应里根本没有正文,而接口又要求特定请求头或Cookie,那么百度抓取时大概率也只能看到空壳。这是一个可操作的判断,但仍需用抓取诊断回放确认,不能只凭本地curl下结论。
没有服务器日志、也没有搜索资源平台权限时,可以做的动作有限,但并非没有。
Content-Type、状态码和是否有跳转。脚本渲染差异有时伴随重定向或返回空内容的200状态。这些动作能确认“百度看到的版本长什么样”。不能推出的是:收录量下降一定由这个差异造成,或修复后一定快速恢复。抓取量或某项统计归零,也可能是提交方式变更、站点结构调整或抓取配额波动导致,需要结合其他证据。
假设某列表页的静态HTML只输出前三条,剩余条目由脚本请求接口后追加。你比较两种结果后发现:静态版只有三条链接,渲染版有二十条。
此时可执行的动作是:确认接口是否允许百度抓取,并在服务端输出至少与主路径相关的分页链接。动作之后,重新取一次静态响应,看链接数量是否变化。如果静态响应中出现了这些链接,下一步才是观察抓取和索引状态;如果没有变化,说明修改没有作用到爬虫可见的层,需要继续排查渲染链路。
这个例子只说明比较方法,不代表任何真实站点结果。数字仅用于区分两种状态。
静态与渲染结果不同,本身只是线索。能确定的是:两种取回方式下,页面内容不一致。不能直接确定的是:百度因此判定页面低质、收录变慢或排名下降。后者需要抓取记录、索引状态和内容变更时间线共同支持。
站点地图不保证收录,HTTPS也不保证排名。若差异涉及多个搜索引擎,需分别核查各自对脚本渲染的支持情况,不要把百度的观察直接套用到其他引擎。把比较记录、修改动作和修改后的响应各留一份,下一次出现类似异常时,才有可对照的基线。