动态页面要确认可见内容,核心不是看浏览器里显示了什么,而是看搜索引擎抓取时拿到的HTML里有什么。最直接的做法是查看页面源代码、用抓取工具模拟请求,并对比渲染前后的差异。如果正文只靠JavaScript在浏览器里生成,而抓取时拿到的HTML里没有对应文字,那么这个页面在收录申请环节就很难被当作有实质内容的页面处理。
浏览器里看到的内容,可能来自服务器返回的HTML,也可能来自JavaScript执行后的结果。确认可见内容时,第一步应查看原始HTML:在页面上右键查看网页源代码,搜索正文中的一句独特文字,比如某段描述或某个标题。如果能在源代码里找到,说明内容至少存在于初始HTML中;如果找不到,再去判断是否由脚本注入。
这里有一个明确的分界:源代码里没有、渲染后才有,属于动态渲染内容;源代码里有、渲染后还在,属于服务端输出内容。两者对抓取和收录申请的影响不同,不能混为一谈。
假设有一个项目,页面打开后能看到商品介绍,但查看源代码只有一段空容器和脚本地址。此时不能直接断定“搜索引擎看不到”,因为部分搜索引擎能够执行JavaScript。正确做法是分步检查:
robots.txt阻止、是否依赖登录状态、是否依赖用户交互才触发。常见错误是:只凭浏览器截图判断“页面有内容”,或只凭源代码为空就认定“一定不会被收录”。这两种判断都缺少对照。另一个错误是把robots.txt当成索引移除工具,实际上它限制的是抓取,不等于可靠的索引移除。
判断动态页面可见内容时,可以比较三类结果:
如果原始HTML没有正文、渲染后有正文,说明内容依赖脚本;如果两者都没有正文,说明内容可能来自接口异步加载,或者需要交互才出现;如果两者都有正文,说明可见内容已经进入初始响应。不同搜索引擎对JavaScript渲染的支持程度不同,需要分别核查,不能用一个引擎的结果推断所有引擎。
站点地图可以帮助发现URL,但不保证收录。提交站点地图或通过收录申请入口提交URL,只是把地址告诉搜索引擎,是否抓取、是否索引仍取决于页面质量、可访问性和内容呈现。动态页面如果正文只在渲染后出现,提交URL并不会自动让正文变得可抓取。
可以执行的下一步是:挑一个动态页面,分别保存原始HTML和渲染后HTML,搜索同一句正文,确认它出现在哪一份结果里。如果只出现在渲染后,就优先考虑把关键正文改为服务端输出,或至少保证初始HTML中包含核心文字,再重新提交收录申请。