网站部署 - 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¶
接上一步:
- 界面会看到一个域名 CNAME 地址:
hongjun.vip.cdn.dnsv1.com
- 还有一个「一键配置」按钮,点它,快速配置 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
腾讯云 API 密钥配置¶
DNSPod 「账号中心 → API密钥」,选择 腾讯云 API 密钥 → 新建密钥,记下 SecretId 和 SecretKey
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 会:
- 通过 DNSPod API 验证域名
- 从 Let’s Encrypt 签发证书
- 自动上传到腾讯云 SSL 证书管理中
- 可在控制台 我的证书 中查看是否存在 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¶
配置 sitemap.xml¶
MkDocs 网站可通过自定义模板自动生成 sitemap.xml,可实现基于内容的更新动态生成对应的导航地图,提升页面的收录效率与可见性
- 可结合插件 mkdocs-document-dates 来使用(用来动态设置文档的
lastmod
),具体步骤见 Example 1
提示
- robots.txt 和 sitemap.xml 存放在网站根目录
- robots.txt 和 sitemap.xml 只有在“能抓取内容”的前提下才有效
提交收录¶
可主动提交网址至搜索引擎: