<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant">
  <title>光輝咖碼</title>
  <subtitle>沒有一杯咖啡解決不了的問題；如果有，就交給 AI 吧。這裡分享網站架設、前端開發與各種技術筆記，然後再來一杯。</subtitle>
  <link href="https://kamadiam.com/feed/feed.xml" rel="self" />
  <link href="https://kamadiam.com/" />
  <updated>2026-08-13T03:55:00Z</updated>
  <id>https://kamadiam.com/</id>
  <author>
    <name>huihere</name>
  </author>
  <entry>
    <title>11ty vs Hugo vs Astro 怎麼選？2026 靜態站產生器決策指南</title>
    <link href="https://kamadiam.com/11ty-vs-hugo-vs-astro/" />
    <updated>2026-08-13T03:55:00Z</updated>
    <id>https://kamadiam.com/11ty-vs-hugo-vs-astro/</id>
    <content type="html">&lt;p&gt;你已經大概知道 WordPress 不是唯一答案，也聽過「靜態站比較快、比較安全」。結果一搜框架，Hugo、Eleventy（11ty）、Astro 三邊都說自己最適合部落格——讀起來像三杯咖啡同時跟你保證「我這杯最提神」。&lt;p&gt;選錯的代價很實在：遷移白做一輪、CI build 等到你懷疑人生，或為了用 React 元件硬上 Astro，結果整站只有純文章，卻多了一層元件編譯。這篇不幫你選「2026 最潮框架」，而是幫你回答：&lt;strong&gt;以你的文章量、團隊技能、要不要互動元件&lt;/strong&gt;，三個候選裡誰最不容易後悔。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E5%85%88%E7%A2%BA%E8%AA%8D%E4%BD%A0%E7%9C%9F%E7%9A%84%E9%9C%80%E8%A6%81-SSG-%E5%97%8E?&quot;&gt;先確認：你真的需要 SSG 嗎？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E4%B8%89%E5%80%8B%E6%A1%86%E6%9E%B6%E4%B8%80%E5%8F%A5%E8%A9%B1%E5%AE%9A%E4%BD%8D&quot;&gt;三個框架一句話定位&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#60-%E7%A7%92%E4%B8%BB%E6%B1%BA%E7%AD%96%E8%A1%A8%E5%85%88%E5%9C%88%E5%87%BA-1~2-%E5%80%8B%E5%80%99%E9%81%B8&quot;&gt;60 秒主決策表：先圈出 1～2 個候選&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E8%A6%8F%E6%A0%BC%E6%AF%94%E8%BC%83%E8%A1%A8%E7%9F%A5%E9%81%93-trade-off-%E5%9C%A8%E5%93%AA&quot;&gt;規格比較表：知道 trade-off 在哪&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#Build-%E9%80%9F%E5%BA%A6%E5%88%A5%E7%82%BA%E4%BA%86-benchmark-%E9%81%B8%E9%8C%AF%E6%A1%86%E6%9E%B6&quot;&gt;Build 速度：別為了 benchmark 選錯框架&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E5%85%A7%E5%AE%B9%E7%B6%B2%E7%AB%99%E6%83%85%E5%A2%83%E8%AA%B0%E6%AF%94%E8%BC%83%E9%A0%86?&quot;&gt;內容網站情境：誰比較順？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E5%85%A9%E5%85%A9%E5%B0%8D%E6%89%93%E4%BD%A0%E5%8D%A1%E5%9C%A8%E8%AA%B0%E8%B7%9F%E8%AA%B0%E4%B9%8B%E9%96%93?&quot;&gt;兩兩對打：你卡在誰跟誰之間？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#10-%E5%88%86%E9%90%98-hello-world%E9%81%B8%E5%9E%8B%E5%BF%85%E5%81%9A&quot;&gt;10 分鐘 hello-world：選型必做&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E9%81%B8%E5%AE%8C%E6%A1%86%E6%9E%B6%E4%B9%8B%E5%BE%8C%E7%9A%84%E4%B8%89%E4%BB%B6%E4%BA%8B&quot;&gt;選完框架之後的三件事&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C&quot;&gt;常見問題&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E7%B5%90%E8%AA%9E%E9%81%B8%E8%83%BD%E7%B6%AD%E8%AD%B7%E7%9A%84,%E4%B8%8D%E6%98%AF%E9%81%B8-benchmark-%E5%86%A0%E8%BB%8D&quot;&gt;結語：選能維護的，不是選 benchmark 冠軍&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-vs-hugo-vs-astro/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;先確認你真的需要-SSG-嗎?&quot;&gt;先確認：你真的需要 SSG 嗎？&lt;/h2&gt;&lt;p&gt;在 Hugo、11ty、Astro 裡三選一之前，先確認你該走「純靜態 SSG」這條路，而不是續用 WordPress、Statamic 或 Wix 這類 SaaS。框架選型是第二關，第一關是「你到底要不要靜態化」——還沒過第一關就選 Astro，有點像還沒決定要煮咖啡就先買磨豆機。&lt;p&gt;若你符合下面多數條件，再往下讀框架比較：&lt;ul&gt;&lt;li&gt;每月新文不多（例如 ≤ 30 篇），格式相近（教學、比較、清單）&lt;li&gt;至少一人會 git，或願意學「改 Markdown → push → 自動 deploy」&lt;li&gt;不需要訪客登入、購物車、即時庫存&lt;li&gt;痛點包含被駭、外掛衝突、主機慢、Core Web Vitals 拉不起來&lt;li&gt;可接受沒有 wp-admin（或願意走 Headless 混合架構）&lt;/ul&gt;&lt;p&gt;若編輯&lt;strong&gt;一定要網頁後台&lt;/strong&gt;，別硬選 SSG——先看 Statamic 或 Headless WordPress。若一週內要上線、零技術，SaaS 可能更實際。還在猶豫要不要離開 WP，可以先讀站內的 &lt;a href=&quot;https://kamadiam.com/wordpress-vs-11ty/&quot;&gt;WordPress vs 11ty 比較&lt;/a&gt;，別還沒決定「要不要靜態」就選框架。&lt;h2 id=&quot;三個框架一句話定位&quot;&gt;三個框架一句話定位&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;工具&lt;th&gt;一句話&lt;th&gt;典型誰在用&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;td&gt;Go 寫的極速印表機，模板用 Go template&lt;td&gt;頁數破千的部落格、多語系大站、技術文件&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Eleventy（11ty）&lt;/strong&gt;&lt;td&gt;JS 極簡派，模板語言你愛用哪種就哪種&lt;td&gt;個人站、內容網站、想完全掌控輸出的人&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Astro&lt;/strong&gt;&lt;td&gt;內容優先 SSG，預設零 JS，要互動才長 Islands&lt;td&gt;新開內容站、要比較表有一點互動、MDX 愛好者&lt;/table&gt;&lt;p&gt;白話說，三者都是「離線印報紙」：本機或 CI 執行 &lt;code&gt;build&lt;/code&gt;，把 Markdown 和模板烤成 &lt;code&gt;_site/&lt;/code&gt; 或 &lt;code&gt;dist/&lt;/code&gt; 裡的 HTML，再上傳 CDN。訪客看到的是靜態檔，沒有 wp-admin、沒有 PHP——PHP 可以下班了，你也不用半夜擔心外掛更新。&lt;h2 id=&quot;60-秒主決策表先圈出-1~2-個候選&quot;&gt;60 秒主決策表：先圈出 1～2 個候選&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的狀況&lt;th&gt;優先考慮&lt;th&gt;為什麼&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;文章 &lt;strong&gt;500 篇以下&lt;/strong&gt;、團隊只會一點 JS、要極瘦 HTML&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;build 夠快、無框架鎖定；純 Markdown 教學／比較文維護成本低&lt;tr&gt;&lt;td&gt;同上，但想要 &lt;strong&gt;Content Collections、MDX、頁面裡嵌 React 比較表&lt;/strong&gt;&lt;td&gt;&lt;strong&gt;Astro&lt;/strong&gt;&lt;td&gt;Islands 只 hydration 需要互動的區塊&lt;tr&gt;&lt;td&gt;文章 &lt;strong&gt;3,000+ 篇&lt;/strong&gt; 或 CI build &lt;strong&gt;常超 2 分鐘&lt;/strong&gt;&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;td&gt;Go 引擎對大站友好；多語系路由成熟&lt;tr&gt;&lt;td&gt;想 &lt;strong&gt;最快套現成皮&lt;/strong&gt;、少改程式（像套 Hugo 主題）&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;td&gt;&lt;a href=&quot;https://themes.gohugo.io/&quot;&gt;themes.gohugo.io&lt;/a&gt; 主題市場大&lt;tr&gt;&lt;td&gt;要 &lt;strong&gt;npm 外掛&lt;/strong&gt;（圖片管道、Obsidian 同步、自訂 JS 資料源）&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;全 npm 生態；&lt;code&gt;eleventy.config.js&lt;/code&gt; 就是 JS&lt;tr&gt;&lt;td&gt;要 &lt;strong&gt;內建多語系 i18n&lt;/strong&gt;、不想靠外掛&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;td&gt;i18n 第一公民&lt;tr&gt;&lt;td&gt;文末推薦區塊、比較表版型要 &lt;strong&gt;完全自控&lt;/strong&gt;、長期零框架風險&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;沒有元件編譯步驟，十年後還能維護&lt;tr&gt;&lt;td&gt;文章靜態、但底部要 &lt;strong&gt;篩選器／計算機&lt;/strong&gt; 等互動&lt;td&gt;&lt;strong&gt;Astro&lt;/strong&gt;&lt;td&gt;&lt;code&gt;client:visible&lt;/code&gt; 捲到才載 JS，不拖慢全文&lt;tr&gt;&lt;td&gt;已有一堆 &lt;strong&gt;Nunjucks／JS&lt;/strong&gt; 資產&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;不必重寫成 Go template&lt;/table&gt;&lt;p&gt;圈出候選後，&lt;strong&gt;各花 10 分鐘跑 hello-world&lt;/strong&gt;（文末有指令），比看十篇 benchmark 文還準。哪個讓你更快「改標題 + 加一篇假文 + 看到 HTML」，長期就選那個——手感順的框架，比社群吵架文可靠。&lt;h2 id=&quot;規格比較表知道-trade-off-在哪&quot;&gt;規格比較表：知道 trade-off 在哪&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;面向&lt;th&gt;Hugo&lt;th&gt;Eleventy（11ty）&lt;th&gt;Astro&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;語言／環境&lt;/strong&gt;&lt;td&gt;Go 單一執行檔，&lt;strong&gt;不用裝 Node&lt;/strong&gt;&lt;td&gt;Node.js 18+&lt;td&gt;Node.js 18+&lt;tr&gt;&lt;td&gt;&lt;strong&gt;模板&lt;/strong&gt;&lt;td&gt;Go template（學習曲線陡）&lt;td&gt;Nunjucks、Liquid、MD…可混&lt;td&gt;&lt;code&gt;.astro&lt;/code&gt; + 可選 React/Vue/Svelte&lt;tr&gt;&lt;td&gt;&lt;strong&gt;預設 JS 輸出&lt;/strong&gt;&lt;td&gt;0（除非你加）&lt;td&gt;0&lt;td&gt;0（Islands 才加）&lt;tr&gt;&lt;td&gt;&lt;strong&gt;約 1,000 頁 build&lt;/strong&gt;&lt;td&gt;約 &lt;strong&gt;數秒級&lt;/strong&gt;&lt;td&gt;約 &lt;strong&gt;30 秒級&lt;/strong&gt;（視外掛而定）&lt;td&gt;約 &lt;strong&gt;45 秒級&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;多語系 i18n&lt;/strong&gt;&lt;td&gt;內建強&lt;td&gt;需外掛&lt;td&gt;內建路由支援&lt;tr&gt;&lt;td&gt;&lt;strong&gt;MDX／元件&lt;/strong&gt;&lt;td&gt;有限&lt;td&gt;靠外掛&lt;td&gt;&lt;strong&gt;原生強&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;主題生態&lt;/strong&gt;&lt;td&gt;上百個現成主題&lt;td&gt;Starter 專案 + 自訂 &lt;code&gt;layouts/&lt;/code&gt;&lt;td&gt;官方模板 + 元件化&lt;tr&gt;&lt;td&gt;&lt;strong&gt;最適託管&lt;/strong&gt;&lt;td&gt;任何靜態主機&lt;td&gt;Cloudflare Pages、Netlify、Hostinger&lt;td&gt;同上&lt;/table&gt;&lt;p&gt;數字會因機器、圖片外掛、模板複雜度而變——&lt;strong&gt;重點是比較級距&lt;/strong&gt;，不是死記秒數。Go template 學起來像另一門語言，但 Hugo 不會因為你還在背 &lt;code&gt;range&lt;/code&gt; 就幫你 build 快一點。&lt;h2 id=&quot;Build-速度別為了-benchmark-選錯框架&quot;&gt;Build 速度：別為了 benchmark 選錯框架&lt;/h2&gt;&lt;p&gt;很多人選 Hugo 只因為「build 最快」。這在&lt;strong&gt;超大站&lt;/strong&gt;確實重要；但對內容網站，&lt;strong&gt;上線後的 Core Web Vitals 比本機 build 幾秒更影響 SEO&lt;/strong&gt;。&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;基準情境&lt;th&gt;Hugo&lt;th&gt;11ty&lt;th&gt;Astro&lt;th&gt;怎麼讀&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;約 4,000 篇 Markdown（&lt;a href=&quot;https://www.11ty.dev/docs/performance/&quot;&gt;11ty 官方基準&lt;/a&gt;）&lt;td&gt;&lt;strong&gt;0.68s&lt;/strong&gt;&lt;td&gt;&lt;strong&gt;1.93s&lt;/strong&gt;&lt;td&gt;~23s（2022 基準）&lt;td&gt;大站 Hugo 優勢明顯&lt;tr&gt;&lt;td&gt;約 1,000 頁（業界常引級距）&lt;td&gt;約 1～3s&lt;td&gt;約 5～15s&lt;td&gt;約 45s 級&lt;td&gt;中小站都可接受&lt;tr&gt;&lt;td&gt;上線後客端 JS（預設）&lt;td&gt;&lt;strong&gt;0 KB&lt;/strong&gt;&lt;td&gt;&lt;strong&gt;0 KB&lt;/strong&gt;&lt;td&gt;&lt;strong&gt;0 KB&lt;/strong&gt;&lt;td&gt;三者都能衝 Lighthouse 98+&lt;/table&gt;&lt;p&gt;&lt;strong&gt;幾百篇的個人站&lt;/strong&gt;：11ty 和 Hugo 上線後速度通常差不多，CDN 一掛 TTFB 多在 10～30ms 級。&lt;strong&gt;別為了省 10 秒 build 去啃 Go template&lt;/strong&gt;，除非你已經確定 CI 是瓶頸。&lt;p&gt;若你選 11ty 卻覺得 build 變慢，先查：圖片外掛、build 時打外部 API、或未 memoize 的 filter——不一定代表該換 Hugo，有時只是某個 filter 在偷跑馬拉松。&lt;h2 id=&quot;內容網站情境誰比較順?&quot;&gt;內容網站情境：誰比較順？&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;情境&lt;th&gt;建議&lt;th&gt;對 SEO／變現的影響&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;比較文、教學文為主，月發 4～8 篇，要衝 Core Web Vitals&lt;td&gt;&lt;strong&gt;11ty 或 Astro&lt;/strong&gt;&lt;td&gt;頁面瘦 → GSC 體驗報表較好看&lt;tr&gt;&lt;td&gt;文末推薦、比較表版型要統一，互動少&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;Nunjucks 版型直覺，輸出極瘦&lt;tr&gt;&lt;td&gt;文章 + 互動比較表篩選器 + 偶爾 MDX&lt;td&gt;&lt;strong&gt;Astro&lt;/strong&gt;&lt;td&gt;Islands 控 JS 預算，正文仍靜態&lt;tr&gt;&lt;td&gt;站齡久、&lt;strong&gt;上千篇舊文&lt;/strong&gt;要一次遷移&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt; 或分批遷移 + 11ty&lt;td&gt;build 時間影響 CI 成本與專案排程&lt;tr&gt;&lt;td&gt;Obsidian vault → 網站工作流&lt;td&gt;&lt;strong&gt;11ty&lt;/strong&gt;&lt;td&gt;與 npm 生態、Markdown 工作流契合&lt;tr&gt;&lt;td&gt;週末上線個人部落格、想最快套皮&lt;td&gt;&lt;strong&gt;Hugo + 主題&lt;/strong&gt;&lt;td&gt;主題一行掛上即可&lt;tr&gt;&lt;td&gt;完全不想碰 CLI，編輯要自己發文&lt;td&gt;&lt;strong&gt;跳過 SSG&lt;/strong&gt;&lt;td&gt;改看 Statamic 或 Headless WP&lt;/table&gt;&lt;h2 id=&quot;兩兩對打你卡在誰跟誰之間?&quot;&gt;兩兩對打：你卡在誰跟誰之間？&lt;/h2&gt;&lt;h3 id=&quot;11ty-vs-Hugo極速-SSG-二選一&quot;&gt;11ty vs Hugo：極速 SSG 二選一&lt;/h3&gt;&lt;p&gt;兩邊預設都是零 JS、Jamstack 路線。差別在&lt;strong&gt;誰更適合你的團隊與規模&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;選 &lt;strong&gt;11ty&lt;/strong&gt;：頁數還沒破千、團隊熟悉 JS／Nunjucks、要 npm 外掛、文章與推薦區塊版型完全自控&lt;li&gt;選 &lt;strong&gt;Hugo&lt;/strong&gt;：三千篇以上、CI 常超 2 分鐘、內建多語系、想最快套現成主題&lt;/ul&gt;&lt;p&gt;Hugo 的 Go template 學習曲線比 Nunjucks 陡；11ty 沒有 Hugo 那種「一行掛主題」的生態，但換來你擁有全部 layout 原始碼。想再深入，可搭配站內 &lt;a href=&quot;https://kamadiam.com/static-site-generators/&quot;&gt;靜態網站產生器入門&lt;/a&gt; 一起看。&lt;h3 id=&quot;11ty-vs-AstroJavaScript-陣營二選一&quot;&gt;11ty vs Astro：JavaScript 陣營二選一&lt;/h3&gt;&lt;p&gt;兩邊都跑在 Node.js，但工作流差很多：&lt;ul&gt;&lt;li&gt;選 &lt;strong&gt;11ty&lt;/strong&gt;：純 Markdown 進、HTML 出；互動用原生 JS 或 Web Components 就夠&lt;li&gt;選 &lt;strong&gt;Astro&lt;/strong&gt;：要 React 元件、Content Collections 型別檢查、比較表篩選器用 &lt;code&gt;client:visible&lt;/code&gt;&lt;/ul&gt;&lt;p&gt;Astro 的 Islands 讓整頁先當純 HTML 送出，只有標了 &lt;code&gt;client:*&lt;/code&gt; 的區塊才載入 JS——適合「3000 字正文靜態、底部篩選器要互動」的長文頁。若你只是放幾個推薦連結或按鈕，11ty 的純 HTML 往往更簡，不必為了兩顆按鈕請整艘 React 郵輪進港。&lt;h2 id=&quot;10-分鐘-hello-world選型必做&quot;&gt;10 分鐘 hello-world：選型必做&lt;/h2&gt;&lt;p&gt;選出 2 個候選後，各花 10 分鐘跑完——感受比讀文重要。&lt;p&gt;&lt;strong&gt;Eleventy&lt;/strong&gt;&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;mkdir&lt;/span&gt; my-11ty-test &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; my-11ty-test
