19 篇文章只有 7 條內部連結:相關文章演算法的日期偏誤
站內連結稽核抓到一個會自我惡化的設計:「相關文章」取同分類最新 3 篇,等於舊文隨發文量增加被系統性孤立——19 篇有 8 篇零入鏈。這篇記錄追兇過程、改用 tag 計分的解法,以及 7 條連結補到 41 條的紀律。
Kai Wu
• 凱吳科技 負責人
先給數字:稽核自家官網時,我們數了一下部落格的站內連結——19 篇文章,正文裡指向其他文章的連結總共 7 條,其中 13 篇一條都沒有、8 篇沒有任何入鏈。
每篇文章底下明明都有「相關文章」區塊,為什麼還是一片孤島?
症狀:入鏈全部集中在最新幾篇
把「相關文章」實際指向的對象攤開,模式很明顯:拿得到入鏈的只有 11/19 篇,而且高度集中——最熱門的一篇被指了 10 次,八篇舊文一次都沒有。
追兇:「同分類+最新」是個會惡化的預設
相關文章的邏輯是最常見的那種寫法:同分類優先,然後取前 3 篇。問題藏在「前 3 篇」——文章列表依日期新到舊排序,所以每篇文章都指向同分類最新的那 3 篇。
這個設計有一個會隨時間放大的性質:發文越多,舊文被指到的機率越低,權重越集中在新文。它不是壞掉,是每天都比昨天更偏一點——這種 bug 最難被發現,因為任何單一時間點看起來都算合理。
修法:tag 重疊計分+輪替
我們把演算法改成兩層:先按 tag 重疊數計分(同分類只當加分項),同分數的再用文章 slug 做確定性輪替——純函式、無亂數,靜態產生的頁面每次建置結果穩定。
用全站語料實際模擬新舊兩版:
- 拿得到入鏈的文章:11/19 → 17/19
- 零入鏈的孤兒:8 篇 → 2 篇
- 入鏈分佈標準差:3.28 → 1.92
剩下 2 篇孤兒是 tag 與全站零重疊——那是標籤問題,演算法救不了,要靠正文連結補。
有一個設計細節值得說明:輪替為什麼不用亂數?因為這站是靜態產生的,頁面在建置時就決定內容——亂數會讓每次建置的「相關文章」都不一樣,快取失效、除錯困難。用 slug 當種子的確定性輪替,同一篇文章永遠得到同一組結果,但不同文章各自錯開,兩個目的一次滿足。
手工的部分:41 條連結與一條紅線
演算法解決「機器選的連結」,正文脈絡連結還是要人工補。我們把 19 篇按主題叢集互連,正文連結從 7 條補到 41 條,19 篇全部有出鏈也有入鏈。
過程中踩到一條值得寫下來的紅線:為了給某篇孤兒文製造入鏈,我們一度想在案例描述裡「順便」添一句原文沒有的情節——當場撤掉。**錨點只能從既有文字轉換,不能為了連結新增未經佐證的事實。**連結是導流,不是創作授權。
站內連結不是導覽列的裝飾,是你告訴搜尋引擎:哪些內容互為證據。
這次改動屬於同一輪稽核的產出,稽核的完整發現寫在把自家官網當客戶稽核;我們替客戶做的網站也吃同一套紀律(見案例研究)。
給檢查自家網站的三個自我檢查
- 隨機點開三篇舊文,看「相關文章」指向誰——如果全是最新那幾篇,你也有日期偏誤。
- **有沒有文章是零入鏈的孤兒?**搜尋引擎靠連結發現與評估內容,孤兒等於自願隱形。
- **正文裡的連結,是脈絡裡自然長出來的,還是為了 SEO 硬塞的?**讀者分得出來,演算法也分得出來。
如果你的網站也累積了幾十篇內容,想知道連結結構有沒有在扯後腿——你給我們網址,我們跑一次同樣的稽核給你看。
文章標籤
相關文章
探索更多 AI 自動化與流程改造的實戰內容