入口頁的作用是把蜘蛛引到目标頁,而蜘蛛能不能顺利走過去,很大程度上取决于跳轉方式。跳轉寫错,入口頁返回再正常也可能白跑一趟。下面把常见的几種跳轉方式拆開看。
先明确入口頁跳轉要達成的目标
多數情况下,入口頁只需要做三件事:让蜘蛛發現目标 URL、让蜘蛛愿意跟過去、让整條鏈路可观察可替換。任何跳轉方式,如果做不到這三点,就不算合适。
几種常见跳轉方式的特点
- 服務端 301:永久跳轉,语义清晰,搜尋引擎一般會跟随並把原 URL 的索引逐步替換為目标頁。副作用是入口頁本身很难再作為長期發現頁反复使用,如果一個入口頁要長期承担引導任務,用 301 要谨慎。
- 服務端 302 / 307:临时跳轉,原 URL 归属不變,适合入口頁保留、目标會更換的场景。不同引擎對临时跳轉的传递處理不完全一致,長期挂着 302 可能让目标頁的稳定信号打折。
- meta refresh:寫在 HTML 头部,蜘蛛能解析,但不走 HTTP 头,優先級偏低。延迟设得太長,蜘蛛可能不等待就离開;设成 0 秒又等于没有入口頁。
- JS 跳轉:靠 location.href 或前端路由执行,需要渲染才能生效。入口頁本身内容單薄时,蜘蛛很可能不执行,跳轉被直接忽略。
按场景選,而不是按偏好選
- 目标頁長期固定、入口頁只做一次性引路,可以用 301。
- 入口頁需要長期存在、目标會替換,優先考虑 302,或者干脆在正文里放連結。
- 担心抓取端不执行 JS,就用服務端跳轉,別把唯一通路压在前端脚本上。
- 只是希望蜘蛛多看一眼入口頁,就不要用 0 秒 meta refresh,那等于把入口頁本身作废。
比跳轉更稳的做法:正文里的普通連結
跳轉是强制引導,普通锚文本連結是软引導。蜘蛛可以自己决定是否訪問、何时訪問,入口頁也因此保留了自己的内容價值。把跳轉和正文連結並存是可行的,但要避免同一頁里既 302、又 0 秒 meta、又 JS 跳轉,多種方式叠加會让實际抓取行為难以判断,出問题时也不容易定位。
常见問题排查
- 目标頁長期没被抓:先確認入口頁返回 200,再看跳轉是否寫在 HTTP 响應头里。
- 蜘蛛訪問了入口頁但不訪問目标頁:检查跳轉是不是只在前端脚本里执行。
- 目标頁收到大量来路不明的請求:可能是入口頁被外部镜像或轉發,需要看訪問日誌的来源。
- 跳轉鏈太長(A 到 B 到 C 到 D):每多一跳,蜘蛛放弃的概率都會增加,尽量一跳到位。
使用建议
- 一個入口頁只承担一個主要跳轉目标,便于观察效果和後續替換。
- 跳轉方式确定後保持一段時間不要频繁改動,日誌資料才有可比性。
- 记錄每個入口頁的跳轉類型、目标地址和變更時間,出問题时能快速回溯。
- 用抓取日誌驗證结果,而不是凭配置去推测。
跳轉方式本身不产生抓取,它只决定蜘蛛能不能顺利走到下一步。真正影响结果的,還是入口頁規模、目标頁质量和站点自身的可抓取性。