&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; init &lt;span class=&quot;token parameter variable&quot;&gt;-y&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @11ty/eleventy
npx @11ty/eleventy &lt;span class=&quot;token parameter variable&quot;&gt;--init&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;# Hello&#39;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; content/index.md
npx @11ty/eleventy &lt;span class=&quot;token parameter variable&quot;&gt;--serve&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# 瀏覽器 http://localhost:8080 應看到標題&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Astro&lt;/strong&gt;&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; create astro@latest my-astro-test
&lt;span class=&quot;token comment&quot;&gt;# 選 Empty 或 Blog 模板&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; my-astro-test &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run dev
&lt;span class=&quot;token comment&quot;&gt;# 瀏覽器 http://localhost:4321&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# 需先安裝 Hugo：https://gohugo.io/installation/&lt;/span&gt;
hugo new site my-hugo-test &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; my-hugo-test
&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; init
hugo new content posts/first.md
hugo server &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# 瀏覽器 http://localhost:1313&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# 新手可 clone themes.gohugo.io 上的示範站，少踩 layout 坑&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;若兩個都順，內容網站優先&lt;strong&gt;輸出最瘦、CI 最穩&lt;/strong&gt;的那個——通常是 11ty 或 Hugo。&lt;h2 id=&quot;選完框架之後的三件事&quot;&gt;選完框架之後的三件事&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;託管&lt;/strong&gt;：Cloudflare Pages、Netlify 或 &lt;a href=&quot;https://www.hostg.xyz/SHIYV&quot;&gt;Hostinger&lt;/a&gt; 靜態空間都可以。若你已經用 11ty，站內 &lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/&quot;&gt;11ty 與 Hostinger 快取設定&lt;/a&gt; 也值得先 bookmark。&lt;li&gt;&lt;strong&gt;HTTPS&lt;/strong&gt;：靜態站一樣要憑證。可參考站內 &lt;a href=&quot;https://kamadiam.com/free-ssl-certificate/&quot;&gt;免費 SSL 憑證教學&lt;/a&gt;。&lt;li&gt;&lt;strong&gt;遷移 SEO&lt;/strong&gt;：若從 WordPress 來，URL、301、sitemap、canonical 仍要維護——別以為換框架就自動升級排名。&lt;/ol&gt;&lt;h2 id=&quot;常見問題&quot;&gt;常見問題&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Q：2026 大家都說 Astro 是預設，我還用 11ty 會不會過時？&lt;/strong&gt;&lt;p&gt;不會。Astro 適合「想要元件模型、MDX、多框架」的站；&lt;strong&gt;純 Markdown 教學／比較文&lt;/strong&gt;用 11ty 往往更簡、build 設定更少。兩邊都是活躍專案，過時的是「沒在發文」，不是「沒換框架」。&lt;p&gt;&lt;strong&gt;Q：Hugo 這麼快，為什麼還有人主力用 11ty？&lt;/strong&gt;&lt;p&gt;Go template 學習成本、與現有 JS／Nunjucks 資產的相容性。頁數還沒破千時，&lt;strong&gt;11ty build 夠用&lt;/strong&gt;；日後若 CI 變瓶頸再評估 Hugo 遷移。&lt;p&gt;&lt;strong&gt;Q：我已經有 11ty 站，要為了潮流換 Astro 嗎？&lt;/strong&gt;&lt;p&gt;沒有「需要 React 元件卻硬用 Nunjucks 拼」的痛點就&lt;strong&gt;不必換&lt;/strong&gt;。遷移有 URL、模板、CI 成本。&lt;a href=&quot;https://docs.astro.build/en/guides/migrate-to-astro/from-eleventy/&quot;&gt;Astro 官方有從 Eleventy 遷移指南&lt;/a&gt;，但那是你有明確互動需求時才值得開的專案。&lt;p&gt;&lt;strong&gt;Q：Jekyll 呢？&lt;/strong&gt;&lt;p&gt;已在 GitHub Pages 上、文章少可以繼續。&lt;strong&gt;新開個人站、要衝 SEO 與維護效率&lt;/strong&gt;，優先 11ty／Astro／Hugo。&lt;h2 id=&quot;結語選能維護的,不是選-benchmark-冠軍&quot;&gt;結語：選能維護的，不是選 benchmark 冠軍&lt;/h2&gt;&lt;p&gt;Hugo、11ty、Astro 都能做出極快的靜態內容站。真正會讓你後悔的，通常不是「差 10 秒 build」，而是：&lt;ol&gt;&lt;li&gt;選了 Go template 卻團隊只會 JS&lt;li&gt;為了互動硬上 Astro，結果整站只有純文章&lt;li&gt;三千篇舊文用 11ty 卻沒評估 CI 時間&lt;/ol&gt;&lt;p&gt;先用 60 秒決策表圈候選，再各跑 10 分鐘 hello-world。選定後把託管、HTTPS、遷移 SEO 一次做完——框架只是起點，&lt;strong&gt;能持續發文、GSC 體驗報表維持綠色&lt;/strong&gt;，才是個人站長期流量與轉換的基礎。&lt;p&gt;若你已經圈出 11ty 或 Hugo，下一步可以開一個最小專案、部署到 &lt;a href=&quot;https://www.hostg.xyz/SHIYV&quot;&gt;Hostinger&lt;/a&gt; 或 Cloudflare Pages，用真實網域跑一次 &lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;——比較表選對了，馬上就能驗證。驗收完再來一杯咖啡；這次等的是 deploy，不是 CI。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/docs/performance/&quot;&gt;Eleventy 官方文件 — Performance&lt;/a&gt;：11ty 與其他 SSG 的 build 速度基準與優化建議。&lt;li&gt;&lt;a href=&quot;https://docs.astro.build/en/concepts/why-astro/&quot;&gt;Astro 官方 — Why Astro&lt;/a&gt;：Astro 內容優先與 Islands 架構的設計說明。&lt;li&gt;&lt;a href=&quot;https://docs.astro.build/en/concepts/islands/&quot;&gt;Astro 官方 — Islands architecture&lt;/a&gt;：&lt;code&gt;client:load&lt;/code&gt;、&lt;code&gt;client:visible&lt;/code&gt; 等指令的行為說明。&lt;li&gt;&lt;a href=&quot;https://docs.astro.build/en/guides/migrate-to-astro/from-eleventy/&quot;&gt;Astro 官方 — Migrating from Eleventy&lt;/a&gt;：從 11ty 遷移到 Astro 的官方指南。&lt;li&gt;&lt;a href=&quot;https://gohugo.io/documentation/&quot;&gt;Hugo 官方文件&lt;/a&gt;：Hugo 安裝、模板與多語系設定。&lt;li&gt;&lt;a href=&quot;https://themes.gohugo.io/&quot;&gt;Hugo Themes&lt;/a&gt;：Hugo 現成主題目錄，適合快速套皮評估。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Proton Unlimited 全產品與功能介紹（2026）：六合一隱私全家桶值得買嗎？</title>
    <link href="https://kamadiam.com/proton-unlimited-full-product-guide/" />
    <updated>2026-08-12T09:27:00Z</updated>
    <id>https://kamadiam.com/proton-unlimited-full-product-guide/</id>
    <content type="html">&lt;p&gt;你本來只想買杯咖啡，結果櫃檯問你要不要加購「瑞士隱私全家桶」——Mail、Calendar、Drive、Pass、VPN、Wallet 一次上。聽起來很划算，但你不確定自己到底會用到幾個 App，還是只會讓 Proton 默默扣款、你默默只用 VPN。&lt;p&gt;這篇就是幫你把 &lt;strong&gt;Proton Unlimited&lt;/strong&gt; 拆開來看：六個產品各自解決什麼痛點、什麼情境該開哪個、跟單買 Mail Plus 或 VPN Plus 差在哪，以及 2026 年結帳前該怎麼比價。讀完你會知道——全家桶是幫你 逃離 Google 控制 的，不是幫 Proton 清庫存的。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E5%85%88%E8%AC%9B%E7%B5%90%E8%AB%96Proton-Unlimited-%E6%98%AF%E4%BB%80%E9%BA%BC?&quot;&gt;先講結論：Proton Unlimited 是什麼？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E5%85%AD%E5%A4%A7%E7%94%A2%E5%93%81%E8%A7%A3%E6%B1%BA%E4%BB%80%E9%BA%BC%E5%95%8F%E9%A1%8C%E4%BB%80%E9%BA%BC%E6%99%82%E5%80%99%E7%94%A8?&quot;&gt;六大產品：解決什麼問題、什麼時候用？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E8%A8%82%E9%96%B1%E5%89%8D%E5%85%88%E8%B7%91%E4%B8%80%E8%BC%AA%E7%9B%A4%E9%BB%9E&quot;&gt;訂閱前先跑一輪盤點&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E6%96%B9%E6%A1%88%E8%88%87%E5%83%B9%E6%A0%BC2026-%E5%AE%98%E6%96%B9%E5%BF%AB%E7%85%A7&quot;&gt;方案與價格（2026 官方快照）&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E6%B1%BA%E7%AD%96%E8%A1%A8%E6%88%91%E8%A9%B2%E4%B8%8D%E8%A9%B2%E8%B2%B7-Proton-Unlimited?&quot;&gt;決策表：我該不該買 Proton Unlimited？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E8%88%87%E5%96%AE%E5%93%81%E5%8A%A0%E7%B8%BD%E7%9A%84%E5%83%B9%E5%80%BC%E5%88%A4%E6%96%B7&quot;&gt;與單品加總的價值判斷&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E6%8E%A8%E8%96%A6%E5%B7%A5%E5%85%B7/%E8%B3%87%E6%BA%90&quot;&gt;推薦工具／資源&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E7%B5%90%E8%AA%9E&quot;&gt;結語&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-unlimited-full-product-guide/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;hr&gt;&lt;h2 id=&quot;先講結論Proton-Unlimited-是什麼?&quot;&gt;先講結論：Proton Unlimited 是什麼？&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;一句話&lt;/strong&gt;：一個帳號、一筆訂閱，解鎖 Proton 六大核心產品的付費版（Plus 層級）。&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;產品&lt;th&gt;Unlimited 內容摘要&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Proton Mail&lt;td&gt;15 個信箱地址、3 個自訂網域、500 GB 共用儲存、無限別名、Proton Sentinel&lt;tr&gt;&lt;td&gt;Proton Calendar&lt;td&gt;25 個個人行事曆、加密與分享&lt;tr&gt;&lt;td&gt;Proton Drive&lt;td&gt;與 Mail 共用 500 GB、Docs 線上編輯、進階分享與版本歷史&lt;tr&gt;&lt;td&gt;Proton Pass&lt;td&gt;50 個 vault、無限 Hide-my-email 別名、內建 2FA&lt;tr&gt;&lt;td&gt;Proton VPN&lt;td&gt;VPN Plus 全功能：10 台同時連線、120+ 國家、串流、P2P、Secure Core 等&lt;tr&gt;&lt;td&gt;Proton Wallet&lt;td&gt;10 個錢包、每個錢包 10 個帳戶（自託管 Bitcoin）&lt;/table&gt;&lt;p&gt;&lt;strong&gt;附帶但非付費層&lt;/strong&gt;：Proton Lumo（AI 助理，免費額度）、Proton Meet（免費會議額度）。若要 Lumo Plus 或 Meet Professional，需要 Visionary 等更高方案。&lt;p&gt;&lt;strong&gt;適合誰&lt;/strong&gt;：不只想要 VPN，而是想把信箱、密碼、雲端、網路連線一起搬到瑞士隱私生態系的人。若你只需要其中一兩項，單買 Mail Plus 或 VPN Plus 通常更划算——就像你不會為了喝一口濃縮，把整間咖啡廳買下來。&lt;hr&gt;&lt;h2 id=&quot;六大產品解決什麼問題什麼時候用?&quot;&gt;六大產品：解決什麼問題、什麼時候用？&lt;/h2&gt;&lt;h3 id=&quot;Proton-Mail-—-取代-Gmail-的加密信箱&quot;&gt;Proton Mail — 取代 Gmail 的加密信箱&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：一般信箱（Gmail、Outlook）供應商能讀取或分析你的信件內容來投放廣告；資料也可能因法院命令外洩。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;日常收發工作／私人郵件，想脫離 Google 生態&lt;li&gt;需要自己的網域信箱（&lt;code&gt;you@yourname.com&lt;/code&gt;）&lt;li&gt;要用 Outlook、Thunderbird 等桌面程式（透過 Proton Mail Bridge）&lt;li&gt;寄給非 Proton 用戶時要密碼保護郵件&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 相關上限&lt;/strong&gt;：15 個信箱地址、3 個自訂網域、與 Drive 共用 &lt;strong&gt;500 GB&lt;/strong&gt;、無限寄信（合法用途）、Dark Web Monitoring、Proton Sentinel 帳戶保護。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：你經營小型接案，想讓客戶寄到 &lt;code&gt;hello@你的品牌.com&lt;/code&gt;，又不想讓 Google 掃描信件內容——Mail + 自訂網域就是起點。&lt;hr&gt;&lt;h3 id=&quot;Proton-Calendar-—-取代-Google-Calendar-的加密行事曆&quot;&gt;Proton Calendar — 取代 Google Calendar 的加密行事曆&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：雲端行事曆預設可被服務商讀取；會議時間、行程模式會變成可分析的個資。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;與 Mail 同一帳號管理行程，減少第三方日曆同步&lt;li&gt;需要加密分享行事曆給家人或同事（透過連結）&lt;li&gt;預約會議時段（Appointment scheduling，依方案開放）&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 相關上限&lt;/strong&gt;：25 個個人行事曆；儲存空間與 Mail、Drive 共用池。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：你跟伴侶共用「家庭行程」日曆，又不想讓平台知道你们每週幾點出門——用 Proton Calendar 分享，比把 Google 日曆設成公開安全。Google 不會因此少賺廣告費，但至少你的行程不會變成「週五晚上常出門」的推薦標籤。&lt;hr&gt;&lt;h3 id=&quot;Proton-Drive-—-取代-Google-Drive-的加密雲端&quot;&gt;Proton Drive — 取代 Google Drive 的加密雲端&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：一般雲端硬碟由供應商持有金鑰，帳號被駭或內部存取時檔案可能外洩。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;備份合約、身分證掃描、財務文件&lt;li&gt;與客戶分享檔案（可設密碼與到期連結）&lt;li&gt;在瀏覽器裡編輯 Docs／試算表（無需下載解密）&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 相關上限&lt;/strong&gt;：與 Mail &lt;strong&gt;共用 500 GB&lt;/strong&gt;；含線上文件編輯、進階分享安全、檔案版本歷史（最多 200 版／檔、保留最長 10 年）。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：Freelancer 把報價 PDF 放在 Drive，用密碼連結傳給客戶——連結過期後對方就打不開，比 Email 附件好控管。客戶可能會抱怨「連結失效」，但至少你的合約不會在對方轉寄時裸奔。&lt;hr&gt;&lt;h3 id=&quot;Proton-Pass-—-取代-Chrome-密碼管理器&quot;&gt;Proton Pass — 取代 Chrome 密碼管理器&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：瀏覽器內建密碼庫綁在 Google／Apple 帳號上；外洩時密碼與信箱一併失守。註冊網站時還會把真實信箱留給對方。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;為每個網站產生唯一強密碼&lt;li&gt;用 &lt;strong&gt;Hide-my-email&lt;/strong&gt; 別名註冊，之後可一鍵停用別名&lt;li&gt;在 Pass 內建 2FA 驗證器，登入時少切 App&lt;li&gt;跨手機、電腦、瀏覽器同步（不限裝置數）&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 相關上限&lt;/strong&gt;：50 個 vault、&lt;strong&gt;無限&lt;/strong&gt; Hide-my-email 別名、內建 2FA authenticator。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：你在購物網站註冊，用 Pass 產生 &lt;code&gt;random@pm.me&lt;/code&gt; 別名 + 32 字元密碼；若該站日後外洩，你停用別名即可，真實信箱不受影響。這比「用生日當密碼」安全，也比「把密碼寫在便利貼上」——至少便利貼不會被駭。&lt;hr&gt;&lt;h3 id=&quot;Proton-VPN-—-公共網路與-ISP-窺探的防護層&quot;&gt;Proton VPN — 公共網路與 ISP 窺探的防護層&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：咖啡廳 Wi‑Fi、機場網路可能被竊聽；ISP 能看到你連了哪些網站；部分地區有審查或地理限制。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;旅行、遠端工作連公共 Wi‑Fi&lt;li&gt;需要解鎖串流地區片庫（Netflix、Disney+ 等，依服務條款）&lt;li&gt;BT／P2P 下載要走加密隧道&lt;li&gt;高風險情境需要 Secure Core 或 Tor over VPN&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 內含 VPN Plus&lt;/strong&gt;：10 台裝置同時連線、最高速度、15,000+ 伺服器／120+ 國、NetShield、串流、P2P、Secure Core、Tor over VPN、Split tunneling（Android／Windows）等。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：你在日本旅館 Wi‑Fi 上要處理銀行帳務——先開 VPN + 確認 Kill Switch，再開銀行網站，比裸連公共網路安心。Kill Switch 的意思是 VPN 斷線時網路也斷，不會讓你的流量偷偷裸奔——比「我以為有連上」可靠。&lt;blockquote&gt;&lt;p&gt;若你&lt;strong&gt;只需要 VPN&lt;/strong&gt;、不需要 Mail／Pass，請直接比較 &lt;strong&gt;VPN Plus&lt;/strong&gt; 與 Unlimited，別用 Unlimited 月費當 VPN 單價。可搭配站內 &lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review-2026/&quot;&gt;Proton VPN 付費版評價&lt;/a&gt;。&lt;/blockquote&gt;&lt;hr&gt;&lt;h3 id=&quot;Proton-Wallet-—-自託管-Bitcoin-錢包&quot;&gt;Proton Wallet — 自託管 Bitcoin 錢包&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;解決的問題&lt;/strong&gt;：把 BTC 放在交易所，交易所倒閉或被駭時可能拿不回資產（「Not your keys, not your coins」）。&lt;p&gt;&lt;strong&gt;什麼時候用&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;長期持有少量 Bitcoin，要自己掌控私鑰&lt;li&gt;用 &lt;strong&gt;Bitcoin via Email&lt;/strong&gt; 轉帳（驗證信箱即可，降低貼錯地址風險）&lt;li&gt;需要瑞士管轄 + 開源程式碼的錢包&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Unlimited 相關上限&lt;/strong&gt;：10 個錢包、每錢包 10 個帳戶（Free 為 3×3）。Wallet &lt;strong&gt;不是&lt;/strong&gt;交易所——Proton 不做炒幣，只做託管錢包。&lt;p&gt;&lt;strong&gt;簡單例子&lt;/strong&gt;：你每月定額買一點 BTC 長期持有，用 Wallet 自託管比放在交易所適合；但若你需要頻繁交易，仍應使用合規交易所——Wallet 是保險箱，不是股票 App。&lt;hr&gt;&lt;h2 id=&quot;訂閱前先跑一輪盤點&quot;&gt;訂閱前先跑一輪盤點&lt;/h2&gt;&lt;p&gt;別讓訂閱變成「買了六個 App，開了兩個，剩下四個在背景默默續約」。照這六步盤點：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;列出你現在用哪些 Google／Microsoft 服務&lt;/strong&gt;（信箱、雲端、密碼、日曆、VPN）。&lt;li&gt;&lt;strong&gt;對照上方六產品表&lt;/strong&gt;，標記「一定要／可有可無／不需要」。&lt;li&gt;&lt;strong&gt;數儲存與帳號&lt;/strong&gt;：500 GB 夠嗎？需要幾個自訂網域？家裡幾台裝置同時連 VPN？&lt;li&gt;&lt;strong&gt;到&lt;/strong&gt; &lt;a href=&quot;https://proton.me/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;proton.me/pricing&lt;/a&gt; &lt;strong&gt;登入後切換幣別（USD／EUR／CHF）與計費週期&lt;/strong&gt;，看 Unlimited 與單品加總誰比較便宜。&lt;li&gt;&lt;strong&gt;若兩人以上&lt;/strong&gt;，改看 Proton Duo（2 人、2 TB）或 Family（6 人、3 TB），不要硬買兩個 Unlimited。&lt;li&gt;訂閱後依序完成：Mail Easy Switch 匯入 → Pass 匯入密碼 → Drive 上傳關鍵資料夾 → VPN 設 Kill Switch → Wallet 僅在確定要自託管 BTC 時啟用。&lt;/ol&gt;&lt;hr&gt;&lt;h2 id=&quot;方案與價格2026-官方快照&quot;&gt;方案與價格（2026 官方快照）&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;地區與幣別&lt;/strong&gt;：Proton 結帳僅支援 &lt;strong&gt;USD、EUR、CHF&lt;/strong&gt;；台灣可用信用卡，由發卡行依當日匯率扣台幣。實際金額以登入後結帳頁為準；促銷、舊客價格可能不同。&lt;/blockquote&gt;&lt;h3 id=&quot;Proton-Unlimited-定價個人&quot;&gt;Proton Unlimited 定價（個人）&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;計費週期&lt;th&gt;官方標價（USD／EUR 同數字）&lt;th&gt;說明&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;月繳&lt;td&gt;$12.99／€12.99 每月&lt;td&gt;彈性高、總價最貴&lt;tr&gt;&lt;td&gt;年繳&lt;td&gt;$119.88／€119.88 每年（約 $9.99／€9.99／月）&lt;td&gt;多數人比較的基準&lt;/table&gt;&lt;p&gt;官方方案說明頁與帳戶訂閱管理目前以 &lt;strong&gt;1 個月／12 個月&lt;/strong&gt; 為主；&lt;strong&gt;VPN Plus 單獨訂閱&lt;/strong&gt;才有常見的 24 個月選項，Unlimited 整合方案請以結帳頁顯示為準（勿假設一定有兩年約）。&lt;h3 id=&quot;與其他個人方案快速對照&quot;&gt;與其他個人方案快速對照&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;方案&lt;th&gt;適合誰&lt;th&gt;你得到什麼&lt;th&gt;你沒得到什麼&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Free&lt;/strong&gt;&lt;td&gt;想零成本試用&lt;td&gt;各產品免費層（Mail 1 GB、VPN 1 台／10 國、Pass 10 別名等）&lt;td&gt;VPN 串流／P2P、Mail 自訂網域、Pass 無限別名&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Mail Plus&lt;/strong&gt;&lt;td&gt;只要加密信箱&lt;td&gt;15 GB、1 網域、10 地址&lt;td&gt;VPN Plus、Pass Plus、大容量 Drive&lt;tr&gt;&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt;&lt;td&gt;只要 VPN&lt;td&gt;完整 VPN 功能&lt;td&gt;Mail／Drive／Pass 付費層&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Unlimited&lt;/strong&gt;&lt;td&gt;要整套 逃離 Google 控制&lt;td&gt;上述六產品付費層 + 500 GB&lt;td&gt;Lumo Plus、Meet Professional、Proton Scribe（需 Duo／Family 或 Visionary）&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Duo／Family&lt;/strong&gt;&lt;td&gt;2～6 人家庭&lt;td&gt;每人完整付費層 + 更大共用儲存 + Proton Scribe&lt;td&gt;單人使用不划算&lt;/table&gt;&lt;h3 id=&quot;關鍵共用限制Unlimited&quot;&gt;關鍵共用限制（Unlimited）&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;項目&lt;th&gt;Unlimited 上限&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;使用者&lt;td&gt;1 人&lt;tr&gt;&lt;td&gt;儲存空間&lt;td&gt;500 GB（Mail + Drive + Calendar 共用）&lt;tr&gt;&lt;td&gt;信箱地址&lt;td&gt;15 個&lt;tr&gt;&lt;td&gt;自訂網域&lt;td&gt;3 個&lt;tr&gt;&lt;td&gt;VPN 同時連線&lt;td&gt;10 台裝置&lt;tr&gt;&lt;td&gt;Pass vault&lt;td&gt;50 個&lt;tr&gt;&lt;td&gt;Hide-my-email&lt;td&gt;無限&lt;tr&gt;&lt;td&gt;Wallet&lt;td&gt;10 錢包 × 10 帳戶／錢包&lt;tr&gt;&lt;td&gt;附件大小&lt;td&gt;25 MB／封信&lt;/table&gt;&lt;p&gt;儲存滿了怎麼辦？官方會限制新郵件或上傳，需清理或升級 Duo／Family／Visionary。降級後資料通常保留，但可能無法新增內容直到低於新方案上限。&lt;hr&gt;&lt;h2 id=&quot;決策表我該不該買-Proton-Unlimited?&quot;&gt;決策表：我該不該買 Proton Unlimited？&lt;/h2&gt;&lt;h3 id=&quot;依需求選方案&quot;&gt;依需求選方案&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情境&lt;th&gt;建議方案&lt;th&gt;原因&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;只在意旅行時 VPN 安全&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt; 或先 &lt;strong&gt;Free&lt;/strong&gt;&lt;td&gt;Unlimited 的 Mail／Pass 你用不到就是多付&lt;tr&gt;&lt;td&gt;只要 &lt;code&gt;@自己的網域&lt;/code&gt; 信箱，不打算用 VPN&lt;td&gt;&lt;strong&gt;Mail Plus&lt;/strong&gt;&lt;td&gt;比 Unlimited 便宜很多&lt;tr&gt;&lt;td&gt;已用 Proton Free，想要無限別名 + 2FA + VPN 串流&lt;td&gt;&lt;strong&gt;Unlimited&lt;/strong&gt;&lt;td&gt;Pass Plus + VPN Plus 分開訂常比 Unlimited 貴&lt;tr&gt;&lt;td&gt;想 Gmail + Drive + 密碼 + VPN 一次搬家&lt;td&gt;&lt;strong&gt;Unlimited&lt;/strong&gt;&lt;td&gt;正是整合方案設計場景&lt;tr&gt;&lt;td&gt;兩人要完整付費層 + 更大空間&lt;td&gt;&lt;strong&gt;Proton Duo&lt;/strong&gt;&lt;td&gt;2 TB 共用、兩帳號，比買兩個 Unlimited 划算&lt;tr&gt;&lt;td&gt;家裡 3～6 人都要付費功能&lt;td&gt;&lt;strong&gt;Proton Family&lt;/strong&gt;&lt;td&gt;6 人、3 TB 共用&lt;tr&gt;&lt;td&gt;只需要密碼管理 + 別名&lt;td&gt;&lt;strong&gt;Pass Plus&lt;/strong&gt; 或 &lt;strong&gt;Pass Free&lt;/strong&gt;&lt;td&gt;見站內 &lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/&quot;&gt;Proton Pass 免費版與付費版怎麼選&lt;/a&gt;&lt;tr&gt;&lt;td&gt;主要持有 Bitcoin 自託管&lt;td&gt;Wallet 可用 &lt;strong&gt;Free&lt;/strong&gt; 先試&lt;td&gt;Unlimited 提高錢包／帳戶上限；非必買全家桶的唯一理由&lt;/table&gt;&lt;h3 id=&quot;依「會用到的-App-數量」粗估&quot;&gt;依「會用到的 App 數量」粗估&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你確定會長期使用的 Proton 服務數&lt;th&gt;建議&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1 項（通常 VPN 或 Mail）&lt;td&gt;單買對應 Plus&lt;tr&gt;&lt;td&gt;2 項&lt;td&gt;結帳頁加總 vs Unlimited，取便宜的&lt;tr&gt;&lt;td&gt;3 項以上（含 Pass 或 Drive）&lt;td&gt;&lt;strong&gt;優先看 Unlimited&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;不確定&lt;td&gt;先用 &lt;strong&gt;Free&lt;/strong&gt; 兩週，再依實際開啟的 App 決定&lt;/table&gt;&lt;h3 id=&quot;Unlimited-不適合誰?&quot;&gt;Unlimited 不適合誰？&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;只需要 VPN&lt;/strong&gt;，且已有 Bitwarden 等密碼方案、也不打算換信箱。&lt;li&gt;&lt;strong&gt;儲存需求 &amp;gt; 500 GB&lt;/strong&gt; 的單人使用者（考慮 Duo 或加購空間方案）。&lt;li&gt;&lt;strong&gt;要 Lumo AI 付費額度、Proton Scribe 寫信助理或專業會議錄影&lt;/strong&gt;——Unlimited 只有 Lumo／Meet 免費層；Scribe 在 Duo／Family；Lumo Plus／Meet Professional 要 Visionary。&lt;li&gt;&lt;strong&gt;期待 Wallet 當交易所炒幣&lt;/strong&gt;——Proton Wallet 是自託管，不是交易平台。&lt;/ul&gt;&lt;hr&gt;&lt;h2 id=&quot;與單品加總的價值判斷&quot;&gt;與單品加總的價值判斷&lt;/h2&gt;&lt;p&gt;官方定位是：Unlimited 年繳約 &lt;strong&gt;$9.99／月&lt;/strong&gt;，包含 Mail Plus、VPN Plus、Pass Plus、Drive Plus、Calendar 付費功能。&lt;p&gt;自行估算時：&lt;ol&gt;&lt;li&gt;打開 &lt;a href=&quot;https://proton.me/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;pricing 頁&lt;/a&gt;，分別看 Mail Plus、VPN Plus（年繳）價格。&lt;li&gt;Pass Plus 若單獨販售，一併加入。&lt;li&gt;若 &lt;strong&gt;兩項以上年繳加總 &amp;gt; Unlimited 年繳&lt;/strong&gt;，買 Unlimited 較合理。&lt;li&gt;別忘了 &lt;strong&gt;500 GB&lt;/strong&gt; 與 &lt;strong&gt;Proton Sentinel&lt;/strong&gt; 是 Unlimited 額外值，單買 Mail Plus 只有 15 GB。&lt;/ol&gt;&lt;hr&gt;&lt;h2 id=&quot;推薦工具/資源&quot;&gt;推薦工具／資源&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;產品&lt;th&gt;適合誰&lt;th&gt;說明&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;Proton Unlimited&lt;/a&gt;&lt;/strong&gt;（主推）&lt;td&gt;想 Mail + Pass + VPN + Drive 一次 逃離 Google 控制&lt;td&gt;年繳約 $9.99／月；比單品加總通常更省&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton VPN Plus&lt;/strong&gt;&lt;td&gt;只需要 VPN 完整功能&lt;td&gt;別為了 VPN 買全家桶&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Mail Plus&lt;/strong&gt;&lt;td&gt;只要加密信箱 + 自訂網域&lt;td&gt;比 Unlimited 便宜很多&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://go.getproton.me/SH2w3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;Proton Pass&lt;/a&gt;&lt;/strong&gt;&lt;td&gt;只要密碼管理 + Hide-my-email&lt;td&gt;可搭配站內 Pass 評測文&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Free&lt;/strong&gt;&lt;td&gt;還不確定、想先試兩週&lt;td&gt;零成本建立信任，再依實際開啟的 App 升級&lt;/table&gt;&lt;h2 id=&quot;結語&quot;&gt;結語&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Proton Unlimited 值得買嗎？&lt;/strong&gt;——若你確定會長期用 &lt;strong&gt;三項以上&lt;/strong&gt; Proton 服務（尤其是 Mail + Pass + VPN 的 逃離 Google 控制 組合），通常比單品加總划算。若你只是「偶爾旅行開 VPN」，Unlimited 就像買了六人份套餐自己吃——飽是飽了，錢包也瘦了。&lt;p&gt;三個重點帶走：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Unlimited 是生態系整合方案&lt;/strong&gt;，不是「加強版 VPN」——先盤點你會用到幾個 App。&lt;li&gt;&lt;strong&gt;500 GB 是 Mail + Drive + Calendar 共用池&lt;/strong&gt;，大檔案使用者要事先估算。&lt;li&gt;&lt;strong&gt;結帳前到官網比價&lt;/strong&gt;，幣別、促銷、舊客價格都可能讓結論翻盤。&lt;/ol&gt;&lt;p&gt;若你確認需要全家桶，建議先到 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;Proton 官網&lt;/a&gt; 領免費帳號 → 實際開幾個 App 試兩週 → 再決定升級 Unlimited 或單買 Plus。遷移完成再來一杯咖啡慶祝——這次沒有 Google 讀你的訂單確認信。&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;聯盟揭露：&lt;/strong&gt; 本文包含 Proton 推薦連結。若你透過連結註冊或購買，我可能獲得推薦回饋；這不會增加你的費用。本文依研究筆記與官方文件撰寫，請依你的實際需求與測試結果做最終決定。&lt;/blockquote&gt;&lt;p&gt;👉 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;&lt;strong&gt;免費申請 Proton 帳號 →&lt;/strong&gt;&lt;/a&gt;&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://proton.me/support/proton-plans&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Proton plans explained（官方方案總覽）&lt;/a&gt; — 各產品方案層級與功能對照。&lt;li&gt;&lt;a href=&quot;https://proton.me/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Proton Pricing Plans&lt;/a&gt; — 結帳時的方案、幣別與促銷價格（以當日頁面為準）。&lt;li&gt;&lt;a href=&quot;https://proton.me/support/proton-pass-plans-explained&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Proton Pass plans explained&lt;/a&gt; — Pass 免費版與付費版上限。&lt;li&gt;&lt;a href=&quot;https://proton.me/wallet&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Proton Wallet 產品頁&lt;/a&gt; — 自託管 Bitcoin 錢包功能說明。&lt;li&gt;&lt;a href=&quot;https://proton.me/support/manage-subscription&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;How to manage your Proton subscription&lt;/a&gt; — 訂閱管理、升級與降級。&lt;li&gt;&lt;a href=&quot;https://proton.me/blog/proton-unlimited-plan&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;All you need to know about Proton Unlimited（官方部落格）&lt;/a&gt; — Unlimited 整合方案官方說明。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Proton Pass 值得用嗎？2026 免費版、Plus 與 Unlimited 怎麼選</title>
    <link href="https://kamadiam.com/proton-pass-free-vs-paid-review/" />
    <updated>2026-08-12T02:19:01Z</updated>
    <id>https://kamadiam.com/proton-pass-free-vs-paid-review/</id>
    <content type="html">&lt;p&gt;你是不是也這樣：Chrome 跳出「要儲存密碼嗎？」，手比腦子快，按了「是」。幾年下來，幾百組帳密全躺在 Google 帳號裡，安靜得像沒發生過事。&lt;p&gt;直到某天看到外洩新聞，你才突然想起一件小事——&lt;strong&gt;這本熟客本，到底鎖在誰家倉庫？&lt;/strong&gt;&lt;p&gt;Chrome 記密碼很像店裡的熟客本：你點什麼它都記得。問題是這本筆記本跟 Gmail、雲端硬碟、YouTube 觀看紀錄，常常塞在同一間倉庫。倉庫鑰匙丟了，損失的就不只是一杯美式。&lt;p&gt;瀏覽器內建密碼管理器「免費又順手」，但你的憑證通常跟大帳號綁在一起：管轄法律、元資料、匯出時的明文 CSV，都是獨立密碼庫想處理的事。若你本來就信任 Proton——例如已經用過 &lt;a href=&quot;https://kamadiam.com/proton-vpn-free-vs-paid-review/&quot;&gt;Proton VPN 免費版&lt;/a&gt;——&lt;strong&gt;&lt;a href=&quot;https://go.getproton.me/SH2w3&quot;&gt;Proton Pass&lt;/a&gt;&lt;/strong&gt; 是很自然的下一步。而且免費版已經比多數人想像中完整，不是那種「只能存 50 組密碼、用三天就開始推升級」的試用關卡。&lt;p&gt;這篇讀完，你會知道：免費版能幹嘛、什麼時候該付費，以及買整套 Proton Unlimited 跟只買 Pass Plus 差在哪。目標很單純——選對方案，而不是被「買最貴才最安全」推著走。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#Chrome-%E5%AF%86%E7%A2%BC%E7%AE%A1%E7%90%86%E5%99%A8%E5%A4%A0%E7%94%A8%E5%97%8E?%E4%BB%80%E9%BA%BC%E6%99%82%E5%80%99%E8%A9%B2%E6%8F%9B?&quot;&gt;Chrome 密碼管理器夠用嗎？什麼時候該換？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#Proton-Pass-%E5%85%8D%E8%B2%BB%E7%89%88%E5%85%B6%E5%AF%A6%E5%B7%B2%E7%B6%93%E5%BE%88%E5%AE%8C%E6%95%B4&quot;&gt;Proton Pass 免費版：其實已經很完整&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E4%B8%89%E7%A8%AE%E6%96%B9%E6%A1%88%E6%80%8E%E9%BA%BC%E9%81%B8?%E4%B8%80%E5%BC%B5%E6%B1%BA%E7%AD%96%E8%A1%A8%E6%90%9E%E5%AE%9A&quot;&gt;三種方案怎麼選？一張決策表搞定&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#Hide-my-email%E5%85%8D%E8%B2%BB%E7%89%88%E6%9C%80%E8%A2%AB%E4%BD%8E%E4%BC%B0%E7%9A%84%E5%8A%9F%E8%83%BD&quot;&gt;Hide-my-email：免費版最被低估的功能&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E5%BE%9E-Chrome-%E6%90%AC%E9%81%8E%E4%BE%86%E8%A6%81%E5%A4%9A%E4%B9%85?%E5%A4%A7%E7%B4%84-15%E2%80%9330-%E5%88%86%E9%90%98&quot;&gt;從 Chrome 搬過來要多久？大約 15–30 分鐘&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E8%B7%9F-Bitwarden1Password-%E6%AF%94,Proton-Pass-%E9%81%A9%E5%90%88%E8%AA%B0?&quot;&gt;跟 Bitwarden、1Password 比，Proton Pass 適合誰？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E6%8E%A8%E8%96%A6%E5%B7%A5%E5%85%B7/%E8%B3%87%E6%BA%90&quot;&gt;推薦工具／資源&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E7%B5%90%E8%AA%9E%E5%85%88%E5%85%8D%E8%B2%BB%E8%A9%A6,%E5%86%8D%E4%BE%9D%E9%9C%80%E6%B1%82%E5%8D%87%E7%B4%9A&quot;&gt;結語：先免費試，再依需求升級&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-pass-free-vs-paid-review/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;hr&gt;&lt;h2 id=&quot;Chrome-密碼管理器夠用嗎?什麼時候該換?&quot;&gt;Chrome 密碼管理器夠用嗎？什麼時候該換？&lt;/h2&gt;&lt;p&gt;先講白話：Chrome（Google Password Manager）不是不能用，而是&lt;strong&gt;方便換來綁定&lt;/strong&gt;。&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;情境&lt;th&gt;建議&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;帳號不到 20 組、只有娛樂網站&lt;td&gt;可繼續用，但請開啟 Google &lt;strong&gt;兩步驟驗證&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;已全套 Apple、只用自己的裝置&lt;td&gt;iCloud 鑰匙圈體驗佳；重要金融帳號仍建議加硬體金鑰&lt;tr&gt;&lt;td&gt;帳密破百、想減少 Google 掌控&lt;td&gt;規劃遷移到獨立密碼庫&lt;tr&gt;&lt;td&gt;接案、客戶資料多&lt;td&gt;獨立金庫＋分 vault，勿跟私人 Chrome 混用&lt;/table&gt;&lt;p&gt;獨立密碼庫多一層：&lt;strong&gt;主密碼&lt;/strong&gt;（再加可選的第二因素）跟 Gmail 登入分開。從 Chrome 匯出密碼時會得到&lt;strong&gt;未加密 CSV&lt;/strong&gt;——這是搬家必經之路，也是風險最高的一刻。把明文密碼檔丟在桌面或同步雲端，等於把家門鑰匙影印後貼在信箱上，還寫「有事請自取」。&lt;p&gt;所以換工具要一次做對。若你已經在考慮 Proton 生態（Mail、VPN、Drive），Pass 是 De-Googling 拼圖裡&lt;strong&gt;門檻最低&lt;/strong&gt;的一塊：註冊免費帳號就能開始，不必先買最高方案。&lt;hr&gt;&lt;h2 id=&quot;Proton-Pass-免費版其實已經很完整&quot;&gt;Proton Pass 免費版：其實已經很完整&lt;/h2&gt;&lt;p&gt;很多人以為「免費密碼管理器 = 只能存幾十組密碼」。依 Proton 官方方案說明，Proton Pass Free 這些項目是&lt;strong&gt;不限數量&lt;/strong&gt;的：&lt;ul&gt;&lt;li&gt;登入資料、筆記、信用卡與身分資料&lt;li&gt;裝置數量（手機、電腦都能裝）&lt;li&gt;&lt;strong&gt;Passkey&lt;/strong&gt;（無密碼登入）&lt;li&gt;&lt;strong&gt;10 個 Hide-my-email 信箱別名&lt;/strong&gt;（轉寄到你真正信箱的隨機地址）&lt;/ul&gt;&lt;p&gt;免費版的&lt;strong&gt;明確上限&lt;/strong&gt;也要記清楚，免得用了一陣子才發現卡關：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;項目&lt;th&gt;免費版限制&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hide-my-email 別名&lt;td&gt;最多 &lt;strong&gt;10 個&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;內建 2FA（TOTP）&lt;td&gt;最多 &lt;strong&gt;3 個&lt;/strong&gt;項目會顯示驗證碼（依建立日期，最早的三筆）&lt;tr&gt;&lt;td&gt;暗網監控、緊急存取、進階共享&lt;td&gt;❌ 需付費&lt;tr&gt;&lt;td&gt;自訂網域別名&lt;td&gt;❌ 需付費&lt;/table&gt;&lt;p&gt;常見誤解順便澄清：&lt;strong&gt;免費版可以用 Passkey&lt;/strong&gt;。付費版主要差在別名數量、完整 2FA、共享與監控，不是「免費版只能當記事本」。AI 若跟你說免費版不能用 Passkey，你可以請它先去讀官方方案頁——這杯咖啡它白喝了。&lt;hr&gt;&lt;h2 id=&quot;三種方案怎麼選?一張決策表搞定&quot;&gt;三種方案怎麼選？一張決策表搞定&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情境&lt;th&gt;建議方案&lt;th&gt;原因&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;跨手機、電腦存密碼與 Passkey，別名不超過 10 個&lt;td&gt;&lt;strong&gt;Proton Pass Free&lt;/strong&gt;&lt;td&gt;登入與裝置不限，夠你起步&lt;tr&gt;&lt;td&gt;每個網站都想用不同別名，或需要內建 TOTP&lt;td&gt;&lt;strong&gt;Proton Pass Plus&lt;/strong&gt;&lt;td&gt;不限別名與 2FA，另有共享、暗網監控等&lt;tr&gt;&lt;td&gt;還需要 Proton VPN Plus、Mail、Drive&lt;td&gt;&lt;strong&gt;Proton Unlimited&lt;/strong&gt;&lt;td&gt;Pass Plus 功能包在套裝裡；價值在&lt;strong&gt;多服務一起用&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;要家人共用、不是單人帳號&lt;td&gt;先看 &lt;strong&gt;Pass Family&lt;/strong&gt;&lt;td&gt;家庭方案重點在多使用者，不是單帳戶加容量&lt;/table&gt;&lt;h3 id=&quot;付費前的三個自問&quot;&gt;付費前的三個自問&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;別名夠用嗎？&lt;/strong&gt; 只是偶爾註冊試用，10 個可能夠；想「一個網站一個信箱」，Plus 的不限量才是實質升級理由。&lt;li&gt;&lt;strong&gt;2FA 放哪裡？&lt;/strong&gt; Pass Plus 內建 TOTP 很方便，但 Proton 官方寫得很清楚：&lt;strong&gt;不要用 Proton Pass 的 TOTP 保護 Proton 帳號本身&lt;/strong&gt;——Proton 登入請用第三方驗證器。白話說：別把備用鑰匙藏在同一扇門的門墊底下。&lt;li&gt;&lt;strong&gt;要不要整套生態？&lt;/strong&gt; 若你只需要密碼管理，先比 Pass Plus 就好；若本來就要 VPN、加密郵件和雲端，再把 Unlimited 整包納入計算。&lt;/ol&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;價格提醒：&lt;/strong&gt; Proton Pass 官網價格會因地區、稅金與促銷變動，結帳前請以 &lt;a href=&quot;https://proton.me/pass/pricing&quot;&gt;Proton Pass 官方方案頁&lt;/a&gt; 為準。官網也標示 Pass 付費方案有 30 天退款保證。粗略參考：同類產品裡 Bitwarden Premium 年繳約 US$19.80、1Password 個人年繳約 US$35.88（官網折合月價；新客首年可能有促銷）——Proton 的賣點常是&lt;strong&gt;別名 + 瑞士管轄 + 跟 Mail／VPN 打包&lt;/strong&gt;，不是單純比誰最便宜。&lt;/blockquote&gt;&lt;h3 id=&quot;Free-vs-Plus-vs-Unlimited-功能對照&quot;&gt;Free vs Plus vs Unlimited 功能對照&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;功能&lt;th style=&quot;text-align:center&quot;&gt;Free&lt;th style=&quot;text-align:center&quot;&gt;Pass Plus&lt;th style=&quot;text-align:center&quot;&gt;Proton Unlimited&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;無限密碼與裝置&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;tr&gt;&lt;td&gt;Passkey&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;tr&gt;&lt;td&gt;Hide-my-email 別名&lt;td style=&quot;text-align:center&quot;&gt;10 個&lt;td style=&quot;text-align:center&quot;&gt;不限&lt;td style=&quot;text-align:center&quot;&gt;不限&lt;tr&gt;&lt;td&gt;內建 2FA（TOTP）&lt;td style=&quot;text-align:center&quot;&gt;最多 3 個項目&lt;td style=&quot;text-align:center&quot;&gt;完整&lt;td style=&quot;text-align:center&quot;&gt;完整&lt;tr&gt;&lt;td&gt;暗網監控、緊急存取&lt;td style=&quot;text-align:center&quot;&gt;❌&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;tr&gt;&lt;td&gt;自訂網域別名&lt;td style=&quot;text-align:center&quot;&gt;❌&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;td style=&quot;text-align:center&quot;&gt;✅&lt;tr&gt;&lt;td&gt;Proton VPN／Mail／Drive 付費功能&lt;td style=&quot;text-align:center&quot;&gt;❌&lt;td style=&quot;text-align:center&quot;&gt;❌&lt;td style=&quot;text-align:center&quot;&gt;✅（套裝）&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Unlimited 不是「Pass 的高級版」&lt;/strong&gt;——它是把 Mail、VPN、Drive、Calendar 等付費功能綁在一起。你若不用其他 Proton 服務，不必為了名稱升級。這很像點了全家桶，卻只吃裡面那包薯條。&lt;p&gt;若你已經訂了 Proton VPN 付費版，可以對照先前的 &lt;a href=&quot;https://kamadiam.com/proton-vpn-free-vs-paid-review/&quot;&gt;Proton VPN 評測文&lt;/a&gt;：VPN 解決的是&lt;strong&gt;連線加密與 IP 隱私&lt;/strong&gt;；Pass 解決的是&lt;strong&gt;帳密與信箱別名&lt;/strong&gt;。兩者互補，不是二選一。&lt;hr&gt;&lt;h2 id=&quot;Hide-my-email免費版最被低估的功能&quot;&gt;Hide-my-email：免費版最被低估的功能&lt;/h2&gt;&lt;p&gt;Hide-my-email 會產生一個&lt;strong&gt;轉寄到你主信箱&lt;/strong&gt;的隨機地址。網站只看到別名，看不到你的 Gmail 或 Proton Mail 本體。某個服務外洩或開始狂發廣告時，你可以&lt;strong&gt;只停掉那個別名&lt;/strong&gt;，不必換掉用了十年的主信箱。&lt;p&gt;這比每次外洩都改一次 email 優雅多了。後者比較像每次咖啡灑出來，就換一張桌子。&lt;p&gt;實用習慣：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;情境&lt;th&gt;做法&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;網購、優惠、免費試用&lt;td&gt;每個服務一個別名 + 唯一密碼&lt;tr&gt;&lt;td&gt;銀行、政府、重要帳戶&lt;td&gt;可用別名，但別名不能取代身分驗證&lt;tr&gt;&lt;td&gt;不再使用的服務&lt;td&gt;先&lt;strong&gt;停用&lt;/strong&gt;別名觀察；確認帳戶已關閉再永久刪除&lt;/table&gt;&lt;p&gt;桌面瀏覽器：在註冊頁的 email 欄位點 Proton Pass 圖示 → 選 &lt;strong&gt;Hide my email&lt;/strong&gt;，同時產生隨機密碼並儲存。手機上 Android／iOS 也能在自動填入流程裡建立別名。&lt;p&gt;免費版 10 個別名用完，就是考慮 Pass Plus 的明確訊號之一。不是「突然變貴」，而是你的使用方式已經超過免費版設計的範圍。&lt;hr&gt;&lt;h2 id=&quot;從-Chrome-搬過來要多久?大約-15–30-分鐘&quot;&gt;從 Chrome 搬過來要多久？大約 15–30 分鐘&lt;/h2&gt;&lt;p&gt;決定用 Proton Pass 之後，遷移核心三步驟（官方支援頁也是這條路）：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Chrome 匯出 CSV&lt;/strong&gt;（Google Password Manager → 設定 → 匯出）&lt;li&gt;&lt;strong&gt;Proton Pass 擴充功能匯入&lt;/strong&gt;（Import → Provider 選 Chrome）&lt;li&gt;&lt;strong&gt;立刻刪除 CSV 並清空垃圾桶&lt;/strong&gt;——這是明文檔，誰拿到誰就能登入你的帳號&lt;/ol&gt;&lt;p&gt;匯入後建議：&lt;ul&gt;&lt;li&gt;抽 3–5 個重要網站測試自動填入&lt;li&gt;在 Chrome 關閉「儲存密碼」與「自動登入」，避免新密碼又寫回 Google&lt;li&gt;確認無誤後，可依官方步驟在 Google Password Manager 用 &lt;strong&gt;Delete Data&lt;/strong&gt; 清掉舊庫&lt;li&gt;手機把自動填入預設改成 Proton Pass&lt;/ul&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;項目&lt;th&gt;能否一次搬完&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;一般帳密&lt;td&gt;✅ CSV 匯入&lt;tr&gt;&lt;td&gt;Passkey&lt;td&gt;❌ 需在各網站重新建立&lt;tr&gt;&lt;td&gt;Chrome 內建 2FA&lt;td&gt;❌ 通常要在 Pass Plus 用 TOTP 掃 QR 重建&lt;/table&gt;&lt;p&gt;遷移本身&lt;strong&gt;不限筆數&lt;/strong&gt;，免費版就夠用。要無限別名或暗網監控，再考慮升級。Passkey 帶不走這件事，有點像搬家時發現保險箱焊在舊牆上——密碼可以裝箱，鑰匙孔得在新家重做。&lt;hr&gt;&lt;h2 id=&quot;跟-Bitwarden1Password-比,Proton-Pass-適合誰?&quot;&gt;跟 Bitwarden、1Password 比，Proton Pass 適合誰？&lt;/h2&gt;&lt;p&gt;若你還沒鎖定品牌，可以用這張表快速縮小範圍（價格為 2026-08 官網美元參考，不含稅；結帳前請回各官網確認）：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;方案&lt;th&gt;免費版&lt;th&gt;個人付費參考&lt;th&gt;適合誰&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Bitwarden&lt;td&gt;有；不限登入與裝置&lt;td&gt;Premium 約 US$19.80/年&lt;td&gt;要最便宜、可自架、開源生態&lt;tr&gt;&lt;td&gt;1Password&lt;td&gt;僅 14 天試用&lt;td&gt;Individual 年繳約 US$35.88&lt;td&gt;最在意跨平台 autofill 順手度&lt;tr&gt;&lt;td&gt;Proton Pass&lt;td&gt;有；10 個別名 + Passkey&lt;td&gt;Pass Plus 依官網顯示&lt;td&gt;在意隱私、瑞士管轄、已用或打算用 Proton 生態&lt;/table&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情境&lt;th&gt;先看哪個&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;已用 Proton Mail 或 VPN&lt;td&gt;Proton Pass 或 Unlimited 套裝&lt;tr&gt;&lt;td&gt;全家 Apple、帳號不多&lt;td&gt;Apple Passwords 可能已夠用&lt;tr&gt;&lt;td&gt;要脫離 Google、又要信箱別名&lt;td&gt;&lt;strong&gt;Proton Pass Free 先試&lt;/strong&gt;&lt;/table&gt;&lt;p&gt;Proton Pass 的差異化不在「介面最花俏」，而在 &lt;strong&gt;Hide-my-email 跟密碼庫同一個 app&lt;/strong&gt;，以及跟 Proton 其他服務打包時的整體性價比。花俏介面很好看，但不能幫你在購物網站外洩後只關掉一個信箱入口。&lt;hr&gt;&lt;h2 id=&quot;推薦工具/資源&quot;&gt;推薦工具／資源&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;工具&lt;th&gt;適合誰&lt;th&gt;說明&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://go.getproton.me/SH2w3&quot;&gt;Proton Pass&lt;/a&gt;&lt;/strong&gt;（主推）&lt;td&gt;想離開 Chrome 密碼庫、在意隱私的一般使用者&lt;td&gt;免費版無限密碼 + 10 個別名；夠用再升 Plus 或 Unlimited&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://go.getproton.me/SH2w3&quot;&gt;Proton Unlimited&lt;/a&gt;&lt;/strong&gt;&lt;td&gt;已確定要 Mail + VPN + Pass 全套&lt;td&gt;單項加總通常比分開訂閱划算；見官方方案頁比價&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Bitwarden&lt;/strong&gt;&lt;td&gt;預算優先、或需要自架&lt;td&gt;客觀替代方案；免費版功能扎實&lt;tr&gt;&lt;td&gt;&lt;strong&gt;1Password&lt;/strong&gt;&lt;td&gt;家庭共享、最在意 UX&lt;td&gt;較貴但體驗公認好；無永久免費版&lt;/table&gt;&lt;hr&gt;&lt;h2 id=&quot;結語先免費試,再依需求升級&quot;&gt;結語：先免費試，再依需求升級&lt;/h2&gt;&lt;p&gt;整理三點帶走：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Proton Pass 免費版已經夠大多數人起步&lt;/strong&gt;——無限密碼、Passkey、10 個信箱別名，不是閹割版試用。&lt;li&gt;&lt;strong&gt;升級 Plus 的真正理由&lt;/strong&gt;通常是不限別名、完整 2FA、暗網監控與共享——不是「多存幾組密碼」。&lt;li&gt;&lt;strong&gt;Unlimited 是生態系套裝&lt;/strong&gt;——若你同時需要 VPN 與加密郵件，再一起算帳；若只要密碼管理，不必為名稱多付。&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;下一步：&lt;/strong&gt; 到 &lt;a href=&quot;https://go.getproton.me/SH2w3&quot;&gt;Proton Pass 官網&lt;/a&gt; 註冊免費帳號 → 安裝瀏覽器擴充功能 → 匯入 Chrome 密碼 → 為新註冊的網站開一個 Hide-my-email 別名試試看。用一兩週後，再對照本文決策表判斷要不要升級 Plus 或 Unlimited。&lt;p&gt;沒有一杯咖啡解決不了的密碼焦慮；如果有，就先把金庫從瀏覽器搬出來——然後記得，CSV 刪掉再喝下一杯。&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;聯盟揭露：&lt;/strong&gt; 本文包含 Proton Pass 推薦連結。若你透過連結註冊或購買，我可能獲得推薦回饋；這不會增加你的費用。本文依研究筆記與官方文件撰寫，請依你的實際需求與官方當下方案頁做最終決定。&lt;/blockquote&gt;&lt;p&gt;👉 &lt;a href=&quot;https://go.getproton.me/SH2w3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;&lt;strong&gt;免費申請 Proton Pass 帳號 →&lt;/strong&gt;&lt;/a&gt;&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://proton.me/support/proton-pass-plans-explained&quot;&gt;Proton Pass plans explained&lt;/a&gt; — 官方整理 Free、Pass Plus、Pass Family 與 Unlimited 的功能差異，含免費版 10 個別名與最多 3 個 2FA 項目。&lt;li&gt;&lt;a href=&quot;https://proton.me/pass/pricing&quot;&gt;Proton Pass Pricing &amp;amp; Plans&lt;/a&gt; — 依地區與計費週期顯示的方案價格、功能對照與 30 天退款說明。&lt;li&gt;&lt;a href=&quot;https://proton.me/support/pass-2fa&quot;&gt;How to use 2FA in Proton Pass&lt;/a&gt; — 內建 TOTP 設定方式，以及「不要用 Proton Pass 保護 Proton 帳號本身」的官方提醒。&lt;li&gt;&lt;a href=&quot;https://proton.me/support/pass-import-chrome&quot;&gt;How to import to Proton Pass from Chrome&lt;/a&gt; — 從 Google Password Manager 匯出 CSV、匯入 Pass，以及刪除 Chrome 舊資料的步驟。&lt;li&gt;&lt;a href=&quot;https://proton.me/support/pass-email-alias&quot;&gt;Hide-my-email aliases&lt;/a&gt; — 別名的建立、轉寄與停用說明。&lt;li&gt;&lt;a href=&quot;https://bitwarden.com/pricing/&quot;&gt;Bitwarden Pricing&lt;/a&gt; — Bitwarden Premium 年繳美元參考價。&lt;li&gt;&lt;a href=&quot;https://1password.com/pricing/personal&quot;&gt;1Password Personal Pricing&lt;/a&gt; — 1Password Individual 方案與試用說明。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>技術部落格怎麼留住讀者？版面、選單與頁面的設計筆記</title>
    <link href="https://kamadiam.com/tech-blog-retention-layout-menu/" />
    <updated>2026-08-12T00:54:00Z</updated>
    <id>https://kamadiam.com/tech-blog-retention-layout-menu/</id>
    <content type="html">&lt;p&gt;沒有一杯咖啡解決不了的「讀完就關掉」；如果有，通常不是再加一個漂浮動畫，而是讀者找不到下一杯該喝什麼。&lt;p&gt;技術部落格很容易變成這樣：文章一篇一篇寫得很認真，首頁卻像自助餐櫃——盤子很多，不知道先拿哪一道。訪客從搜尋引擎進來，讀完一篇，滑到底只看到「上一篇／下一篇」兩個跟主題無關的標題，然後就回去 Google 了。網站沒壞，只是沒有把人留下來的理由。&lt;p&gt;這篇是給&lt;strong&gt;以文章為主的技術筆記站&lt;/strong&gt;的設計筆記：分類清楚、有搜尋、效能也顧了的那種。重點不是改成電商或社群產品，而是讓訪客更容易做到三件事——找到適合自己的內容、連續讀下一篇、下次還想回來。&lt;p&gt;讀完你會帶走：主選單怎麼收、首頁怎麼排、文章頁結尾該放什麼，以及先做哪幾項就夠。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E5%85%88%E8%AC%9B%E7%B5%90%E8%AB%96%E7%95%99%E5%AD%98%E9%9D%A0%E3%80%8C%E4%B8%8B%E4%B8%80%E7%AF%87%E3%80%8D,%E4%B8%8D%E9%9D%A0%E8%A3%9D%E9%A3%BE&quot;&gt;先講結論：留存靠「下一篇」，不靠裝飾&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E4%B8%BB%E9%81%B8%E5%96%AE4~5-%E5%80%8B%E5%85%A5%E5%8F%A3%E5%B0%B1%E5%A4%A0&quot;&gt;主選單：4～5 個入口就夠&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E9%A6%96%E9%A0%81%E5%85%88%E8%AA%AA%E6%B8%85%E6%A5%9A%E7%B6%B2%E7%AB%99%E5%AE%9A%E4%BD%8D&quot;&gt;首頁：先說清楚網站定位&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E6%96%87%E7%AB%A0%E5%8D%A1%E7%89%87%E8%AE%93%E4%BA%BA-3-%E7%A7%92%E5%88%A4%E6%96%B7%E5%80%BC%E4%B8%8D%E5%80%BC%E5%BE%97%E9%BB%9E&quot;&gt;文章卡片：讓人 3 秒判斷值不值得點&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E6%96%87%E7%AB%A0%E9%A0%81%E7%B5%90%E5%B0%BE%E6%AF%94%E9%96%8B%E9%A0%AD%E6%9B%B4%E6%B1%BA%E5%AE%9A%E6%9C%83%E4%B8%8D%E6%9C%83%E7%95%99%E4%B8%8B&quot;&gt;文章頁：結尾比開頭更決定會不會留下&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E5%88%86%E9%A1%9E%E9%A0%81%E4%B8%8D%E8%A6%81%E5%8F%AA%E5%89%A9%E4%B8%80%E6%8E%92%E5%90%8D%E5%AD%97&quot;&gt;分類頁：不要只剩一排名字&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E8%A1%8C%E5%8B%95%E7%89%88%E9%A6%96%E5%B1%8F%E4%B8%8D%E8%A6%81%E8%A2%AB%E9%81%B8%E5%96%AE%E6%93%A0%E7%88%86&quot;&gt;行動版：首屏不要被選單擠爆&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E5%85%88%E5%81%9A%E9%80%99%E4%BA%94%E4%BB%B6,%E5%86%8D%E8%AB%87%E6%94%B6%E8%97%8F%E8%88%87%E9%9B%BB%E5%AD%90%E5%A0%B1&quot;&gt;先做這五件，再談收藏與電子報&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E7%B5%90%E8%AA%9E%E8%8F%9C%E5%96%AE%E5%8F%AF%E4%BB%A5%E7%9F%AD,%E8%B7%AF%E7%B7%9A%E8%A6%81%E6%B8%85%E6%A5%9A&quot;&gt;結語：菜單可以短，路線要清楚&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/tech-blog-retention-layout-menu/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;先講結論留存靠「下一篇」,不靠裝飾&quot;&gt;先講結論：留存靠「下一篇」，不靠裝飾&lt;/h2&gt;&lt;p&gt;對這種網站，留存率的核心不是把版面做得更花，而是讓人&lt;strong&gt;更容易點到下一篇有用的文章&lt;/strong&gt;。&lt;p&gt;你可以把它想成咖啡店動線：客人不是要看完整菜單背起來，而是想被帶到「下一杯也適合他的」。選單、首頁、分類頁、文章結尾，都該服務這條動線：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;搜尋進來的一篇文章
