动态页面确认可见内容,核心不是看浏览器里有没有渲染出文字,而是看百度抓取时拿到的HTML里是否包含这些文字。如果文字只靠JavaScript在用户浏览器里生成,抓取端未必能拿到。判断起点是:查看页面原始HTML,再对照百度抓取结果。百度URL提交只是把地址告诉百度,不能替代这一步确认。
在浏览器中打开动态页面,按 Ctrl+U 查看网页源代码,或用“查看页面源代码”。搜索页面标题、正文首句、商品名等关键文字。如果源代码里能找到,说明内容以HTML形式返回,抓取端较容易读取。如果源代码里只有空容器、脚本引用或JSON数据,而文字是页面打开后才出现,就需要进一步判断。
这一步的检查项:
<div id="app"></div> 这类空节点里。判断结果:原始HTML已有文字,说明可见内容不依赖脚本执行;原始HTML没有文字,说明抓取端可能看不到,需要处理渲染或提供替代入口。
百度搜索资源平台提供抓取诊断或类似工具,可以对指定URL发起抓取并查看返回内容。不同账号和平台界面可能不同,应以当前可用的抓取结果为准。重点看返回的HTML中是否出现目标文字、主要链接和标题。如果抓取结果与原始HTML一致且缺少正文,说明问题在服务端返回内容;如果抓取结果包含正文,说明百度能获取到这些内容,问题可能在其他环节。
如果无法使用抓取工具,可以用服务器日志或抓取日志核对。查找百度蜘蛛的访问记录,确认它请求的是哪个URL、返回状态码是多少、返回体大小是否异常。状态码为200但返回体很小,常见解释是返回了空壳页面;返回302或跳转,则要确认最终落地页是否包含内容。
服务端渲染(SSR):服务器直接返回包含正文的HTML,适合内容页、详情页。判断是否生效,看原始HTML是否已有正文。
预渲染:构建时或请求时生成静态HTML,适合更新频率不高的页面。判断是否生效,看抓取结果是否与预渲染版本一致。
动态渲染:对普通用户返回脚本页面,对识别到的抓取请求返回渲染后的HTML。这种方式需要维护两套输出,且识别规则可能变化,适合已有成熟中间层的情况。
纯客户端渲染:正文完全由JavaScript生成,抓取端需要执行脚本才能看到内容。是否可被抓取,取决于百度对脚本的执行能力,不能自行假定一定可行。
选择依据:内容是否要求稳定被抓取、更新频率、开发维护成本。若页面是核心内容页且希望被索引,优先让原始HTML包含正文,比依赖脚本执行更可控。
调整后按以下顺序复查:
判断结果:抓取结果已包含正文,说明可见内容问题基本解决;若仍未包含,继续回到渲染方式或服务端返回内容排查。HTTPS 不保证安全无漏洞或排名,它只解决传输加密,与内容是否可见是两件事。
下一步:选一个代表页面,先查看原始HTML,再用抓取工具核对返回内容。若原始HTML缺少正文,先改渲染方式;若已有正文,再检查 robots.txt、站点地图和URL提交记录,逐项排除。