站点运营

站点运营:移動端與桌面端的两套 URL,蜘蛛该抓哪個版本

移動端與桌面端两套 URL 时,蜘蛛可能抓到重复内容或漏掉入口。本文梳理响應式、獨立移動域名、動態服務三種适配方式,說明 canonical、alternate 标注、robots.txt、sitemap 與日誌检查的注意点,帮助站点减少重复抓取和版本混乱。

站点运营

站点运营:移動端與桌面端的两套 URL,蜘蛛该抓哪個版本

移動端流量占了大头,很多站点會准备两套頁面:桌面版和移動版。對用戶来说,切換通常無感;但對搜尋蜘蛛来说,两套 URL 意味着两套抓取路径。如果處理不好,蜘蛛可能反复抓取重复内容,或者只抓到一個版本。

常见的三種移動适配方式

  • 响應式设計:同一套 URL,用 CSS 媒体查询适配屏幕。蜘蛛只需要抓一個地址,權重集中,维護成本低。這是目前比較省心的做法。
  • 獨立移動域名:比如 m.example.com,移動端和桌面端各有 URL。需要做好對應關系,告诉蜘蛛两個版本的關系。
  • 動態服務:同一個 URL,根據 User-Agent 返回不同 HTML。服務器要做内容协商,風險是蜘蛛可能只看到其中一套,缓存和 CDN 也可能把版本搞混。

两套 URL 时,蜘蛛會怎么發現

蜘蛛通常從桌面版開始抓,也有的蜘蛛會带移動 User-Agent 訪問。如果移動版没有正确的入口,或者只在移動端展示某些連結,桌面版蜘蛛就可能發現不了這些 URL。

常见的問题包括:

  • 移動版頁面没有 canonical,或者 canonical 指向自己,導致两個版本都被当成獨立頁面。
  • 桌面版用 301 跳到移動版,移動版又跳回桌面版,形成循环。
  • 移動版屏蔽了搜尋蜘蛛,但桌面版没有對應内容,造成内容缺失。
  • 移動版 sitemap 和桌面版 sitemap 混在一起,URL 重复提交。

URL 對應關系要明确

如果使用獨立移動域名,建议在移動版頁面加上指向桌面版的 canonical,或者在桌面版加上指向移動版的 alternate 标注。两種方式選一種,保持全站一致。不要一邊用 canonical 一邊用 JS 跳轉,規則太乱容易让蜘蛛判断困难。

核心原則:一個内容尽量對應一個主 URL。如果必须有两個地址,就明确告诉蜘蛛哪個是主版本。

動態服務與缓存注意事項

動態服務依赖 User-Agent 判断。如果 CDN 或反向代理缓存了移動版頁面,桌面用戶可能拿到移動版 HTML,蜘蛛也可能抓到错誤版本。检查响應头里的 Vary 是否包含 User-Agent,缓存策略是否区分了设备。服務器日誌里可以观察同一個 URL 是否出現多種 User-Agent 抓取,以及返回内容是否一致。

检查與维護清單

  1. 確認移動版和桌面版的 URL 對應關系,列一張映射表。
  2. 检查 canonical、alternate 标注是否自洽,全站是否统一。
  3. 用移動 User-Agent 模拟抓取,看返回的 HTML 和狀態碼是否正常。
  4. 检查 robots.txt 是否誤屏蔽移動端资源,比如 CSS、JS、图片。
  5. 观察服務器日誌,看蜘蛛是否在两個版本之間反复抓取或陷入重定向。
  6. 如果改過适配方式,及时更新 sitemap 和内部連結,避免舊地址残留。

小结

移動适配不是單纯的前端問题,它也影响 URL 發現和抓取效率。响應式最省心;用獨立域名或動態服務,就要把對應關系和 canonical 規則寫清楚。定期用日誌和模拟抓取检查,能减少重复抓取和内容错乱。