→ 相關文章或學習路線
→ 同一主題再讀一篇
→ RSS／回訪理由&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;許多技術站已經把基礎做齊：最新文章 Hero、分類區塊、站內搜尋、RSS、文章目錄、上一篇／下一篇。接下來常見的瓶頸不是「再多一個區塊」，而是&lt;strong&gt;內容導覽&lt;/strong&gt;——讓單篇文章連成一條路。&lt;p&gt;Nielsen Norman Group 對網頁停留的研究也呼應這點：使用者常在前 10–20 秒就決定要不要留下來；頁面若能很快說清楚「這裡有什麼、為什麼值得看」，才比較可能換成幾分鐘的閱讀。技術站的首頁與文章開頭，都該在這段時間內把價值講明白，而不是先秀一排看不出差異的卡片。&lt;h2 id=&quot;主選單4~5-個入口就夠&quot;&gt;主選單：4～5 個入口就夠&lt;/h2&gt;&lt;p&gt;選單不是把全站分類平鋪出來。分類是內容管理方式；選單是幫讀者完成目標。&lt;p&gt;建議控制在這些入口：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;入口&lt;th&gt;它回答的問題&lt;th&gt;不要做成什麼&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;首頁&lt;td&gt;這站是誰、適合我嗎&lt;td&gt;只有最新一篇、沒有定位&lt;tr&gt;&lt;td&gt;學習路線&lt;td&gt;我想系統學會一件事，從哪開始&lt;td&gt;另一份文章清單&lt;tr&gt;&lt;td&gt;文章&lt;td&gt;我想逛最新或全部文章&lt;td&gt;跟首頁重複到分不清&lt;tr&gt;&lt;td&gt;分類&lt;td&gt;我想依主題瀏覽&lt;td&gt;只有分類名稱、沒有介紹&lt;tr&gt;&lt;td&gt;關於&lt;td&gt;作者是誰、為什麼該信這站&lt;td&gt;履歷全文&lt;/table&gt;&lt;p&gt;搜尋與深色模式放工具列就好，不必再佔一個選單字。桌面版選單維持可見；手機版若項目超過約四個，再收進漢堡選單——但 Logo、搜尋仍應留在首屏。NN/g 的研究很直白：隱藏導覽會降低內容被找到的機會；桌面有空間就不要藏，手機才是空間不夠時的取捨。&lt;p&gt;「分類」和「學習路線」不要混成同一個東西：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;分類&lt;/strong&gt;：這篇文章屬於後端、前端、效能、工具……方便過濾。&lt;li&gt;&lt;strong&gt;學習路線&lt;/strong&gt;：為了完成一個目標，建議依序讀哪幾篇。例如「從零架站」「效能調校」「某語言入門」。&lt;/ul&gt;&lt;p&gt;後者才比較容易讓人連續點下去。功能清單式的分類牆，看起來很完整，卻很少幫人決定「下一篇讀哪篇」。&lt;h2 id=&quot;首頁先說清楚網站定位&quot;&gt;首頁：先說清楚網站定位&lt;/h2&gt;&lt;p&gt;不少技術站的首頁會採類似排法：最新文章，接著一串精選分類。方向通常沒錯，但區塊一多，看起來就容易像目錄，不像入口。&lt;p&gt;較乾淨的順序是：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;網站定位與主要行動
↓
最新文章
↓
熱門學習路線（3 條就夠）
↓
熱門／推薦文章
↓
RSS 訂閱&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Hero 不要只放最新一篇。新訪客需要先知道「這個網站適合誰」。例如：&lt;blockquote&gt;&lt;p&gt;給想系統學某項技術、或把實戰經驗整理成筆記的開發者。&lt;br&gt;分享教學、工具比較與架站實作。&lt;/blockquote&gt;&lt;p&gt;再配兩個清楚的按鈕：「開始學習」「瀏覽最新文章」。Nielsen Norman Group（尼爾森諾曼集團）把首頁的工作講得很白：要在短時間內強調網站獨特的價值，連結文字也要有資訊氣味——「閱讀全文 →」不如「開始這條效能優化路線」具體。&lt;p&gt;最新文章區塊可以保留大圖 Hero，但補上這些判斷資訊：&lt;ul&gt;&lt;li&gt;發布或更新日期&lt;li&gt;預估閱讀時間&lt;li&gt;文章類型（教學、比較、實戰）&lt;li&gt;明確的閱讀行動&lt;/ul&gt;&lt;p&gt;首頁主題區塊建議只留 3～4 個，其餘用「查看全部」進專題頁。精選區若每欄都長得一樣，大腦會把它當成同一道菜，連續點下去的意願會掉。&lt;h2 id=&quot;文章卡片讓人-3-秒判斷值不值得點&quot;&gt;文章卡片：讓人 3 秒判斷值不值得點&lt;/h2&gt;&lt;p&gt;常見的卡片已有圖片、標題、摘要、分類，但還差&lt;strong&gt;決策資訊&lt;/strong&gt;。建議固定露出：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;分類 · 2026-08-12 · 8 分鐘閱讀&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;閱讀時間可以用正文字數估算，不必人工維護；它不是科學實驗，只是讓讀者知道這杯咖啡大概要喝多久。一篇文章若同時屬於兩個相關分類，卡片上最多留兩個，比只露第一個更有幫助。&lt;p&gt;日期、閱讀時間、類型放在底部對齊，卡片才比較好比。缺這些時，訪客只能靠標題賭，賭輸就關掉——這不是文章不好，是菜單沒標熱量。&lt;h2 id=&quot;文章頁結尾比開頭更決定會不會留下&quot;&gt;文章頁：結尾比開頭更決定會不會留下&lt;/h2&gt;&lt;p&gt;文章開頭維持清楚即可：分類、標題、一句話摘要、更新日期、閱讀時間。長文若有目錄，這件事通常已經先做對。&lt;p&gt;真正容易漏的是&lt;strong&gt;結尾&lt;/strong&gt;。只放「上一篇／下一篇」時，排序是時間，不是主題。讀者剛讀完 PageSpeed 優化，下一篇卻可能是 VPN 評測——這比較像咖啡喝完店員推薦隔桌的三明治，不是同一產區的下一杯。&lt;p&gt;結尾比較有效的是：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;接下來可以閱讀
1. 同分類或同標籤的相關文章 A
2. 相關文章 B
3. 這個主題的學習路線&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;相關文章優先依分類、標籤或人工指定，時間序當備案。若是系列文，直接標「第 2／6 篇」——這比任何動畫都更像「請繼續喝」。&lt;p&gt;回訪入口也放這裡，但不要彈窗攔截。RSS 一句話就夠：&lt;blockquote&gt;&lt;p&gt;這篇若有幫到你，可用 RSS 訂閱同主題的新文章。&lt;/blockquote&gt;&lt;p&gt;電子報可以之後再加；一開始就跳窗要 Email，留存還沒開始，信任先扣分。&lt;h2 id=&quot;分類頁不要只剩一排名字&quot;&gt;分類頁：不要只剩一排名字&lt;/h2&gt;&lt;p&gt;只有分類名稱的頁面，比較像資料庫索引，不像入口。每個分類頁至少補這些：&lt;ul&gt;&lt;li&gt;這分類在講什麼、適合誰&lt;li&gt;文章數量&lt;li&gt;建議閱讀順序（3～5 篇）&lt;li&gt;最新文章列表&lt;/ul&gt;&lt;p&gt;例如某個「靜態網站」分類可以寫成：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;靜態網站建站
適合想建立快速、低維護成本網站的開發者。

