自架部落格開發紀錄封面:網址改用編號、留言只回一層、草稿只給作者看與 SEO 踩坑

豪享生活的部落格是我自己寫程式、自己部署的自架部落格。2026 年 2 月底開工時只有文章、分類與標籤,之後陸續加上留言、收藏、後台與發文腳本;9 月底大改版,9 月 30 日 SEO 整套生效。一路上踩的坑,多半不是功能做不出來,而是做出來的行為和我以為的不一樣。

這篇依時間記錄部落格的功能演進,以及 9 月大改版的原因與做法。踩坑寫了 7 個:網址、登入狀態、留言、草稿、文案、SEO 與流量分析。部落格現在有哪些功能,寫在部落格功能介紹;架構與部署寫在個人網站怎麼架。

部落格的功能是怎麼一步步長出來的?

部落格不是一次做完的。我先做讀文章需要的部分,再依需要加上會員、後台與 SEO,下面依時間分成四段。

2 月底到 3 月:文章、分類、留言與收藏

2026 年 2 月 25 日開工那天,部落格就有文章與草稿、多層分類、標籤與全文搜尋。2 月 27~28 日第一次部署上線,同時加上按讚、深淺色、個人頁與 Markdown 編輯器,配圖也能上傳到 R2。

3 月 1 日加上巢狀留言、收藏與分類頁,3 月 8 日文章網址改用文章編號。到這裡,一個部落格該有的基本功能都齊了。

4 月到 6 月:後台、共用登入與發文腳本

4 月 17 日子網域架構上線,第一個子網域是豪享看股票,各子網域共用同一個 Google 登入。5 月 6 日管理後台上線,5 月 17 日加上頁面管理,主站也改了一次版。

6 月 20 日起,文章改成寫在資料夾裡,再用發文腳本送上網站。隔天,文章頁的第一屏改成伺服器先畫好,同時加上「我的文章」管理、分享選單與搜尋加速。

7、8 月停工,9 月底大改版

7、8 月部落格幾乎沒有新功能。9 月 26~29 日一口氣大改版,9 月 30 日網站地圖、robots.txt、RSS 與結構化資料整套生效。

10 月:流量分析與 SEO 補強

10 月 8 日接上自架的 Umami 流量分析,後台首頁改成營運概況;10 月 10 日重畫品牌 logo。10 月 12~17 日陸續補上子網域的網站地圖、結構化資料與標準網址。10 月 15 日加上分類說明,網站地圖附上文章配圖,空的分類也不給搜尋引擎收錄。

豪享生活部落格功能演進時間軸:2026 年 2 月 25 日開工,3 月加上留言與收藏、網址改用編號,4 月共用登入,6 月改用發文腳本,9 月底大改版與 SEO 整套生效,10 月接上流量分析 豪享生活部落格的功能演進(2026 年 2 月到 10 月)

文章網址為什麼從中文 slug 改成文章編號?

文章網址一開始用 slug,也就是由標題轉成的一段網址文字。2026 年 3 月 8 日,我把網址改成文章編號。

  • 情境:部落格的標題都是中文,而且常帶問號、頓號與冒號。
  • 問題:產生 slug 的程式會把中文標點刪掉,網址變成一長串連在一起的中文字。
  • 判斷:中文靠標點斷句,刪掉標點的網址不好讀。要把每一種標點都處理好,規則只會越補越多。
  • 做法:網址改用文章編號,標題只負責顯示。
  • 結果與學到的:網址和標題分開以後,改標題不會動到網址。10 月我依搜尋字調整一批文章標題,舊網址照樣有效;網址和顯示的文字,最好分開管。

收到 401 為什麼不能直接當成登出?

401 是伺服器回傳的「未授權」狀態碼,意思是這一次請求沒有通過驗證。2026 年 6 月,我替前端定下一條規則:401 不等於登出。

  • 情境:部落格要登入才能用的功能越來越多,例如留言、按讚與「我的文章」管理;4 月起主站和工具子網域也共用同一個登入。
  • 問題:只要有一個請求回傳 401,整個網站就把使用者登出。登入憑證只是短暫對不上,也會被整站登出,還出現過主站還登入、子網域卻被踢出去的狀況。
  • 判斷:401 描述的是一次請求,不是使用者的狀態。登入的工作階段還在,就不該因為一次請求失敗把人登出。
  • 做法:收到 401 時,先確認使用者是否已經登出,確定登出才請使用者重新登入;查詢登入狀態的服務本身出錯時,也不把人登出。
  • 結果與學到的:錯誤碼和使用者狀態是兩件事。混在一起處理,使用者會在沒有登出的情況下被請回登入頁。

