动态页面确认可见内容的核心方法,是绕过前端渲染,直接检查服务器返回的HTML源码,再与浏览器渲染后的DOM做对比。如果关键内容只出现在DOM里而不在源码中,搜索引擎抓取时很可能看不到它。死链处理与这个检查直接相关:当你把失效URL改为跳转或返回状态码时,必须确认跳转后的动态页面正文是否真的可见,否则旧链接的权重和用户都会落空。
假设某站有一个商品详情页,URL形如 /product?id=1024,页面内容由前端JavaScript请求接口后填充。现在这个URL因商品下架返回404,你打算将它301跳转到一个动态列表页 /category?type=shoes。问题在于:列表页的正文是否对爬虫可见?
curl -s "https://example.com/category?type=shoes",把输出保存为文件。判断结果:只有源码中出现的正文,才是抓取阶段最稳妥可见的内容。若源码为空壳,需要评估目标搜索引擎是否执行JavaScript,以及执行深度是否足够。
curl -I 查看HTTP响应头。200表示正常返回;404、410表示资源不存在;301、302表示跳转。死链处理中,跳转目标页若返回404,等于把死链换成了另一个死链。robots.txt 是否屏蔽了该路径,以及页面是否有 noindex。注意,robots.txt的抓取限制不等于可靠的索引移除,被屏蔽的URL仍可能因外部链接出现在索引中,只是摘要可能缺失。常见错误有三种。第一,只看浏览器里能显示就认为搜索引擎也能看到,忽略了JS渲染差异。第二,把死链直接跳转到首页,而首页正文与用户预期无关,等于制造软404体验。第三,用站点地图提交新URL后就认为收录有保证,实际上站点地图不保证收录,它只是发现线索。
适用条件:这套检查适合内容依赖接口或前端框架的动态页面,尤其在你准备做死链跳转、改版或迁移时。若页面本身就是静态HTML,源码检查通常一次通过,重点转向状态码和跳转链。不同搜索引擎对JavaScript的支持情况须分别核查,不能以一个引擎的表现推断另一个。
优先处理返回404且外部链接较多的死链。用抓取工具或日志筛出这些URL,按外链数量排序,先检查跳转目标页的源码可见性,再决定是301到相关页面还是返回410。对动态页面,先确认源码里有没有核心正文,再考虑是否需要用服务端渲染或预渲染补足。HTTPS不保证安全无漏洞或排名,它只是传输层条件,不应作为死链处理的替代方案。
下一步:挑出你站点里流量最高的五个动态URL,用 curl 抓源码并搜索页面主标题,记录哪些内容只在DOM中出现,据此排定修复顺序。