建議閱讀順序：
1. 什麼是靜態網站
2. 選型與基礎設定
3. 加入站內搜尋
4. 進行效能優化&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;這樣分類頁才會從「標籤牆」變成「從這裡開始」。一篇文章放進多個分類沒關係——同一個內容用不同入口找到，本來就比較符合讀者的腦內分類，只是每個入口都要講清楚自己的用途。&lt;h2 id=&quot;行動版首屏不要被選單擠爆&quot;&gt;行動版：首屏不要被選單擠爆&lt;/h2&gt;&lt;p&gt;窄螢幕上 Header 若直接換行把所有連結攤開，首屏會先被導覽吃掉。比較穩的做法：&lt;ul&gt;&lt;li&gt;Logo、搜尋、主題切換留著&lt;li&gt;其餘收進選單&lt;li&gt;選單裡放「學習路線」，不要把所有分類平鋪&lt;/ul&gt;&lt;p&gt;漢堡選單是手機的妥協，不是桌面的時尚。重點頁（最新文章、某條學習路線）仍應在首頁或文章結尾用一般連結露出，不要假設大家都願意先點那個三條線。&lt;h2 id=&quot;先做這五件,再談收藏與電子報&quot;&gt;先做這五件，再談收藏與電子報&lt;/h2&gt;&lt;p&gt;不必一次改完。建議分三輪，而且先做能接到「下一篇」的。&lt;p&gt;&lt;strong&gt;第一輪：導覽&lt;/strong&gt;&lt;ol&gt;&lt;li&gt;卡片加上日期與閱讀時間&lt;li&gt;文章結尾改放相關文章，而不是只靠時間序&lt;li&gt;整理 3～5 條學習路線&lt;li&gt;分類頁加上介紹與建議順序&lt;li&gt;行動版收合選單&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;第二輪：回訪理由&lt;/strong&gt;&lt;p&gt;RSS 放進文章結尾、標出經典或近期更新文章、系列文標「第 N／M 篇」。收藏或稍後閱讀可以更晚再做——沒有「下一篇」時，收藏只是把迷路延後。&lt;p&gt;&lt;strong&gt;第三輪：用數據看哪條路有走通&lt;/strong&gt;&lt;p&gt;若已接上 GA4 或類似分析工具，不要只看停留時間：技術文章常會切分頁複製程式碼，前景時間會被低估。比較值得看的是：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;想知道什麼&lt;th&gt;比較有用的訊號&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;首頁有沒有把人送進文章&lt;td&gt;首頁到文章的點擊&lt;tr&gt;&lt;td&gt;讀完後有沒有留下&lt;td&gt;文章結尾相關連結的點擊&lt;tr&gt;&lt;td&gt;搜尋有沒有在幫忙&lt;td&gt;搜尋使用次數&lt;tr&gt;&lt;td&gt;分類頁是不是死路&lt;td&gt;分類頁再進入文章的比例&lt;tr&gt;&lt;td&gt;有沒有人回來&lt;td&gt;7 日／30 日回訪使用者&lt;/table&gt;&lt;p&gt;GA4 把「engaged session」定義成：停留超過約 10 秒、有關鍵事件，或至少兩個頁面瀏覽。對技術站來說，「讀完後是否點下一篇」通常比單頁停留秒數更接近真實留存。改完一輪就看同一組指標，才知道是相關文章有效，還是只是當週剛好有一篇爆文。&lt;h2 id=&quot;結語菜單可以短,路線要清楚&quot;&gt;結語：菜單可以短，路線要清楚&lt;/h2&gt;&lt;p&gt;技術部落格不難看，難的是讓人看完還想再看。版面、選單、頁面都該服務同一件事：把「剛好讀到一篇」變成「沿著一條路再讀一篇」。&lt;p&gt;帶走三點就夠：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;選單短、路線清楚&lt;/strong&gt;：分類負責管理，學習路線負責帶路。&lt;li&gt;&lt;strong&gt;首頁先自我介紹，再推最新文&lt;/strong&gt;：10 秒內講完網站適合誰。&lt;li&gt;&lt;strong&gt;文章結尾是留存開關&lt;/strong&gt;：相關文章與系列順序，比上一篇／下一篇更接近讀者要的下一杯。&lt;/ol&gt;&lt;p&gt;先改結尾的相關文章通常最划算——不用重做整個首頁，就能讓已經在讀的人多點一次。改完再來一杯。下一杯建議：挑一篇流量高的文章，看它滑到底之後，下一篇是不是真的相關。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/how-long-do-users-stay-on-web-pages/&quot;&gt;How Long Do Users Stay on Web Pages?（NN/g）&lt;/a&gt; — 說明前 10–20 秒的去留判斷，以及為何要在短時間內講清價值&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/homepage-design-principles/&quot;&gt;Homepage Design: 5 Fundamental Principles（NN/g）&lt;/a&gt; — 首頁要強調獨特價值、連結要有資訊氣味&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/menu-design/&quot;&gt;Menu-Design Checklist: 17 UX Guidelines（NN/g）&lt;/a&gt; — 選單應協助定位；桌面不宜無故隱藏導覽&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/hamburger-menus/&quot;&gt;Hamburger Menus and Hidden Navigation Hurt UX Metrics（NN/g）&lt;/a&gt; — 隱藏導覽會降低可發現性；手機才較常需要這個取捨&lt;li&gt;&lt;a href=&quot;https://www.nngroup.com/articles/top-10-ia-mistakes/&quot;&gt;Top 10 Information Architecture (IA) Mistakes（NN/g）&lt;/a&gt; — 結構、導覽與搜尋要互相支援，並標示使用者目前在哪&lt;li&gt;&lt;a href=&quot;https://support.google.com/analytics/answer/12195621&quot;&gt;GA4 Engagement rate and bounce rate（Google Analytics Help）&lt;/a&gt; — engaged session 的官方定義，適合作為留存觀察的起點&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>VPN 跟 HTTPS 差在哪？兩者的保護範圍怎麼比？</title>
    <link href="https://kamadiam.com/vpn-vs-https-difference/" />
    <updated>2026-08-10T06:12:00Z</updated>
    <id>https://kamadiam.com/vpn-vs-https-difference/</id>
    <content type="html">&lt;p&gt;咖啡店連上 Wi-Fi，網址列出現鎖頭，很多人就以為「這台手機已經安全了」——鎖頭很可愛，但它只管你和&lt;strong&gt;某一個網站&lt;/strong&gt;之間的傳輸，不是整台手機的保護罩。也有人聽說 VPN 很神，開了以為能防釣魚、防病毒；結果在假網站輸入密碼，VPN 還是會很盡責地把資料加密送到那個假網站。唉。&lt;p&gt;其實 &lt;strong&gt;HTTPS 和 VPN 保護的是不同層次&lt;/strong&gt;：HTTPS 通常由網站和瀏覽器自動協商，保護你和「某個網站」之間的內容；VPN 則是使用者可以選擇啟用，保護裝置到 VPN 伺服器之間的連線。搞懂差異，你才能判斷：哪些情境只要確認 HTTPS 就夠，哪些情境在公共 Wi-Fi 上應該再開 VPN。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E4%B8%80%E5%8F%A5%E8%A9%B1%E8%A8%98%E4%BD%8F%E5%85%A9%E8%80%85%E4%BF%9D%E8%AD%B7%E7%9A%84%E7%AF%84%E5%9C%8D%E4%B8%8D%E5%90%8C&quot;&gt;一句話記住：兩者保護的範圍不同&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#HTTPS-%E4%BF%9D%E8%AD%B7%E4%BB%80%E9%BA%BC?%E9%8E%96%E9%A0%AD%E4%BB%A3%E8%A1%A8%E4%BB%80%E9%BA%BC?&quot;&gt;HTTPS 保護什麼？鎖頭代表什麼？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#VPN-%E8%A3%9C%E4%B8%8A%E5%93%AA%E4%B8%80%E5%A1%8A?%E7%82%BA%E4%BB%80%E9%BA%BC-HTTPS-%E5%A4%A0%E4%BA%86%E9%82%84%E6%9C%89%E4%BA%BA%E9%96%8B-VPN?&quot;&gt;VPN 補上哪一塊？為什麼 HTTPS 夠了還有人開 VPN？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E6%83%85%E5%A2%83%E6%B1%BA%E7%AD%96%E8%A1%A8%E6%88%91%E7%8F%BE%E5%9C%A8%E8%A6%81%E5%81%9A%E7%9A%84%E4%BA%8B,%E9%9C%80%E8%A6%81-VPN-%E5%97%8E?&quot;&gt;情境決策表：我現在要做的事，需要 VPN 嗎？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E5%B8%B8%E8%A6%8B%E8%AA%A4%E8%A7%A3%E5%88%A5%E6%8A%8A%E9%8E%96%E9%A0%AD%E6%88%96-VPN-%E7%95%B6%E8%90%AC%E8%83%BD%E8%97%A5&quot;&gt;常見誤解：別把鎖頭或 VPN 當萬能藥&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E4%B8%89%E5%88%86%E9%90%98%E5%AE%89%E5%85%A8%E6%AA%A2%E6%9F%A5%E6%B8%85%E5%96%AE&quot;&gt;三分鐘安全檢查清單&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E6%8E%A8%E8%96%A6%E5%B7%A5%E5%85%B7%E8%88%87%E8%B3%87%E6%BA%90&quot;&gt;推薦工具與資源&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E7%B5%90%E8%AA%9E%E5%85%88%E6%90%9E%E6%87%82%E4%BF%9D%E8%AD%B7%E7%AF%84%E5%9C%8D,%E5%86%8D%E6%B1%BA%E5%AE%9A%E8%A6%81%E4%B8%8D%E8%A6%81%E9%96%8B-VPN&quot;&gt;結語：先搞懂保護範圍，再決定要不要開 VPN&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/vpn-vs-https-difference/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;一句話記住兩者保護的範圍不同&quot;&gt;一句話記住：兩者保護的範圍不同&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;th&gt;HTTPS&lt;th&gt;VPN&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;誰決定是否使用&lt;/strong&gt;&lt;td&gt;網站與瀏覽器自動協商；使用者不能把普通 HTTP 網站「開成」HTTPS&lt;td&gt;使用者自行安裝、連線與關閉&lt;tr&gt;&lt;td&gt;&lt;strong&gt;保護對象&lt;/strong&gt;&lt;td&gt;你和&lt;strong&gt;某一個網站&lt;/strong&gt;之間的連線&lt;td&gt;你的裝置到 &lt;strong&gt;VPN 伺服器&lt;/strong&gt;之間的&lt;strong&gt;整段流量&lt;/strong&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;主要功能&lt;/strong&gt;&lt;td&gt;加密內容、防止竄改、驗證網站身分&lt;td&gt;把本地網路／ISP 能看到的活動藏起來，換成 VPN 業者成為信任對象&lt;tr&gt;&lt;td&gt;&lt;strong&gt;典型比喻&lt;/strong&gt;&lt;td&gt;寄信時用密封信封，只有收信人能打開&lt;td&gt;整條路都走加密隧道，路邊的人較難看你去了哪裡&lt;tr&gt;&lt;td&gt;&lt;strong&gt;不能做的事&lt;/strong&gt;&lt;td&gt;不能證明網站不是假的；不保護其他 App 流量&lt;td&gt;不能防釣魚、不能防病毒；目的地若沒 HTTPS 仍可能明文&lt;/table&gt;&lt;p&gt;記這四句就夠（比背 VPN 協定名稱實用多了）：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;網站支援 HTTPS&lt;/strong&gt;：瀏覽器通常會自動使用；你要做的是確認網址是 &lt;code&gt;https://&lt;/code&gt; 且網域正確。&lt;li&gt;&lt;strong&gt;沒有 HTTPS&lt;/strong&gt;：公共 Wi-Fi 上的其他人可能看到或修改你與網站交換的內容；不要登入或輸入敏感資料。&lt;li&gt;&lt;strong&gt;有 HTTPS、沒有 VPN&lt;/strong&gt;：內容通常受保護，但本地網路仍可能知道你連到哪些網域。&lt;li&gt;&lt;strong&gt;有 VPN、沒有 HTTPS&lt;/strong&gt;：裝置到 VPN 這一段受保護，但網站端與 VPN 業者仍是信任問題。&lt;li&gt;&lt;strong&gt;兩者都有&lt;/strong&gt;：公共 Wi-Fi 上較完整的組合——確認 HTTPS 的同時開啟可信任 VPN；但仍不能取代防詐、更新、強密碼與 MFA。&lt;/ul&gt;&lt;h2 id=&quot;HTTPS-保護什麼?鎖頭代表什麼?&quot;&gt;HTTPS 保護什麼？鎖頭代表什麼？&lt;/h2&gt;&lt;p&gt;HTTPS 是 HTTP 加上 TLS 加密。依 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Transport_Layer_Security&quot;&gt;Mozilla&lt;/a&gt; 等官方說明，它主要做三件事：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;加密&lt;/strong&gt;：傳輸中的資料不容易被旁觀者讀取。&lt;li&gt;&lt;strong&gt;完整性&lt;/strong&gt;：攻擊者不能在途中悄悄改內容而不被發現。&lt;li&gt;&lt;strong&gt;伺服器驗證&lt;/strong&gt;：瀏覽器透過憑證確認自己連到的是宣稱的網域。&lt;/ol&gt;&lt;p&gt;所以在沒有 HTTPS 的網站上（網址仍是 &lt;code&gt;http://&lt;/code&gt;），公共 Wi-Fi 上的其他人可能看到帳號、密碼或表單內容，也可能改頁面。&lt;strong&gt;千萬不要在 HTTP 網站輸入信用卡或登入資料&lt;/strong&gt;——那就像用透明信封寄密碼，鎖頭還沒上場。&lt;p&gt;但 HTTPS &lt;strong&gt;不是整台裝置的加密罩&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;它通常只保護&lt;strong&gt;瀏覽器與特定網站&lt;/strong&gt;之間的連線，不會自動保護其他 App。&lt;li&gt;網路觀察者通常仍可能知道你連到哪個&lt;strong&gt;網域&lt;/strong&gt;、連線時間與流量大小；不一定能看到具體頁面內容。&lt;li&gt;&lt;strong&gt;有 HTTPS 不代表網站可信&lt;/strong&gt;。假網站也可能申請有效憑證——鎖頭只代表傳輸加密，不代表這家公司是真的（證書不會幫你審核商業道德）。&lt;li&gt;若頁面載入未加密的圖片、腳本等混合內容，整體安全性可能被削弱。&lt;/ul&gt;&lt;p&gt;現代網站大多已強制 HTTPS，Google 也把它當 SEO 因素；Chrome 會把純 HTTP 標成「不安全」。對&lt;strong&gt;站長&lt;/strong&gt;來說，HTTPS 是建站基本功；對&lt;strong&gt;一般使用者&lt;/strong&gt;來說，重點不是「開 HTTPS」，而是：敏感操作前確認網址是 &lt;code&gt;https://&lt;/code&gt;，並核對網域拼字——&lt;code&gt;g00gle.com&lt;/code&gt; 有鎖頭也沒用。若網站只提供 &lt;code&gt;http://&lt;/code&gt;，使用者無法靠設定把它變成安全的 HTTPS；應離開網站。&lt;h2 id=&quot;VPN-補上哪一塊?為什麼-HTTPS-夠了還有人開-VPN?&quot;&gt;VPN 補上哪一塊？為什麼 HTTPS 夠了還有人開 VPN？&lt;/h2&gt;&lt;p&gt;VPN 會在裝置與 VPN 伺服器之間建立加密通道。對公共 Wi-Fi 業者或 ISP 而言，較難直接看到你通道內的瀏覽目的地；網站看到的來源 IP 也通常會變成 VPN 伺服器的 IP。&lt;p&gt;VPN 比較適合這些情境：&lt;ul&gt;&lt;li&gt;你不信任目前的網路（旅館、機場、咖啡店 Wi-Fi）。&lt;li&gt;你不希望本地網路業者直接看到你的瀏覽網域或 DNS 查詢。&lt;li&gt;你需要連回公司或家中的私有網路。&lt;/ul&gt;&lt;p&gt;但 VPN &lt;strong&gt;不是匿名按鈕&lt;/strong&gt;，也不是防毒軟體：&lt;ul&gt;&lt;li&gt;VPN 業者本身成為新的信任對象，可能看見部分連線資訊；挑選時要查隱私政策、商業模式與獨立稽核。&lt;li&gt;VPN 不會阻止釣魚網站、惡意下載、Cookie、帳號登入或裝置指紋追蹤。&lt;li&gt;若目的地網站沒有 HTTPS，VPN 伺服器到網站之間的內容仍可能沒有端對端保護。&lt;li&gt;連線中斷、設定錯誤或未更新時，保護效果可能不如預期。&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://ssd.eff.org/module/choosing-vpn-thats-right-you&quot;&gt;EFF&lt;/a&gt; 在 2026 年更新的 VPN 指南也提醒：VPN 主要是在保護&lt;strong&gt;網路中繼資料&lt;/strong&gt;（例如你連了哪些網域），以及把信任從 ISP／本地網路&lt;strong&gt;轉移&lt;/strong&gt;到 VPN 業者。HTTPS 管你和網站之間的內容，VPN 管裝置到伺服器之間的通道——在咖啡店、機場、飯店這類公共 Wi-Fi 上，兩者搭配是合理的習慣。&lt;h2 id=&quot;情境決策表我現在要做的事,需要-VPN-嗎?&quot;&gt;情境決策表：我現在要做的事，需要 VPN 嗎？&lt;/h2&gt;&lt;p&gt;把「內容、網域、整台裝置流量」分開想，就不會把 HTTPS 和 VPN 當成同一個開關，也不會在查地圖時為了 HTTPS 反覆找不存在的設定。&lt;h3 id=&quot;公共-Wi-Fi-常見情境&quot;&gt;公共 Wi-Fi 常見情境&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;情境&lt;th&gt;HTTPS 要確認什麼&lt;th&gt;沒有 VPN 的限制&lt;th&gt;較實際的做法&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;咖啡店登入銀行或信箱&lt;td&gt;確認網址、網域與官方 App；HTTPS 由瀏覽器自動協商&lt;td&gt;Wi-Fi 業者仍可能看到你連到哪些網域&lt;td&gt;確認 HTTPS &lt;strong&gt;並開啟&lt;/strong&gt;可信任 VPN&lt;tr&gt;&lt;td&gt;在家瀏覽一般 HTTPS 網站&lt;td&gt;確認網址是 &lt;code&gt;https://&lt;/code&gt;；不要把鎖頭當成網站真實性證明&lt;td&gt;ISP 通常仍能看到網域；網站也能用 Cookie 辨識你&lt;td&gt;HTTPS 通常已足夠；需要隱私時用 VPN，並保持系統更新&lt;/table&gt;&lt;h3 id=&quot;我要做什麼-→-怎麼連線一頁帶走&quot;&gt;我要做什麼 → 怎麼連線（一頁帶走）&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;我要做什麼&lt;th&gt;建議連線方式&lt;th&gt;VPN&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;看新聞、查地圖&lt;td&gt;公共 Wi-Fi；確認 HTTPS&lt;td&gt;可選&lt;tr&gt;&lt;td&gt;機場查航班&lt;td&gt;公共 Wi-Fi；確認 HTTPS&lt;td&gt;可選&lt;tr&gt;&lt;td&gt;飯店 Wi-Fi 看 YouTube&lt;td&gt;飯店 Wi-Fi + VPN；確認 HTTPS&lt;td&gt;可選&lt;tr&gt;&lt;td&gt;登入信箱、社群&lt;td&gt;公共 Wi-Fi + VPN；確認 HTTPS 與網域&lt;td&gt;✅ 建議&lt;tr&gt;&lt;td&gt;咖啡廳寄信&lt;td&gt;咖啡廳 Wi-Fi + VPN；確認 HTTPS 與網域&lt;td&gt;✅ 建議&lt;tr&gt;&lt;td&gt;登入銀行 App&lt;td&gt;公共 Wi-Fi + VPN；使用官方 App 或確認 HTTPS&lt;td&gt;✅ 建議&lt;tr&gt;&lt;td&gt;網銀轉帳&lt;td&gt;公共 Wi-Fi + VPN；使用官方 App 或確認 HTTPS&lt;td&gt;✅ 建議&lt;/table&gt;&lt;h3 id=&quot;只有-HTTPS-夠嗎?快速對照&quot;&gt;只有 HTTPS 夠嗎？快速對照&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;只做這件事&lt;th&gt;HTTPS 怎麼處理&lt;th&gt;VPN（公共 Wi-Fi 上）&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;看新聞、查地圖&lt;td&gt;確認 &lt;code&gt;https://&lt;/code&gt;；通常由瀏覽器自動使用&lt;td&gt;可選&lt;tr&gt;&lt;td&gt;登入信箱、社群&lt;td&gt;確認 &lt;code&gt;https://&lt;/code&gt; 與正確網域&lt;td&gt;✅ 建議&lt;tr&gt;&lt;td&gt;網銀、購物、公司系統&lt;td&gt;HTTPS 必須存在，並確認網域或官方 App&lt;td&gt;✅ 建議&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Q：公共 Wi-Fi 上需要 VPN 嗎？HTTPS 夠不夠？&lt;/strong&gt;&lt;p&gt;短答：這不是二選一。&lt;strong&gt;HTTPS 保護你和網站之間的內容&lt;/strong&gt;，網站支援時瀏覽器會自動使用，你要做的是確認網址與網域正確。&lt;strong&gt;VPN 保護裝置到 VPN 伺服器之間的整段流量&lt;/strong&gt;，在公共 Wi-Fi（咖啡店、機場、飯店）上&lt;strong&gt;建議開啟&lt;/strong&gt;，與 HTTPS 搭配使用。&lt;p&gt;HTTPS 保護你和&lt;strong&gt;正確網站&lt;/strong&gt;之間的傳輸內容；但它不能證明你連的是真網站，也不能完全隱藏網域、連線時間與流量模式。VPN 可以減少本地網路直接看到這些資訊，但會把部分信任轉移給 VPN 業者。兩者保護範圍不同，在公共 Wi-Fi 上應該一起用，而不是只依賴鎖頭。&lt;h2 id=&quot;常見誤解別把鎖頭或-VPN-當萬能藥&quot;&gt;常見誤解：別把鎖頭或 VPN 當萬能藥&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;「有鎖頭就安全」&lt;/strong&gt; — 假網站也可能有 HTTPS；要看網域是否正確，必要時用書籤或官方 App。&lt;li&gt;&lt;strong&gt;「開了 VPN 就不會被駭」&lt;/strong&gt; — VPN 不防釣魚；你若在仿冒 HTTPS 網站輸入密碼，VPN 仍會把資料加密送到那個假網站（加密很盡責，方向錯了）。&lt;li&gt;&lt;strong&gt;「飯店 Wi-Fi 有密碼就安全」&lt;/strong&gt; — 密碼通常只防路過的人；同飯店其他住客或被入侵的路由器仍有風險。連上後應開啟可信任 VPN，並確認 HTTPS 與網域。&lt;li&gt;&lt;strong&gt;「VPN 可以取代防毒、MFA、更新」&lt;/strong&gt; — 不能。完整防線還需要強密碼、多因素驗證、系統與瀏覽器更新。&lt;/ol&gt;&lt;h2 id=&quot;三分鐘安全檢查清單&quot;&gt;三分鐘安全檢查清單&lt;/h2&gt;&lt;p&gt;出門連陌生 Wi-Fi 前，照這六步做（比多下載三個「Wi-Fi 加速器」實用）：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;先確認網路名稱&lt;/strong&gt;：向店家或櫃檯確認 SSID，不要只選訊號最強的同名網路。&lt;li&gt;&lt;strong&gt;先看網址&lt;/strong&gt;：敏感操作前確認是 &lt;code&gt;https://&lt;/code&gt;，不要因為有鎖頭就忽略網域拼字。&lt;li&gt;&lt;strong&gt;連上公共 Wi-Fi 先開 VPN&lt;/strong&gt;：咖啡店、機場、飯店等陌生網路，確認 HTTPS 的同時啟用可信任 VPN。&lt;li&gt;&lt;strong&gt;選可信任的 VPN 服務&lt;/strong&gt;：查隱私政策、商業模式與獨立稽核；建議開啟 Kill Switch。&lt;li&gt;&lt;strong&gt;關閉自動連線與檔案分享&lt;/strong&gt;：公共網路上關閉自動加入 Wi-Fi、AirDrop／檔案分享等不需要的功能。&lt;li&gt;&lt;strong&gt;補上其他防線&lt;/strong&gt;：更新系統與瀏覽器、使用獨立強密碼、開啟 MFA，並保留裝置防毒與備份。&lt;/ol&gt;&lt;h2 id=&quot;推薦工具與資源&quot;&gt;推薦工具與資源&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;工具&lt;th&gt;適合誰&lt;th&gt;說明&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot;&gt;Proton VPN&lt;/a&gt;&lt;/strong&gt;（主推）&lt;td&gt;常在公共 Wi-Fi、旅行、需要免費入門的人&lt;td&gt;免費版已有 Kill Switch、無日誌政策與不限流量；連上咖啡店、機場 Wi-Fi 時建議先開。付費版解鎖更多國家、串流與進階功能。&lt;tr&gt;&lt;td&gt;密碼管理器 + MFA&lt;td&gt;所有有帳號的人&lt;td&gt;VPN 與 HTTPS 都不防帳號被盜；強密碼與驗證器 App 是基本配。&lt;/table&gt;&lt;p&gt;若你還在猶豫免費版夠不夠用，可參考站內 &lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/&quot;&gt;Proton VPN 付費版評價&lt;/a&gt; 或 &lt;a href=&quot;https://kamadiam.com/proton-vpn-free-vs-paid-review/&quot;&gt;免費版與付費版完整解析&lt;/a&gt;。&lt;h2 id=&quot;結語先搞懂保護範圍,再決定要不要開-VPN&quot;&gt;結語：先搞懂保護範圍，再決定要不要開 VPN&lt;/h2&gt;&lt;p&gt;HTTPS 和 VPN 不是同一個開關，而是&lt;strong&gt;保護範圍不同的工具&lt;/strong&gt;：&lt;ul&gt;&lt;li&gt;HTTPS 通常由網站與瀏覽器自動協商，保護你和網站之間的&lt;strong&gt;內容&lt;/strong&gt;有沒有被看見、被改掉。&lt;li&gt;VPN 由使用者選擇啟用，減少本地網路／ISP &lt;strong&gt;直接知道你連到哪些網域&lt;/strong&gt;，但新增 VPN 業者這個信任對象。&lt;/ul&gt;&lt;p&gt;看地圖、刷新聞，在公共 Wi-Fi 上確認 HTTPS 並&lt;strong&gt;開啟 VPN&lt;/strong&gt;；登入信箱、網銀或在飯店 Wi-Fi 上工作，同樣建議 &lt;strong&gt;HTTPS + 可信任 VPN&lt;/strong&gt; 一起用。VPN 不能取代防釣魚與 MFA，但能補上 HTTPS 管不到的網路通道保護。&lt;p&gt;若你常在咖啡店、機場或旅館上網，可以先從 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot;&gt;Proton VPN&lt;/a&gt; 免費版試起——在家連一次、開好 Kill Switch，下次連公共 Wi-Fi 就知道該怎麼搭配 HTTPS 使用。沒有一杯咖啡解決不了的網路焦慮；如果有，就加一層 VPN——然後記得，咖啡還是要自己付。&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;聯盟揭露：&lt;/strong&gt; 本文包含 Proton VPN 推薦連結。如果你透過連結註冊或購買，我可能獲得推薦回饋；這不會增加你的費用。&lt;/blockquote&gt;&lt;p&gt;👉 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;&lt;strong&gt;免費申請 Proton VPN 帳號 →&lt;/strong&gt;&lt;/a&gt;&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Transport_Layer_Security&quot;&gt;Mozilla MDN：Transport Layer Security (TLS)&lt;/a&gt; — TLS 的加密、完整性、驗證與混合內容說明。&lt;li&gt;&lt;a href=&quot;https://ssd.eff.org/module/choosing-vpn-thats-right-you&quot;&gt;EFF Surveillance Self-Defense：Choosing the VPN That&#39;s Right for You&lt;/a&gt; — VPN 用途、限制、信任轉移與選擇準則。&lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/news-events/news/securing-wireless-networks&quot;&gt;CISA：Securing Wireless Networks&lt;/a&gt; — 公共 Wi-Fi、假基地台與流量監聽風險。&lt;li&gt;&lt;a href=&quot;https://consumer.ftc.gov/articles/are-public-wi-fi-networks-safe-what-you-need-know&quot;&gt;FTC：Are Public Wi-Fi Networks Safe?&lt;/a&gt; — 公共 Wi-Fi、HTTPS 與假網站提醒。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/blog/public-wifi-and-https&quot;&gt;Proton VPN：Why you need VPN to stay safe on public WiFi&lt;/a&gt; — DNS 查詢、公共 Wi-Fi 與 VPN 的差異說明。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Proton VPN 付費版評價（2026）：VPN Plus 值得訂閱嗎？</title>
    <link href="https://kamadiam.com/proton-vpn-paid-review/" />
    <updated>2026-08-10T05:18:00Z</updated>
    <id>https://kamadiam.com/proton-vpn-paid-review/</id>
    <content type="html">&lt;p&gt;你已經用 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot;&gt;Proton VPN&lt;/a&gt; 免費版一陣子了——不限流量、沒廣告，在咖啡店連公共 Wi‑Fi 還算安心。結果一到尖峰時段，影片轉圈圈、不能自己選國家、串流跟 BT 下載通通說再見，你就會開始想：&lt;strong&gt;付費版到底值不值得？還是免費版已經夠我這杯咖啡的預算？&lt;/strong&gt;&lt;p&gt;這篇不談「VPN 是什麼」（那篇留給入門文），專攻 &lt;strong&gt;VPN Plus 付費版評價&lt;/strong&gt;：速度差多少、哪些功能只有付費才有、跟 NordVPN、Surfshark 比怎麼選，以及訂閱前該確認的價格與退款條件。若你想先看免費版全貌，可搭配站內另一篇 &lt;a href=&quot;https://kamadiam.com/proton-vpn-free-vs-paid-review/&quot;&gt;Proton VPN 值得買嗎？免費版與付費版功能完整解析&lt;/a&gt;。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E5%85%88%E8%AC%9B%E7%B5%90%E8%AB%96%E4%BB%98%E8%B2%BB%E7%89%88%E9%81%A9%E5%90%88%E8%AA%B0?&quot;&gt;先講結論：付費版適合誰？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E4%BB%98%E8%B2%BB%E7%89%88%E5%A4%9A%E4%BA%86%E4%BB%80%E9%BA%BC?VPN-Plus-%E5%8A%9F%E8%83%BD%E8%A9%95%E5%83%B9&quot;&gt;付費版多了什麼？（VPN Plus 功能評價）&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E4%BB%98%E8%B2%BB%E7%89%88%E5%80%BC%E5%BE%97%E8%B2%B7%E5%97%8E?%E6%B1%BA%E7%AD%96%E8%A1%A8&quot;&gt;付費版值得買嗎？決策表&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E5%83%B9%E6%A0%BC%E8%88%87%E6%96%B9%E6%A1%88%E5%88%A5%E5%8F%AA%E7%9C%8B%E4%BF%83%E9%8A%B7%E6%A8%99%E8%AA%9E&quot;&gt;價格與方案：別只看促銷標語&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E8%B7%9F-NordVPNSurfshark-%E6%AF%94%E4%BB%98%E8%B2%BB%E7%89%88%E7%AB%99%E5%BE%97%E4%BD%8F%E5%97%8E?&quot;&gt;跟 NordVPN、Surfshark 比：付費版站得住嗎？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E4%B8%B2%E6%B5%81%E5%AF%A6%E9%9A%9B%E8%A1%A8%E7%8F%BE%E4%BB%98%E8%B2%BB%E7%89%88%E7%9A%84%E7%9C%9F%E5%AF%A6%E6%9C%9F%E5%BE%85&quot;&gt;串流實際表現：付費版的真實期待&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E8%A8%82%E9%96%B1%E5%89%8D%E6%AA%A2%E6%9F%A5%E6%B8%85%E5%96%AE&quot;&gt;訂閱前檢查清單&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E6%8E%A8%E8%96%A6%E5%B7%A5%E5%85%B7/%E8%B3%87%E6%BA%90&quot;&gt;推薦工具／資源&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E7%B5%90%E8%AA%9E%E6%88%91%E7%9A%84%E8%A9%95%E5%83%B9&quot;&gt;結語：我的評價&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/proton-vpn-paid-review/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;hr&gt;&lt;h2 id=&quot;先講結論付費版適合誰?&quot;&gt;先講結論：付費版適合誰？&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情境&lt;th&gt;建議&lt;th&gt;原因&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;只在咖啡店偶爾上網、1 台裝置就夠&lt;td&gt;&lt;strong&gt;先維持免費版&lt;/strong&gt;&lt;td&gt;免費版已有 Kill Switch、無日誌、不限流量；付費的串流／選國家你用不到&lt;tr&gt;&lt;td&gt;想看 Netflix、Disney+ 等地區片庫&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt;&lt;td&gt;官方串流支援僅限付費方案；免費版不包含&lt;tr&gt;&lt;td&gt;需要 BT／P2P 下載&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt;&lt;td&gt;免費版不支援 P2P；Plus 有專用高速伺服器&lt;tr&gt;&lt;td&gt;家中 2–10 台裝置同時連線&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt;&lt;td&gt;最多 10 個同時連線（每個使用中的瀏覽器擴充也算 1 個）&lt;tr&gt;&lt;td&gt;重視可驗證的隱私證據，偶爾需要 Secure Core&lt;td&gt;&lt;strong&gt;VPN Plus&lt;/strong&gt;&lt;td&gt;Secure Core、NetShield、Stealth 混淆協定都是付費功能&lt;tr&gt;&lt;td&gt;同時需要 Proton Mail、Drive、Pass&lt;td&gt;&lt;strong&gt;Proton Unlimited&lt;/strong&gt;&lt;td&gt;別只用 VPN 月費比；把整個生態系需求一起算&lt;tr&gt;&lt;td&gt;家中超過 10 台裝置常同時連線&lt;td&gt;&lt;strong&gt;先比 Surfshark&lt;/strong&gt;&lt;td&gt;Surfshark 付費方案不限同時連線；Proton Plus 上限 10 台&lt;tr&gt;&lt;td&gt;主要追求最低月費或電視 Smart DNS 便利&lt;td&gt;&lt;strong&gt;先比 NordVPN&lt;/strong&gt;&lt;td&gt;NordVPN 在串流設備與近距離延遲上常有優勢，但隱私透明度呈現方式不同&lt;/table&gt;&lt;p&gt;&lt;strong&gt;一句話總結&lt;/strong&gt;：付費版的核心價值不是「比免費版快一點點」——那是把 VPN 當成咖啡濃縮，其實你缺的是整杯。完整伺服器選擇、串流／P2P、多裝置，加上 Secure Core 等進階功能，才是升級理由。若你只用免費版做基本加密，其實已經比多數免費 VPN 安全；付費是為了解除那些「剛好卡住你」的限制。&lt;h2 id=&quot;付費版多了什麼?VPN-Plus-功能評價&quot;&gt;付費版多了什麼？（VPN Plus 功能評價）&lt;/h2&gt;&lt;h3 id=&quot;速度差距比你想的大&quot;&gt;速度：差距比你想的大&lt;/h3&gt;&lt;p&gt;Proton 不對免費版人工限速，但免費伺服器（美國、荷蘭、日本）負載高，尖峰時段常擠——就像尖峰時段只有三條免費高速公路可選，還不能自己挑出口。第三方測試與社群實測的參考區間如下：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;指標&lt;th&gt;免費版&lt;th&gt;VPN Plus 付費版&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;典型下載速度&lt;td&gt;50–150 Mbps（尖峰可能 &amp;lt;30 Mbps）&lt;td&gt;950–1,500+ Mbps&lt;tr&gt;&lt;td&gt;典型上傳速度&lt;td&gt;30–80 Mbps&lt;td&gt;800–1,200+ Mbps&lt;tr&gt;&lt;td&gt;延遲（Ping）&lt;td&gt;20–200+ ms&lt;td&gt;本地 5–30 ms；跨國 80–150 ms&lt;tr&gt;&lt;td&gt;伺服器&lt;td&gt;3 國自動分配&lt;td&gt;140+ 國、20,000+ 台 10 Gbps 伺服器&lt;tr&gt;&lt;td&gt;網路優先權&lt;td&gt;低（排隊等頻寬）&lt;td&gt;高（Priority Access）&lt;/table&gt;&lt;p&gt;付費版還有 &lt;strong&gt;VPN Accelerator&lt;/strong&gt;：透過優化 TCP 擁塞控制，長途連線速度可提升數倍。日常 4K 串流、大檔下載、視訊會議，付費版的穩定度通常明顯好一截。&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;誠實提醒&lt;/strong&gt;：以上數字來自第三方基準測試，你的實際結果會受 ISP、地理位置、伺服器負載與協定影響。訂閱前建議自己測——別讓評測文替你喝這杯苦澀的現實咖啡。&lt;/blockquote&gt;&lt;h3 id=&quot;只有付費版才有的功能&quot;&gt;只有付費版才有的功能&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;功能&lt;th&gt;做什麼&lt;th&gt;適合誰&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;完整伺服器選擇&lt;/strong&gt;&lt;td&gt;自由選 140+ 國家，不再被系統分配到美／荷／日&lt;td&gt;需要特定地區 IP 的人&lt;tr&gt;&lt;td&gt;&lt;strong&gt;串流支援&lt;/strong&gt;&lt;td&gt;官方列出的 Netflix、Disney+ 等 Plus 伺服器&lt;td&gt;旅行或跨區看自有訂閱的片庫&lt;tr&gt;&lt;td&gt;&lt;strong&gt;P2P／BT&lt;/strong&gt;&lt;td&gt;專用高速伺服器&lt;td&gt;合法的大檔傳輸需求&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Secure Core&lt;/strong&gt;&lt;td&gt;流量先經瑞士／冰島／瑞典入口，再到出口國&lt;td&gt;高風險地區出口、重視實體防禦的使用者&lt;tr&gt;&lt;td&gt;&lt;strong&gt;NetShield&lt;/strong&gt;&lt;td&gt;DNS 級別擋惡意網域、廣告與追蹤器&lt;td&gt;想少裝一個廣告攔截器的人&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Stealth 協議&lt;/strong&gt;&lt;td&gt;把 VPN 流量偽裝成 HTTPS，繞過 DPI 審查&lt;td&gt;在嚴格網路環境需要連線的人&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Split Tunneling&lt;/strong&gt;&lt;td&gt;指定哪些 App 走 VPN、哪些走直連&lt;td&gt;同時要本地銀行 App 與 VPN 的場景&lt;tr&gt;&lt;td&gt;&lt;strong&gt;瀏覽器擴充&lt;/strong&gt;&lt;td&gt;Chrome／Firefox 一鍵連線&lt;td&gt;只想保護瀏覽器、不想全機 VPN 的人&lt;/table&gt;&lt;p&gt;Secure Core 和 Stealth 是 Proton 付費版較有特色的進階功能，多數競品沒有同等架構。但若你只是在家看串流，這兩個功能不是必開——Secure Core 還會讓速度更慢，官方也不建議拿它來排串流。開 Secure Core 看 Netflix，就像穿三層雨衣去海邊——很安全，但你不會因此游得比較快。&lt;h3 id=&quot;隱私與安全付費版有比較安全嗎?&quot;&gt;隱私與安全：付費版有比較安全嗎？&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;加密標準免費與付費相同&lt;/strong&gt;（AES-256、WireGuard 等），差別在進階功能與伺服器架構：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;無日誌政策&lt;/strong&gt;：免費與付費共用同一套政策；Securitum 已連續第五年稽核，2026 年報告未發現伺服器記錄瀏覽活動或連線中繼資料。&lt;li&gt;&lt;strong&gt;瑞士管轄&lt;/strong&gt;：截至 2026 年 6 月的透明度報告，47 件外國請求全部標為無法提供資料——因為沒有紀錄可交。&lt;li&gt;&lt;strong&gt;開源 App&lt;/strong&gt;：程式碼公開在 GitHub，任何人可審計。&lt;li&gt;&lt;strong&gt;Kill Switch&lt;/strong&gt;：免費版也有；但 macOS 切換伺服器時可能有短暫 IP 暴露，各平台限制不同。&lt;/ul&gt;&lt;p&gt;付費版真正的安全加值是 &lt;strong&gt;Secure Core&lt;/strong&gt;（多一跳、實體防禦入口）和 &lt;strong&gt;NetShield&lt;/strong&gt;（擋已知惡意網域），不是「付費才加密」。若你重視可驗證的隱私證據，Proton 在公開稽核與開源這點上，確實比多數競品透明。&lt;h2 id=&quot;付費版值得買嗎?決策表&quot;&gt;付費版值得買嗎？決策表&lt;/h2&gt;&lt;p&gt;把「要不要付費」拆成可勾選的條件：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的需求&lt;th&gt;免費版夠嗎？&lt;th&gt;付費版加分多少？&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;公共 Wi‑Fi 基本加密&lt;td&gt;✅ 夠&lt;td&gt;付費主要是速度與穩定度&lt;tr&gt;&lt;td&gt;自己選伺服器國家&lt;td&gt;❌ 不夠&lt;td&gt;⭐⭐⭐ 必要&lt;tr&gt;&lt;td&gt;Netflix／Disney+ 串流&lt;td&gt;❌ 不夠&lt;td&gt;⭐⭐⭐ 必要（但仍不保證每部片）&lt;tr&gt;&lt;td&gt;BT／P2P 下載&lt;td&gt;❌ 不夠&lt;td&gt;⭐⭐⭐ 必要&lt;tr&gt;&lt;td&gt;同時 2 台以上裝置&lt;td&gt;❌ 免費只有 1 台&lt;td&gt;⭐⭐⭐ 必要&lt;tr&gt;&lt;td&gt;擋廣告／惡意網域&lt;td&gt;❌ 沒有 NetShield&lt;td&gt;⭐⭐ 加分&lt;tr&gt;&lt;td&gt;繞過嚴格網路審查&lt;td&gt;❌ 沒有 Stealth&lt;td&gt;⭐⭐ 加分&lt;tr&gt;&lt;td&gt;高風險出口監控&lt;td&gt;❌ 沒有 Secure Core&lt;td&gt;⭐⭐ 加分（少數人需要）&lt;tr&gt;&lt;td&gt;只要最低月費&lt;td&gt;✅ 免費 $0&lt;td&gt;付費未必最便宜——見下方競品比較&lt;/table&gt;&lt;p&gt;&lt;strong&gt;勾選 3 項以上「付費版必要」&lt;/strong&gt; → 升級 VPN Plus 很合理。&lt;br&gt;&lt;strong&gt;只勾 1 項「速度」&lt;/strong&gt; → 建議先在自己網路實測免費版尖峰速度，再決定。別為了「感覺比較快」付年費，結果發現瓶頸其實是你家 Wi‑Fi——那杯咖啡就白喝了。&lt;h2 id=&quot;價格與方案別只看促銷標語&quot;&gt;價格與方案：別只看促銷標語&lt;/h2&gt;&lt;p&gt;官方結帳頁價格會依幣別、地區與促銷變動，以下為研究時的快照，&lt;strong&gt;訂閱前請直接查官方頁面&lt;/strong&gt;：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;方案&lt;th&gt;計費方式&lt;th&gt;參考價格（快照）&lt;th&gt;適合誰&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Proton Free&lt;td&gt;—&lt;td&gt;$0&lt;td&gt;輕度使用者、先建立信任&lt;tr&gt;&lt;td&gt;VPN Plus&lt;td&gt;月繳&lt;td&gt;約 US$9.99／月&lt;td&gt;短期試用、不想一次付兩年&lt;tr&gt;&lt;td&gt;VPN Plus&lt;td&gt;年繳&lt;td&gt;約 US$3.99／月（一次 US$47.88）&lt;td&gt;確定會用滿一年&lt;tr&gt;&lt;td&gt;VPN Plus&lt;td&gt;兩年繳&lt;td&gt;約 US$2.99／月（一次 US$71.76）&lt;td&gt;長期使用者、單看 VPN 最划算&lt;tr&gt;&lt;td&gt;Proton Unlimited&lt;td&gt;依官方頁&lt;td&gt;含 Mail、Drive、Pass、VPN&lt;td&gt;本來就要用 Proton 全家桶&lt;/table&gt;&lt;p&gt;結帳前三件事：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;看「今天要付多少」&lt;/strong&gt;，不是只看每月折算價。&lt;li&gt;&lt;strong&gt;記下續費價格&lt;/strong&gt;——促銷期過後可能不同。&lt;li&gt;&lt;strong&gt;確認付款管道&lt;/strong&gt;——官網、App Store、Google Play 的退款入口不一樣。&lt;/ol&gt;&lt;h3 id=&quot;30-天退款訂閱前的安全網&quot;&gt;30 天退款：訂閱前的安全網&lt;/h3&gt;&lt;p&gt;首次直接向 Proton 購買，可在 &lt;strong&gt;30 天內&lt;/strong&gt;取消並申請退款（每位使用者退款選項通常只能用一次）。重點：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;取消 ≠ 退款&lt;/strong&gt;：兩個動作都要做。&lt;li&gt;&lt;strong&gt;刪除 App 不會停扣款&lt;/strong&gt;：必須在原付款管道取消續訂。&lt;li&gt;&lt;strong&gt;App Store／Google Play 購買&lt;/strong&gt;：退款要走 Apple 或 Google 的流程，不是 Proton 網站。&lt;li&gt;取消後通常仍可用到目前計費週期結束，之後降回免費版。&lt;/ul&gt;&lt;p&gt;若你只是不確定付費版好不好用，善用 30 天退款期在自己網路實測，比看十篇評測文更有說服力——畢竟你的 ISP 不會因為別人測速漂亮就對你特別溫柔。&lt;h2 id=&quot;跟-NordVPNSurfshark-比付費版站得住嗎?&quot;&gt;跟 NordVPN、Surfshark 比：付費版站得住嗎？&lt;/h2&gt;&lt;p&gt;若你已經決定要付費 VPN，但還在猶豫品牌：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;比較面向&lt;th&gt;Proton VPN Plus&lt;th&gt;NordVPN&lt;th&gt;Surfshark&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;同時連線數&lt;td&gt;10 台&lt;td&gt;10 台&lt;td&gt;不限&lt;tr&gt;&lt;td&gt;隱私透明度&lt;td&gt;Securitum 稽核公開、App 開源、瑞士管轄&lt;td&gt;Deloitte 查核（報告需登入查閱）、巴拿馬公司&lt;td&gt;Deloitte 查核、荷蘭管轄&lt;tr&gt;&lt;td&gt;免費入門&lt;td&gt;✅ 不限流量免費版&lt;td&gt;❌ 無&lt;td&gt;❌ 無&lt;tr&gt;&lt;td&gt;串流設備便利&lt;td&gt;路由器／支援的 App&lt;td&gt;Smart DNS 對電視較方便&lt;td&gt;Fire TV、Android TV 等官方支援完整&lt;tr&gt;&lt;td&gt;獨特功能&lt;td&gt;Secure Core、Stealth、NetShield&lt;td&gt;NordLynx、威脅防護套件&lt;td&gt;不限裝置、RAM-only 伺服器&lt;tr&gt;&lt;td&gt;30 天退款&lt;td&gt;✅（依付款管道）&lt;td&gt;✅（續費不在內）&lt;td&gt;✅（依方案與管道）&lt;/table&gt;&lt;p&gt;&lt;strong&gt;選 Proton 付費版&lt;/strong&gt;，若你已經用免費版、想無縫升級；重視公開稽核報告與開源；裝置數 ≤10 台；需要 Secure Core 或 Stealth。&lt;p&gt;&lt;strong&gt;先試 NordVPN&lt;/strong&gt;，若你主要在智慧電視／遊戲主機看串流（Smart DNS 較省事）；重視近距離低延遲；不在意沒有免費版可長期使用。&lt;p&gt;&lt;strong&gt;先試 Surfshark&lt;/strong&gt;，若你家中同時連線超過 10 台；預算優先、想要不限裝置。&lt;p&gt;沒有絕對贏家——兩家都有獨立無日誌查核，差別在證據呈現方式、功能取向與你的使用情境。建議在 30 天退款期內各測自己常用的串流服務與網路環境。&lt;h2 id=&quot;串流實際表現付費版的真實期待&quot;&gt;串流實際表現：付費版的真實期待&lt;/h2&gt;&lt;p&gt;付費版才支援官方串流伺服器，但這不代表「買了就能看全世界」：&lt;ul&gt;&lt;li&gt;Netflix、Disney+ 仍需&lt;strong&gt;另外訂閱&lt;/strong&gt;；VPN 訂閱不包含串流會員。&lt;li&gt;Netflix &lt;strong&gt;廣告方案&lt;/strong&gt;與&lt;strong&gt;直播活動&lt;/strong&gt;官方明確不支援 VPN。&lt;li&gt;串流平台會更新封鎖規則，&lt;strong&gt;不能保證永久解鎖&lt;/strong&gt;任何片名。&lt;li&gt;排串流問題時，&lt;strong&gt;不要用 Secure Core&lt;/strong&gt;——它為安全設計，不是為速度。&lt;li&gt;遇到「使用 VPN 或 Proxy」錯誤：換 Plus 伺服器 → 重開 App → 清快取 → 暫時關 NetShield 測試 → 用 ipleak.net 查 IP／DNS 洩漏。&lt;/ul&gt;&lt;p&gt;合理期待：付費版讓你在旅行或跨區時，&lt;strong&gt;有機會&lt;/strong&gt;用自有訂閱看原本的片庫；不是繞過版權的萬能鑰匙。VPN 不是 Netflix 會員卡的加購醬料包。&lt;h2 id=&quot;訂閱前檢查清單&quot;&gt;訂閱前檢查清單&lt;/h2&gt;&lt;p&gt;在按下付款前，逐項確認：&lt;ul&gt;&lt;li&gt;[ ] 我需要的功能（串流／P2P／多裝置／選國家）免費版確實做不到&lt;li&gt;[ ] 同時連線裝置數 ≤10（含瀏覽器擴充）&lt;li&gt;[ ] 已看過官方當下價格與&lt;strong&gt;續費價格&lt;/strong&gt;&lt;li&gt;[ ] 知道退款入口（官網／Apple／Google）&lt;li&gt;[ ] 會在 30 天內實測常用服務與網路速度&lt;li&gt;[ ] 不把 VPN 當成防毒或完全匿名工具&lt;/ul&gt;&lt;h2 id=&quot;推薦工具/資源&quot;&gt;推薦工具／資源&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;產品&lt;th&gt;適合誰&lt;th&gt;說明&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot;&gt;Proton VPN Plus&lt;/a&gt;&lt;/strong&gt;（主推）&lt;td&gt;已用免費版、需要串流／P2P／多裝置／完整伺服器&lt;td&gt;30 天退款可實測；開源 App + 公開無日誌稽核&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Unlimited&lt;/strong&gt;&lt;td&gt;同時需要 Mail、Drive、Pass 的 Proton 生態系使用者&lt;td&gt;別只用 VPN 單價比，把全家桶需求一起算&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Proton Free&lt;/strong&gt;&lt;td&gt;輕度使用者、還不確定要不要付費&lt;td&gt;先建立信任，確認限制再升級&lt;tr&gt;&lt;td&gt;NordVPN&lt;td&gt;重視電視串流便利（Smart DNS）、近距離低延遲&lt;td&gt;隱私查核報告需登入查閱；無免費版&lt;tr&gt;&lt;td&gt;Surfshark&lt;td&gt;家中超過 10 台裝置同時連線&lt;td&gt;不限同時連線；荷蘭管轄、Deloitte 查核&lt;/table&gt;&lt;h2 id=&quot;結語我的評價&quot;&gt;結語：我的評價&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Proton VPN 付費版（VPN Plus）值得訂閱嗎？&lt;/strong&gt;——若你已經被免費版的「不能選國家、不能串流、只有 1 台裝置、尖峰變慢」卡住，&lt;strong&gt;值得&lt;/strong&gt;。付費版解的不只是速度，而是把 VPN 從「偶爾用用的安全網」變成「日常可用的完整工具」。&lt;p&gt;但若你只是偶爾在咖啡店上網、一台手機就夠，&lt;strong&gt;免費版已經是市場上少數真正可信的選擇&lt;/strong&gt;，不必為了「付費比較安心」而多花錢——加密標準是一樣的，你的錢包不會因為多付而多一層 AES-256。&lt;p&gt;三個重點帶走：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;付費版的核心價值&lt;/strong&gt;是串流、P2P、多裝置、完整伺服器與 Secure Core／NetShield／Stealth，不是「付費才安全」。&lt;li&gt;&lt;strong&gt;價格要看續費與付款管道&lt;/strong&gt;，善用 30 天退款在自己網路實測。&lt;li&gt;&lt;strong&gt;競品不是全面輸贏&lt;/strong&gt;——裝置數 &amp;gt;10 看 Surfshark，電視串流便利看 NordVPN，隱私透明度與免費漏斗看 Proton。&lt;/ol&gt;&lt;p&gt;若你確認需要 Plus 的功能，建議先到 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot;&gt;Proton 官網&lt;/a&gt; 領免費帳號（若還沒有）→ 在 30 天退款期內升級 VPN Plus 實測 → 不合適就依付款管道申請退款。決定好了再來一杯慶祝——或繼續喝免費版也沒關係，至少你的連線有加密。&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;聯盟揭露：&lt;/strong&gt; 本文包含 Proton VPN 推薦連結。若你透過連結註冊或購買，我可能獲得推薦回饋；這不會增加你的費用。本文依研究筆記與官方文件撰寫，請依你的實際需求與測試結果做最終決定。&lt;/blockquote&gt;&lt;p&gt;👉 &lt;a href=&quot;https://pr.tn/ref/SZX2CCB0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer sponsored&quot;&gt;&lt;strong&gt;免費申請 Proton 帳號 →&lt;/strong&gt;&lt;/a&gt;&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/support/proton-vpn-plans&quot;&gt;Proton VPN plans explained&lt;/a&gt; — 官方方案類型、Free 與 Plus 功能差異。&lt;li&gt;&lt;a href=&quot;https://account.protonvpn.com/pricing&quot;&gt;Proton VPN official pricing&lt;/a&gt; — 結帳時的方案、幣別與促銷價格（以當日頁面為準）。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/support/cancel-vpn-subscription&quot;&gt;How to cancel a Proton VPN subscription&lt;/a&gt; — 取消步驟、退款管道與處理時間。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/support/no-logs-vpn&quot;&gt;Does Proton VPN keep logs?&lt;/a&gt; — 無日誌政策說明。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/blog/no-logs-audit&quot;&gt;Proton VPN passes 5th annual external audit&lt;/a&gt; — 2026 年 Securitum 無日誌稽核。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/support/watch-netflix-with-proton-vpn&quot;&gt;How to watch Netflix with Proton VPN&lt;/a&gt; — 串流支援範圍與限制。&lt;li&gt;&lt;a href=&quot;https://protonvpn.com/support/protonvpn-features&quot;&gt;Proton VPN Features&lt;/a&gt; — Secure Core、NetShield、Stealth 等功能說明。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>為什麼要發明 Pi？從作者角度理解 Pi vs Claude Code 該怎麼選</title>
    <link href="https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/" />
    <updated>2026-08-07T03:32:15Z</updated>
    <id>https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/</id>
    <content type="html">&lt;p&gt;終端裡的 AI 程式助手越來越多：Claude Code、Cursor，還有各種「多代理＋Plan Mode＋MCP」大禮包。功能清單看起來很強，但你有沒有遇過這種感覺——&lt;strong&gt;工具一更新，行為就變了&lt;/strong&gt;；你以為它在「幫你想」，其實有一段上下文是介面看不到的；出錯時又不知道該查哪一層？&lt;p&gt;（有點像咖啡店改菜單：你點的還叫同名，內容卻換了豆。AI 工具也會這樣，而且通常不會在杯子上貼告示。）&lt;p&gt;Pi Coding Agent 的作者 Mario Zechner，正是從這類痛點出發，選擇&lt;strong&gt;重做一個極小核心&lt;/strong&gt;，而不是繼續往既有工具堆功能。這篇不做沒有實測根據的「誰比較強」評比，也不喊誰全面勝利；目標很單純：用&lt;strong&gt;作者為什麼要發明 Pi&lt;/strong&gt; 當鏡頭，幫你看懂兩種哲學，再決定自己要的是 &lt;strong&gt;Pi 的可控性&lt;/strong&gt;，還是 &lt;strong&gt;Claude Code 的現成工作流&lt;/strong&gt;。&lt;p&gt;讀完你會帶走：作者動機怎麼對到設計、四個原則怎麼想、一張決策表幫你 30 秒對號入座。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E5%85%88%E8%AC%9B%E6%B8%85%E6%A5%9A%E9%80%99%E4%B8%8D%E6%98%AF%E3%80%8CClaude-Code-%E4%B8%8D%E5%A5%BD%E3%80%8D&quot;&gt;先講清楚：這不是「Claude Code 不好」&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E4%BD%9C%E8%80%85%E7%82%BA%E4%BB%80%E9%BA%BC%E8%A6%81%E9%87%8D%E6%96%B0%E5%81%9A%E4%B8%80%E5%80%8B-Coding-Agent?&quot;&gt;作者為什麼要重新做一個 Coding Agent？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#Pi-%E7%9A%84%E5%9B%9B%E5%80%8B%E8%A8%AD%E8%A8%88%E5%8E%9F%E5%89%87%E5%B0%8D%E7%85%A7-Claude-Code-%E6%80%8E%E9%BA%BC%E6%83%B3&quot;&gt;Pi 的四個設計原則（對照 Claude Code 怎麼想）&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E6%B1%BA%E7%AD%96%E8%A1%A8%E6%88%91%E8%A9%B2%E9%81%B8-Pi-%E9%82%84%E6%98%AF-Claude-Code?&quot;&gt;決策表：我該選 Pi 還是 Claude Code？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E6%8E%A8%E8%96%A6%E5%B7%A5%E5%85%B7/%E8%B3%87%E6%BA%90&quot;&gt;推薦工具／資源&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E7%B5%90%E8%AA%9E%E9%81%B8%E5%93%B2%E5%AD%B8,%E5%86%8D%E9%81%B8%E6%8C%89%E9%88%95&quot;&gt;結語：選哲學，再選按鈕&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pi-vs-claude-code-why-author-built-pi/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;先講清楚這不是「Claude-Code-不好」&quot;&gt;先講清楚：這不是「Claude Code 不好」&lt;/h2&gt;&lt;p&gt;作者的公開文章把 Claude Code 當成「既有 Coding Agent 逐漸變複雜」的對照例子——但那是&lt;strong&gt;他對自己工作流的取捨&lt;/strong&gt;，不是對所有人的判決。以下的功能描述以相關官方文件與文章目前列出的內容為準；這類工具更新很快，實際行為仍要以你使用的版本和設定為準。&lt;ul&gt;&lt;li&gt;Claude Code 適合：想要內建 Plan、子代理、MCP、斜線指令，少自己組裝。&lt;li&gt;Pi 適合：想看見上下文與中間產物、把工作流放在檔案／CLI／tmux，願意自己決定要加什麼。&lt;/ul&gt;&lt;p&gt;讀完這篇，你應該能回答一句話：「我比較怕&lt;strong&gt;黑箱變動&lt;/strong&gt;，還是比較怕&lt;strong&gt;自己組工具的成本&lt;/strong&gt;？」&lt;p&gt;答得出來，比背一百個功能還有用——功能清單只告訴你「有什麼」；真正幫你判斷怎麼修、怎麼選的，是你對工具的使用原則。&lt;h2 id=&quot;作者為什麼要重新做一個-Coding-Agent?&quot;&gt;作者為什麼要重新做一個 Coding Agent？&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;既有工具遇到的問題（作者說法）&lt;th&gt;Pi 的設計回應&lt;th&gt;你實際可以怎麼用&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Claude Code 從早期較簡單，逐漸變成作者用不到很多功能的複雜工具；發布常改 system prompt／工具定義，既有工作流與模型行為跟著變&lt;td&gt;核心「不需要就不建」；短 system prompt；差異放到外部擴充&lt;td&gt;固定自己的提示、&lt;code&gt;AGENTS.md&lt;/code&gt;、驗證流程；升級後重新檢查，不要假設行為永遠不變&lt;tr&gt;&lt;td&gt;Context engineering 很重要，但其他 harness 可能在 UI 看不到的地方注入上下文&lt;td&gt;Session、工具呼叫、來源與產物保持可見；規劃寫成檔案，不藏在黑箱代理裡&lt;td&gt;要求 Agent 把研究／計畫／檢查結果寫成可讀檔，人工看完再進下一階段&lt;tr&gt;&lt;td&gt;內建子代理把上下文傳遞與錯誤藏在另一層，出錯難追查&lt;td&gt;不提供專用子代理工具；需要時用 bash 再開一個 Pi，或用 Extension／Package 自己組&lt;td&gt;任務邊界與輸出格式清楚才拆 session，中間產物一律存檔&lt;/table&gt;&lt;p&gt;一句話總結作者動機：&lt;blockquote&gt;&lt;p&gt;當 Coding Agent 變得複雜、常改又不透明時，最可靠的回應不是再加一層功能——而是&lt;strong&gt;縮小核心、提高可觀測性，讓使用者自己決定要加什麼&lt;/strong&gt;。&lt;/blockquote&gt;&lt;p&gt;官方定位也呼應這點：「讓 Pi 適應你的工作流，而不是反過來。」——翻成口語：工具來遷就你的終端習慣，不是你遷就它的儀式流程。咖啡機有預設模式很方便；但如果你想自己調研磨度，誰也不能禁止你拿出手沖壺。&lt;h2 id=&quot;Pi-的四個設計原則對照-Claude-Code-怎麼想&quot;&gt;Pi 的四個設計原則（對照 Claude Code 怎麼想）&lt;/h2&gt;&lt;h3 id=&quot;1.-極簡核心,不是功能競賽&quot;&gt;1. 極簡核心，不是功能競賽&lt;/h3&gt;&lt;p&gt;作者文章描述：Pi 的 system prompt 與預設工具定義合計可低於約 1,000 tokens；預設核心大致是讀、寫、編輯與 bash。極簡&lt;strong&gt;不是&lt;/strong&gt;叫大家永遠只用四個工具，而是把 MCP、子代理、Plan Mode 等能力移到 Extensions、Skills、Prompt Templates、Packages——&lt;strong&gt;按痛點再加&lt;/strong&gt;。這裡的「四個」是核心設計的概括，不代表每個版本或擴充後都只剩四項能力。&lt;p&gt;Claude Code 走另一條路：代理人循環（收集上下文 → 執行動作 → 驗證結果）＋較豐富的內建工具與斜線指令（如 &lt;code&gt;/compact&lt;/code&gt;、&lt;code&gt;/diff&lt;/code&gt;、&lt;code&gt;/model&lt;/code&gt;），並以 &lt;code&gt;CLAUDE.md&lt;/code&gt;、Skills、MCP 擴充。對「我想立刻開工」的人，這通常比較省事。&lt;p&gt;白話對照：Claude Code 像開箱即用的咖啡機；Pi 像手沖壺——多一步，但你看得見水溫、粉量和時間。&lt;h3 id=&quot;2.-可觀測性優先&quot;&gt;2. 可觀測性優先&lt;/h3&gt;&lt;p&gt;Pi 偏好把計畫寫成 Markdown：人可以編、跨 session 重用，也能進版本控制。「Agent 做了什麼」變成可檢查的產物，而不是只信最後一句摘要。換句話說，規格、計畫和進度先落檔，人工過目再寫碼；這種做法也比較容易留下日後能追溯的線索。&lt;p&gt;Claude Code 也有規範檔與驗證迴圈，但作者批評的重點是：若規劃與子工作藏在內部狀態，除錯成本會變高。你若本來就習慣「先看 diff／計畫再准執行」，兩套都能做；差別在於&lt;strong&gt;狀態預設放在哪&lt;/strong&gt;——檔案系統，還是工具內建流程。&lt;h3 id=&quot;3.-用組合取代內建一體化&quot;&gt;3. 用組合取代內建一體化&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Pi 刻意不內建&lt;th&gt;官方建議替代&lt;th&gt;什麼時候值得自己組&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MCP&lt;td&gt;小型 CLI＋README，或自行加 Extension&lt;td&gt;工具少、要控 token、輸出想直接寫檔串接&lt;tr&gt;&lt;td&gt;子代理&lt;td&gt;tmux 再開 Pi、Extension、Package&lt;td&gt;要看見子過程，或真的要平行任務&lt;tr&gt;&lt;td&gt;Plan Mode&lt;td&gt;計畫寫入檔案，或自行擴充&lt;td&gt;計畫要跨 session、共同編輯、版控&lt;tr&gt;&lt;td&gt;背景 bash&lt;td&gt;tmux&lt;td&gt;長跑測試、開發伺服器、互動除錯&lt;tr&gt;&lt;td&gt;權限彈窗&lt;td&gt;容器／隔離帳號／自訂確認&lt;td&gt;不可信程式碼或機密資料&lt;/table&gt;&lt;p&gt;作者對大型 MCP 的具體顧慮是：工具說明每次塞進上下文，token 貴，輸出還常得繞回 Agent 才能保存。他提的替代是「小型 CLI + README + bash」——需要時才讀，輸出可直寫檔。&lt;p&gt;Claude Code 官方文件列有 MCP 整合，對「接資料庫／瀏覽器／外部服務、不想自己包 CLI」的人是加分。你要選的是：&lt;strong&gt;內建方便&lt;/strong&gt; vs &lt;strong&gt;按需載入、看得見成本&lt;/strong&gt;。&lt;h3 id=&quot;4.-安全責任放回執行環境&quot;&gt;4. 安全責任放回執行環境&lt;/h3&gt;&lt;p&gt;Pi 預設不走「權限彈窗＝安全」這條路；作者認為 Agent 一旦能讀寫檔、跑指令，單靠彈窗很難形成完整邊界。這&lt;strong&gt;不是&lt;/strong&gt;宣稱 Pi 比較安全，而是要求你用容器、隔離帳號、網路限制等&lt;strong&gt;真邊界&lt;/strong&gt;。含機密的主機開 YOLO，風險在你，不能照抄作者個人設定。&lt;p&gt;Claude Code 提供權限確認與相關隔離選項；對不想自己從零設計沙箱的人，通常比較「有提示、有流程」。兩邊都不是魔法盾——差在&lt;strong&gt;預設假設誰負責安全&lt;/strong&gt;，而且最後仍要由你確認實際的執行環境。&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;比喻&lt;th&gt;對應的做法&lt;th&gt;實際效果&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;門上貼「請勿打擾」&lt;td&gt;Agent 跳出權限彈窗，你點「允許」&lt;td&gt;只是&lt;strong&gt;提醒／確認&lt;/strong&gt;，對方真要闖還是進得去&lt;tr&gt;&lt;td&gt;門鎖上了&lt;td&gt;容器、隔離帳號、網路限制&lt;td&gt;&lt;strong&gt;物理／技術邊界&lt;/strong&gt;，進不去才是真隔離&lt;/table&gt;&lt;p&gt;彈窗是禮貌的提示；隔離才是真的鎖門。兩者看起來都在「管安全」，保護力差很多。&lt;h2 id=&quot;決策表我該選-Pi-還是-Claude-Code?&quot;&gt;決策表：我該選 Pi 還是 Claude Code？&lt;/h2&gt;&lt;p&gt;用這張表做決定（可以兩邊都裝，但同一目錄不要同時寫檔；要並行請用不同 worktree 或其他隔離方式）：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情境&lt;th&gt;較適合&lt;th&gt;先確認這件事&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;想快速使用整合好的流程，不想自己組工具&lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;td&gt;能否接受 system prompt、工具與版本變動&lt;tr&gt;&lt;td&gt;想逐步檢查上下文與中間產物、計畫要進 Git&lt;td&gt;&lt;strong&gt;Pi&lt;/strong&gt;（或同等可觀測工作流）&lt;td&gt;是否願意維護 markdown、CLI、tmux&lt;tr&gt;&lt;td&gt;已在使用 Anthropic 生態、愛斜線指令與內建任務工作流&lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;td&gt;MCP／Skills 的 token 與權限範圍&lt;tr&gt;&lt;td&gt;本地模型、控 token、設定要可移植（&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;.pi/&lt;/code&gt;）&lt;td&gt;&lt;strong&gt;Pi&lt;/strong&gt;&lt;td&gt;短 prompt 在你的模型／專案規模是否夠用（要實測）&lt;tr&gt;&lt;td&gt;要查瀏覽器、資料庫、外部服務，且想少寫 glue code&lt;td&gt;Claude Code＋MCP，或 Pi＋按需 CLI／Extension&lt;td&gt;工具描述成本、輸出能否存檔&lt;tr&gt;&lt;td&gt;不可信程式碼或機密檔案&lt;td&gt;先隔離，再選任一 Agent&lt;td&gt;隔離是否真限制檔案與網路，而不只是警告&lt;/table&gt;&lt;h3 id=&quot;30-秒口訣&quot;&gt;30 秒口訣&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;怕&lt;strong&gt;黑箱與升級打破工作流&lt;/strong&gt; → 先試 &lt;strong&gt;Pi&lt;/strong&gt;。&lt;li&gt;怕&lt;strong&gt;自己組裝與維護成本&lt;/strong&gt; → 先用 &lt;strong&gt;Claude Code&lt;/strong&gt;。&lt;li&gt;都要一點 → 主流程用 Claude Code／IDE；終端批次、低成本實驗、可版控的 Agent 設定用 Pi。&lt;/ul&gt;&lt;h2 id=&quot;推薦工具/資源&quot;&gt;推薦工具／資源&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;工具&lt;th&gt;適合誰&lt;th&gt;備註&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://pi.dev/&quot;&gt;Pi Coding Agent&lt;/a&gt;&lt;/strong&gt;&lt;td&gt;想要極簡核心、可觀測產物、按需擴充的終端使用者&lt;td&gt;先用裸 Pi 跑通小任務，再加 Package／Extension&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot;&gt;Claude Code&lt;/a&gt;&lt;/strong&gt;&lt;td&gt;想要整合代理人工作流、MCP 與專案規範的 Anthropic 生態使用者&lt;td&gt;用 &lt;code&gt;CLAUDE.md&lt;/code&gt; 固定專案規範；升級後抽查行為&lt;tr&gt;&lt;td&gt;延伸閱讀&lt;td&gt;想系統學 Pi 工作流&lt;td&gt;站內：&lt;a href=&quot;https://kamadiam.com/blog/pi-coding-agent/&quot;&gt;Pi Coding Agent 完整指南&lt;/a&gt;&lt;/table&gt;&lt;p&gt;客觀取捨：Pi 把「省心的一體化」換成「可控、但需要自己組合」；Claude Code 則把更多流程先整合好，換取較低的起步成本。Pi 和 Claude Code 各有取捨，誰贏取決於你的風險與願不願意自己維護，不是全世界都該選同一個。&lt;h2 id=&quot;結語選哲學,再選按鈕&quot;&gt;結語：選哲學，再選按鈕&lt;/h2&gt;&lt;p&gt;作者發明 Pi，不是為了「功能贏過 Claude Code」，而是為了在&lt;strong&gt;複雜、常改、不透明&lt;/strong&gt;的 Coding Agent 浪潮裡，留下一個&lt;strong&gt;看得見、擴得動、核心夠小&lt;/strong&gt;的 harness。這個選擇不一定讓每個人都更省事，卻讓取捨本身變得比較清楚。&lt;p&gt;帶走三點：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;動機&lt;/strong&gt;：縮小核心＋可觀測性，對抗黑箱與工作流被升級拆掉。&lt;li&gt;&lt;strong&gt;取捨&lt;/strong&gt;：Claude Code 用整合換省心；Pi 用組合換控制權。&lt;li&gt;&lt;strong&gt;下一步&lt;/strong&gt;：用上面的決策表對號入座，不要只比功能勾選清單。&lt;/ol&gt;&lt;p&gt;先挑一個小任務（例如修一個測試失敗）——若你要「開箱即用」，用 Claude Code 跑完並檢查差異；若你要「計畫與驗證都落檔」，用 Pi 把計畫寫成 Markdown 再改碼。跑完一次，比再讀十篇比較文更準。畢竟工具比較文可以收藏，失敗的測試不會因為被收藏就自己修好。&lt;p&gt;審完再來一杯。下一杯建議：直接動手，別再收藏文章了。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://mariozechner.at/posts/2025-11-30-pi-coding-agent/&quot;&gt;What I learned building an opinionated and minimal coding agent&lt;/a&gt; — Mario Zechner 說明為何做極簡 Pi、對照既有 Coding Agent 的痛點&lt;li&gt;&lt;a href=&quot;https://mariozechner.at/posts/2025-11-02-what-if-you-dont-need-mcp/&quot;&gt;What if you don&#39;t need MCP at all?&lt;/a&gt; — 作者對大型 MCP 成本與「小型 CLI + README」替代方案的論點&lt;li&gt;&lt;a href=&quot;https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md&quot;&gt;Pi coding agent README&lt;/a&gt; — 官方定位、刻意不內建項目與擴充方向&lt;li&gt;&lt;a href=&quot;https://pi.dev/&quot;&gt;Pi Coding Agent 官網&lt;/a&gt; — 產品入口與文件入口&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot;&gt;Anthropic Claude Code 官方指南&lt;/a&gt; — Claude Code 的工作方式、MCP、&lt;code&gt;CLAUDE.md&lt;/code&gt; 與擴充能力&lt;li&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/building-pi-and-what-makes-self-modifying&quot;&gt;Building Pi, and what makes self-modifying software so fascinating&lt;/a&gt; — Pragmatic Engineer 訪談／整理，補作者背景脈絡&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>我如何用 PageSpeed Insights 優化 11ty 網站：為什麼比 WordPress 更容易直接修</title>
    <link href="https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/" />
    <updated>2026-08-06T01:25:00Z</updated>
    <id>https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/</id>
    <content type="html">&lt;p&gt;沒有一杯咖啡解決不了的效能問題；如果有，就先把 PageSpeed Insights 的診斷報告打開，看看是哪個資源在拖後腿。&lt;p&gt;我做 11ty 網站效能優化時，通常會先把網址丟進 &lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;，看它指出的具體問題，再回到 11ty 的模板、CSS、圖片設定或 JavaScript 原始碼逐項修正。很多「改 HTML 屬性、補尺寸、延後腳本」這類步驟，其實可以交給 AI 動手；你負責寫清楚提示詞，再審核 diff 與實際結果。&lt;p&gt;這個流程在 11ty 上很直接：首圖太大，就處理首圖；圖片沒有明確寬高，就改 HTML 或圖片管道；第三方 JavaScript 阻塞主執行緒，就延後或移除那支腳本。改完重新 build、部署，再用相同條件測一次。&lt;p&gt;WordPress 當然也能優化，但問題有時藏在佈景主題、頁面編輯器、快取外掛和圖片外掛互相疊加的結果。你可能知道 PageSpeed Insights 要求什麼，卻不知道哪一層才是可以安全修改的地方。&lt;p&gt;這篇記錄我如何把 PageSpeed Insights 的建議轉成 11ty 的實際修改。重點不是宣稱哪個框架永遠比較快，而是：在 11ty 裡，診斷結果通常可以直接對應到你能控制的模板、資產或腳本。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E5%85%88%E8%AA%AA%E7%B5%90%E8%AB%96PageSpeed-Insights-%E6%98%AF%E8%A8%BA%E6%96%B7%E5%B7%A5%E5%85%B7,%E4%B8%8D%E6%98%AF%E6%A1%86%E6%9E%B6%E8%A9%95%E5%88%86%E8%A1%A8&quot;&gt;先說結論：PageSpeed Insights 是診斷工具，不是框架評分表&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E6%88%91%E7%9A%84-11ty-%E5%84%AA%E5%8C%96%E5%BE%AA%E7%92%B0%E6%B8%AC%E9%87%8F%E5%AE%9A%E4%BD%8D%E7%9B%B4%E6%8E%A5%E4%BF%AE%E6%94%B9%E5%86%8D%E9%A9%97%E8%AD%89&quot;&gt;我的 11ty 優化循環：測量、定位、直接修改、再驗證&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#PageSpeed-Insights-%E6%8C%87%E5%87%BA-LCP-%E6%85%A2%E5%85%88%E6%89%BE%E7%9C%9F%E6%AD%A3%E7%9A%84%E6%9C%80%E5%A4%A7%E5%85%83%E7%B4%A0&quot;&gt;PageSpeed Insights 指出 LCP 慢：先找真正的最大元素&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#PageSpeed-Insights-%E6%8C%87%E5%87%BA-CLS%E5%85%88%E8%A3%9C%E5%B0%BA%E5%AF%B8,%E4%B8%8D%E8%A6%81%E5%8F%AA%E8%AA%BF%E5%88%86%E6%95%B8&quot;&gt;PageSpeed Insights 指出 CLS：先補尺寸，不要只調分數&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#PageSpeed-Insights-%E6%8C%87%E5%87%BA-JavaScript-%E5%A4%AA%E5%A4%9A%E5%85%88%E5%95%8F%E9%80%99%E6%94%AF%E8%85%B3%E6%9C%AC%E7%9C%9F%E7%9A%84%E9%9C%80%E8%A6%81%E5%97%8E?&quot;&gt;PageSpeed Insights 指出 JavaScript 太多：先問這支腳本真的需要嗎？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E7%82%BA%E4%BB%80%E9%BA%BC%E5%90%8C%E4%B8%80%E5%80%8B%E5%BB%BA%E8%AD%B0,%E5%9C%A8-WordPress-%E4%B8%8A%E5%B8%B8%E5%B8%B8%E6%AF%94%E8%BC%83%E9%9B%A3%E8%90%BD%E5%9C%B0?&quot;&gt;為什麼同一個建議，在 WordPress 上常常比較難落地？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E6%88%91%E6%9C%83%E7%94%A8-AI-%E5%8A%A0%E9%80%9F%E4%BF%AE%E6%AD%A3,%E4%BD%86%E4%B8%8D%E6%9C%83%E8%AE%93-AI-%E7%9B%B4%E6%8E%A5%E4%BA%82%E6%94%B9%E6%95%B4%E7%AB%99&quot;&gt;我會用 AI 加速修正，但不會讓 AI 直接亂改整站&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E4%BB%80%E9%BA%BC%E6%83%85%E6%B3%81%E4%B8%8D%E8%A9%B2%E5%8F%AA%E7%82%BA%E4%BA%86-PageSpeed-Insights-%E6%8F%9B%E6%88%90-11ty?&quot;&gt;什麼情況不該只為了 PageSpeed Insights 換成 11ty？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E7%B5%90%E8%AA%9E%E6%8A%8A%E8%A8%BA%E6%96%B7%E5%BB%BA%E8%AD%B0%E8%AE%8A%E6%88%90%E5%8F%AF%E5%9F%B7%E8%A1%8C%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B8%85%E5%96%AE&quot;&gt;結語：把診斷建議變成可執行的工作清單&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-pagespeed-insights-optimization-workflow/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;先說結論PageSpeed-Insights-是診斷工具,不是框架評分表&quot;&gt;先說結論：PageSpeed Insights 是診斷工具，不是框架評分表&lt;/h2&gt;&lt;p&gt;PageSpeed Insights 不能單獨拿來比較 11ty 和 WordPress 誰比較快。它會提供實驗室資料與欄位資料，兩者用途不同：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Lighthouse 實驗室資料&lt;/strong&gt;：適合重現問題、觀察剛做的改動。&lt;li&gt;&lt;strong&gt;Chrome 使用者體驗報告（CrUX）欄位資料&lt;/strong&gt;：反映真實使用者的體驗，通常看第 75 百分位。&lt;/ul&gt;&lt;p&gt;新網站流量不足時，可能暫時沒有 CrUX 資料。這時仍然可以先用 PageSpeed Insights 和 Lighthouse 做預防性優化，但不要把一次測試的分數當成網站的永久成績單。&lt;p&gt;我會先看這三個 Core Web Vitals 指標：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;指標&lt;th&gt;它在看什麼&lt;th&gt;我通常先檢查什麼&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;LCP&lt;td&gt;首屏最大文字或圖片多久出現&lt;td&gt;hero 圖片、TTFB、阻塞 CSS、圖片是否被 lazy-load&lt;tr&gt;&lt;td&gt;CLS&lt;td&gt;頁面載入時是否跳動&lt;td&gt;圖片寬高、字體、嵌入內容和廣告預留空間&lt;tr&gt;&lt;td&gt;INP&lt;td&gt;使用者點擊或輸入後多久得到回應&lt;td&gt;第三方腳本、GTM、搜尋或互動元件&lt;/table&gt;&lt;p&gt;如果 PageSpeed Insights 顯示 95 分，但 Search Console 的 Core Web Vitals 仍有大量需要改善的 URL，我不會只看著實驗室分數自我安慰，而會回頭確認真實裝置和真實網路條件。&lt;h2 id=&quot;我的-11ty-優化循環測量定位直接修改再驗證&quot;&gt;我的 11ty 優化循環：測量、定位、直接修改、再驗證&lt;/h2&gt;&lt;p&gt;我通常照下面的順序做：&lt;ol&gt;&lt;li&gt;固定同一個 URL 或首頁當測試條件，先跑 PageSpeed Insights，記下 LCP、CLS、INP、FCP 和診斷項目。&lt;li&gt;找出問題對應的實際 HTML 元素或網路請求，例如「LCP 元素」是哪張圖，或是哪支腳本造成長任務。&lt;li&gt;把診斷原文貼給 AI，一次只請它改一類問題（例如只修 LCP 首圖），並寫清楚「不要動哪些檔案」。&lt;li&gt;在本機 build，檢查輸出的網頁是否真的產生預期的 HTML 和資產。&lt;li&gt;部署後用相同 URL 重跑 PageSpeed Insights，記錄改了什麼、分數和診斷如何變化。&lt;li&gt;如果是 GTM 或分析工具，除了看效能，也確認事件和轉換追蹤沒有被犧牲。&lt;/ol&gt;&lt;p&gt;一次只改一類問題，比較容易判斷因果。這一輪只處理圖片，下一輪再處理第三方腳本；如果同時換模板、換 CDN、刪掉五個外掛，最後就算分數變好，也很難知道真正有效的是什麼。&lt;p&gt;如果要在本機重現，先讓網站用和正式環境接近的方式完成 build，再用 Lighthouse 測試可存取的 URL。不要直接拿開發伺服器的熱更新狀態和正式網站比較，否則很容易把「開發工具的噪音」誤認成效能問題。&lt;pre class=&quot;language-shell&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; run build