9 月底為什麼大改版?

9 月 26 日起,投資理財的文章一套一套寫成系列、陸續公開。

同一週,我把部落格整個翻新,重點放在照順序讀與讀得舒服。文章頁加上目錄與系列的上一章、下一章;首頁的主題專區改用各分類的篇數來挑系列,不再只看最新的文章。留言、按讚與收藏的公開範圍,也趁這次重新整理。9 月 26~29 日改了這些地方:

9 月底大改版改了哪些地方

項目改了什麼日期(2026 年)
首頁、文章清單、編輯器重新設計版面9 月 26~29 日
分類分類旁標示篇數9 月 27 日
文章頁加上右側目錄、閱讀時間、系列上一章與下一章9 月 28 日
留言改成只回一層,可以編輯,加上限流9 月 28 日
按讚按讚名單公開9 月 28 日
手機版修正小螢幕的版面9 月 28 日
收藏與個人頁收藏改成只有自己看得到的「我的收藏」,個人頁改版9 月 29 日

改版後的豪享生活文章頁,上方是麵包屑、標題、閱讀時間與標籤,右側是依小標排列的目錄 改版後的文章頁:麵包屑、閱讀時間、標籤與右側目錄(2026 年 10 月擷取)

這次改版照AI 團隊的開發流程走,每一批改動都先過上版前審查。接下來的留言、草稿與文案三個坑,都是改版這幾天遇到的。

文章的寫法也一起改

網站改版的同一週,我也改了文章的寫法。當時多數文章用中文數字編號當小標,沒有一篇有常見問題;讀者從搜尋進來,只看小標看不出這篇回答了什麼。

我參考專業理財網站的標題與排版,把規則寫成一份寫作規範。規範的重點是:第一段先給答案、小標寫成讀者會問的問題、短句短段、文末放常見問題。

寫好規範之後,我讓多個子代理平行改寫已經寫好的文章。之後的新文章,也都照同一份規範寫。

留言為什麼改成只回一層?

留言在 3 月 1 日上線時是巢狀的,回覆底下還能再回覆。9 月 28 日改成只回一層:所有回覆都排在原留言底下,不會一路往下縮排,比較看得出誰在回誰。

改結構時,最麻煩的是舊資料。

  • 情境:已經存在的巢狀回覆,要用一支資料整理程式,整理成只有一層的新結構。
  • 問題:上版前審查發現兩件事。這支程式每次服務開機都會執行,每次都會改到正式資料;已經刪除的留言,底下的回覆整理後可能重新公開。
  • 判斷:資料整理是一次性的工作,不該綁在開機流程上。刪掉的內容重新公開,比版面不好看嚴重得多。
  • 做法:改成只執行一次,執行過就留下標記。原本就看不到的回覆先維持隱藏,再整理結構,最後核對留言數,這幾步要嘛全部完成、要嘛全部不做。上版前先備份正式資料,再用唯讀的方式試算一次;正式執行後印出的筆數,要和試算的一樣。
  • 結果與學到的:這兩個問題都在上版前擋下。之後碰到會改正式資料的程式,我都照「先備份、先試算、只跑一次」做。

改正式資料的流程圖:寫整理程式、上版前審查、備份正式資料、先試算、核對結果、只執行一次,審查或核對沒通過就回頭改程式 會改正式資料的程式:先備份、先試算,確認後只跑一次

草稿為什麼要確認只有作者讀得到?

草稿是還沒確認的內容,應該只有作者看得到。我的發文腳本預設也把文章發成草稿,讓讀者先看不到還沒確認的版本。

  • 情境:2026 年 9 月 28 日,大改版改到文章頁與編輯器。
  • 問題:草稿只要有網址就讀得到。沒有公開連結,不等於別人讀不到。
  • 判斷:發文流程預設發草稿,就是為了讓讀者先看不到;草稿守不住,這道保護就沒有用。
  • 做法:讀草稿前先確認讀的人是不是作者,不是作者就讀不到。
  • 結果與學到的:修好之後,上版前審查又抓到兩個問題。編輯頁讀文章時沒有帶上作者的身分,作者自己反而打不開草稿;讀取失敗時,編輯頁還會給一份空白表單,一存檔就蓋掉原文。最後改成在伺服器端帶著作者身分讀文章,讀不到就不給表單,只給「再試一次」。權限收緊時,要同時測「不該進來的人進不來」和「該進來的人進得來」,也要測讀取失敗時會不會寫壞資料。

