用 GitHub Pages 架 blog 的人最後都會遇到同一個問題:hungjie19.github.io/blog 這串網址,免費是很佛心,但這不代表你——只代表你用的平台。換 custom domain 是遲早的事,只是在拖「我到底會不會繼續寫」這個問題。

決定開 blog 的當天,我把 domain 一起買了。

為什麼值得花這筆錢:

  1. SEO 累積跟著 domain 走,不是跟 github.io 走——以後換平台,資產不歸零
  2. 網址代表你這個人,不是你用的工具
  3. 之後換架構、換 hosting、加功能,你說了算

Domain 廠商比較

CloudflareNamecheapGoDaddy
價格成本價,不加價有時便宜,續費可能漲第一年很便宜,之後不一定
DNS內建,全球最快之一需另外設定內建
CDN / Analytics免費附贈
介面乾淨普通稍微複雜

設定步驟

Step 1|Cloudflare 買 domain

搜尋你喜歡的網域名稱,魔法小卡拿出來,結帳,完成。

Step 2|Cloudflare DNS 設定

  1. 進 Cloudflare Dashboard → 選 {your_domain}

  2. 左側 DNS → Records

  3. 新增一筆:

    • Type:CNAME
    • Name:@(代表根域名)
    • Target:your.github.io
    • Proxy status:橘色雲(Proxied)✓
  4. 再新增一筆 www redirect(可選但建議):

    • Type:CNAME
    • Name:www
    • Target:{your_domain}
    • Proxy:橘色雲

Step 3|SSL/TLS 設成 Full

左側選單 SSL/TLS → Overview → 選 Full(不是 Full (strict),不是 Flexible)

Step 4|GitHub Pages 填 custom domain

  1. 進 GitHub repo → Settings → Pages
  2. Custom domain 填 {your_domain} → Save
  3. 等它 DNS check 跑完(幾秒到幾分鐘)
  4. Enforce HTTPS 打勾

Step 5|Astro Blog 設定更新

5-1. astro.config.mjs

export default defineConfig({
  site: '{your_domain}',
  ...
})

5-2. src/layouts/BlogLayout.astro

const siteUrl = "{your_domain}";

5-3. public/robots.txt

Sitemap: {your_domain}/sitemap-index.xml

結果

domain jasperhung.dev 是自己的。

退路少了一條,只剩下持續分享文章。