&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;exec&lt;/span&gt; lighthouse https://example.com/某篇文章/ &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
	&lt;span class=&quot;token parameter variable&quot;&gt;--output&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;html &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
	--output-path&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;./lighthouse-report.html &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
	--chrome-flags&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;--headless&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;PageSpeed Insights 適合看整體診斷與欄位資料；Lighthouse 則適合在你能控制的測試環境裡重現問題。兩者不是互相競爭的咖啡師，而是不同杯型的量杯。&lt;h3 id=&quot;通用提示詞骨架可複製後改診斷內容&quot;&gt;通用提示詞骨架（可複製後改診斷內容）&lt;/h3&gt;&lt;p&gt;無論修 LCP、CLS 還是腳本，我都會先用類似這樣的骨架：&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;這是一個 11ty（Eleventy）網站專案。請依 PageSpeed Insights 診斷修正，一次只處理一類問題。

【目標頁面】
https://example.com/某篇文章/

【這次只要處理】
（例如：LCP 首圖太慢 / CLS 圖片缺尺寸 / 第三方 JS 長任務）

【PageSpeed Insights 原文診斷】
（把 Opportunities、Diagnostics、LCP element、相關 network request 整段貼上）

【專案限制】
- 只改與這次問題直接相關的模板、CSS、圖片設定或 JS
- 不要改 URL、permalink、追蹤 ID、部署腳本、與效能無關的內容文案
- 不要一次「整站優化到 100 分」
- 改完請說明改了哪些檔案、為什麼這樣改，並列出我應手動驗證的項目

