跳转至

网站部署 - SEO优化

之前把 网站部署到 Netlify(免费、配置简单、支持全球访问),服务器和域名都由 Netlify 提供,但这个结构无法支持国内搜索引擎收录,因为 Netlify 的服务器主要位于国外,所以再优化一下

优化目标

内容能被国内外主流搜索引擎抓取并收录

前置要求

1)国内引擎:百度、360 搜索、搜狗等

  • 备案域名(国内 ICP 备案)
  • 提供 国内节点 - 国内 IP(普通服务器或 CDN)

2)国外引擎:Google、Bing、DuckDuckGo 等,无要求

方案设计

1)方案

采用 最具性价比、维护最轻量 的方案(无需购买国内服务器、无需重新部署程序):

  • 国外(原有):源服务器(例如 Netlify) + Netlify 域名
  • 国内(新增):备案域名 + CDN(例如腾讯云 CDN、阿里云 CDN、又拍云)

2)结构

用 Netlify 服务器作为源服务器,让国内 CDN 指向源服务器(国内用户和爬虫访问 CDN 节点,CDN 回源到 Netlify):

%%{init: {'theme': 'default', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart LR
    subgraph "`**国内**`"
        %% A@{ shape: notch-rect, label: "Netlify 域名" }
        A@{ shape: brace-r, label: "国内用户" }
        B@{ shape: notch-rect, label: "备案域名" }
        C@{ shape: lin-cyl, label: "腾讯云 CDN" }
    end
    subgraph "`**国外**`"
        D@{ shape: brace-r, label: "国外用户" }
        E[Netlify 域名]
        F[(源服务器(Netlify))]
    end
    A --> B --> C <-.回源&缓存.-> F
    D --> E --> F

3)优势(腾讯云 CDN + Netlify 服务器):

特点 说明
🚀 免维护 不用自己同步文件,自动回源拉取最新内容
🌏 全球加速 海外用户直接走 Netlify,国内走 CDN
🧠 国内引擎可收录 国内 IP + HTTPS + 备案域名 = 可收录
💰 成本极低 每月 10GB 免费,长期 0 成本运行

CDN 配置流程

%%{init: {'theme': 'default', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TB
    A[腾讯云 CDN 配置流程] --> B{前提准备}
    B --> C[注册腾讯云 & 备案域名]
    B --> D[源站]
    click B "#前期准备"

    C & D --> E
    subgraph E [核心配置流程]
        F[添加加速域名] --> H[配置 CNAME 解析]
        click F "#添加加速域名"
        click H "#配置-CNAME"
    end

    E --> I{后续配置}
    I --> J[缓存配置]
    I --> K[...]
    I --> L[HTTPS配置]
    click J "#缓存策略配置"
    click L "#HTTPS-配置"

    J & K & L --> M[验证]

前期准备

1)注册腾讯云,领取或购买 CDN 流量包(新用户可领取0元50GB CDN 境内流量包,此后还有 10GB/月 免费额度)

2)购买域名提交备案

添加加速域名

备案通过后,选中「内容分发网络 CDN → 域名管理 → 添加域名」:

配置项 建议值
加速区域 中国境内
加速域名 hongjun.vip(已备案域名)
加速类型 CDN网页小文件
IPv6访问 可关闭(国内 SEO 用不到)
源站类型 自有源
回源协议 HTTPS(Netlify 站点是 https)
源站地址 jaywhj.netlify.app : 443
回源HOST jaywhj.netlify.app

点击「确认添加」,然后「跳过推荐配置」,直接进入「CNAME 配置」,不要点「完成」

配置 CNAME

接上一步:

  1. 界面会看到一个域名 CNAME 地址:hongjun.vip.cdn.dnsv1.com
  2. 还有一个「一键配置」按钮,点它,快速配置 CNAME 解析,点「确定」

验证:

  • 回到界面,点「验证CNAME状态」,确定生效后最后再点「完成」
  • 在 DNS 控制台「云解析 DNS」,找到已备案的域名,点击右侧「解析」,应该能看到刚配置好的 1 条 CNAME 记录(如果没有,则手动添加):
主机记录 记录类型 记录值
@ CNAME hongjun.vip.cdn.dnsv1.com

缓存策略配置

目的:

  • 保持更新及时性(对搜索引擎友好)
  • 减少回源流量(节省成本)
  • 最大化缓存效果(提升访问速度)

回到「域名管理」,点击刚添加的域名右侧的「管理」,找到「缓存配置」:

节点缓存过期配置(CDN 节点保存时间):

类型 内容 缓存行为 优先级权重 备注
全部文件 全部文件 缓存7天 1 兜底
文件后缀 woff2;woff;ttf;eot;otf 缓存180天 2 提高加载速度
文件后缀 jpg;jpeg;png;gif;ico;svg;webp;bmp 缓存30天 3 提高加载速度
文件后缀 js;html;css;xml;shtml;htm;json 缓存1天 4 保持更新及时性

浏览器缓存过期配置(用户浏览器保存时间):

类型 内容 缓存行为 备注
文件后缀 woff2;woff;ttf;eot;otf 缓存90天 提高加载速度
文件后缀 jpg;jpeg;png;gif;ico;svg;webp;bmp 缓存1天 提高加载速度
文件后缀 js;html;css;xml;shtml;htm;json 缓存30分钟 保持更新及时性

缓存键规则配置(区分不同 URL 的缓存):

类型 内容 忽略参数 忽略大小写
全部文件 全部文件 全部忽略

HTTPS 配置

腾讯云免费 SSL 证书有效期只有 3 个月,且不支持自动续签,不是很方便

解决方案:

  • 方案 A:每三个月手动操作一次(免费 + 手动续签 + 手动上传)
  • 方案 B:使用 Let's Encrypt + acme.sh/Certbot 脚本(免费 + 自动续签 + 自动上传)
  • 方案 C:购买付费证书(付费 + 自动续签 + 无需上传)
模块 服务商 功能 是否免费
域名 DNS DNSPod(腾讯云DNS) 域名解析托管 ✅ 免费
证书颁发 Let's Encrypt 全球最广泛使用的免费 DV 证书 ✅ 免费
签发/续签托管 acme.sh + DNSPod API 模式
(可使用 GitHub Actions来签发)
全自动生成与续签证书,全自动上传 ✅ 免费
CDN 部署 腾讯云 CDN 国内访问加速 + HTTPS 部署 ✅ 免费10GB/月

DNSPod Token 配置

DNSPod 「账号中心 → API密钥」,选择 DNSPod Token → 创建密钥,记下 ID 和 Token

ID:598000
Token:1md3646b5c4d7ba5969c48e521629ird

腾讯云 API 密钥配置

DNSPod 「账号中心 → API密钥」,选择 腾讯云 API 密钥 → 新建密钥,记下 SecretId 和 SecretKey

SecretId:AKID441jEXeZJp9LL8kA22BlAML9k8NjttKU
SecretKey:86628FFG4e1B7u52LSbcTHzdDl7Xlrtip

acme.sh 自动化签发配置

可使用 GitHub Actions 来自动触发定时任务、自动签发和上传(省去云服务器):

1)在 GitHub 创建一个私有仓库

