站点运营

站点运营:订阅源自查,別让 RSS 里的連結指向抓不到的地方

RSS 和 Atom 订阅源常被当成遗留功能,其實它是新内容被發現的一條辅助通道。本文给出一份可执行的自查清單:入口能否正常打開、返回的狀態碼與内容類型、feed 里的連結是否绝對可抓、更新時間與輸出條數、與 robots、sitemap、canonical 的分工,以及發現異常时的排查顺序和取舍建议。

站点运营

站点运营:订阅源自查,別让 RSS 里的連結指向抓不到的地方

不少站点上线时顺手加了一個 RSS 地址,之後几年都没再打開過。對訪客来说它可能是歷史遗留,但對搜尋蜘蛛和各類订阅工具来说,它仍然是一條“有新内容了”的通知路径。這條路径不复杂,只是太久没人走,容易在细节上出問题。

先確認入口還能正常打開

  • /feed/rss/atom.xml 等常见入口都试一遍,看返回的狀態碼和内容類型。正常應是 200,加上 application/rss+xmlapplication/atom+xml
  • 確認没有被 WAF、驗證碼或登入拦截。有些站点改過安全策略後,订阅源先被挡在了门外。
  • 跳轉鏈別太長,一两次 301 可以接受,四五次就應该直接改地址。
  • 如果同时存在主 feed、分類 feed、标簽 feed,把各自的地址记下来,避免内容重复輸出。

feed 里的連結要能被真正抓到

订阅源最容易出問题的地方是連結。相對路径、带跟踪參數的地址、指向登入後頁面或深层分頁的地址,都可能让抓取工具白跑一趟。

  1. 使用绝對 URL,把协议和域名寫全。
  2. 去掉 utm 之類與阅讀無關的參數,feed 不是投放渠道。
  3. 連結指向的頁面應返回 200,而不是 404,也不是跳到首頁的 302。
  4. 同一篇文章在 feed 里只出現一次,避免多分類同时輸出造成重复。
  5. 付費、登入可见或阶段性下架的内容,不要把連結放進 feed。

更新時間和輸出條數要说得清

  • pubDateupdated 應與文章實际更新時間一致。批量改模板導致時間整体跳變的,最好回查一次。
  • 輸出最近 20 到 50 條即可,不必全量。feed 的定位是滚動窗口,不是归档清單。
  • 輸出摘要還是全文,取决于你的内容策略。如果站点依赖頁面浏览和轉化,摘要更合适。
  • 检查 feed 是否被 CDN 或頁面缓存套住,導致新文章迟迟不出現。

和 robots、sitemap、canonical 的分工

這三者经常互相打架,值得對照一遍:

  • robots.txt 里不要把 feed 路径寫進 Disallow,除非你确實不再维護它。
  • feed 頁面本身的 canonical 指向自己,不要指向首頁或栏目頁。
  • sitemap 是全量清單,feed 是最近更新,两者职责不同,不要用 feed 充当站点地图。
  • 不要在 feed 里塞侧栏連結、推荐位和全站導航,那會让它變回一張普通頁面。

發現異常时的排查顺序

  1. 先用 XML 校驗工具跑一遍,確認结构本身没有报错。
  2. 再到服務器日誌里搜 feed 地址,看有没有抓取记錄,抓取频率是否正常。
  3. 把 feed 里的連結和栏目頁的最新文章列表對一遍,看有没有漏掉或错位。
  4. 確認编碼统一。中文字符乱碼往往不是抓取問题,而是声明與實际编碼不一致。
订阅源不是必需品。如果站点更新很少、也没人订阅,把它關掉並返回 410,比留着一個半年没更新的空壳更干净。留下就要维護,维護的成本其實很低。

整体上,订阅源自查不需要什么工具,一次手工检查半小时就能完成。重点只有一句话:feed 里的每個連結,都應该是抓取工具愿意走、也能走通的路。