請先定位對應檔案與輸出 HTML，再提出最小修改。改完請跑本機 build（若專案有現成指令），確認沒有 build 錯誤。&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;提示詞寫得越具體，AI 越不會順便重構半個站。咖啡加太多糖也不好喝；優化提示詞也一樣，甜度要剛好。&lt;h2 id=&quot;PageSpeed-Insights-指出-LCP-慢先找真正的最大元素&quot;&gt;PageSpeed Insights 指出 LCP 慢：先找真正的最大元素&lt;/h2&gt;&lt;p&gt;LCP 常常是文章首圖、hero 圖或 H1，但不能只憑猜測決定。先在報告裡確認 LCP element，再針對那個元素處理。最常見的錯誤，是把首屏圖片也加上 &lt;code&gt;loading=&amp;quot;lazy&amp;quot;&lt;/code&gt;。懶載入適合視窗外的圖片，但會讓瀏覽器更晚發現 LCP 資源。&lt;p&gt;我會先做幾件事：&lt;ul&gt;&lt;li&gt;把圖片轉成 WebP 或 AVIF。&lt;li&gt;讓圖片尺寸接近實際顯示寬度，不要把幾千像素的原圖直接送給手機。&lt;li&gt;為圖片寫上正確的 &lt;code&gt;width&lt;/code&gt; 和 &lt;code&gt;height&lt;/code&gt;。&lt;li&gt;首屏圖片視情況使用 &lt;code&gt;loading=&amp;quot;eager&amp;quot;&lt;/code&gt; 和 &lt;code&gt;fetchpriority=&amp;quot;high&amp;quot;&lt;/code&gt;。&lt;li&gt;只有最重要的一、兩個資源使用高優先權，不要所有圖片都搶同一個優先級。&lt;/ul&gt;&lt;p&gt;例如首圖可以像這樣：&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/img/hero.webp&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;1200&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;630&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;文章主視覺&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;loading&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;eager&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token attr-name&quot;&gt;fetchpriority&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;high&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果網站圖片很多，我會再導入 &lt;a href=&quot;https://www.11ty.dev/docs/plugins/image/&quot;&gt;&lt;code&gt;@11ty/eleventy-img&lt;/code&gt;&lt;/a&gt;。它可以在 build 時產生多種格式和寬度，並依產生的圖片資料協助輸出尺寸與 &lt;code&gt;srcset&lt;/code&gt;。這比每次寫文章都手動處理圖片可靠。&lt;p&gt;不過圖片管道的輸出仍要檢查：即使圖片工具產生了 &lt;code&gt;srcset&lt;/code&gt;，也不代表瀏覽器一定會用到最適合的候選檔案；而且 hero 圖的載入策略仍要個別確認。&lt;h3 id=&quot;給-AI-的提示詞範例LCP&quot;&gt;給 AI 的提示詞範例（LCP）&lt;/h3&gt;&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;請只處理 LCP，不要動第三方腳本，也不要順便改 CLS 版面預留。

PageSpeed Insights 指出 LCP 元素是：（貼上 LCP element 截圖或文字，例如 article hero img）
目前問題可能包含：圖片過大、格式不是 WebP/AVIF、誤用 loading=&quot;lazy&quot;、缺少 fetchpriority、缺少明確 width/height。

請在這個 11ty 專案中：
1. 找出產生該 LCP 圖片的 Markdown / layout / Image Transform 設定
2. 讓首屏圖片改為 loading=&quot;eager&quot;、fetchpriority=&quot;high&quot;，並確保有 width/height
3. 確認視窗外圖片仍可 lazy-load，不要全站改成 eager
4. 若已使用 @11ty/eleventy-img，優先在既有管道調整，不要另開一套圖片流程
5. 改完說明輸出 HTML 應長什麼樣子，並列出我要驗證的項目&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;AI-做完後,你要審核什麼LCP&quot;&gt;AI 做完後，你要審核什麼（LCP）&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;diff 範圍&lt;/strong&gt;：是不是只動了首圖／hero 相關模板或圖片設定，沒有順便改追蹤碼或全站 CSS。&lt;li&gt;&lt;strong&gt;輸出 HTML&lt;/strong&gt;：本機 build 後打開該頁原始碼，確認 LCP 圖真的是 &lt;code&gt;eager&lt;/code&gt; + &lt;code&gt;fetchpriority=&amp;quot;high&amp;quot;&lt;/code&gt;，且有 &lt;code&gt;width&lt;/code&gt;/&lt;code&gt;height&lt;/code&gt;。&lt;li&gt;&lt;strong&gt;不要誤傷下文圖片&lt;/strong&gt;：文章中段、側欄、相關文章縮圖仍應 lazy；若全部變 eager，會反而搶頻寬。&lt;li&gt;&lt;strong&gt;實際載入&lt;/strong&gt;：用瀏覽器 DevTools Network，確認首屏圖優先被請求，且尺寸合理（不是幾千像素原圖硬塞手機）。&lt;li&gt;&lt;strong&gt;重測&lt;/strong&gt;：同一 URL 再跑 PageSpeed Insights，看 LCP 與「Improve image delivery」類診斷是否改善。&lt;/ul&gt;&lt;h2 id=&quot;PageSpeed-Insights-指出-CLS先補尺寸,不要只調分數&quot;&gt;PageSpeed Insights 指出 CLS：先補尺寸，不要只調分數&lt;/h2&gt;&lt;p&gt;CLS 的問題常常不是 11ty 本身造成，而是輸出的 HTML 沒有告訴瀏覽器圖片會佔多大空間。圖片載入後才撐開版面，讀者原本要點的按鈕就可能被推走。&lt;p&gt;我的檢查順序是：&lt;ol&gt;&lt;li&gt;找出全站 &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;，確認是否都有真實的 &lt;code&gt;width&lt;/code&gt; 和 &lt;code&gt;height&lt;/code&gt;，或有可預期的 &lt;code&gt;aspect-ratio&lt;/code&gt;。&lt;li&gt;檢查 YouTube、社群貼文和其他 iframe 是否有固定比例或預留高度。&lt;li&gt;檢查 web font 載入後是否造成文字換行和版面位移。&lt;li&gt;檢查 cookie、聯盟揭露或廣告區塊是否在內容上方突然插入。&lt;/ol&gt;&lt;p&gt;這也是 11ty 好處很明顯的地方：我可以在共用 layout、shortcode 或 Image Transform 統一修正，不必逐頁打開 WordPress 編輯器，也不必猜某個外掛會不會在前端再次改寫 HTML。&lt;h3 id=&quot;給-AI-的提示詞範例CLS&quot;&gt;給 AI 的提示詞範例（CLS）&lt;/h3&gt;&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;請只處理 CLS（版面位移），不要改 LCP 優先權策略，也不要動分析／GTM 載入時機。

PageSpeed Insights 診斷：（貼上 layout shift 相關項目、受影響元素）

請在這個 11ty 專案中：
1. 找出缺少 width/height 的 &amp;lt;img&amp;gt;，以及可能造成位移的 iframe、字體、上方橫幅
2. 在 layout、shortcode 或 Image Transform 統一補上真實尺寸或 aspect-ratio
3. 若有 YouTube／社群嵌入，請用固定比例容器預留空間
4. 不要用「把內容延後載入」這種方式假裝解決 CLS
5. 改完列出改動檔案，並告訴我應在哪些頁面用肉眼看載入過程有沒有跳動&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;AI-做完後,你要審核什麼CLS&quot;&gt;AI 做完後，你要審核什麼（CLS）&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;尺寸是真的，不是亂填&lt;/strong&gt;：&lt;code&gt;width&lt;/code&gt;/&lt;code&gt;height&lt;/code&gt; 要對應實際比例；亂填會讓圖片被壓扁或裁切。&lt;li&gt;&lt;strong&gt;全站一致性&lt;/strong&gt;：共用 layout／Transform 改過後，抽查首頁、文章頁、分類頁各一頁，確認不是只修了示範頁。&lt;li&gt;&lt;strong&gt;字體與橫幅&lt;/strong&gt;：若 AI 只補了圖片尺寸，但診斷點的是 web font 或頂部通知條，要退回請它對準真正元素。&lt;li&gt;&lt;strong&gt;肉眼驗證&lt;/strong&gt;：硬重新整理時盯著標題與按鈕位置，載入過程不應上下跳；必要時開 DevTools 的 Layout Shift regions。&lt;li&gt;&lt;strong&gt;重測&lt;/strong&gt;：同一條件重跑 PageSpeed Insights，確認 CLS 下降，且沒有為了 CLS 把首圖又改回有害的 lazy。&lt;/ul&gt;&lt;h2 id=&quot;PageSpeed-Insights-指出-JavaScript-太多先問這支腳本真的需要嗎?&quot;&gt;PageSpeed Insights 指出 JavaScript 太多：先問這支腳本真的需要嗎？&lt;/h2&gt;&lt;p&gt;純文章型 11ty 網站可以預設不載入 JavaScript，但只要加上 GA4、GTM、聊天工具、社群分享 SDK 或搜尋功能，INP 和主執行緒就可能開始變差。這裡的重點不是看到一支腳本就立刻刪掉，而是確認它在什麼時機、做了多少工作，以及功能是否真的需要它。&lt;p&gt;我會先做腳本盤點：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;腳本類型&lt;th&gt;我的處理方式&lt;th&gt;需要注意的取捨&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;不再使用的追蹤或聊天工具&lt;td&gt;直接移除&lt;td&gt;先確認沒有業務依賴&lt;tr&gt;&lt;td&gt;非關鍵分析&lt;td&gt;延後到 &lt;code&gt;window&lt;/code&gt; loaded 或 idle&lt;td&gt;早期 pageview 可能遺失&lt;tr&gt;&lt;td&gt;使用者點擊後才需要的功能&lt;td&gt;點擊時才載入&lt;td&gt;第一次互動可能需要等待&lt;tr&gt;&lt;td&gt;需要精準記錄的轉換事件&lt;td&gt;保留即時路徑或精簡標籤&lt;td&gt;不能只為了效能犧牲轉換資料&lt;tr&gt;&lt;td&gt;社群分享&lt;td&gt;優先用普通連結取代 SDK&lt;td&gt;互動效果較少，但前端更輕&lt;/table&gt;&lt;p&gt;GTM 不能只看 &lt;code&gt;gtm.js&lt;/code&gt; 檔案大小。真正的成本可能來自容器裡的 Facebook Pixel、Hotjar、GA4 或其他標籤執行後造成的長任務。&lt;p&gt;如果採用 &lt;code&gt;requestIdleCallback&lt;/code&gt; 或互動後載入，也要測試事件是否仍能在導向前送出，不能只看分數變好了就算完成。瀏覽器分數變漂亮了，分析資料卻少一半，這種優化就像把咖啡杯擦得發亮，結果裡面根本沒有咖啡。&lt;p&gt;下面是概念範例，不是可以直接套到所有分析工具的通用初始化碼。實際使用前，仍要依工具文件確認初始化順序、事件佇列和瀏覽器支援情況：&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;loadAnalytics&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// 在這裡載入或初始化非關鍵分析工具。&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;requestIdleCallback&#39;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; window&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;requestIdleCallback&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;loadAnalytics&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;timeout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setTimeout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;loadAnalytics&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;requestIdleCallback&lt;/code&gt; 是「有空再做」的安排，不是「一定在某個時間完成」的保證；&lt;code&gt;timeout&lt;/code&gt; 也不是分析事件送達的保證。若事件很重要，應該設計可接受的備援，並用瀏覽器 Network 或工具的除錯模式確認它真的送出。&lt;h3 id=&quot;給-AI-的提示詞範例第三方-JavaScript&quot;&gt;給 AI 的提示詞範例（第三方 JavaScript）&lt;/h3&gt;&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;請只處理第三方／非關鍵 JavaScript 對 INP 與主執行緒的影響，不要改圖片與版面尺寸。