2)设置仓库 secrets

仓库 → Settings → Secrets and variables → Actions → New repository secret,分别添加:

Secret 名称 内容 来源
DP_Id DNSPod ID DNSPod 控制台
DP_Key DNSPod Token DNSPod 控制台
QCLOUD_SECRET_ID 腾讯云 SecretId 腾讯云访问管理
QCLOUD_SECRET_KEY 腾讯云 SecretKey 腾讯云访问管理
DOMAIN hongjun.vip 备案域名
ACME_EMAIL 随意一个真实邮箱 手动填写

3)创建工作流文件

仓库首页 → Add file → Create a new file:.github/workflows/acme-auto.yml,内容见 acme-auto.yml

4)运行与自动化

仓库 → Actions → 选中左侧 「Auto SSL Certificate with acme.sh + Tencent Cloud CDN」→ 点击右侧 「Run workflow」

几分钟后,GitHub Actions 会:

  1. 通过 DNSPod API 验证域名
  2. 从 Let’s Encrypt 签发证书
  3. 自动上传到腾讯云 SSL 证书管理中
  4. 可在控制台 我的证书 中查看是否存在 AutoSSL-{domain} 证书

5)腾讯云 CDN 自动更新

腾讯云 CDN 会自动检测最新证书,若未自动同步,你可在 CDN 控制台 → HTTPS 配置 → 重新选择上传的证书

6)开启强制跳转 HTTPS

选中「内容分发网络 CDN → 域名管理 → 点击域名 → HTTPS配置」,启用「强制跳转」:

  • 跳转类型:Http->Https
  • 跳转方式:301跳转
  • 携带头部:否

测试验证

直接访问 hongjun.vip,看是否能打开

子域重定向

前面添加了根域 hongjun.vip,但用户如果通过子域 www.hongjun.vip 访问,则不通,这时可配置子域重定向到根域

对于专门用于重定向的域名,其CDN配置可以简化,只需要这 3 个:

  • 基础配置 ✅
  • HTTPS配置 ✅
  • 缓存配置 → 访问URL重写配置 ✅

1)按前面添加加速域名的步骤,继续添加 www.hongjun.vip,基础配置一样

2)添加后同样「跳过推荐配置」,直接进入「CNAME 配置」,不要点「完成」

3)通过「一键配置」快速配置好 CNAME 解析,最终在域名解析里应该能看到共 2 条记录:

主机记录 记录类型 记录值
@ CNAME hongjun.vip.cdn.dnsv1.com
www CNAME www.hongjun.vip.cdn.dnsv1.com

4)HTTPS配置,跟前面一样,选择之前上传的证书

5)缓存配置 → 访问URL重写配置:

配置项 规则
匹配设置 不选
待重写URL /*
目标Host https://hongjun.vip
目标Path /$1

验证访问 www.hongjun.vip,看是否能访问,并且自动跳转到了 https://hongjun.vip

技术配置

robots.txt 和 sitemap.xml 是 SEO 优化中的两大技术基石,二者通过互补共同优化搜索引擎的抓取行为:

  • robots:充当门禁系统,控制搜索引擎爬虫的访问权限(允许/禁止抓取特定页面或目录)
  • sitemap:作为导航地图,主动告知搜索引擎,网站的页面、更新频率、优先级等

配置 robots.txt

# robots.txt
User-agent: *
Allow: /
Sitemap: https://hongjun.vip/sitemap.xml

配置 sitemap.xml

MkDocs 网站可通过自定义模板自动生成 sitemap.xml,可实现基于内容的更新动态生成对应的导航地图,提升页面的收录效率与可见性

提示

  1. robots.txt 和 sitemap.xml 存放在网站根目录
  2. robots.txt 和 sitemap.xml 只有在“能抓取内容”的前提下才有效

提交收录

可主动提交网址至搜索引擎: