搜索引擎处理网页,大致要经过发现 URL、抓取页面、建立索引、根据搜索需求展示页面四个环节。Halo 的站点设置、文章属性、AI 助手和 SEO 工具集,分别解决这条链路中的不同问题。
本文适用于 Halo 2.x。“SEO 工具集”当前要求 Halo 2.23 或更高版本,并需要专业版或商业版许可证。不同主题输出标题、摘要、封面和分享信息的方式可能不同,因此配置完成后还要检查网页源代码。
一、先理解 Halo 中的 SEO 功能
| SEO 环节 | Halo 功能 | 作用 |
|---|---|---|
| 发现 URL | Sitemap、站点推送、内外部链接 | 告诉搜索引擎页面存在 |
| 抓取 | robots.txt、抓取检查、爬虫记录 | 确认搜索引擎可以访问页面 |
| 理解内容 | 标题、摘要、图片 alt、结构化数据 | 说明页面讲什么 |
| URL 归一 | 文章别名、Canonical、重定向 | 避免同一内容出现多个地址 |
| 搜索展示 | 标题、Meta Description、结构化数据 | 影响搜索结果的标题、摘要和增强样式 |
| 社交传播 | Open Graph、X Card、微信分享 | 控制链接分享到社交平台时的样式 |
| 效果评估 | Search Console、搜索流量、落地页统计 | 判断哪些页面带来访问 |
需要先记住三点:SEO 设置只能帮助搜索引擎发现和理解内容,不能保证收录或排名;Sitemap、推送和搜索引擎验证不能替代内容质量;插件负责技术配置,文章是否真正解决用户问题仍然由作者负责。
Google 也明确说明,即使网页符合技术要求,也不保证一定被抓取、收录或展示。
二、配置 Halo 站点信息
进入“Console → 设置”,完善站点标题、副标题、Logo、Favicon、首选语言和站点描述。
站点描述应回答三个问题:这是什么网站、为谁提供什么内容、网站最主要的特点是什么。例如:
开发者小报是一个面向独立开发者的技术博客,持续分享 Halo 建站、Java 开发、服务器运维和开源项目实践。
填写后,Halo 会在页面 <head> 中生成类似代码:
<meta name="description" content="站点描述">
Meta Description 是搜索摘要的候选来源,并不保证原样展示。搜索引擎也可能根据用户查询从正文中截取更合适的内容。
正式站点还要确认“屏蔽搜索引擎”没有开启。开启后,Halo 会输出:
<meta name="robots" content="noindex">
noindex 表示不希望页面进入搜索索引,适合测试站或内部网站,不适合正式公开站点。
“站点关键词”可以不填。Halo 官方文档已经说明,Google、Bing、百度等主流搜索引擎不再使用 meta keywords 作为关键词参考。
三、做好每篇文章的 SEO
文章设置位于“Console → 文章 → 新建或编辑文章 → 右上角设置”。
1. 文章标题
标题应准确说明文章解决的问题,可以采用“主题 + 用户问题 + 必要限定条件”的结构,例如:
- Halo 2.25 安装教程:使用 Docker Compose 部署
- Halo 文章图片无法显示:存储策略与反向代理排查
- 个人博客如何配置 HTTPS:Nginx 完整示例
不要使用含义不清的标题,也不要反复堆砌同一个关键词。Google 会综合页面 <title>、主标题、正文和链接文字生成搜索结果标题,因此后台标题不一定原样展示。
2. 文章别名
Halo 中的“别名”对应 slug,通常用于组成文章 URL。比如:
文章别名:deploy-halo-with-docker
访问地址:/archives/deploy-halo-with-docker
别名应简短、可理解、使用连字符分隔单词,发布后尽量不要修改。Halo 支持按标题、时间戳、Short UUID 或 UUID 自动生成别名。重视 URL 可读性时,建议选择“根据标题生成”,发布前再人工检查。
如果收录后修改别名,应将旧地址通过 301 或 308 永久重定向到新地址。
3. 文章摘要
Halo 支持自动生成摘要,也支持关闭自动生成后填写自定义摘要。重要文章建议手动填写,例如:
本文介绍如何使用 Docker Compose 部署 Halo 2.25,包括数据库、反向代理、HTTPS、数据目录和升级备份配置。
摘要应说明文章主题、解决的问题和适用范围,不要写成关键词列表。文章摘要主要用于内容列表;它是否成为文章页的 Meta Description,取决于主题或 SEO 插件的实际输出。发布后应查看源代码,确认文章详情页是否存在独立的 <meta name="description">。
4. 图片替代文本
alt 是图片的替代文本,可以帮助屏幕阅读器用户和搜索引擎理解图片。Markdown 中可以这样填写:

