內鏈全面翻修的一天,也揪出83站文章繞過審閱
9月4日是目前為止工作量最大的一天。喵宇宙裡有二十幾個站同時在補內部連結,這批工作大多是先核對外部SEO建議報告是否屬實,才動手修正。
A 站的官方資料與效能修正
A 站這天完成兩波官方資料串接——環境部裁罰紀錄、政府採購名單,以及食藥署食品業者登錄清冊;也把一個資料庫查詢從3.35秒修到0.69秒。新資料要包進整站發布,建置檢查反覆卡關,修正後當天上線。
最大的意外:83站168篇文章繞過審閱
這天最大的發現,是重新盤點9月3日那一批「每日文章」直接發布到網站、繞過程式碼庫的範圍,結果比先前估計大得多:原本以為約22個站受影響,重新盤點後確認是83個站、168篇文章,其中62個站、128篇在程式碼庫裡完全找不到原始檔案,126篇沒有列進網站自己的網址清單。更嚴重的是這128篇全部標記為草稿,從未通過內容審閱就已上線,其中不少涉及醫療、法律、稅務等需要特別小心的主題。當天設計了分階段流程:先機械轉檔並保留草稿狀態,再由獨立審閱流程逐篇查核,通過才改變狀態重新發布。審閱抓到多個實質錯誤——引用已廢止的美容美髮法規、把兩個協會的職責寫反、政府機關改制後名稱沒跟上、一個官方查詢系統的死網址,以及把每天變動的資料日期誤寫成文章更新日期。到這天結束,已有46篇通過審閱重新上線;其餘還在排隊查核,其中最需要留意的YMYL(醫療、法律、稅務等)29個站、57篇,這天甚至還沒開始審閱。
B 站的沉默漏洞
B 站的建置程式這天也暴露一個更危險的漏洞。它會即時向政府下載最新的實價登錄資料,但舊寫法遇到下載失敗只印一行警告就跳過,不會讓建置真的停下來。兩次建置測試裡有一次因為連線被拒,少抓了一整季、47,508筆資料,卻照樣產出一個看起來完整的網站,而這正是唯一會被拿去部署的版本,過程不會有任何錯誤訊息提醒。改法是下載失敗時重試4次,仍然失敗就整個建置中止,不留下殘缺的資料檔。
C 站的死連結與假頁面
C 站這天查出一個長期沒被發現的問題:網站頭部「機構查證」按鈕連到的其實是一個不存在的頁面,全站有7,319個頁面連過去;另一個相關按鈕的目標頁面也不存在,被2,846個頁面連過去,合計全站8個內部連結目標其實是404。另外還有6個示範用的假機構頁面掛著不存在的地址,一樣可以被搜尋引擎收錄。當天已建好真正的機構查證頁面、把死連結全部改指到存在的頁面,並把假機構頁下架。
分析日報悄悄停擺三週
我們內部每天用來看各站在Google搜尋表現的自動化報表,從8月17日起就一直執行失敗,卻沒有人發現——後來查出是9月3日清理不相干資料夾時,不小心把報表需要的雲端存取憑證一起刪掉了。9月4日重新申請一組新憑證、把讀取程式重寫過,報表當天恢復正常運作。
半個喵宇宙的內鏈健檢
扣掉這些事故,這天真正上線的內鏈工程涵蓋了將近半個喵宇宙:D 站、E 站與另外五個站都補上了行政區頁、機構頁、場館頁之間原本沒有的下一步連結;另一個站把先前只有10筆的人工跨站配對換成地址與座標比對的演算法。這些工程幾乎都先核對外部建議報告是否屬實,做完先驗證零死連結,再讓獨立流程檢查過才部署。
這天其他出錯的地方
- 另一個開發中的功能原本會把公司負責人姓名的變更寫進公開的異動時間軸,驗收時被攔下,改成完全不記錄負責人姓名再上線。
- 另一個站重新上傳網站檔案時指令下錯,首頁被一篇文章頁面蓋掉約兩分鐘,發現後立即復原,其他頁面沒受影響。
- 前兩天陸續替十多個站補送的41筆搜尋引擎網址清單,這天又被要求整批撤回,40筆確認移除、1筆本來就已經不存在。
- D 站的清運資料在多個存放位置都遺失,靠舊程式庫紀錄與重新申請政府資料補回80,308筆,3個原住民行政區官方本來就沒有資料。
- 打包網站更新檔時不小心夾帶了8,924個蘋果系統暫存檔,發現後改用乾淨方式重新打包。
- 全站共用的網址核對工具沒處理中文網址編碼,多數頁面被誤判連不上,這道防線形同虛設,已修正。
- 其中一個站有4篇文章配到錯的商圈,另外66條連到別縣市的內部連結被移除。
- F 站原本設計讓只有1到2間診所的行政區頁不被收錄,實際檢查發現沒有生效,44個頁面一直可被收錄,這天修正。
- 一套檢查Vercel部署身分的機制,其實只檢查欄位有沒有填值、從未真的連線驗證,涵蓋A 站、E 站、F 站等7個站的正式發布,等於沒有真的擋下任何東西。這天已重新設計成真正讀取雲端儲存權限的檢查,但目前只有其中一個站真正拿到雲端授權,其餘7個站都還沒有,新檢查因此會誠實擋住部署,還沒有人去申請授權,這天沒有做完;這7個站目前都已改用別的方式對外發布網站,這次的假檢查沒有被真的用來把關過。
- 另一個站有一個資料模組長期缺席,建置時只印警告、不會真的中止,導致機場頁顯示「0座機場」、7個樞紐頁404,並牽連出26種、89處站內死連結;這天已補回資料模組並重新設計相關連結,本機驗證死連結降到0,但還沒有部署上線。
- 一項每天自動比對A 站等站資料狀態是否一致的檢查,其實從8月26日起就一直顯示失敗,卻因為系統遇到第一個錯誤就停止繼續比對,畫面上只看得到一個問題;這天深入查證才發現背後其實還藏著至少9個各自獨立、先前完全沒被看到的資料落差,這天只修好其中屬於機械同步的部分,其餘仍待處理。
這天抓到的問題,幾乎都不是當天造成的,而是趁著大規模動工才被翻出來。