不少站点上线时顺手加了一個 RSS 地址,之後几年都没再打開過。對訪客来说它可能是歷史遗留,但對搜尋蜘蛛和各類订阅工具来说,它仍然是一條“有新内容了”的通知路径。這條路径不复杂,只是太久没人走,容易在细节上出問题。
先確認入口還能正常打開
- 把 /feed、/rss、/atom.xml 等常见入口都试一遍,看返回的狀態碼和内容類型。正常應是 200,加上 application/rss+xml 或 application/atom+xml。
- 確認没有被 WAF、驗證碼或登入拦截。有些站点改過安全策略後,订阅源先被挡在了门外。
- 跳轉鏈別太長,一两次 301 可以接受,四五次就應该直接改地址。
- 如果同时存在主 feed、分類 feed、标簽 feed,把各自的地址记下来,避免内容重复輸出。
feed 里的連結要能被真正抓到
订阅源最容易出問题的地方是連結。相對路径、带跟踪參數的地址、指向登入後頁面或深层分頁的地址,都可能让抓取工具白跑一趟。
- 使用绝對 URL,把协议和域名寫全。
- 去掉 utm 之類與阅讀無關的參數,feed 不是投放渠道。
- 連結指向的頁面應返回 200,而不是 404,也不是跳到首頁的 302。
- 同一篇文章在 feed 里只出現一次,避免多分類同时輸出造成重复。
- 付費、登入可见或阶段性下架的内容,不要把連結放進 feed。
更新時間和輸出條數要说得清
- pubDate 或 updated 應與文章實际更新時間一致。批量改模板導致時間整体跳變的,最好回查一次。
- 輸出最近 20 到 50 條即可,不必全量。feed 的定位是滚動窗口,不是归档清單。
- 輸出摘要還是全文,取决于你的内容策略。如果站点依赖頁面浏览和轉化,摘要更合适。
- 检查 feed 是否被 CDN 或頁面缓存套住,導致新文章迟迟不出現。
和 robots、sitemap、canonical 的分工
這三者经常互相打架,值得對照一遍:
- robots.txt 里不要把 feed 路径寫進 Disallow,除非你确實不再维護它。
- feed 頁面本身的 canonical 指向自己,不要指向首頁或栏目頁。
- sitemap 是全量清單,feed 是最近更新,两者职责不同,不要用 feed 充当站点地图。
- 不要在 feed 里塞侧栏連結、推荐位和全站導航,那會让它變回一張普通頁面。
發現異常时的排查顺序
- 先用 XML 校驗工具跑一遍,確認结构本身没有报错。
- 再到服務器日誌里搜 feed 地址,看有没有抓取记錄,抓取频率是否正常。
- 把 feed 里的連結和栏目頁的最新文章列表對一遍,看有没有漏掉或错位。
- 確認编碼统一。中文字符乱碼往往不是抓取問题,而是声明與實际编碼不一致。
订阅源不是必需品。如果站点更新很少、也没人订阅,把它關掉並返回 410,比留着一個半年没更新的空壳更干净。留下就要维護,维護的成本其實很低。
整体上,订阅源自查不需要什么工具,一次手工检查半小时就能完成。重点只有一句话:feed 里的每個連結,都應该是抓取工具愿意走、也能走通的路。