先说為什么基础項值得單獨拎出来讲
入口頁的内容质量、連結结构、更新频率這些偏上层的设計经常被反复讨论,但真正让蜘蛛连頁面都拿不到的,往往是移動端适配、HTTPS 握手、字符集這類基础問题。它們的共同特点是:排查成本並不高,可一旦存在,後面所有優化都會失去意义——蜘蛛的請求在讀到正文之前就結束了,頁面寫得再好也没人看见。
移動端:蜘蛛不一定只用桌面 UA 来抓
現在主流搜尋引擎基本都以移動端渲染结果作為主要依據。也就是说,入口頁在移動视口下的表現,會直接影响蜘蛛判断這個頁面是不是一個可用頁面。
- viewport 声明:缺少 viewport 的頁面在移動端會被整体缩小,文本虽然存在,但可讀性很差。
- 不要只做桌面可訪問:有些入口頁按 UA 判断,把移動端訪客连带蜘蛛一起導向空白頁或另一套跳轉,属于自找麻烦。
- 遮挡與彈窗:全屏遮罩、强制彈窗、悬浮广告挡住主体内容,會让蜘蛛抓到大量近似空的頁面。
- 资源体积:图片、字体文件過大拖慢渲染,在有限的抓取窗口里頁面可能還没渲染完就被結束了。
HTTPS 與證书:握手失敗就没有後半段
蜘蛛訪問入口頁的第一步是 TLS 握手。這里出問题,表現通常不是抓取失敗,而是完全没有請求记錄,所以很难往證书方向去想。
- 證书鏈完整:中間證书缺失时,部分客戶端校驗會直接失敗。浏览器可能因為缓存過而不报错,蜘蛛却是第一次訪問。
- 有效期與域名匹配:過期證书、只簽了 www 却用裸域訪問,都會中断连接。
- 协议版本统一:站点同时存在 HTTP 與 HTTPS 两個版本且互不收敛,會造成入口頁重复和抓取分散。建议固定一個版本,其余用 301 收口。
- 跳轉鏈別太長:多級跳轉叠加,蜘蛛容易在中間环节停下。
字符集與编碼:乱碼會白白浪費一次抓取
入口頁的编碼要统一。常见情况是頁面用 UTF-8 儲存,头部却声明成 GBK,或者干脆没有声明、交给客戶端去猜。结果标题和正文全是乱碼,這次抓取基本等于白費。
- 在 HTML 头部尽早声明 charset,並保證與實际文件编碼一致。
- 整站统一一種编碼,避免新老頁面混用。
- 資料库、模板、生成程序三處编碼要對齐,問题往往出在最後的生成环节。
關键内容別全靠 JS 後置加载
蜘蛛虽然大多具备执行 JS 的能力,但执行要排队、會超时,也受額度限制。入口頁的标题、正文摘要、以及指向下一层的連結,尽量放在首屏 HTML 里直接輸出。這样即使脚本没有跑完,頁面依然是一個有内容的頁面,而不是一片空白容器。
上线前的自查清單
- 分別用移動 UA 和桌面 UA 訪問一次,確認都能拿到相同的主体内容。
- 检查證书有效期、證书鏈是否完整、域名是否匹配。
- 確認 HTTP 與 HTTPS 只有一個版本對外,其余 301 收口。
- 查看响應头里的 Content-Type 是否带上了正确的字符集。
- 關掉 JS 再訪問一次,確認核心文本與連結仍在。
- 翻訪問日誌,找出那些一條請求都没有的入口頁域名,多半是解析或證书的問题。
寫在這里的提醒
入口頁能不能被抓到,取决于最薄弱的那一环,而不是最强的那個设計。基础項不顯眼,却决定了後面所有工作有没有意义。
這些調整大多不需要复杂改造,多數是一次性配置。把它們處理干净,再去谈内容與連結结构上的優化,顺序會更顺一些。