PageSpeed Insights 診斷：（貼上 Unused JavaScript、Reduce JavaScript execution time、長任務、相關 URL）

腳本盤點現況（請先對照專案後再改）：
- 必須保留且需準確的：（例如 GA4 轉換、主要 pageview）
- 可延後的：（例如非關鍵分析）
- 可改為點擊才載入或改成普通連結的：（例如社群 SDK）
- 可移除的：（例如已停用的聊天工具）

請提出最小修改：
1. 先盤點 layout／site.js 實際載入了哪些腳本
2. 依上表延後、互動後載入或移除；不要默默刪掉我標記為必須保留的追蹤
3. 若使用 requestIdleCallback 或 loaded 後載入，請說明對早期 pageview 的取捨
4. 改完列出我應如何驗證：效能重測 + 分析事件是否仍會送出&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;AI-做完後,你要審核什麼JavaScript&quot;&gt;AI 做完後，你要審核什麼（JavaScript）&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;業務依賴&lt;/strong&gt;：確認沒有刪掉仍在用的聊天、廣告、轉換標籤；diff 裡出現追蹤 ID 變更要特別小心。&lt;li&gt;&lt;strong&gt;載入時機&lt;/strong&gt;：非關鍵腳本是否真的延後；關鍵轉換路徑是否仍即時或有可接受的備援。&lt;li&gt;&lt;strong&gt;功能回歸&lt;/strong&gt;：搜尋、主題切換、表單、分享按鈕在本機點一輪，確認第一次互動不會整頁壞掉。&lt;li&gt;&lt;strong&gt;分析驗證&lt;/strong&gt;：開 GA4／GTM 預覽或 Network 過濾相關請求，確認 pageview／轉換在典型瀏覽路徑仍會送出。&lt;li&gt;&lt;strong&gt;重測&lt;/strong&gt;：同一 URL 看 INP／主執行緒診斷是否改善；分數變好但事件消失，這輪算失敗，要回滾或縮小範圍。&lt;/ul&gt;&lt;h2 id=&quot;為什麼同一個建議,在-WordPress-上常常比較難落地?&quot;&gt;為什麼同一個建議，在 WordPress 上常常比較難落地？&lt;/h2&gt;&lt;p&gt;這不是說 WordPress 完全不能優化。簡單、乾淨的 WordPress 站也可能有很好的效能；反過來，11ty 如果塞滿大圖、第三方腳本和錯誤模板，也一樣會拿到差分數。&lt;p&gt;差異在於問題的可控程度：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;PageSpeed Insights 顯示的問題&lt;th&gt;11ty 常見修改位置&lt;th&gt;WordPress 常見限制&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;LCP 圖片太慢&lt;td&gt;Markdown、template、&lt;code&gt;eleventy-img&lt;/code&gt;、HTML 屬性&lt;td&gt;佈景主題、圖片外掛、頁面編輯器可能都有關聯&lt;tr&gt;&lt;td&gt;CLS 版面位移&lt;td&gt;layout、CSS、Image Transform&lt;td&gt;主題元件、廣告或外掛動態插入內容&lt;tr&gt;&lt;td&gt;CSS 太多&lt;td&gt;直接整理模板和 CSS&lt;td&gt;主題與外掛各自載入，停用可能影響版面&lt;tr&gt;&lt;td&gt;JavaScript 阻塞&lt;td&gt;直接刪除、延後或修改載入策略&lt;td&gt;外掛可能依賴特定順序，更新後又重新注入&lt;tr&gt;&lt;td&gt;TTFB 偏高&lt;td&gt;靜態輸出、CDN、快取設定&lt;td&gt;PHP、資料庫、主機和快取外掛互相影響&lt;/table&gt;&lt;p&gt;簡單說，WordPress 的問題常是「我知道哪裡慢，但改了會不會破壞整個站？」；11ty 比較常是「我知道哪個檔案要改，改完 build 驗證就好」。&lt;h2 id=&quot;我會用-AI-加速修正,但不會讓-AI-直接亂改整站&quot;&gt;我會用 AI 加速修正，但不會讓 AI 直接亂改整站&lt;/h2&gt;&lt;p&gt;AI 很適合把 PageSpeed Insights 的診斷轉成候選 patch，例如：&lt;ul&gt;&lt;li&gt;找出 layout 中所有沒有尺寸的圖片。&lt;li&gt;檢查 hero 圖是否誤用了 lazy-loading。&lt;li&gt;依目前的模板補上 &lt;code&gt;fetchpriority&lt;/code&gt; 或 &lt;code&gt;srcset&lt;/code&gt;。&lt;li&gt;找出可能重複載入的 CSS 和 JavaScript。&lt;li&gt;產生一個小範圍的 CSS 或模板修改。&lt;/ul&gt;&lt;p&gt;但我會把 AI 當成能快速工作的實習生，而不是自動批准的部署工具。我的流程是：&lt;ol&gt;&lt;li&gt;先把 PageSpeed Insights 的原文診斷、目標指標和不能改動的範圍講清楚。&lt;li&gt;要 AI 一次只改一個檔案或一類問題。&lt;li&gt;讀 diff，確認它沒有順便改掉 URL、追蹤 ID 或其他不相關設定。&lt;li&gt;本機 build，檢查輸出 HTML。&lt;li&gt;用瀏覽器實際點一輪，確認圖片、選單、搜尋功能正常。&lt;li&gt;重新跑 PageSpeed Insights，並把改動和結果記錄下來。&lt;/ol&gt;&lt;h3 id=&quot;提示詞要寫清楚的五件事&quot;&gt;提示詞要寫清楚的五件事&lt;/h3&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;要寫清楚&lt;th&gt;為什麼重要&lt;th&gt;壞例子&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;目標頁面 URL&lt;td&gt;避免 AI 改到不相干的模板&lt;td&gt;「把網站變快」&lt;tr&gt;&lt;td&gt;只處理哪一個指標／診斷&lt;td&gt;方便對照前後測結果&lt;td&gt;「LCP、CLS、JS 一次修完」&lt;tr&gt;&lt;td&gt;診斷原文或截圖重點&lt;td&gt;讓 AI 對準真實元素，不是猜&lt;td&gt;「感覺首圖有點慢」&lt;tr&gt;&lt;td&gt;禁止改動的範圍&lt;td&gt;防止誤改追蹤、部署、文案&lt;td&gt;完全不設限制&lt;tr&gt;&lt;td&gt;完成後要回報什麼&lt;td&gt;你審核時有檢查清單&lt;td&gt;「改好跟我說一聲」&lt;/table&gt;&lt;h3 id=&quot;AI-交卷後的總審核清單&quot;&gt;AI 交卷後的總審核清單&lt;/h3&gt;&lt;p&gt;不管這輪修的是圖片還是腳本，我都會用同一張清單過一遍：&lt;ol&gt;&lt;li&gt;&lt;strong&gt;範圍&lt;/strong&gt;：diff 是否只涵蓋這次約定的問題？有沒有「順便重構」？&lt;li&gt;&lt;strong&gt;正確性&lt;/strong&gt;：輸出 HTML／CSS／JS 是否真的對應診斷（例如修 LCP 卻只改了下文 lazy 圖）？&lt;li&gt;&lt;strong&gt;回歸&lt;/strong&gt;：導覽、搜尋、深色模式、表單、內嵌內容是否仍可用？&lt;li&gt;&lt;strong&gt;資料&lt;/strong&gt;：若動過 GTM／分析，事件與轉換是否仍正確？&lt;li&gt;&lt;strong&gt;驗證&lt;/strong&gt;：同一 URL、相近條件重測後，目標指標是否改善？有沒有其他指標明顯變差？&lt;li&gt;&lt;strong&gt;紀錄&lt;/strong&gt;：這輪改了什麼、前後分數／診斷差異寫下來，方便之後回顧或回滾。&lt;/ol&gt;&lt;p&gt;AI 可以幫我縮短「從診斷到修改」的時間，但不能替我判斷該不該犧牲分析資料，也不能保證它產生的 HTML 一定符合這個網站的模板結構，最好是本機開發審核做完再部署。&lt;p&gt;先上線再祈禱，比較像賭咖啡因，不像做優化。&lt;h2 id=&quot;什麼情況不該只為了-PageSpeed-Insights-換成-11ty?&quot;&gt;什麼情況不該只為了 PageSpeed Insights 換成 11ty？&lt;/h2&gt;&lt;p&gt;如果網站核心是 WooCommerce、會員、論壇、即時資料或複雜表單，WordPress 的動態能力可能比純靜態效能更重要。若團隊每天都需要非技術人員從後台發文，也要把編輯效率算進去。&lt;p&gt;我會把選擇簡化成這樣：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;如果你的情況是&lt;th&gt;比較合理的方向&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;文章和教學為主，願意用 Git，PageSpeed Insights 長期有明確問題&lt;td&gt;評估 11ty，或先把部分頁面靜態化&lt;tr&gt;&lt;td&gt;WordPress 站很簡單，只是圖片和腳本沒整理&lt;td&gt;先做圖片、快取、外掛和第三方腳本盤點&lt;tr&gt;&lt;td&gt;每天靠後台編輯，沒有技術人員維護 build&lt;td&gt;留在 WordPress，優先找出可安全調整的瓶頸&lt;tr&gt;&lt;td&gt;電商、會員和複雜表單是核心&lt;td&gt;留 WordPress，或評估 headless WordPress 加靜態前台&lt;/table&gt;&lt;p&gt;換成 11ty 也不是 SEO 自動升級。URL、301、sitemap、canonical、內容品質和內部連結仍然要維護。11ty 解決的是「前端和輸出 HTML 更容易控制」，不是替你完成整套 SEO。&lt;h2 id=&quot;結語把診斷建議變成可執行的工作清單&quot;&gt;結語：把診斷建議變成可執行的工作清單&lt;/h2&gt;&lt;p&gt;我喜歡用 11ty 做效能優化，並不是因為它能保證每個網站都拿到滿分，而是因為 PageSpeed Insights 指出問題後，通常可以直接找到對應的模板、CSS、圖片或腳本來修改。&lt;p&gt;最值得記住的三件事：&lt;ul&gt;&lt;li&gt;LCP 先找真正的最大元素，首圖不要盲目 lazy-load；提示詞要貼診斷原文，審核輸出 HTML 的 &lt;code&gt;eager&lt;/code&gt;／&lt;code&gt;fetchpriority&lt;/code&gt;。&lt;li&gt;CLS 先補圖片尺寸和版面預留；審核時確認尺寸是真比例，並用肉眼看載入有沒有跳。&lt;li&gt;INP 先盤點第三方 JavaScript；AI 延後腳本後，一定要驗證分析和轉換資料還在。&lt;/ul&gt;&lt;p&gt;如果你也在維護 11ty 網站，可以先選一個代表性頁面跑一次 &lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;，把第一個最具體的診斷貼進上面的提示詞骨架，讓 AI 做最小修改，再用同一張審核清單過完、相同條件重測。先從一個問題開始，通常比一次叫 AI「把整站優化到 100 分」更容易得到可驗證的結果。審完，再來一杯咖啡。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt; — Google 的網頁效能檢測工具，可查看 Lighthouse 實驗室資料與 CrUX 欄位資料。&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/lighthouse/overview&quot;&gt;Lighthouse 文件&lt;/a&gt; — Lighthouse 的用途、報告與本機測試說明。&lt;li&gt;&lt;a href=&quot;https://web.dev/articles/vitals&quot;&gt;Web Vitals（web.dev）&lt;/a&gt; — LCP、CLS、INP 等 Core Web Vitals 的定義與評估方式。&lt;li&gt;&lt;a href=&quot;https://web.dev/articles/lcp&quot;&gt;Largest Contentful Paint（web.dev）&lt;/a&gt; — LCP 的計算方式與常見優化方向。&lt;li&gt;&lt;a href=&quot;https://web.dev/articles/cls&quot;&gt;Cumulative Layout Shift（web.dev）&lt;/a&gt; — CLS 的成因、計算方式與版面穩定性建議。&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/docs/plugins/image/&quot;&gt;Eleventy Image&lt;/a&gt; — &lt;code&gt;@11ty/eleventy-img&lt;/code&gt; 的官方文件，說明圖片格式、尺寸與 &lt;code&gt;srcset&lt;/code&gt; 產生方式。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Pagefind 教學：如何為 Eleventy 靜態網站加入純前端搜尋</title>
    <link href="https://kamadiam.com/pagefind-eleventy-static-site-search/" />
    <updated>2026-08-04T06:51:00Z</updated>
    <id>https://kamadiam.com/pagefind-eleventy-static-site-search/</id>
    <content type="html">&lt;h1 id=&quot;Pagefind-教學如何為-Eleventy-靜態網站加入純前端搜尋&quot;&gt;Pagefind 教學：如何為 Eleventy 靜態網站加入純前端搜尋&lt;/h1&gt;&lt;p&gt;文章一多，讀者只靠導覽列和分類頁，找舊文就像在咖啡渣裡找關鍵字。這時先別急著架資料庫：對以文章為主的 Eleventy 靜態網站來說，Pagefind 通常已經很夠用。&lt;p&gt;這篇會帶你弄懂 Pagefind 的工作方式，接著完成 layout 標記、build 後建立索引，以及繁體中文搜尋的驗收。讀完後，你應該能判斷 Pagefind 是否適合自己的網站，也知道搜尋失靈時該從哪裡查起。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#Pagefind-%E6%98%AF%E4%BB%80%E9%BA%BC?&quot;&gt;Pagefind 是什麼？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E9%96%8B%E5%A7%8B%E5%89%8D%E5%85%88%E7%A2%BA%E8%AA%8D%E4%B8%89%E4%BB%B6%E4%BA%8B&quot;&gt;開始前先確認三件事&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%AC%AC%E4%B8%80%E6%AD%A5%E9%81%B8%E6%93%87-Pagefind-UI-%E7%89%88%E6%9C%AC&quot;&gt;第一步：選擇 Pagefind UI 版本&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E5%91%8A%E8%A8%B4-Pagefind-%E8%A6%81%E7%B4%A2%E5%BC%95%E4%BB%80%E9%BA%BC&quot;&gt;第二步：告訴 Pagefind 要索引什麼&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%AC%AC%E4%B8%89%E6%AD%A5%E5%9C%A8-Eleventy-build-%E5%BE%8C%E5%BB%BA%E7%AB%8B%E7%B4%A2%E5%BC%95&quot;&gt;第三步：在 Eleventy build 後建立索引&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%AC%AC%E5%9B%9B%E6%AD%A5%E6%8A%8A%E6%B5%81%E7%A8%8B%E6%8E%A5%E9%80%B2-package.json&quot;&gt;第四步：把流程接進 package.json&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87%E6%90%9C%E5%B0%8B%E8%A6%81%E6%80%8E%E9%BA%BC%E9%A9%97%E6%94%B6?&quot;&gt;繁體中文搜尋要怎麼驗收？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C%E6%8E%92%E6%9F%A5&quot;&gt;常見問題排查&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E7%B5%90%E8%AA%9E%E5%85%88%E8%A7%A3%E6%B1%BA%E6%90%9C%E5%B0%8B,%E5%86%8D%E8%80%83%E6%85%AE%E5%8D%87%E7%B4%9A&quot;&gt;結語：先解決搜尋，再考慮升級&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/pagefind-eleventy-static-site-search/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;Pagefind-是什麼?&quot;&gt;Pagefind 是什麼？&lt;/h2&gt;&lt;p&gt;Pagefind 是在 build 後處理靜態 HTML 的搜尋工具。它會讀取網站輸出的 HTML，建立一組可由瀏覽器載入的索引檔；訪客搜尋時，結果在前端計算，不需要另開一個搜尋 API 或資料庫伺服器。&lt;p&gt;所以它很適合個人部落格、文件站和產品說明站。文章更新後重新 build，索引也跟著重建。反過來說，如果你的資料需要登入權限、個人化結果或即時更新，Pagefind 不是後端搜尋的替代品——咖啡濾紙也不能拿來當資料庫。&lt;h2 id=&quot;開始前先確認三件事&quot;&gt;開始前先確認三件事&lt;/h2&gt;&lt;p&gt;你需要一個能正常輸出 &lt;code&gt;_site/&lt;/code&gt; 的 Eleventy 專案，並確認共用 layout 的 &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; 有語言標記：&lt;pre class=&quot;language-njk&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-njk&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;!&lt;span class=&quot;token variable&quot;&gt;doctype&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;zh-Hant&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
		
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
		
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;語言標記不是裝飾。Pagefind 會在索引時讀取 &lt;code&gt;&amp;lt;html lang&amp;gt;&lt;/code&gt;，依語言分開建立索引；瀏覽器初始化搜尋時，也會依目前頁面的語言載入對應索引。繁體中文網站通常可以使用 &lt;code&gt;zh-Hant&lt;/code&gt;，但仍應用實際文章內容測試。&lt;p&gt;另外，請先單獨確認 Eleventy build 沒有錯誤。Pagefind 只能處理已經產生的靜態檔案，不能替你修好前一步的模板錯誤。&lt;h2 id=&quot;第一步選擇-Pagefind-UI-版本&quot;&gt;第一步：選擇 Pagefind UI 版本&lt;/h2&gt;&lt;p&gt;Pagefind 的搜尋索引和搜尋介面是兩件事。索引先由 CLI 建立，UI 再載入 &lt;code&gt;/pagefind/&lt;/code&gt; 裡產生的資產。&lt;p&gt;目前常見的兩種 UI 寫法，不能直接混在一起：&lt;ul&gt;&lt;li&gt;Pagefind 1.4 及更早版本常用 Default UI：載入 &lt;code&gt;pagefind-ui.css&lt;/code&gt;、&lt;code&gt;pagefind-ui.js&lt;/code&gt;，再用 &lt;code&gt;new PagefindUI(...)&lt;/code&gt; 初始化。&lt;li&gt;Pagefind 1.5 開始提供 Component UI：使用 &lt;code&gt;pagefind-component-ui.css&lt;/code&gt;、&lt;code&gt;pagefind-component-ui.js&lt;/code&gt; 和自訂元素，例如 &lt;code&gt;&amp;lt;pagefind-modal&amp;gt;&lt;/code&gt;。&lt;/ul&gt;&lt;p&gt;先看專案的 &lt;code&gt;package.json&lt;/code&gt; 版本，再照對應文件操作。本文以 Pagefind 1.4 的 Default UI 示範，因為這是目前專案使用的版本。&lt;p&gt;在共用 layout 放入 CSS 與搜尋容器：&lt;pre class=&quot;language-njk&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-njk&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;stylesheet&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/pagefind/pagefind-ui.css&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;div&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;search&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;接著在 JavaScript 中載入並初始化 UI：&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; pagefindScript &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;script&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
pagefindScript&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;src &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;/pagefind/pagefind-ui.js&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
pagefindScript&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;onload&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;PagefindUI&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;element&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;#search&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;showSubResults&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;body&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pagefindScript&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;你也可以在頁面載入時直接用 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 載入；只有在訪客打開搜尋時才載入，則能避免每個頁面一開始都下載搜尋程式。重點是：不論採用哪種載入時機，索引尚未建立前，&lt;code&gt;/pagefind/&lt;/code&gt; 下的檔案都不存在，看到 404 不一定是 UI 寫錯。&lt;h2 id=&quot;第二步告訴-Pagefind-要索引什麼&quot;&gt;第二步：告訴 Pagefind 要索引什麼&lt;/h2&gt;&lt;p&gt;Pagefind 預設會處理頁面內容，但你可以用 &lt;code&gt;data-pagefind-body&lt;/code&gt; 把範圍縮小，用 &lt;code&gt;data-pagefind-ignore&lt;/code&gt; 排除固定介面：&lt;pre class=&quot;language-njk&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-njk&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;pagefind&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ignore&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
		網站導覽
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;pagefind&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
		
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;footer&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;pagefind&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ignore&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
		頁尾資訊
	&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;footer&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;這三個標記各自做一件事：&lt;ol&gt;&lt;li&gt;&lt;code&gt;lang=&amp;quot;zh-Hant&amp;quot;&lt;/code&gt; 提供語言資訊，讓 Pagefind 進行對應的語言處理。&lt;li&gt;&lt;code&gt;data-pagefind-body&lt;/code&gt; 指定頁面真正要被搜尋的內容。&lt;li&gt;&lt;code&gt;data-pagefind-ignore&lt;/code&gt; 排除導覽列、頁尾或分享按鈕，避免固定文字污染每一筆結果。&lt;/ol&gt;&lt;p&gt;有一個容易漏掉的規則：只要網站任何頁面使用了 &lt;code&gt;data-pagefind-body&lt;/code&gt;，沒有這個標記的頁面就不會被索引。因此，如果首頁、分類頁也要出現在搜尋結果裡，它們同樣要標記搜尋主體。&lt;p&gt;&lt;code&gt;data-pagefind-ignore&lt;/code&gt; 是「排除元素」；它不會讓整頁消失。把它放在 header 或 footer 上，文章正文仍然會被索引。&lt;h2 id=&quot;第三步在-Eleventy-build-後建立索引&quot;&gt;第三步：在 Eleventy build 後建立索引&lt;/h2&gt;&lt;p&gt;先建立網站，再把輸出目錄交給 Pagefind。使用專案已安裝並鎖定版本的 CLI，通常比每次用 &lt;code&gt;npx -y&lt;/code&gt; 下載最新版更容易重現：&lt;pre class=&quot;language-shell&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;exec&lt;/span&gt; eleventy