写 alt 时应描述图片真实内容和用途,不要写“图片”“截图一张”,也不要堆砌关键词。纯装饰图片可以使用空的 alt。
5. 分类和标签
分类表示网站的主要内容体系,标签表示跨文章复用的内容属性。例如:
分类:Halo 教程
标签:Docker、Nginx、HTTPS
分类应保持稳定,标签应可以复用。不要为每篇文章建立多个只使用一次的标签,也不要同时创建“SEO”“搜索优化”“网站 SEO”等含义重复的标签。
四、使用 AI 助手生成文章属性
Halo AI 助手可以根据正文生成标题、别名、分类、标签和摘要。安装并启用插件后,在插件的“编辑器”设置中为“文章属性生成”选择模型,然后在文章编辑器顶部打开“AI 属性生成”。
推荐流程:
先完成正文 → AI 生成属性 → 人工修改 → 发布前检查
AI 生成后,要检查标题是否夸张、别名是否稳定、是否创建重复分类或同义标签、摘要是否忠于正文,以及有没有虚构正文中不存在的结论。AI 适合减少重复劳动,不应代替编辑判断。
五、配置 SEO 工具集
在“Console → 应用市场”搜索“SEO 工具集”,安装后激活许可证并启用插件。
1. 运行站点概览检查
进入“SEO 工具集 → 概览”,检查:
- HTTPS 是否启用;
- 站点描述是否填写;
/sitemap.xml是否能够访问;/robots.txt是否能够访问;- 页面是否存在意外的
noindex; - Halo 外部访问地址是否正确。
Sitemap 能帮助搜索引擎发现 URL,但不保证收录,也不会直接提高排名。
2. 完成搜索引擎验证
建议至少接入 Google Search Console、Bing Webmaster Tools 和百度搜索资源平台。一般流程是:在站长平台添加网站,选择 HTML Meta 标签验证,复制验证代码,填入 SEO 工具集,再返回站长平台完成验证。
验证代码只用于证明网站所有权,并开放搜索数据和管理工具,本身不会提升排名。
3. 配置 Open Graph
Open Graph 用于控制链接分享到社交平台时的标题、摘要和图片,典型输出如下:
<meta property="og:title" content="文章标题">
<meta property="og:description" content="文章摘要">
<meta property="og:image" content="文章封面地址">
<meta property="og:url" content="文章规范地址">
<meta property="og:type" content="article">
建议设置全站默认分享图,同时让文章优先使用自己的封面。Open Graph 主要服务社交分享,不是通用搜索排名标签。配置后应把链接实际发送到相应平台测试。
4. 启用结构化数据
结构化数据使用 Schema.org 词汇明确说明页面类型。通常首页可以使用 WebSite 和 Organization,文章使用 Article 或 BlogPosting,面包屑使用 BreadcrumbList,作者使用 Person。
结构化数据必须和页面可见内容一致。不要标记页面中不存在的评分、作者、价格或问答。它只能让页面具备增强搜索结果的资格,不保证一定展示。配置后可以使用 Google 富媒体搜索结果测试验证。
5. 启用 Canonical
Canonical 用于声明相同或高度相似 URL 中的首选地址:
<link rel="canonical" href="https://example.com/archives/halo-seo-guide">
启用自动 Canonical 后,要确认文章页指向自己的正式地址,地址使用 HTTPS 和正式域名,带追踪参数的页面指向不带参数的版本,并且页面中没有两个互相冲突的 Canonical。
Canonical 是规范化信号,不是重定向;用户仍然可以访问当前 URL。
6. 管理重定向
修改文章别名、合并重复文章、调整路由或更换域名时,应把旧地址永久重定向到最相关的新地址。不要把所有 404 页面都重定向到首页;没有替代内容时返回正确的 404 更合理。
7. 谨慎使用站点推送
SEO 工具集支持 IndexNow、百度推送和 Google 推送。IndexNow 可以通知 Bing 等支持该协议的搜索引擎 URL 已新增、更新或删除;百度推送需要搜索资源平台提供的 Token。
需要特别注意:Google 官方 Indexing API 只适用于带有 JobPosting 的职位页面,或嵌入 BroadcastEvent 的直播视频页面,不是普通博客文章的通用快速收录接口。普通文章仍应依靠正常抓取、内链、Sitemap 和 Search Console。
8. 查看爬虫与搜索流量
爬虫记录可以帮助发现搜索引擎是否访问网站、哪些地址频繁返回 404,以及页面响应是否异常缓慢。搜索流量页面记录实际进入网站的搜索访问,但不能完全替代 Search Console,因为 Search Console 还能提供“已经展示但没有点击”的查询数据。
六、一篇文章的发布检查表
发布前检查:
- 标题准确说明内容;
- 正文解决明确问题;
- 重要结论有来源或实际证据;
- 文章别名简短、稳定;
- 摘要经过人工检查;
- 有信息价值的图片填写 alt;
- 分类和标签没有重复;
- 封面与文章主题相关;
- AI 生成属性已经人工复核。
发布后检查:
- 页面返回 200;
- 源代码中没有意外的
noindex; - 页面只有一个正确的 Canonical;
- 标题和 Meta Description 正常;
- Open Graph 标题、摘要和图片正确;
- 结构化数据通过验证;
- 文章出现在 Sitemap 中;
- 在 Search Console 检查 URL;
- 手机端能够正常加载和阅读;
- 修改过 URL 时,旧地址可以正确跳转。
七、常见误解
- 填写“站点关键词”不会自动获得关键词排名。
- 站点描述不一定原样成为搜索结果摘要。
- 文章摘要是否成为 Meta Description,要看主题和插件输出。
- 提交 Sitemap 不代表已经收录。
- 搜索引擎验证不代表排名提升。
- Open Graph 主要影响社交分享。
- 结构化数据不保证出现富媒体结果。
- Canonical 不是重定向。
- 推送成功不表示收录成功。
- AI 生成内容和属性仍需人工审核。
- SEO 工具集不能替代有价值的正文。
推荐实施顺序:
站点标题与描述
→ 关闭意外 noindex
→ 检查 HTTPS、Sitemap、robots.txt
→ 完成搜索引擎验证
→ 规范文章标题、摘要、别名和图片 alt
→ 配置 Canonical
→ 配置结构化数据
→ 配置 Open Graph
→ 建立旧 URL 重定向
→ 持续查看收录、搜索流量和落地页