跳至主要內容

    CDN

    CDN 透過邊緣節點分發內容,降低延遲並提升快取命中率。對全球 SEO 與 Core Web Vitals 很重要。

    定義

    CDN(內容傳遞網路)透過全球邊緣節點就近提供資源,降低延遲並提升可靠性。對 SEO 而言,CDN 能改善 TTFB/LCP、提升可用性,並降低大流量或爬蟲抓取時的源站壓力。

    為什麼重要

    • 大幅降低全球 TTFB — 用戶連到最近的邊緣節點,延遲可從 500ms 降到 50ms
    • 改善 LCP 和 Core Web Vitals — 資源更快到達,Google 評分更高
    • 吸收流量尖峰 — 病毒傳播或大型活動時,CDN 保護源站不被打掛
    • 提升爬蟲效率 — Googlebot 抓取時不會壓垮源站,抓取預算更充裕
    • DDoS 防護 — 邊緣網路吸收惡意流量,源站保持安全
    • SSL/TLS 終止 — 在邊緣處理加密,減少源站 CPU 負擔
    • 降低頻寬成本 — 快取命中不消耗源站流量,長期節省顯著

    怎麼做(實作重點)

    • 選擇適合的 CDN(Cloudflare、Fastly、AWS CloudFront、Vercel Edge)
    • 設定正確的快取規則:靜態資源長效快取,HTML 用 SWR 或短 TTL
    • 啟用自動壓縮(gzip/Brotli)減少傳輸量
    • 設定 Cache-Control 和 s-maxage 讓 CDN 與瀏覽器快取分開管理
    • 監控快取命中率(Cache Hit Ratio)— 目標 > 90%
    • 設定 purge/invalidate 機制,確保內容更新時能清除舊快取
    • 用 Real User Monitoring(RUM)追蹤實際用戶的 TTFB 和 LCP

    範例

    text
    # Cloudflare Pages 預設即有 CDN
    # 只需在 public/_headers 設定快取策略
    
    # public/_headers
    /*
      Cache-Control: public, max-age=0, must-revalidate
      X-Robots-Tag: all
    
    /assets/*
      Cache-Control: public, max-age=31536000, immutable
    
    # wrangler.toml(可選:設定 cache TTL)
    [vars]
      ASSETS_BROWSER_TTL = 31536000
    
    # 驗證 CDN 快取(curl)
    curl -I https://your-site.pages.dev/assets/bundle.js
    # 看 cf-cache-status: HIT 代表快取命中
    json
    // CloudFront Distribution 設定摘要
    {
      "Origins": [{
        "DomainName": "your-origin.example.com",
        "OriginProtocolPolicy": "https-only"
      }],
      "DefaultCacheBehavior": {
        "ViewerProtocolPolicy": "redirect-to-https",
        "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
        // CachingOptimized policy: TTL 86400s, gzip/br enabled
        "Compress": true
      },
      "PriceClass": "PriceClass_100",
      // 只用北美+歐洲節點(成本較低)
      "HttpVersion": "http2and3"
    }

    常見問題

    關於這個詞彙的常見問答。

    回到詞彙表