动态页面要确认百度可见内容,不能只看浏览器里渲染出来的画面。正确做法是:用百度抓取时看到的那份HTML源码来判断,重点检查正文、标题、链接是否直接出现在源码中;如果源码里只有空容器和脚本,就说明可见内容依赖后续执行,百度未必能稳定拿到。
很多人用浏览器打开动态页面,看到内容正常显示,就认为收录没有问题。但浏览器会执行JavaScript、请求接口、填充数据,而百度抓取时拿到的第一份HTML可能完全不同。动态页面常见的结构是:源码里只有一个<div id="app"></div>,正文由脚本异步加载。这种情况下,用户可见不等于抓取可见。
需要区分两件事:一是页面是否返回了正文内容,二是这些内容是否在抓取阶段就存在。前者是用户体验,后者才是百度判断页面主题的依据。
不要用“查看源代码”之外的工具猜测。在浏览器中打开页面,使用“查看网页源代码”,而不是“检查元素”。检查元素显示的是脚本执行后的DOM,查看源代码显示的才是服务器返回的初始HTML。
这个检查适用于内容型动态页面,比如列表页、详情页、搜索结果页。对于必须登录才显示内容的页面,百度无法抓取登录后的状态,这类页面本身就不适合作为收录目标。
robots.txt限制抓取,不等于页面被移除索引。如果动态页面依赖的接口路径、脚本目录或参数被robots.txt禁止,百度可能拿不到渲染所需资源,最终看到的仍是空页面。需要逐条核对:
/api/、/ajax/这类接口目录,而页面正文恰好来自这些接口。Disallow: /*?一刀切地屏蔽所有带参数的动态地址。如果确实需要限制某些参数,应针对具体参数写规则,而不是封掉整个动态路径。robots.txt只是抓取建议,不能用来可靠地移除已经收录的页面;要移除索引,应使用百度搜索资源平台提供的删除工具或页面返回404、410状态码。
下面给出一个可操作的检查清单,按顺序执行即可判断动态页面的可见内容状态:
javascript:形式或依赖点击事件,抓取时不可见,应改为<a href="...">形式。判断结果分三种:源码中有正文,属于抓取可见,可以正常提交站点地图;源码中无正文但抓取诊断能看到渲染后内容,属于部分可见,收录不稳定;源码和抓取诊断都看不到正文,属于不可见,需要改造或放弃收录。
如果人手有限,不要一上来就改全部动态页面。优先处理满足以下条件的页面:已经有外部链接指向、有搜索需求、且当前源码中完全看不到正文。这些页面改造成本低、收益直接。改造方式可以是服务端渲染、静态化输出,或在页面初始HTML中直接嵌入核心正文。
对于纯交互型页面,比如筛选器、排序结果、用户中心,不必强求收录。它们本身不承载独立搜索需求,即使百度能抓取,也容易产生重复内容。把精力集中在内容型动态页面上更合理。
HTTPS不影响这一判断,它不保证页面内容对抓取可见,也不保证收录。站点地图提交同样不保证收录,它只是告知百度有哪些地址可抓,是否收录仍取决于页面质量和抓取结果。
下一步:挑一个当前流量或外链最多的动态页面,按上面的源码检查和抓取诊断走一遍,确认它属于可见、部分可见还是不可见,再决定是否进入改造清单。