文案為什麼要跟功能的行為一致?

  • 情境:9 月底改版時,按讚相關的畫面上寫著「只有你看得到」。
  • 問題:按讚名單是公開的,其他讀者看得到誰按了讚。畫面的說法和實際行為相反。
  • 判斷:功能沒有壞,壞的是畫面上的承諾。讀者照文案以為是私人的,結果是公開的,這比少做一個功能更傷信任。
  • 做法:拿掉那句說明,不在按讚的地方寫誰看得到。按讚名單維持公開;想私下存的文章,放進只有自己看得到的「我的收藏」。
  • 結果與學到的:現在按讚公開、收藏私人,畫面不再寫和行為相反的話。文案也是規格的一部分,每一句「只有你看得到」「不會公開」,都要對照程式的實際行為。

robots.txt 和網站地圖為什麼 404 了好幾個月?

robots.txt 告訴搜尋引擎哪些網址可以抓,網站地圖列出網站上有哪些網址。這兩個檔案在部落格上有好幾個月都是 404,搜尋引擎拿不到。

  • 情境:4 月 17 日子網域架構上線。部落格和工具放在同一個 Next.js 專案,網站依照子網域,把請求轉到對應產品的資料夾。
  • 問題:這兩個檔案放在專案的根目錄,主站的請求卻都會被轉到主站的資料夾。這兩個檔案永遠收不到請求,一直回傳 404。
  • 判斷:一般頁面都正常,出問題的只有這兩個給搜尋引擎讀的檔案;它們不是給人看的頁面,從頁面上看不出異狀。
  • 做法:9 月 30 日把這兩個檔案搬到主站實際處理請求的位置。同一天,網站地圖、robots.txt、RSS、標準網址、分享卡片與結構化資料整套生效。
  • 結果與學到的:路由規則影響的不只是頁面。改子網域或轉址規則時,robots.txt、網站地圖與 RSS 這類不是頁面的網址,也要一起打開確認。

robots.txt 404 前後對照圖:修正前,檔案放在專案根目錄,主站的請求被轉到主站資料夾,檔案收不到請求而回傳 404;修正後,檔案搬到主站資料夾,正常回傳內容 robots.txt 與網站地圖 404 的原因:檔案放的位置收不到請求

流量分析上線前,審查擋下了什麼?

  • 情境:10 月 8 日,我接上自架的 Umami 流量分析,後台首頁也改成營運概況。
  • 問題:上版前審查發現,追蹤程式會送出完整的網址與上一頁的網址;有些網址帶著一次性的兌換代碼,會跟著記進流量紀錄,事後很難清掉。
  • 判斷:流量分析要知道的是哪一頁被看,用不到網址裡的這類參數。一次性的代碼就算用過就失效,也不該留在任何紀錄裡。
  • 做法:轉送流量資料時,網址參數只保留白名單裡的欄位,其他一律拿掉;改完再實測一輪才上線。
  • 結果與學到的:接分析工具之前,先想清楚它會記下什麼。網址裡的參數也是資料,不需要的就不要記。

做部落格這幾個月,我學到什麼?

回頭看,部落格的坑多半出在行為:網址跟著什麼變、誰讀得到、畫面說了什麼、程式記下了什麼。我整理成下面幾條:

  • 網址和顯示分開:網址用編號,標題怎麼改都不影響連結。
  • 權限測兩個方向:不該進來的人進不來,該進來的人進得來。
  • 改正式資料先備份、先試算、只跑一次:資料整理不綁在開機流程上。
  • 文案就是規格:畫面上的每一句承諾,都要和程式的行為一樣。
  • 不是頁面的網址也要測:robots.txt、網站地圖與 RSS,改完路由都打開確認。
  • 記錄前先想好要記什麼:分析工具只記需要的資料,網址參數也一樣。

部落格還會繼續改。如果你也在做自己的部落格,希望這些坑能讓你少踩幾個。

常見問題

Q1:自架部落格的文章網址,用中文標題還是編號?

我選擇用文章編號。中文標題轉成網址時,標點很難處理;網址用編號,之後調整標題也不用改網址。

Q2:怎麼確認 robots.txt 和網站地圖讀得到?

直接在瀏覽器打開網站的 robots.txt 與網站地圖網址,確認有內容、不是 404。改過路由或轉址規則之後,要再打開確認一次。

延伸閱讀