入口页存在的意义,多数时候不是自己拿排名,而是把蜘蛛带到目标页。从入口页到目标页这一段路,用什么方式指过去,会直接影响蜘蛛会不会继续走、走多远、以及目标页能不能被稳定发现。
直链:能点、能抓、最省事
最基础的方式是在入口页正文里放一个普通的 a 标签,href 指向目标页。蜘蛛解析 HTML 时就能拿到这个链接,不需要执行脚本,也不需要等重定向。它最大的好处是路径清晰:入口页被访问一次,目标 URL 就进入待抓队列。
实际使用中,直链不需要堆很多。一篇文章里出现两三次自然链接,通常比页脚塞几十个链接更容易被正常处理。链接周围最好有相关文字,而不是孤立地列一串 URL。
- 优先放在正文段落、列表或相关内容模块;
- 锚文本尽量描述目标页主题,不要全用“点击这里”;
- 同一入口页指向同一目标页,保留一两个链接即可,不必重复。
301 与 302:适合迁移,不适合当日常入口
301 表示永久跳转,302 表示临时跳转。蜘蛛对两者的处理有差别:301 通常会把原 URL 的信号逐步转移到新 URL,302 则倾向于保留原 URL 的索引状态。如果你的入口页只是临时把蜘蛛引到活动页,302 更合适;如果目标页确定要替换入口页,301 更清晰。
但把重定向当成入口页的主要出口,会拉长抓取路径。蜘蛛每遇到一次跳转,就要多消耗一次请求。跳转链越长,中途失败或超时的概率越高。比较稳妥的做法是:入口页直接链到最终目标页,重定向只用于域名更换、URL 结构调整这类一次性迁移。
如果目标页本身还能正常访问,就不要让蜘蛛先经过一串 302 才到达。多一跳,就多一个可能断掉的地方。
JS 跳转:依赖渲染,容易只走一半
常见写法是 location.href 指向目标地址,或者用 window.open 打开新窗口。搜索引擎的渲染能力在提升,但渲染有排队和预算,不是每个入口页都会被执行 JS。如果入口页本身内容单薄、外链少、访问频率低,JS 跳转很可能一直不被触发。
更麻烦的是,JS 跳转有时会被当成弹窗或跳转广告处理,蜘蛛可能直接忽略。把 JS 跳转作为唯一出口,等于把目标页的发现权交给渲染队列,稳定性不如直链。
- 如果必须用 JS,尽量在页面可见内容里同时保留一个普通 a 标签作为兜底;
- 避免 setTimeout 延迟太久,蜘蛛不一定等;
- 不要用 JS 拼接目标 URL,蜘蛛能看到静态 href 才最稳。
meta refresh:能用,但体验和判断都吃亏
meta refresh 写在 head 里,n 秒后跳转。蜘蛛对它的处理接近重定向,但延迟为 0 时容易被当成低质量跳转页。它的问题是双重的:用户看到白屏或闪烁,蜘蛛也可能只记住入口页而不跟进目标页。除非你控制的场景非常特殊,否则不建议把它作为主要方式。
iframe 嵌入:目标页被抓,但归属模糊
用 iframe 把目标页嵌进入口页,蜘蛛有可能顺着 iframe 的 src 抓取目标页,但页面归属和权重计算都不如直接链接清晰。入口页的正文和 iframe 内容属于两个文档,蜘蛛不一定把它们当同一个页面理解。如果只是想让目标页多一次被发现的机会,可以在直链之外少量使用,但不要指望 iframe 承担主路径。
怎么组合更合理
- 主路径用直链。入口页正文里放可抓取的 a 标签,指向最终目标页,不经过中间跳转。
- 迁移场景用 301。确定替换关系时使用,跳转目标一次到位,不要链式跳转。
- 临时活动用 302。活动结束就撤掉,不要让临时跳转长期挂着。
- JS 和 meta 只做补充。如果确实需要,同时保留直链兜底,避免蜘蛛空手而归。
- 定期看日志。观察入口页的访问记录里,蜘蛛有没有继续请求目标页。如果只有入口页被访问,目标页没有动静,就要回头检查跳转方式是不是太隐蔽。
常见误区
- 全站入口页都用 JS 跳转,蜘蛛不渲染就完全断链;
- 入口页先 302 到一个中间页,再 302 到目标页,路径太长;
- meta refresh 设成 0 秒,还指望蜘蛛把它当正常链接;
- 只放 iframe 不放直链,目标页的发现效率不稳定;
- 链接目标写成相对路径但入口页目录层级混乱,蜘蛛解析出错误 URL。
跳转方式没有绝对的好坏,关键是让蜘蛛用最少的步骤到达目标页。直链优先,重定向按场景使用,脚本跳转留兜底,再用访问日志验证效果,通常比追求某一种“高级写法”更可靠。