SEO 与站点地图
SEO 配置
1 | seo: |
| 配置项 | 说明 |
|---|---|
og_meta |
输出 og:* 与 twitter:* 系列 meta |
og_image |
文章无 cover / banner 时的分享图兜底 |
json_ld |
输出 BlogPosting 结构化数据 |
canonical |
输出 <link rel="canonical">,避免重复内容 |
keywords |
与文章 tags、站点 keywords 合并去重后输出 |
baidu_verify |
填入百度站长平台给的验证串 |
google_verify |
填入 Search Console 给的验证串 |
canonical、OG 图、sitemap.xml 全部基于站点 _config.yml 的 url 拼接。url 填错会导致搜索引擎收录到错误的地址。部署前务必核对。
1 | # 站点 _config.yml |
描述与关键词的取值
主题按以下优先级生成 <meta name="description">:
1 | page.description |
最终统一做 160 字截断。SEO 的收益几乎全在 description 上,所以每篇文档都应认真写这一项。
关键词的合并规则:
1 | 文章的 tags |
Open Graph 与 Twitter Card
og_meta: true 时输出:
1 | <meta property="og:site_name" content="..."> |
分享图的取值:
1 | page.cover → page.banner → theme.seo.og_image |
文档页通常没有 cover。建议设置一张统一的品牌分享图:
1 | seo: |
尺寸建议 1200×630。这样任何文档被分享到社交平台时都有统一、可辨识的预览图。
站点地图
1 | sitemap: |
主题内置生成器(scripts/generators/sitemap.js),不需要安装 hexo-generator-sitemap。
收录范围
| 来源 | 说明 |
|---|---|
| 首页 | 优先级 1.0 |
| 全部文章 | 跳过草稿,优先级 0.6 |
| 全部页面 | 跳过首页 |
| 全部标签页 | 优先级 0.6 |
| 全部分类页 | 优先级 0.6 |
每条带 lastmod(取 updated 或 date),并对 URL 去重。
排除路径
1 | sitemap: |
命中的 URL 会被剔除。匹配方式是子串包含,因此 /draft/ 会排除所有含该片段的地址。
robots.txt
1 | sitemap: |
开启后会额外生成:
1 | User-agent: * |
sitemap.robots 默认是 false。如果你已在站点 source/robots.txt 手写了规则,保持关闭即可;否则打开它会生成一份基础版。
404 页
1 | error_404: |
智能行为
生成器会先检查站点里是否已经存在自定义 404 页面:
1 | public/404.html |
只要命中任一个,主题就不再生成,尊重你的自定义版本。
内置 404 页包含什么
- 配置的标题与副标题
- 返回首页按钮
- 按发布日期倒序的
recommend_count篇推荐文章
手动定制
想完全掌控 404 页,创建 source/404.md:
1 |
|
文档站的 404 页最好的做法是列出文档树的顶层入口,让走错的读者能快速找到目标,而不是只有一个”返回首页”。可以用标签插件拼一个:
1 | {% raw %}{% row %} |
检查清单
上线前逐项确认:
_config.yml 的 url 与最终访问地址完全一致(含协议、无尾部斜杠)。
影响搜索结果摘要与 SEO 权重,是收益最高的一项。
访问 /sitemap.xml 应返回合法 XML,且包含你的文档页。
要么开启生成,要么自己写 source/robots.txt。不留空白。
设置 seo.og_image,用社交平台的调试工具验证预览效果。
seo.baidu_verify / seo.google_verify 填好后在站长平台点击验证。
评论