搜狗收录提交针对动态页面时,确认可见内容的核心方法不是看浏览器里“好像有字”,而是对比原始HTML响应与渲染后DOM:如果正文、链接或关键信息只出现在渲染后,而原始响应里没有,搜狗抓取时可能看不到。要定位问题,先保存两种版本的页面内容,再逐项核对差异。
动态页面常见于内容由JavaScript异步加载、前端路由切换或接口返回后拼接的场景。确认可见内容时,至少保留三份材料:
curl -sL "页面URL" -o raw.html保存,或通过浏览器开发者工具的“查看网页源代码”获取。判断结果很直接:在raw.html中搜索正文首句、核心标题或商品名称。如果搜不到,而rendered.html中能搜到,说明可见内容依赖脚本执行。此时应优先考虑服务端渲染、预渲染或静态化,而不是只做搜狗收录提交。
“可见”不等于“可抓取”。按下面顺序核对,能区分是展示问题还是抓取问题:
<p>、<h2>、<li>等标签内,而不是只存在于脚本变量或JSON字符串中。<a href="...">形式出现在原始HTML中。仅靠点击事件跳转的链接,抓取端可能无法跟进。适用条件是:页面首屏或核心内容确实由脚本生成。若原始HTML已包含完整正文,只是样式上被隐藏,则属于展示问题,应检查CSS和交互逻辑,而不是抓取问题。
不要凭猜测判断搜狗看到了什么。可以执行以下检查:
site:你的域名,观察已收录页面标题和摘要是否与当前可见内容一致。注意:这只能作为参考,不能保证实时反映抓取状态。假设一个商品详情页,标题和价格由接口返回后写入页面。修改目标是让搜狗抓取时无需执行脚本也能看到核心内容。可执行步骤:
href,不要只依赖onclick。如果原始HTML已有内容,但搜狗摘要仍显示旧内容,可能是缓存或抓取周期问题,应继续观察日志中的再次抓取记录,而不是反复提交同一URL。下一步:选取一个动态页面,按上述方法保存raw.html与rendered.html,找出缺失字段,再决定是改服务端渲染还是调整链接输出。