在〈datafox 竣工後記〉裡,我很自豪地介紹了我怎麼用 JSON-LD 做 AI-SEO、怎麼把 Person Schema 埋進 extend_head.html 裡讓 Perplexity 認識我、怎麼讓 AI 搜尋引擎理解我的技術邊界。我當時覺得我在做很厲害的事情。

在大概兩個月後我打開 Google Analytics,發現一個問題。

我的流量,幾乎全部來自我自己推。每次發文 → 丟 LinkedIn → 丟群組 → 流量來一下 → 消失。

自然搜尋?幾乎零。幹我超難過的,之前在medium發文都可以吸引到自然流量,但是我這裡幾乎沒有,可憐。


一、我到底漏掉了什麼?

這件事讓我有點汗顏,因為我之前寫過的那篇 SEO 文章,某種程度上也在教別人怎麼做 SEO。但是我忽略了一個超大的問題,也就是,我做了「AI 時代的進階 SEO」,但跳過了最基本的那幾件事。

譬如說,我的文章 URL 長這樣:

https://datafox.tw/posts/260303_2222/

這串數字對 Google 來說毫無意義。Google 不知道這篇文章在講什麼,所以也沒辦法在有人搜尋相關關鍵字時把它推出來。Medium 之所以能搜尋到,原因之一就是 Medium 的 URL 長這樣:

https://datafox-tw.medium.com/datafox-竣工後記-2026-個人網站實戰指南-從-想要一個網站-到真正上線-3ae9d5a615b7

一眼就知道在講什麼。

然後是文章的 description。我翻了一下,25 篇文章裡有 17 篇是空白的。

description: ""

這代表 Google 抓到我的文章時,不知道要在搜尋結果裡顯示什麼摘要。只能自己猜。猜出來的東西通常不太好看,點擊率自然也不高。

再來是,我根本沒有主動告訴 Google 我的網站存在。robots.txt 有、sitemap 有,但我從來沒去 Google Search Console 提交過。我之前都只知道ga4,但是我沒有去gsc,讓我的自然流量門可羅雀,尤其這件事情根本只要三分鐘就搞定了

二、今天做的四件事

2.1 讓 URL 說人話

在每篇文章的 front matter 加上 slug,讓新的 canonical URL 帶有關鍵字:

slug: verbose-ai-agent-financial-risk
aliases: ["/posts/260416_2200/"]

slug 是新的 URL,aliases 讓舊的 date-based URL 自動 redirect 過去,不會 404。

為了不用一篇一篇手刻,我寫了一個 script,讓 Gemini 讀文章標題,自動生成 3-6 個英文單字的 slug,然後批量寫入 front matter。

2.2 把 description 補齊

同樣是 script。讓 Gemini 讀每篇文章的前 800 字,生成一段 40-120 中文字的 meta description,既包含關鍵字,又不像機器摘要那麼生硬。

這段文字就是搜尋結果裡顯示在標題下面的那行說明。對點擊率的影響比大部分人想像的要大。

2.3 提交 Google Search Console

去 Search Console 驗證網域(我用 GoDaddy DNS 驗證),然後提交 sitemap:

https://datafox.tw/sitemap.xml

系統回報:成功,探索到 67 個頁面。

這步之前我一直沒做,代表 Google 完全靠自己爬,效率很差、速度很慢。現在至少讓 Google 知道我存在了。

2.4 補上 Open Graph 封面圖

沒有 OG image 的話,文章分享到 LinkedIn 或 LINE 群組時,預覽卡片就是一片空白(或隨機抓到奇怪的圖)。

hugo.yaml 裡加一行:

params:
  images: ["images/Open_graph_image.png"]

全站預設都用這張。之後如果特定文章想換圖,在 front matter 裡用 cover.image 覆蓋就好。


三、反思:「看起來厲害」vs「基本功」

我做 JSON-LD 和 Person Schema 的時候,有一種莫名的成就感。那些東西看起來很專業、很 AI-native、很「2026 年的 SEO」。

但我跳過了 description、URL slug、Google Search Console 這些看起來很無聊、文章到處都寫過的東西。

我想這大概是一種典型的偏誤:因為某件事感覺「太基礎了」,所以假設自己早就做好了。然後繞了一大圈去做進階的東西,回頭才發現地基沒蓋好。

倒也不算浪費。JSON-LD 對 AI 搜尋引擎確實有用,Perplexity 之類的工具在爬取結構化資料時會參考 schema。但這些是「加分項」,不是「保底項」。

保底項沒做好,加分項就只是在一個沒人看到的地方加分。


做 SEO 這件事,跟寫程式一樣:先讓東西能動,再讓東西動得好。


如果你也在用 Hugo + GitHub Pages 跑個人網站,上面四件事是最值得先確認的清單。Script 我放在 scripts/gen_descriptions.pyscripts/gen_slugs.py,有需要可以參考改用。(請到github去找原始碼)