&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;exec&lt;/span&gt; pagefind &lt;span class=&quot;token parameter variable&quot;&gt;--site&lt;/span&gt; _site &lt;span class=&quot;token parameter variable&quot;&gt;--glob&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;**/*.html&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;成功後，輸出目錄會出現 &lt;code&gt;_site/pagefind/&lt;/code&gt;，裡面包含索引資料，以及 UI 需要的 JavaScript 和 CSS。Pagefind 本身沒有搜尋後端；這些檔案部署到同一個靜態網站後，瀏覽器就能載入它們。&lt;p&gt;如果想快速測試，也可以讓 Pagefind 在建立索引後提供本機靜態伺服器：&lt;pre class=&quot;language-shell&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;exec&lt;/span&gt; pagefind &lt;span class=&quot;token parameter variable&quot;&gt;--site&lt;/span&gt; _site &lt;span class=&quot;token parameter variable&quot;&gt;--glob&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;**/*.html&#39;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--serve&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;這個 &lt;code&gt;--serve&lt;/code&gt; 是方便開發時測試的本機伺服器，不是正式環境必須部署的服務。不要直接用 &lt;code&gt;file://&lt;/code&gt; 開啟 HTML，因為瀏覽器的模組載入和 fetch 請求可能受到本機檔案權限限制。&lt;h2 id=&quot;第四步把流程接進-package.json&quot;&gt;第四步：把流程接進 package.json&lt;/h2&gt;&lt;p&gt;手動跑兩個指令可以驗證概念，但很容易忘記第二個。把 Pagefind 接在 Eleventy 後面，每次 build 就會自動更新索引：&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;NODE_ENV=production ELEVENTY_PROFILE=true pnpm exec eleventy &amp;amp;&amp;amp; pnpm exec pagefind --site _site --glob &#92;&quot;**/*.html&#92;&quot;&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;實際專案的 build script 可能還有清理、Vite 或其他收尾步驟；請把 Pagefind 放在「所有 HTML 都完成之後」。如果部署平台只執行 Eleventy，卻沒有執行 Pagefind，正式站自然不會憑空長出搜尋索引。&lt;p&gt;也可以在 Eleventy 的 &lt;code&gt;eleventy.after&lt;/code&gt; 事件裡呼叫 Pagefind，但這會讓 Eleventy 設定檔同時負責建站和啟動外部程序。對多數專案而言，&lt;code&gt;package.json&lt;/code&gt; 用 &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; 串接比較容易看懂、除錯，也能確保前一步失敗時不會誤把舊索引當成新成果。&lt;h2 id=&quot;繁體中文搜尋要怎麼驗收?&quot;&gt;繁體中文搜尋要怎麼驗收？&lt;/h2&gt;&lt;p&gt;Pagefind 支援中文的分詞處理，但中文不像英文那樣以空白分隔；搜尋結果仍然取決於索引內容和查詢方式。這不是「加上 &lt;code&gt;lang&lt;/code&gt; 就保證什麼都找得到」，所以請用真正的文章做測試。&lt;p&gt;部署前至少走過這份清單：&lt;ul&gt;&lt;li&gt;[ ] Eleventy build 成功，沒有模板或資產錯誤。&lt;li&gt;[ ] &lt;code&gt;_site/pagefind/&lt;/code&gt; 存在，且正式網址能載入 &lt;code&gt;/pagefind/&lt;/code&gt; 下的檔案。&lt;li&gt;[ ] 搜尋一個確定存在的文章標題，可以回傳結果。&lt;li&gt;[ ] 搜尋兩三個繁體中文詞組，例如「網站安全」或「靜態網站」。&lt;li&gt;[ ] 搜尋結果沒有被導覽列、頁尾或分享按鈕的固定文字洗版。&lt;li&gt;[ ] 修改文章後重新 build，結果中的摘要已更新。&lt;/ul&gt;&lt;p&gt;若網站同時有多種語言，請讓每個頁面的 &lt;code&gt;&amp;lt;html lang&amp;gt;&lt;/code&gt; 正確反映內容，不要全部硬寫成同一種語言。Pagefind 會依語言分開索引；標記錯誤，等於把書放進錯的書架，搜尋當然會繞遠路。&lt;h2 id=&quot;常見問題排查&quot;&gt;常見問題排查&lt;/h2&gt;&lt;h3 id=&quot;搜尋框出現,卻沒有結果&quot;&gt;搜尋框出現，卻沒有結果&lt;/h3&gt;&lt;p&gt;先看瀏覽器 Network 面板：&lt;code&gt;/pagefind/pagefind-ui.js&lt;/code&gt;、&lt;code&gt;/pagefind/pagefind-ui.css&lt;/code&gt; 和索引檔是否回傳 404。再確認 Pagefind 指向的是包含 HTML 的輸出目錄，而不是專案原始碼目錄。&lt;h3 id=&quot;中文結果很少&quot;&gt;中文結果很少&lt;/h3&gt;&lt;p&gt;檢查 &lt;code&gt;&amp;lt;html lang&amp;gt;&lt;/code&gt; 是否存在且寫對，並用文章內確實出現的詞組測試。也檢查 &lt;code&gt;data-pagefind-body&lt;/code&gt; 是否誤放在空容器，或文章所在頁面根本沒有這個標記。不要只因為終端機出現 stemming 相關提示就移除語言標記：中文搜尋仍可運作，只是 Pagefind 不會以英文詞幹還原的方式處理中文。&lt;h3 id=&quot;首頁或分類頁沒有出現在結果裡&quot;&gt;首頁或分類頁沒有出現在結果裡&lt;/h3&gt;&lt;p&gt;這通常是 &lt;code&gt;data-pagefind-body&lt;/code&gt; 的範圍規則造成的。只標記文章 layout 時，沒有標記的首頁和分類頁會被排除；在同樣希望被搜尋的頁面補上搜尋主體即可。&lt;h3 id=&quot;搜尋結果一直出現導覽列文字&quot;&gt;搜尋結果一直出現導覽列文字&lt;/h3&gt;&lt;p&gt;將不需要搜尋的固定區塊加上 &lt;code&gt;data-pagefind-ignore&lt;/code&gt;，刪除舊的 &lt;code&gt;_site/pagefind/&lt;/code&gt; 後重新 build。只改模板、不重建索引，搜尋結果不會自己更新——索引沒有讀心術，只有讀檔術。&lt;h3 id=&quot;本機測試看起來壞掉&quot;&gt;本機測試看起來壞掉&lt;/h3&gt;&lt;p&gt;確認不是用 &lt;code&gt;file://&lt;/code&gt; 開啟 HTML，也確認 Pagefind 產出的 &lt;code&gt;/pagefind/&lt;/code&gt; 路徑和網站部署的 base path 一致。使用 &lt;code&gt;--serve&lt;/code&gt; 或其他靜態檔案伺服器重新測試，通常很快就能分辨是瀏覽器載入問題還是索引內容問題。&lt;h2 id=&quot;結語先解決搜尋,再考慮升級&quot;&gt;結語：先解決搜尋，再考慮升級&lt;/h2&gt;&lt;p&gt;對大多數 Eleventy 部落格來說，第一版站內搜尋不需要資料庫。你只要：&lt;ol&gt;&lt;li&gt;在 layout 加入與 Pagefind 版本相符的 UI。&lt;li&gt;設定正確的 &lt;code&gt;lang&lt;/code&gt;、&lt;code&gt;data-pagefind-body&lt;/code&gt; 和 &lt;code&gt;data-pagefind-ignore&lt;/code&gt;。&lt;li&gt;在每次 Eleventy build 後執行 Pagefind。&lt;li&gt;用實際的繁體中文查詢驗收。&lt;/ol&gt;&lt;p&gt;這樣就能讓讀者搜尋已部署的文章。未來若真的需要會員權限、個人化排序或即時資料，再評估後端或託管搜尋服務；先把今天的搜尋做好，咖啡才不會冷得太有深度。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/&quot;&gt;Pagefind 官方文件&lt;/a&gt;：總覽、安裝與基本整合方式。&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/running-pagefind/&quot;&gt;Running Pagefind&lt;/a&gt;：說明 &lt;code&gt;--site&lt;/code&gt;、&lt;code&gt;--serve&lt;/code&gt; 等 CLI 用法。&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/indexing/&quot;&gt;Customizing the index&lt;/a&gt;：說明 &lt;code&gt;data-pagefind-body&lt;/code&gt; 與 &lt;code&gt;data-pagefind-ignore&lt;/code&gt;。&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/multilingual/&quot;&gt;Multilingual Search&lt;/a&gt;：說明 &lt;code&gt;lang&lt;/code&gt;、多語言索引與中文分詞。&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/ui-usage/&quot;&gt;Pagefind UI Usage&lt;/a&gt;：說明 Default UI 的載入和初始化方式。&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/docs/events/&quot;&gt;Eleventy Configuration Events&lt;/a&gt;：查閱 &lt;code&gt;eleventy.after&lt;/code&gt; 等 Eleventy 事件。&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>11ty 與 Hostinger 快取怎麼設定？從 .htaccess 到更新驗收</title>
    <link href="https://kamadiam.com/11ty-hostinger-cache-setup/" />
    <updated>2026-08-04T03:44:00Z</updated>
    <id>https://kamadiam.com/11ty-hostinger-cache-setup/</id>
    <content type="html">&lt;p&gt;你把新文章部署上去，自己看得到最新版，讀者卻還在看昨天的內容？先別急著重跑 11ty，也別一杯接一杯咖啡地清快取。很多時候，問題不是建置失敗，而是瀏覽器、Hostinger、CDN 或 HTTP headers 還在提供舊檔案。&lt;p&gt;這篇會帶你用 11ty 建置 &lt;code&gt;_site&lt;/code&gt;，再依檔案類型安排 HTML、CSS、JavaScript、圖片、字型和 Pagefind 搜尋資產的快取策略。你也會看到如何在 Hostinger hPanel 清除快取，以及用 &lt;code&gt;curl&lt;/code&gt; 檢查公開網站實際回傳的 headers。快取不是壞掉的記憶體，只是它記得比你久了一點。&lt;div class=&quot;table-of-contents&quot;&gt;&lt;h2 id=&quot;目錄&quot;&gt;目錄&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E5%85%88%E8%A8%98%E4%BD%8F%E5%BF%AB%E5%8F%96%E5%8E%9F%E5%89%87&quot;&gt;先記住快取原則&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#11ty-%E8%88%87-Hostinger-%E5%90%84%E8%87%AA%E8%B2%A0%E8%B2%AC%E4%BB%80%E9%BA%BC?&quot;&gt;11ty 與 Hostinger 各自負責什麼？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E9%83%A8%E7%BD%B2%E5%89%8D%E5%85%88%E7%A2%BA%E8%AA%8D-_site&quot;&gt;部署前先確認 _site&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E4%BE%9D%E5%B0%88%E6%A1%88%E8%A8%AD%E5%AE%9A-public/.htaccess&quot;&gt;依專案設定 public/.htaccess&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E9%99%A4%E4%BA%86%E5%BF%AB%E5%8F%96,.htaccess-%E9%82%84%E8%83%BD%E8%B2%A0%E8%B2%AC%E5%93%AA%E4%BA%9B%E4%BA%8B%E6%83%85?&quot;&gt;除了快取，.htaccess 還能負責哪些事情？&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#HSTS-%E4%B8%8D%E6%98%AF%E6%AA%94%E6%A1%88%E5%BF%AB%E5%8F%96&quot;&gt;HSTS 不是檔案快取&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E9%83%A8%E7%BD%B2%E5%BE%8C%E5%88%B0-hPanel-%E6%B8%85%E9%99%A4%E5%BF%AB%E5%8F%96&quot;&gt;部署後到 hPanel 清除快取&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E7%94%A8-curl-%E9%A9%97%E6%94%B6-response-headers&quot;&gt;用 curl 驗收 response headers&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E5%BF%AB%E5%8F%96%E8%A8%AD%E5%AE%9A%E6%B1%BA%E7%AD%96%E8%A1%A8&quot;&gt;快取設定決策表&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C&quot;&gt;常見問題&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E9%83%A8%E7%BD%B2%E9%A9%97%E6%94%B6%E5%B7%A5%E5%85%B7&quot;&gt;部署驗收工具&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E7%B5%90%E8%AA%9E%E5%85%88%E5%88%86%E5%B1%A4,%E5%86%8D%E6%B1%BA%E5%AE%9A-TTL&quot;&gt;結語：先分層，再決定 TTL&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://kamadiam.com/11ty-hostinger-cache-setup/#%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot;&gt;參考資料&lt;/a&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id=&quot;先記住快取原則&quot;&gt;先記住快取原則&lt;/h2&gt;&lt;p&gt;不要把所有檔案都快取一年。比較穩定的分法是：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;HTML&lt;/strong&gt;：短時間快取，或要求瀏覽器重新驗證，因為文章和首頁會更新。&lt;li&gt;&lt;strong&gt;CSS、JavaScript、圖片、字型&lt;/strong&gt;：如果檔名包含版本號或內容指紋，可以長效快取。&lt;li&gt;&lt;strong&gt;Pagefind 搜尋資產&lt;/strong&gt;：搜尋索引會隨文章更新，不能直接套用一般靜態資產的一年 TTL。&lt;/ul&gt;&lt;p&gt;簡單說，內容頁要容易更新；URL 已經跟著內容改變的資產，才適合快取久一點。&lt;h2 id=&quot;11ty-與-Hostinger-各自負責什麼?&quot;&gt;11ty 與 Hostinger 各自負責什麼？&lt;/h2&gt;&lt;p&gt;11ty 負責把 Markdown、模板和資產建置成 &lt;code&gt;_site&lt;/code&gt; 裡的靜態檔案。它不會替你決定訪客的瀏覽器或 Hostinger CDN 要快取多久。&lt;p&gt;上線後的快取主要分成三層：&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;快取層級&lt;th&gt;作用&lt;th&gt;更新不生效時先檢查什麼&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;瀏覽器&lt;td&gt;減少訪客重複下載檔案&lt;td&gt;用無痕視窗測試&lt;tr&gt;&lt;td&gt;Hostinger 快取&lt;td&gt;減少來源站重複處理請求&lt;td&gt;hPanel 的 Clear cache 或 Cache Manager&lt;tr&gt;&lt;td&gt;CDN&lt;td&gt;讓訪客從較近的節點取得檔案&lt;td&gt;依 CDN 介面執行 Purge／Flush&lt;/table&gt;&lt;p&gt;所以，重新執行 11ty 只會更新輸出檔案，不能保證所有快取層立刻換成新版本。&lt;h2 id=&quot;部署前先確認-_site&quot;&gt;部署前先確認 &lt;code&gt;_site&lt;/code&gt;&lt;/h2&gt;&lt;p&gt;在專案根目錄執行：&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx @11ty/eleventy&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;本專案的 &lt;code&gt;pnpm run build&lt;/code&gt; 還會在 Eleventy 完成後執行 Pagefind，並寫入 &lt;code&gt;_site/pagefind/&lt;/code&gt;。如果只是先檢查 Eleventy 輸出，可以執行上面的指令；正式部署則建議直接執行：&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; run build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;接著確認 &lt;code&gt;_site&lt;/code&gt; 裡有：&lt;ul&gt;&lt;li&gt;&lt;code&gt;_site/index.html&lt;/code&gt;&lt;li&gt;最新文章的 HTML&lt;li&gt;CSS 和 JavaScript&lt;li&gt;圖片與字型&lt;li&gt;&lt;code&gt;pagefind/&lt;/code&gt; 搜尋資產（如果網站有使用 Pagefind）&lt;/ul&gt;&lt;p&gt;上傳時，要把 &lt;code&gt;_site&lt;/code&gt; &lt;strong&gt;裡面的內容&lt;/strong&gt;放到 Hostinger 的網站根目錄，常見位置是 &lt;code&gt;public_html&lt;/code&gt;。不要把整個專案原始碼上傳到公開目錄，也不要多包一層 &lt;code&gt;_site&lt;/code&gt; 資料夾。&lt;h2 id=&quot;依專案設定-public/.htaccess&quot;&gt;依專案設定 &lt;code&gt;public/.htaccess&lt;/code&gt;&lt;/h2&gt;&lt;p&gt;本專案的 &lt;code&gt;public/.htaccess&lt;/code&gt; 使用 Apache 的 &lt;code&gt;mod_expires&lt;/code&gt;、&lt;code&gt;mod_headers&lt;/code&gt; 和 &lt;code&gt;mod_setenvif&lt;/code&gt; 管理快取與 response headers。下面是與目前設定相同的重點片段；完整檔案還包含重新導向、安全標頭、Gzip 和目錄列表設定。&lt;pre class=&quot;language-apache&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-apache&quot;&gt;&amp;lt;IfModule mod_expires.c&gt;
  ExpiresActive On
  ExpiresDefault &quot;access plus 5 minutes&quot;
  ExpiresByType text/html &quot;access plus 3 minutes&quot;
  ExpiresByType text/css &quot;access plus 1 month&quot;
  ExpiresByType application/javascript &quot;access plus 1 month&quot;
  ExpiresByType application/x-javascript &quot;access plus 1 month&quot;
  ExpiresByType image/jpeg &quot;access plus 1 month&quot;
  ExpiresByType image/gif &quot;access plus 1 month&quot;
  ExpiresByType image/png &quot;access plus 1 month&quot;
  ExpiresByType image/webp &quot;access plus 1 month&quot;
  ExpiresByType image/svg+xml &quot;access plus 1 month&quot;
  ExpiresByType font/ttf &quot;access plus 1 month&quot;
  ExpiresByType font/otf &quot;access plus 1 month&quot;
  ExpiresByType font/woff &quot;access plus 1 month&quot;
  ExpiresByType font/woff2 &quot;access plus 1 month&quot;
&amp;lt;/IfModule&gt;

&amp;lt;IfModule mod_headers.c&gt;
  &amp;lt;FilesMatch &quot;&#92;.(?:html?)$&quot;&gt;
    Header set Cache-Control &quot;public, max-age=180&quot;
  &amp;lt;/FilesMatch&gt;
  &amp;lt;FilesMatch &quot;&#92;.(?:css|js|gif|jpe?g|png|webp|svg|ico|woff2?)$&quot;&gt;
    Header set Cache-Control &quot;public, max-age=31536000, immutable&quot;
  &amp;lt;/FilesMatch&gt;
  Header always set Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot;
&amp;lt;/IfModule&gt;

&amp;lt;IfModule mod_setenvif.c&gt;
  SetEnvIfNoCase Request_URI &quot;^/pagefind/&quot; pagefind_asset
&amp;lt;/IfModule&gt;
&amp;lt;IfModule mod_headers.c&gt;
  Header set Cache-Control &quot;no-cache, must-revalidate&quot; env=pagefind_asset
&amp;lt;/IfModule&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;這些設定分別做什麼?&quot;&gt;這些設定分別做什麼？&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;ExpiresActive On&lt;/code&gt;：啟用 Apache 的過期時間設定。&lt;li&gt;&lt;code&gt;ExpiresDefault &amp;quot;access plus 5 minutes&amp;quot;&lt;/code&gt;：沒有特別指定類型的檔案，預設快取五分鐘。&lt;li&gt;&lt;code&gt;ExpiresByType text/html &amp;quot;access plus 3 minutes&amp;quot;&lt;/code&gt;：HTML 的 &lt;code&gt;Expires&lt;/code&gt; 基準為三分鐘。&lt;li&gt;CSS、JavaScript、圖片和字型的 &lt;code&gt;ExpiresByType&lt;/code&gt;：先設定為快取一個月，之後資產規則會再設定明確的 &lt;code&gt;Cache-Control&lt;/code&gt;。&lt;li&gt;&lt;code&gt;Cache-Control: public, max-age=31536000, immutable&lt;/code&gt;：把符合檔名規則的 CSS、JavaScript、部分圖片、圖示與 woff 字型實際設定為快取一年。&lt;li&gt;&lt;code&gt;SetEnvIfNoCase Request_URI &amp;quot;^/pagefind/&amp;quot; pagefind_asset&lt;/code&gt;：找出 &lt;code&gt;/pagefind/&lt;/code&gt; 開頭的檔案。&lt;li&gt;&lt;code&gt;Header set Cache-Control &amp;quot;no-cache, must-revalidate&amp;quot; env=pagefind_asset&lt;/code&gt;：讓 Pagefind 更新後立即重新驗證。&lt;li&gt;&lt;code&gt;Strict-Transport-Security&lt;/code&gt;：不是檔案快取，而是告訴瀏覽器未來一年都使用 HTTPS；目前也包含 &lt;code&gt;includeSubDomains&lt;/code&gt;。&lt;/ul&gt;&lt;h3 id=&quot;一年快取有一個容易忽略的風險&quot;&gt;一年快取有一個容易忽略的風險&lt;/h3&gt;&lt;p&gt;目前的 &lt;code&gt;&amp;lt;FilesMatch&amp;gt;&lt;/code&gt; 是按照副檔名套用一年快取，並沒有檢查檔名是否真的含有內容雜湊。因此沒有版本號的 &lt;code&gt;style.css&lt;/code&gt; 或 &lt;code&gt;app.js&lt;/code&gt; 也會進入一年快取。如果這些檔案在原 URL 直接更新，訪客可能長時間拿到舊版本。&lt;p&gt;另一方面，&lt;code&gt;mjs&lt;/code&gt;、&lt;code&gt;avif&lt;/code&gt;、&lt;code&gt;ttf&lt;/code&gt; 和 &lt;code&gt;otf&lt;/code&gt; 雖然有一個月的 &lt;code&gt;ExpiresByType&lt;/code&gt;，卻不符合目前的 &lt;code&gt;&amp;lt;FilesMatch&amp;gt;&lt;/code&gt;，不會拿到一年期的 &lt;code&gt;Cache-Control&lt;/code&gt;。要維持一年 TTL，部署流程就必須確保資產 URL 會隨內容改變，或另外為未版本化資產加上較短的規則。&lt;h3 id=&quot;為什麼-Pagefind-需要單獨設定?&quot;&gt;為什麼 Pagefind 需要單獨設定？&lt;/h3&gt;&lt;p&gt;Pagefind 的檔案可能同時符合一般 JavaScript 或資產檔案規則，因此先拿到一年的長效快取。接著，&lt;code&gt;env=pagefind_asset&lt;/code&gt; 條件會再套用重新驗證的 &lt;code&gt;Cache-Control&lt;/code&gt;：&lt;pre class=&quot;language-http&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-http&quot;&gt;&lt;span class=&quot;token header&quot;&gt;&lt;span class=&quot;token header-name keyword&quot;&gt;Cache-Control&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token header-value&quot;&gt;no-cache, must-revalidate&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;這個例外很重要：一般資產可以快取一年，但搜尋索引不應該跟著使用同樣長的 TTL。&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;Header&lt;/code&gt; 需要 Apache &lt;code&gt;mod_headers&lt;/code&gt;，&lt;code&gt;ExpiresByType&lt;/code&gt; 需要 &lt;code&gt;mod_expires&lt;/code&gt;，Pagefind 的環境變數需要 &lt;code&gt;mod_setenvif&lt;/code&gt;。如果修改 &lt;code&gt;.htaccess&lt;/code&gt; 後出現 500 錯誤，先還原修改，再逐段確認 Hostinger 是否支援相關模組與語法。&lt;/blockquote&gt;&lt;h2 id=&quot;除了快取,.htaccess-還能負責哪些事情?&quot;&gt;除了快取，&lt;code&gt;.htaccess&lt;/code&gt; 還能負責哪些事情？&lt;/h2&gt;&lt;p&gt;&lt;code&gt;.htaccess&lt;/code&gt; 不只是快取設定檔，也可以集中管理 Apache 網站常見的伺服器規則。以下功能不一定全部都要啟用，應依網站需求和主機支援的 Apache 模組決定：&lt;ul&gt;&lt;li&gt;&lt;strong&gt;靜態網站路由&lt;/strong&gt;：使用 &lt;code&gt;mod_rewrite&lt;/code&gt; 管理重新導向或找不到頁面的處理方式。11ty 已經產生檔案式路由時，不要直接套用 SPA 的「全部導向 &lt;code&gt;/index.html&lt;/code&gt;」規則，否則原本的 404 和文章路徑可能一起被煮成一鍋。&lt;li&gt;&lt;strong&gt;301 重新導向&lt;/strong&gt;：將舊網址導向新網址，適合網站改版、文章改名或網址結構變更時使用。大量重定向最好由腳本產生，避免手動維護時遺漏或重複。&lt;li&gt;&lt;strong&gt;安全標頭&lt;/strong&gt;：可設定 &lt;code&gt;X-Frame-Options&lt;/code&gt;、&lt;code&gt;X-Content-Type-Options&lt;/code&gt; 等 response headers，降低點擊劫持和 MIME 類型嗅探等風險。新增標頭前，應先確認不會影響網站嵌入或第三方服務。&lt;li&gt;&lt;strong&gt;Gzip 壓縮&lt;/strong&gt;：使用 &lt;code&gt;mod_deflate&lt;/code&gt; 壓縮 HTML、CSS、JavaScript 和 XML 等文字檔，減少傳輸量。JPEG、PNG、WebP 等通常已經壓縮，不需要再次壓縮。&lt;li&gt;&lt;strong&gt;目錄保護&lt;/strong&gt;：&lt;code&gt;Options -Indexes&lt;/code&gt; 可避免訪客直接看到沒有首頁檔案的資料夾列表。&lt;li&gt;&lt;strong&gt;HTTP 導向 HTTPS&lt;/strong&gt;：使用 &lt;code&gt;mod_rewrite&lt;/code&gt; 將 HTTP 請求重新導向 HTTPS。啟用前要先確認 SSL 憑證正常；HSTS 只會要求瀏覽器後續使用 HTTPS，不會代替 HTTP → HTTPS 的重新導向。&lt;/ul&gt;&lt;p&gt;修改 &lt;code&gt;.htaccess&lt;/code&gt; 前，先確認 Hostinger 支援所需的 Apache 模組與語法。建議一次只加入一個功能，修改後用 &lt;code&gt;curl -I&lt;/code&gt; 和瀏覽器測試；若出現 500 錯誤，先還原最近一次修改，再逐段排查。&lt;h2 id=&quot;HSTS-不是檔案快取&quot;&gt;HSTS 不是檔案快取&lt;/h2&gt;&lt;p&gt;這一行：&lt;pre class=&quot;language-apache&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-apache&quot;&gt;Header always set Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;意思是瀏覽器在接下來一年內，連線到這個網站時優先使用 HTTPS。它不會決定 HTML、CSS 或圖片要存多久，因此不要把 HSTS 和 &lt;code&gt;Cache-Control&lt;/code&gt; 當成同一種設定。&lt;p&gt;只有在 HTTPS 已經完全正常，而且所有會使用到的子網域也都能使用 HTTPS 時，才適合啟用較長的 HSTS 期限。&lt;h2 id=&quot;部署後到-hPanel-清除快取&quot;&gt;部署後到 hPanel 清除快取&lt;/h2&gt;&lt;p&gt;每次部署後，依序做以下檢查：&lt;ol&gt;&lt;li&gt;進入 Hostinger hPanel 的網站 Dashboard，執行 &lt;strong&gt;Clear cache&lt;/strong&gt;。不同方案或 hPanel 版本的選單名稱可能略有不同。&lt;li&gt;如果只想處理單一頁面，到 &lt;strong&gt;Advanced → Cache Manager&lt;/strong&gt; 輸入 URL 後執行 &lt;strong&gt;Purge&lt;/strong&gt;。&lt;li&gt;如果網站啟用了 Hostinger CDN，到 &lt;strong&gt;Performance → CDN&lt;/strong&gt; 檢查 CDN 狀態，並依介面提供的選項清除快取。&lt;li&gt;用無痕視窗重新開啟首頁和剛更新的文章。&lt;/ol&gt;&lt;p&gt;不要一開始只清除自己的瀏覽器快取。如果所有訪客都看到舊版本，問題更可能在 Hostinger 快取、CDN 或部署檔案，而不是單一瀏覽器。&lt;h2 id=&quot;用-curl-驗收-response-headers&quot;&gt;用 &lt;code&gt;curl&lt;/code&gt; 驗收 response headers&lt;/h2&gt;&lt;p&gt;檢查首頁：&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-I&lt;/span&gt; https://example.com/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;檢查一個版本化資產：&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-I&lt;/span&gt; https://example.com/assets/app.8f31c.css&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;你可以觀察 &lt;code&gt;Cache-Control&lt;/code&gt;、&lt;code&gt;Expires&lt;/code&gt;、&lt;code&gt;ETag&lt;/code&gt;、&lt;code&gt;Last-Modified&lt;/code&gt;、&lt;code&gt;Age&lt;/code&gt; 和 &lt;code&gt;Content-Type&lt;/code&gt;。&lt;p&gt;依本專案目前設定，首頁通常會看到三分鐘的 &lt;code&gt;max-age&lt;/code&gt;；符合資產副檔名規則的 CSS 則可能看到一年的 &lt;code&gt;max-age&lt;/code&gt;。Pagefind URL 則應該要求重新驗證：&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-I&lt;/span&gt; https://example.com/pagefind/pagefind.js&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果重新請求時內容沒有改變，伺服器可能回傳 &lt;code&gt;304 Not Modified&lt;/code&gt;，代表條件式快取正常運作。若 &lt;code&gt;curl&lt;/code&gt; 已經拿到新內容，但瀏覽器仍是舊內容，再用無痕視窗、另一個網路和 DevTools Network 交叉確認。&lt;h2 id=&quot;快取設定決策表&quot;&gt;快取設定決策表&lt;/h2&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的情況&lt;th&gt;HTML&lt;th&gt;CSS／JS／圖片／字型&lt;th&gt;建議&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;文章常更新，檔名沒有版本號&lt;td&gt;&lt;code&gt;no-cache&lt;/code&gt; 或短 TTL&lt;td&gt;短 TTL，例如 5–30 分鐘&lt;td&gt;先確保更新穩定，再逐步延長&lt;tr&gt;&lt;td&gt;CSS／JS 有內容指紋&lt;td&gt;&lt;code&gt;no-cache&lt;/code&gt; 或一天&lt;td&gt;一年＋&lt;code&gt;immutable&lt;/code&gt;&lt;td&gt;適合穩定的 production 靜態站&lt;tr&gt;&lt;td&gt;正在除錯快取問題&lt;td&gt;&lt;code&gt;no-cache&lt;/code&gt;&lt;td&gt;&lt;code&gt;no-cache&lt;/code&gt; 或短 TTL&lt;td&gt;驗收完成後再恢復長效快取&lt;tr&gt;&lt;td&gt;Pagefind 搜尋索引會更新&lt;td&gt;短 TTL&lt;td&gt;Pagefind 使用 &lt;code&gt;no-cache&lt;/code&gt;；其他資產依版本策略&lt;td&gt;避免搜尋索引長時間未更新&lt;tr&gt;&lt;td&gt;CDN 剛啟用或剛清除&lt;td&gt;短 TTL&lt;td&gt;依 CDN 規則&lt;td&gt;等待節點更新，再用不同網路測試&lt;/table&gt;&lt;p&gt;這張表主要根據兩個問題決定快取時間：檔案多久會更新，以及檔案的 URL 是否會隨內容改變。&lt;ul&gt;&lt;li&gt;&lt;strong&gt;HTML 通常使用短 TTL&lt;/strong&gt;：首頁和文章內容可能經常更新，因此使用短時間快取，讓瀏覽器較快向伺服器確認。本專案目前設定為三分鐘；&lt;code&gt;no-cache&lt;/code&gt; 則是另一種要求使用前重新驗證的策略。&lt;li&gt;&lt;strong&gt;有內容指紋的靜態資產可以快取一年&lt;/strong&gt;：例如 &lt;code&gt;app.8f31c.css&lt;/code&gt;。CSS 或 JavaScript 更新後，檔名也會改變，瀏覽器會把它視為全新的檔案，因此適合搭配 &lt;code&gt;immutable&lt;/code&gt; 使用一年 TTL。&lt;li&gt;&lt;strong&gt;固定檔名的資產應使用短 TTL&lt;/strong&gt;：例如 &lt;code&gt;style.css&lt;/code&gt; 或 &lt;code&gt;app.js&lt;/code&gt;。如果內容更新但 URL 不變，長效快取可能讓訪客持續取得舊檔案；在尚未完成版本化時，可先使用 5–30 分鐘。&lt;li&gt;&lt;strong&gt;Pagefind 使用 &lt;code&gt;no-cache&lt;/code&gt;&lt;/strong&gt;：搜尋索引會隨文章更新，但 URL 通常不一定包含內容指紋，因此每次使用前都應重新驗證。&lt;li&gt;&lt;strong&gt;正在除錯時全部縮短 TTL&lt;/strong&gt;：先讓 HTML、CSS 和 JavaScript 使用 &lt;code&gt;no-cache&lt;/code&gt; 或短 TTL，確認部署與 response headers 正常後，再恢復長效快取。&lt;/ul&gt;&lt;p&gt;要注意的是，這張表是判斷原則，不代表目前 &lt;code&gt;.htaccess&lt;/code&gt; 已經自動檢查檔名是否含有內容指紋。目前的 &lt;code&gt;&amp;lt;FilesMatch&amp;gt;&lt;/code&gt; 是按照副檔名設定一年快取，所以固定名稱的 &lt;code&gt;style.css&lt;/code&gt; 或 &lt;code&gt;app.js&lt;/code&gt; 也可能被快取一年。只有在部署流程確實會讓資產 URL 隨內容改變時，才適合使用一年 TTL 和 &lt;code&gt;immutable&lt;/code&gt;。&lt;h2 id=&quot;常見問題&quot;&gt;常見問題&lt;/h2&gt;&lt;h3 id=&quot;重新建置後,網站為什麼還是舊頁面?&quot;&gt;重新建置後，網站為什麼還是舊頁面？&lt;/h3&gt;&lt;p&gt;先確認 &lt;code&gt;_site&lt;/code&gt; 裡真的有新內容，再確認上傳的是 &lt;code&gt;_site&lt;/code&gt; 內容，而不是原始 Markdown。接著依序檢查 Hostinger 快取、CDN 和瀏覽器，不要只重跑 11ty。&lt;h3 id=&quot;可以把所有檔案都設定成快取一年嗎?&quot;&gt;可以把所有檔案都設定成快取一年嗎？&lt;/h3&gt;&lt;p&gt;不建議。沒有版本化的 HTML、&lt;code&gt;style.css&lt;/code&gt; 或 &lt;code&gt;app.js&lt;/code&gt; 可能長時間讓訪客拿到舊內容。只有 URL 會隨內容改變的資產，才適合搭配 &lt;code&gt;immutable&lt;/code&gt; 使用一年 TTL。&lt;h3 id=&quot;為什麼-Pagefind-搜尋不到剛發布的文章?&quot;&gt;為什麼 Pagefind 搜尋不到剛發布的文章？&lt;/h3&gt;&lt;p&gt;可能是 Pagefind 索引本身沒有重新建置，也可能是 &lt;code&gt;/pagefind/&lt;/code&gt; 資產仍被舊快取提供。先確認部署輸出有最新索引，再用 &lt;code&gt;curl -I&lt;/code&gt; 檢查 Pagefind URL 是否真的要求重新驗證，最後清除 Hostinger 或 CDN 快取。&lt;h3 id=&quot;改-.htaccess-後網站出現-500-怎麼辦?&quot;&gt;改 &lt;code&gt;.htaccess&lt;/code&gt; 後網站出現 500 怎麼辦？&lt;/h3&gt;&lt;p&gt;先還原最後一次修改，確認 Hostinger 支援 &lt;code&gt;mod_headers&lt;/code&gt;、&lt;code&gt;mod_expires&lt;/code&gt; 和相關語法，再逐段加入設定。不要在未驗證前，直接把同一份 &lt;code&gt;.htaccess&lt;/code&gt; 複製到其他網站。&lt;h2 id=&quot;部署驗收工具&quot;&gt;部署驗收工具&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Hostinger hPanel&lt;/strong&gt;：用來清除網站快取、管理 Cache Manager，以及依方案管理 CDN。&lt;li&gt;&lt;strong&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/strong&gt;：直接查看公開網站的 response headers，先確認伺服器實際回傳什麼，再判斷是不是瀏覽器問題。&lt;li&gt;&lt;strong&gt;Chrome DevTools Network&lt;/strong&gt;：查看 &lt;code&gt;Age&lt;/code&gt;、&lt;code&gt;ETag&lt;/code&gt;、&lt;code&gt;Cache-Control&lt;/code&gt; 和 response body，交叉確認不同資產是否使用預期的 TTL。&lt;/ul&gt;&lt;h2 id=&quot;結語先分層,再決定-TTL&quot;&gt;結語：先分層，再決定 TTL&lt;/h2&gt;&lt;p&gt;11ty 快取問題的重點不是把數字設得越大越好，而是讓不同檔案採用適合自己的更新策略：&lt;ol&gt;&lt;li&gt;HTML 使用短 TTL，保持容易更新。&lt;li&gt;版本化 CSS、JavaScript、圖片和字型使用長效快取。&lt;li&gt;Pagefind 搜尋資產使用 &lt;code&gt;no-cache&lt;/code&gt;，避免索引更新被卡住。&lt;li&gt;每次部署後用 hPanel、&lt;code&gt;curl&lt;/code&gt; 和無痕視窗驗收。&lt;/ol&gt;&lt;p&gt;完成設定後，下一步是到 Hostinger hPanel 清除快取，再用 &lt;code&gt;curl -I&lt;/code&gt; 確認公開網站真的回傳預期的 headers。快取驗收完，再來一杯咖啡；這次咖啡和 HTML 都應該是熱的。&lt;h2 id=&quot;參考資料&quot;&gt;參考資料&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://httpd.apache.org/docs/2.4/mod/mod_expires.html&quot;&gt;Apache &lt;code&gt;mod_expires&lt;/code&gt; 官方文件&lt;/a&gt;：說明 &lt;code&gt;ExpiresActive&lt;/code&gt;、&lt;code&gt;ExpiresDefault&lt;/code&gt; 和 &lt;code&gt;ExpiresByType&lt;/code&gt; 如何產生快取標頭。&lt;li&gt;&lt;a href=&quot;https://httpd.apache.org/docs/2.4/mod/mod_headers.html&quot;&gt;Apache &lt;code&gt;mod_headers&lt;/code&gt; 官方文件&lt;/a&gt;：查閱 &lt;code&gt;.htaccess&lt;/code&gt; 中設定與修改 response headers 的 &lt;code&gt;Header&lt;/code&gt; 指令。&lt;li&gt;&lt;a href=&quot;https://pagefind.app/docs/running-pagefind/&quot;&gt;Pagefind Running Pagefind&lt;/a&gt;：說明在靜態網站建置後產生 &lt;code&gt;pagefind/&lt;/code&gt; 搜尋資產的流程。&lt;li&gt;&lt;a href=&quot;https://www.hostinger.com/tutorials/what-is-website-caching&quot;&gt;Hostinger：Website caching explained&lt;/a&gt;：說明 hPanel Cache Manager、瀏覽器快取、伺服器快取與 CDN 的差異。&lt;/ul&gt;</content>
  </entry>
</feed>