[{"data":1,"prerenderedAt":639},["ShallowReactive",2],{"navigation_docs":3,"-web-dev-seo-canonical-link":352,"-web-dev-seo-canonical-link-surround":634},[4,54,83,116,125,161,179,200],{"title":5,"path":6,"stem":7,"children":8},"Ai","/ai","ai",[9,12,42,46,50],{"title":10,"path":6,"stem":11},"AI 技術探索","ai/index",{"title":13,"path":14,"stem":15,"children":16,"page":41},"Rag","/ai/rag","ai/RAG",[17,21,25,29,33,37],{"title":18,"path":19,"stem":20},"BM25 演算法深入解析：從 TF-IDF 到現代搜尋引擎的核心技術","/ai/rag/bm25-deep-dive-from-tf-idf-to-rag","ai/RAG/bm25-deep-dive-from-tf-idf-to-rag",{"title":22,"path":23,"stem":24},"Dense Retrieval（向量檢索）深入解析","/ai/rag/dense-retrieval-deep-dive","ai/RAG/dense-retrieval-deep-dive",{"title":26,"path":27,"stem":28},"RAG（Retrieval-Augmented Generation）原理與實作入門","/ai/rag/rag-intro-principles-and-implementation","ai/RAG/rag-intro-principles-and-implementation",{"title":30,"path":31,"stem":32},"RAG Retrieval Strategy 深入解析","/ai/rag/rag-retrieval-strategy-deep-dive","ai/RAG/rag-retrieval-strategy-deep-dive",{"title":34,"path":35,"stem":36},"Reciprocal Rank Fusion（RRF）教學：打造更穩定的檢索融合策略","/ai/rag/rrf-reciprocal-rank-fusion-guide","ai/RAG/rrf-reciprocal-rank-fusion-guide",{"title":38,"path":39,"stem":40},"TF-IDF（Term Frequency–Inverse Document Frequency）深入解析","/ai/rag/tf-idf-deep-dive","ai/RAG/tf-idf-deep-dive",false,{"title":43,"path":44,"stem":45},"Docus AI 功能完整實作指南","/ai/docus-ai-implementation","ai/docus-ai-implementation",{"title":47,"path":48,"stem":49},"llms.txt 是什麼？在 Nuxt 中控制 AI 與搜尋引擎爬蟲的新方式","/ai/llms-txt","ai/llms-txt",{"title":51,"path":52,"stem":53},"MCP（Model Context Protocol）是什麼？用「AI 的 USB-C」理解模型如何安全連接工具與資料","/ai/mcp_concept","ai/mcp_concept",{"title":55,"path":56,"stem":57,"children":58,"page":41},"Data Analysis","/data-analysis","data-analysis",[59,63,67,71,75,79],{"title":60,"path":61,"stem":62},"Exploratory Data Analysis（EDA）資料探索分析入門","/data-analysis/exploratory-data-analysis-eda","data-analysis/exploratory-data-analysis-eda",{"title":64,"path":65,"stem":66},"PR-AUC 深入解析：不平衡分類問題的重要評估指標","/data-analysis/pr-auc-for-imbalanced-classification","data-analysis/pr-auc-for-imbalanced-classification",{"title":68,"path":69,"stem":70},"ROC-AUC 深入解析：理解分類模型的判斷能力","/data-analysis/roc-auc-complete-guide","data-analysis/roc-auc-complete-guide",{"title":72,"path":73,"stem":74},"SHAP（SHapley Additive exPlanations）模型解釋方法深入解析","/data-analysis/shap-model-interpretation-complete-guide","data-analysis/shap-model-interpretation-complete-guide",{"title":76,"path":77,"stem":78},"Social Network Analysis（SNA）深入解析","/data-analysis/social-network-analysis-sna","data-analysis/social-network-analysis-sna",{"title":80,"path":81,"stem":82},"Time-based Split：為什麼時間序列資料不能使用 Random Split？","/data-analysis/time-based-split-vs-random-split","data-analysis/time-based-split-vs-random-split",{"title":84,"path":85,"stem":86,"children":87,"page":41},"MachineLearning","/machine_learning","machine_learning",[88,92,96,100,104,108,112],{"title":89,"path":90,"stem":91},"Confusion Matrix（混淆矩陣）完整解析","/machine_learning/confusion-matrix","machine_learning/confusion-matrix",{"title":93,"path":94,"stem":95},"Decision Tree 模型完整教學：從原理到 Python 實作","/machine_learning/decision-tree-complete-guide","machine_learning/decision-tree-complete-guide",{"title":97,"path":98,"stem":99},"為什麼 Decision Tree 在 Tabular Data 上常常勝過 Deep Learning？","/machine_learning/decision-tree-vs-deep-learning-on-tabular-data","machine_learning/decision-tree-vs-deep-learning-on-tabular-data",{"title":101,"path":102,"stem":103},"LightGBM 模型入門：理解高效能的 Gradient Boosting 演算法","/machine_learning/lightgbm-intro-for-tabular-data","machine_learning/lightgbm-intro-for-tabular-data",{"title":105,"path":106,"stem":107},"Logistic Regression（Logit 回歸）完整教學","/machine_learning/logistic-regression-complete-guide","machine_learning/logistic-regression-complete-guide",{"title":109,"path":110,"stem":111},"為什麼模型訓練需要 Train / Validation / Test Dataset？","/machine_learning/train-validation-test-dataset","machine_learning/train-validation-test-dataset",{"title":113,"path":114,"stem":115},"XGBoost 原理與實務教學","/machine_learning/xgboost-complete-guide","machine_learning/xgboost-complete-guide",{"title":117,"path":118,"stem":119,"children":120,"page":41},"Network","/network","network",[121],{"title":122,"path":123,"stem":124},"DNS 設定入門：CNAME vs A Record 完整解析","/network/dns-cname-vs-a-record-guide","network/dns-cname-vs-a-record-guide",{"title":126,"path":127,"stem":128,"children":129},"Nuxt","/nuxt","nuxt",[130,133,137,141,145,149,153,157],{"title":131,"path":127,"stem":132},"Nuxt 實戰指南","nuxt/index",{"title":134,"path":135,"stem":136},"Abstraction Layer 與 Adapter 的差別，一次搞懂設計角色","/nuxt/adapter_abstraction_layer","nuxt/adapter_abstraction_layer",{"title":138,"path":139,"stem":140},"Nuxt 4 全面理解 — 專案檔案結構解析","/nuxt/directory_structure","nuxt/directory_structure",{"title":142,"path":143,"stem":144},"Nuxt 前端 build 流程完整解析","/nuxt/frontend_build","nuxt/frontend_build",{"title":146,"path":147,"stem":148},"Nitro 是什麼？從 Nuxt 專案到 Server 與 Edge 的關鍵引擎","/nuxt/nitro","nuxt/nitro",{"title":150,"path":151,"stem":152},"深入理解 Nuxt 的 .nuxt 與 .output：為什麼部署時一定要分清楚？","/nuxt/nuxt_and_output","nuxt/nuxt_and_output",{"title":154,"path":155,"stem":156},"Nuxt 中 dev、build、preview 的差異一次搞懂","/nuxt/nuxt_dev_build_preview","nuxt/nuxt_dev_build_preview",{"title":158,"path":159,"stem":160},"Nuxt Image vs \u003Cimg>：為什麼 Nuxt 3 專案幾乎都該用 \u003CNuxtImg>？","/nuxt/nuxt_image","nuxt/nuxt_image",{"title":162,"path":163,"stem":164,"children":165},"Python 程式開發","/python","python/index",[166,167,171,175],{"title":162,"path":163,"stem":164},{"title":168,"path":169,"stem":170},"如何在 FastAPI 中調用記憶體 Buffer 回傳圖片 (附實例)","/python/memory_buffer","python/memory_buffer",{"title":172,"path":173,"stem":174},"Python 單元測試教學：如何為你的程式撰寫 Test","/python/python-unit-testing-unittest-pytest","python/python-unit-testing-unittest-pytest",{"title":176,"path":177,"stem":178},"如何使用 uv 取代 pip：改善 Python 專案的開發流程","/python/uv","python/uv",{"title":180,"path":181,"stem":182,"children":183,"page":41},"Statistic","/statistic","statistic",[184,188,192,196],{"title":185,"path":186,"stem":187},"卡方檢定（Chi-Square Test）入門教學","/statistic/chi-square-test-intro","statistic/chi-square-test-intro",{"title":189,"path":190,"stem":191},"常見抽樣方法（Sampling Methods）教學：Stratified、Quota、Convenience、Systematic、Simple Random","/statistic/common-sampling-methods-guide","statistic/common-sampling-methods-guide",{"title":193,"path":194,"stem":195},"Cramér’s V 指標介紹：如何衡量兩個類別變數之間的關聯","/statistic/cramers-v-for-categorical-association","statistic/cramers-v-for-categorical-association",{"title":197,"path":198,"stem":199},"Mann–Whitney U 與 Kolmogorov–Smirnov（KS）檢定：非參數統計檢定的入門指南","/statistic/mann-whitney-u-and-ks-test-intro","statistic/mann-whitney-u-and-ks-test-intro",{"title":201,"path":202,"stem":203,"children":204},"WebDev","/web_dev","web_dev",[205,208,234,248,282,312,334],{"title":206,"path":202,"stem":207},"Web 前端開發","web_dev/index",{"title":209,"path":210,"stem":211,"children":212},"瀏覽器與渲染","/web_dev/browser","web_dev/browser/index",[213,214,218,222,226,230],{"title":209,"path":210,"stem":211},{"title":215,"path":216,"stem":217},"瀏覽器儲存空間完整解析：Cookie、localStorage、IndexedDB 到 Cache Storage","/web_dev/browser/browser-storage-comprehensive-guide","web_dev/browser/browser-storage-comprehensive-guide",{"title":219,"path":220,"stem":221},"DOM (Document Object Model) 深入解析","/web_dev/browser/dom","web_dev/browser/dom",{"title":223,"path":224,"stem":225},"Service Worker Request Flow 深入解析","/web_dev/browser/service-worker-request-flow","web_dev/browser/service-worker-request-flow",{"title":227,"path":228,"stem":229},"CSR、SSR 與 SSG 是什麼？前端渲染策略完整比較","/web_dev/browser/ssr_csr_ssg","web_dev/browser/ssr_csr_ssg",{"title":231,"path":232,"stem":233},"Virtual DOM 深入解析：為什麼它能優化前端效能？","/web_dev/browser/virtual_dom","web_dev/browser/virtual_dom",{"title":235,"path":236,"stem":237,"children":238},"圖形技術","/web_dev/graphics","web_dev/graphics/index",[239,240,244],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"為什麼 Three.js 專案幾乎都選擇 CSR？從 SSR 問題談起","/web_dev/graphics/threejs_csr","web_dev/graphics/threejs_csr",{"title":245,"path":246,"stem":247},"WebGL 是什麼？為什麼前端 3D 幾乎都靠它？","/web_dev/graphics/webgl","web_dev/graphics/webGL",{"title":249,"path":250,"stem":251,"children":252},"架構與配置","/web_dev/infrastructure","web_dev/infrastructure/index",[253,254,258,262,266,270,274,278],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257},"Zeabur + K3s + Nuxt 部署架構完整解析","/web_dev/infrastructure/k3s-zeabur","web_dev/infrastructure/K3s-zeabur",{"title":259,"path":260,"stem":261},"ECS vs Docker vs Kubernetes：從部署堆疊理解三層架構","/web_dev/infrastructure/ecs-docker-kubernetes-stack","web_dev/infrastructure/ecs-docker-kubernetes-stack",{"title":263,"path":264,"stem":265},"ECS vs VPS 是什麼？從部署網站的角度一次搞懂差別","/web_dev/infrastructure/ecs-vs-vps","web_dev/infrastructure/ecs-vs-vps",{"title":267,"path":268,"stem":269},"Zeabur 內網服務連線完整入門指南","/web_dev/infrastructure/k3s-internal-networking","web_dev/infrastructure/k3s-internal-networking",{"title":271,"path":272,"stem":273},"使用 Microservices 架構設計系統的優勢解析","/web_dev/infrastructure/microservices-architecture-advantages","web_dev/infrastructure/microservices-architecture-advantages",{"title":275,"path":276,"stem":277},"Nginx 入門教學：從反向代理到與 Kubernetes 的架構比較","/web_dev/infrastructure/nginx-intro","web_dev/infrastructure/nginx-intro",{"title":279,"path":280,"stem":281},"YAML 配置是什麼？為什麼現代開發都在用它","/web_dev/infrastructure/yaml-configuration","web_dev/infrastructure/yaml-configuration",{"title":283,"path":284,"stem":285,"children":286},"網絡與通訊","/web_dev/network","web_dev/network/index",[287,288,292,296,300,304,308],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"HTTP Request 結構完整解析：從 Request Line 到 Header 一次看懂","/web_dev/network/http-request-structure","web_dev/network/http-request-structure",{"title":293,"path":294,"stem":295},"OSI 模型（Open Systems Interconnection Model）完整解析","/web_dev/network/osi-model","web_dev/network/osi-model",{"title":297,"path":298,"stem":299},"RESTful API 設計原則與實務解析","/web_dev/network/restful-api","web_dev/network/restful-api",{"title":301,"path":302,"stem":303},"RESTful API 五大設計原則深入解析","/web_dev/network/restful-api-principles","web_dev/network/restful-api-principles",{"title":305,"path":306,"stem":307},"Server-Sent Events (SSE) 深入解析與實作教學","/web_dev/network/sse-introduction","web_dev/network/sse-introduction",{"title":309,"path":310,"stem":311},"WebSocket 入門教學：從概念到 Node.js 實作","/web_dev/network/websocket-introduction","web_dev/network/websocket-introduction",{"title":313,"path":314,"stem":315,"children":316},"認證與安全","/web_dev/security","web_dev/security/index",[317,318,322,326,330],{"title":313,"path":314,"stem":315},{"title":319,"path":320,"stem":321},"使用 Cookie 與 Session 建立使用者驗證（完整新手教學）","/web_dev/security/cookie-session-authentication","web_dev/security/cookie-session-authentication",{"title":323,"path":324,"stem":325},"JWT 驗證機制完整解析：從登入流程到實務應用","/web_dev/security/jwt-authentication","web_dev/security/jwt-authentication",{"title":327,"path":328,"stem":329},"Secret Key 簽名是什麼？從零理解資料簽名的本質","/web_dev/security/secret-key-signing","web_dev/security/secret-key-signing",{"title":331,"path":332,"stem":333},"SSH（Secure Shell）是什麼？從遠端登入到安全通道的核心概念","/web_dev/security/ssh","web_dev/security/ssh",{"title":335,"path":336,"stem":337,"children":338},"SEO 與規範","/web_dev/seo","web_dev/seo/index",[339,340,344,348],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Canonical URL 是什麼？用生活化方式搞懂前端 SEO 的基本保命符","/web_dev/seo/canonical_link","web_dev/seo/canonical_link",{"title":345,"path":346,"stem":347},"robots.txt 是什麼？SEO 的第一道守門員","/web_dev/seo/robot_txt","web_dev/seo/robot_txt",{"title":349,"path":350,"stem":351},"Nuxt SEO 中的 Meta 與 SEO 工具是如何運作的？","/web_dev/seo/seo","web_dev/seo/seo",{"id":353,"title":341,"body":354,"description":622,"extension":623,"links":624,"meta":625,"navigation":631,"path":342,"seo":632,"stem":343,"__hash__":633},"docs/web_dev/seo/canonical_link.md",{"type":355,"value":356,"toc":610},"minimark",[357,361,371,378,381,385,388,399,402,405,408,410,414,417,459,462,467,470,472,475,478,481,484,487,489,493,500,503,518,521,523,527,530,533,536,538,542,545,548,554,557,559,562,569,582,588,590,593,596,603,606],[358,359,360],"h2",{"id":360},"先一句話抓住感覺",[362,363,364],"blockquote",{},[365,366,367],"p",{},[368,369,370],"strong",{},"Canonical URL 就是在跟搜尋引擎說：「這一頁的正版網址是哪一個，其他都算分身。」",[365,372,373,374,377],{},"這個名詞一開始真的很抽象，但其實它背後的概念非常生活化。只要抓到「",[368,375,376],{},"哪一個才是官方版本","」，後面就會一路順下去。",[379,380],"hr",{},[358,382,384],{"id":383},"為什麼會需要-canonical先看一個很真實的問題","為什麼會需要 Canonical？先看一個很真實的問題",[365,386,387],{},"假設你有一篇文章，內容完全一樣，但網址長得不一樣：",[389,390,395],"pre",{"className":391,"code":393,"language":394},[392],"language-text","https://example.com/post/nuxt-seo\nhttps://example.com/post/nuxt-seo/\nhttps://example.com/post/nuxt-seo?utm=facebook\nhttps://example.com/post/nuxt-seo?ref=share\n","text",[396,397,393],"code",{"__ignoreMap":398},"",[365,400,401],{},"對人類來說，這些網址指向的都是同一篇文章，幾乎沒有差別。但對搜尋引擎來說，事情就沒那麼單純了。",[365,403,404],{},"搜尋引擎會開始困惑：\n這些是不同頁面嗎？哪一頁才是主要版本？SEO 權重應該算在哪一個網址上？",[365,406,407],{},"如果你什麼都沒說，搜尋引擎就只能自己猜，而「猜錯」其實是很常見的結果。",[379,409],{},[358,411,413],{"id":412},"canonical-url-就是你主動把話說清楚","Canonical URL 就是你主動把話說清楚",[365,415,416],{},"Canonical 的作用很單純，你只是在 HTML 裡補上一句：",[389,418,422],{"className":419,"code":420,"language":421,"meta":398,"style":398},"language-html shiki shiki-themes github-dark","\u003Clink rel=\"canonical\" href=\"https://example.com/post/nuxt-seo\" />\n","html",[396,423,424],{"__ignoreMap":398},[425,426,429,433,437,441,444,448,451,453,456],"span",{"class":427,"line":428},"line",1,[425,430,432],{"class":431},"s95oV","\u003C",[425,434,436],{"class":435},"s4JwU","link",[425,438,440],{"class":439},"svObZ"," rel",[425,442,443],{"class":431},"=",[425,445,447],{"class":446},"sU2Wk","\"canonical\"",[425,449,450],{"class":439}," href",[425,452,443],{"class":431},[425,454,455],{"class":446},"\"https://example.com/post/nuxt-seo\"",[425,457,458],{"class":431}," />\n",[365,460,461],{},"這句話的意思是：",[362,463,464],{},[365,465,466],{},"「不管你是從哪個網址看到這個內容，\n👉 真正的官方版本只有這一個。」",[365,468,469],{},"搜尋引擎仍然可以抓到其他網址，但在計算排名與權重時，只會「認」你指定的這個版本。",[379,471],{},[358,473,474],{"id":474},"用生活比喻會更好理解",[365,476,477],{},"如果只用技術名詞，很容易又開始模糊。換成生活中的例子會清楚很多。",[365,479,480],{},"想像同一本書，可能有精裝版、平裝版、不同封面的促銷版，但它們的 ISBN 是同一個。搜尋引擎其實就只在意那個「唯一識別碼」。",[365,482,483],{},"Canonical URL 扮演的角色，就跟 ISBN 幾乎一模一樣。",[365,485,486],{},"再換個例子，同一筆交易可能有紙本發票、電子發票、系統備份紀錄，但真正代表這筆交易的，仍然只有一個統一編號。Canonical URL 就是那個「統一編號」。",[379,488],{},[358,490,492],{"id":491},"沒有-canonicalseo-會真的出事嗎","沒有 Canonical，SEO 會真的出事嗎？",[365,494,495,496,499],{},"會，而且通常不是馬上爆炸，而是",[368,497,498],{},"慢慢變得很難救","。",[365,501,502],{},"最常見的情況是 SEO 權重被拆散。假設有三個不同網址，各自拿到一些外部連結，搜尋引擎可能會覺得每一頁的權重都不夠集中，結果整體排名反而上不去。",[365,504,505,506,509,510,513,514,517],{},"另一個常見問題是搜尋結果顯示了你不想要的版本。例如你希望使用者看到的是乾淨的 ",[396,507,508],{},"/post/nuxt-seo","，結果 Google 顯示的卻是帶有 ",[396,511,512],{},"utm"," 或 ",[396,515,516],{},"ref"," 的網址，看起來就很不專業。",[365,519,520],{},"更嚴重一點，搜尋引擎可能會誤以為你在製造重複內容。這通常不是因為你真的作弊，而是因為你沒有告訴它「哪些頁面其實是同一件事」。",[379,522],{},[358,524,526],{"id":525},"canonical-跟-redirect-不一樣這點很重要","Canonical 跟 redirect 不一樣，這點很重要",[365,528,529],{},"Canonical 常常會被誤以為是轉址，但兩者的角色其實完全不同。",[365,531,532],{},"Canonical 是「對搜尋引擎說的話」，redirect 則是「對使用者做的行為」。使用 canonical 時，使用者依然可以打開各種版本的網址，只是搜尋引擎在心中已經知道「該把重點算在哪一頁」。",[365,534,535],{},"這也是為什麼在很多前端專案中，canonical 比 redirect 更靈活。",[379,537],{},[358,539,541],{"id":540},"為什麼-nuxt-前端框架特別容易踩-canonical-的坑","為什麼 Nuxt / 前端框架特別容易踩 Canonical 的坑？",[365,543,544],{},"因為前端專案非常容易產生「看起來不同、但內容高度相似」的網址。",[365,546,547],{},"像是 trailing slash、有沒有 query string、排序或分頁參數，這些在功能上都很正常，但在 SEO 眼中卻可能變成一堆重複頁面。",[389,549,552],{"className":550,"code":551,"language":394},[392],"/products\n/products?page=1\n/products?sort=price\n",[396,553,551],{"__ignoreMap":398},[365,555,556],{},"如果沒有 canonical，搜尋引擎就只能自己判斷哪些該算同一頁，這對 SEO 來說其實風險很高。",[379,558],{},[358,560,561],{"id":561},"用一個視覺畫面幫你定型",[365,563,564],{},[565,566],"img",{"alt":567,"src":568},"Canonical URL 示意圖","https://cdn.prod.website-files.com/684969e6d62422ac59b88bfa/684969e6d62422ac59b89ec4_66bc9084b62db368a12b1b0d_6479b56d82037fd879f0a5da_Image%2525201.webp",[365,570,571],{},[572,573,574,575],"em",{},"圖片來源：",[576,577,581],"a",{"href":578,"rel":579},"https://growth.halo-lab.com/blog/what-is-a-canonical",[580],"nofollow","Halo Lab",[365,583,584,585,499],{},"你可以把 canonical 想成很多支箭頭，\n不管入口有幾個，",[368,586,587],{},"最後全部指向同一個「主頁版本」",[379,589],{},[358,591,592],{"id":592},"結論",[365,594,595],{},"如果你現在只記得一句話，其實就夠了：",[362,597,598],{},[365,599,600],{},[368,601,602],{},"Canonical URL 的工作，就是幫搜尋引擎不要搞錯「哪一頁才是正版」。",[365,604,605],{},"它不是什麼進階技巧，而是前端專案在 SEO 上的基本防線。",[607,608,609],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .s4JwU, html code.shiki .s4JwU{--shiki-default:#85E89D}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":398,"searchDepth":611,"depth":611,"links":612},2,[613,614,615,616,617,618,619,620,621],{"id":360,"depth":611,"text":360},{"id":383,"depth":611,"text":384},{"id":412,"depth":611,"text":413},{"id":474,"depth":611,"text":474},{"id":491,"depth":611,"text":492},{"id":525,"depth":611,"text":526},{"id":540,"depth":611,"text":541},{"id":561,"depth":611,"text":561},{"id":592,"depth":611,"text":592},"Canonical URL 是前端 SEO 中非常重要、卻常被忽略的設定。本文用實際網址情境與生活比喻，帶你理解 Canonical 在做什麼、為什麼 Nuxt 專案特別需要它。","md",null,{"tags":626,"category":203,"date":630},[627,628,128,629],"seo","canonical link","frontend","2026-02-04",true,{"title":341,"description":622},"d7iP4pmLe2SucUxTm_5g2aJMeENyIyWodFtYHaJdSq4",[635,637],{"title":335,"path":336,"stem":337,"description":636,"children":-1},"掌握搜尋引擎最佳化（SEO）技巧、Canonical 連結以及 Robots.txt 等 Web 規範。",{"title":345,"path":346,"stem":347,"description":638,"children":-1},"robots.txt 並不會直接提升排名，但它能避免搜尋引擎浪費資源、誤爬不該看的頁面，是 SEO 中最重要的基礎設定之一。",1776690848889]