要确认百度在动态页面上实际能看到什么内容,不能只看浏览器里显示的画面,而要看返回给爬虫的HTML源码、渲染后的DOM以及状态码是否一致。对已有页面做改进时,最可靠的做法是:先用百度搜索资源平台提供的抓取诊断或URL抓取工具查看返回内容,再用curl或浏览器查看源代码做对照。如果源码里没有正文、只有框架或脚本占位,百度很可能抓不到你想让它收录的内容,收录更新自然也不会反映这些内容。
动态页面的可见内容至少分三层,混淆它们会导致误判:
百度对动态页面的处理能力有限,是否渲染、渲染到什么程度,取决于页面实现和抓取时的策略。因此判断标准应是:在不依赖登录、不依赖复杂交互的前提下,原始HTML或可被渲染的DOM中是否包含目标正文。
在百度搜索资源平台对具体URL发起抓取诊断,查看返回的HTML。检查以下项目:
<noscript>之外的纯脚本占位,例如只看到<div id="app"></div>。判断结果:若原始HTML中已有正文,说明不依赖渲染也能被抓到;若只有渲染后才出现,则要评估百度是否对该页执行了渲染,不能假设一定会渲染。
抓取工具之外,自己动手核对更直接。用curl -A "Baiduspider" URL获取原始响应,再用浏览器“查看网页源代码”对比。两者差异越大,动态渲染依赖越重。假设某商品详情页,浏览器里能看到价格和库存,但curl返回的源码中价格字段为空,只留下一段脚本请求接口,那么百度在未渲染时就读不到价格,这类内容很难进入收录更新。
需要区分“可能原因”和“已定位原因”:源码无正文只是现象,可能来自前端渲染、接口鉴权、地域限制或反爬策略,必须逐项排除,不能直接断定是百度不收录。
确认可见内容后,还要排除干扰项:
noindex标记,或 canonical 指向了其他URL。如果原始HTML、渲染DOM、robots和meta标记都正常,但收录更新仍无变化,应转向内容质量、重复度和站点整体抓取预算等方向,而不是继续在“可见内容”上打转。
针对已有页面做改造,交付验收可以按以下顺序执行:
下一步:挑一个正文依赖脚本渲染的页面,用抓取诊断和curl各取一次源码,把两次结果并排比对,先确定百度当前能看到什么,再决定是改为服务端渲染、预渲染还是保留现状。