Skip to content

个人博客自建指南(7.1番外):新站上线后的初级 SEO 配置

前言

第6篇我们手动部署了博客,第7篇实现了 git push 直达线上。文章写好了,站点跑起来了,域名解析生效了——然后我发现一个尴尬的局面:

百度搜不到,必应搜不到,甚至连搜自己的域名 jiejinx.cn 都一片空白。

而知乎上同步发的文章倒是很快被收录了。

这不是站点出了问题,是新站的正常状态。搜索引擎不会主动知道一个新站的存在,你得告诉它们。

这篇就来补齐这个环节。做完之后,你的站点将从“无人知晓”进入“慢慢被看见”的阶段。

一、方案选择

方案优点缺点推荐度
什么都不做,等爬虫自己来零操作新站可能要等 3–6 个月才有收录
只交 sitemap简单缺标题/描述/品牌信号,收录质量差⚠️
完整配置:TDK + sitemap + 站长平台 + 品牌回链可控,可追踪需半天一次性配置推荐

搜索引擎优化是一个长期工程,但新站上线第一天最该做的,不是追排名,而是让搜索引擎知道你存在、你是谁、你写了什么。这篇只做这件事。

1.1 架构总览

本地写 md(含 frontmatter)
  → pnpm build 生成 sitemap.xml
    → 部署到 ECS
      → 百度/必应站长平台提交 sitemap
        → 爬虫来访,读取标题/描述/关键词
          → 收录 → 慢慢出现在搜索结果中

全程不涉及黑帽技巧,不做关键词堆砌,不买外链。只做搜索引擎希望你做的事:把站点身份写清楚,把内容结构告诉它,然后等它来。

1.2 前置条件

  • 已完成第6篇的全部步骤(ECS 上有 Nginx、博客已手动部署成功、域名已解析)
  • 已完成第7篇的自动化部署(可选,但推荐,因为后续每次更新 sitemap 都会自动重新提交)
  • 你的博客项目已托管在 Gitee 仓库

二、基础 SEO 配置

搜索引擎爬虫访问一个页面时,最先看的是 <head> 里的信息。如果标题、描述、关键词这些是空的,爬虫就很难判断这个页面是什么、该不该收录。

VitePress 的配置集中在 .vitepress/config.ts 里。打开它,找到这几个字段:

typescript
title: '阶进遐 | 技术随笔',
description: '阶进遐(jiejinx.cn)的个人技术博客,记录树莓派自建、VitePress 博客搭建、云架构与开发者效率实践。',
lang: 'zh-CN',
  • title:会出现在浏览器标签栏和搜索结果标题里。建议包含品牌词 + 一句话定位。
  • description:搜索结果摘要的来源,虽然百度不一定会用,但不能不给。控制在 80–120 字,自然融入关键词。
  • lang:告诉搜索引擎页面语言是中文。

然后是 head 标签,补充搜索引擎需要的元信息:

typescript
head: [
    // SEO 基础
    ['meta', { name: 'keywords', content: '阶进遐,jiejinx,树莓派,自建服务,VitePress,技术博客,Docker,IPv6,java,web应用,spring, Android,安卓,微服务,分布式,数据库,前端' }],
    ['meta', { name: 'author', content: '阶进遐' }],
    ['meta', { name: 'robots', content: 'index, follow' }],

    // Open Graph(社交分享卡片)
    ['meta', { property: 'og:site_name', content: '阶进遐的技术随笔' }],
    ['meta', { property: 'og:type', content: 'website' }],
    ['meta', { property: 'og:locale', content: 'zh_CN' }],

    // 规范链接(防止域名别名导致权重分散)
    ['link', { rel: 'canonical', href: 'https://jiejinx.cn/' }],

    //JSON-LD, 建立品牌实体关联,提高网站的搜索结果展现
    [
      'script',
      { type: 'application/ld+json' },
      JSON.stringify({
        '@context': 'https://schema.org',
        '@type': 'Person',
        name: '阶进遐',
        url: 'https://jiejinx.cn/',
        sameAs: [
          'https://gitee.com/jiejinx',
          'https://www.zhihu.com/people/jiejinx'
        ]
      })
    ],

    // Favicon(可选,建议放 docs/public/favicon.ico)
    ['link', { rel: 'icon', href: '/favicon.ico', sizes: 'any' }],
    ['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' }],
    ['link', { rel: 'icon', type: 'image/png', sizes: '16x16', href: '/favicon-16x16.png' }],
    ['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }],
    ['link', { rel: 'manifest', href: '/site.webmanifest' }],
  ]

几个关键字段说明:

  • canonical:告诉搜索引擎这个页面的规范地址是这个,不要因为域名别名或重复访问导致权重分散。
  • robots:明确允许索引和跟踪链接。默认就是 index, follow,但显式写出更保险。
  • og 标签:给社交媒体分享时用的,虽然不是 SEO 直接因素,但顺手加上没坏处。
  • JSON-LD 结构化数据:告诉搜索引擎“阶进遐”(你的品牌名)这个名称与你的博客、Gitee、知乎等是同一实体,搜索品牌词时博客首页有更大机会出现在前列。

三、文章 SEO 配置

之前写的文章只有正文,没有独立的标题和描述。这意味着每篇文章在搜索结果里显示的标题和摘要都是从正文里自动截取的,不可控。

VitePress 支持在 Markdown 文件顶部写 frontmatter(YAML 格式的元数据),用来指定当前页面的标题和描述。

打开 docs/self-host/rpi-web-server/1.md,在文件最顶部加上:

markdown
---
title: 树莓派4B自建网页服务器指南(1):家庭宽带使用公网 IPv6 的前置条件
description: 阶进遐记录树莓派4B通过家庭宽带获取公网 IPv6 的前置条件,包含运营商、光猫、路由器的检查清单与常见问题。
---

title 会成为页面的 <title> 标签和浏览器标签栏显示的文字。description 会成为 <meta name="description">,搜索引擎可能会用它作为搜索结果摘要。

每篇文章都要补。新建的文章则在写作时就写好 frontmatter,养成习惯。

四、站点地图 配置

站点地图(sitemap.xml)是给搜索引擎看的目录,告诉它你的站点有哪些页面、每页的最后更新时间、优先级等信息。

VitePress 1.x 内置了 sitemap 生成,只需在在 config.ts 中的配置里指定域名:

typescript
// docs/.vitepress/config.ts

import { defineConfig } from 'vitepress'

export default defineConfig({
  // 其他配置...
  sitemap: {
    hostname: 'https://jiejinx.cn',
  }
})

执行 pnpm build 后,在 dist/ 目录下会生成 sitemap.xml。部署后访问 https://jiejinx.cn/sitemap.xml 确认能拿到。

五、robots.txt 配置

robots.txt 是搜索引擎爬虫访问站点时第一个看的文件。它告诉爬虫哪些目录可以抓取、哪些不可以。

新建 docs/public/robots.txt

txt
User-agent: *
Allow: /

Sitemap: https://jiejinx.cn/sitemap.xml

VitePress 构建时会自动把 public/ 目录下的文件复制到 dist/ 根目录。部署后访问 https://jiejinx.cn/robots.txt 确认能拿到。

六、提交到搜索引擎

配置做好之后,搜索引擎不会立刻知道。需要主动去它们的站长平台提交站点和 sitemap

6.1 百度搜索资源平台

  1. 访问 https://ziyuan.baidu.com,登录后添加站点 jiejinx.cn
  2. 验证站点所有权:选择文件验证,下载验证文件放到 docs/public/ 下,重新部署
  3. 验证通过后,在左侧「链接提交」中提交 sitemap 地址:https://jiejinx.cn/sitemap.xml
  4. 百度目前有配额限制,初期可以把首页和已有的文章 URL 手动提交一次,加速初次收录

6.2 Bing Webmaster Tools

  1. 访问 https://www.bing.com/webmasters, 添加站点
  2. 验证所有权(方式和百度类似)
  3. 提交 sitemap

必应对中文新站的收录速度比百度快一些,通常提交后一周内能看到结果。

6.3 Google Search Console(可选)

虽然主要读者是国内用户,但 Google Search Console 提供了很好的抓取状态监测和排错工具,有条件的话可以顺手也提交一份。操作方式同上。

七、知乎文章加回链

我在知乎上也发了同样的文章,而且知乎的平台权重高,很快就被百度收录了。这是个可以利用的信号:在知乎文章底部加一行:

本文同步发布于个人博客 阶进遐的技术随笔:https://jiejinx.cn/self-host/rpi-web-server/1

这样搜索引擎在爬取知乎文章时,会看到指向你站点的链接,有助于建立域名信任度和品牌词的关联。

社交链接也可以进行一个配置,引导读者前往交流,如github或gitee, 由于vitepress中没有内置gitee网站图标,可利用svg自行绘制。

typescript
// .vitepress/config.ts

export default defineConfig({
  // 其他配置...

  socialLinks: [
    { icon: 'github', link: 'https://github.com/jiejinx', ariaLabel: '我的 GitHub' },
    {
      icon: {
        svg: '<svg role="img" viewBox="0 0 24 24" width="24" height="24" fill="currentColor"><path d="M11.984 2.008c-5.02 0-9.09 4.07-9.09 9.09 0 4.012 2.606 7.418 6.213 8.604.453.083.618-.197.618-.437 0-.216-.008-.787-.012-1.544-2.524.55-3.057-1.216-3.057-1.216-.413-1.05-1.008-1.33-1.008-1.33-.824-.563.062-.552.062-.552.912.064 1.391.936 1.391.936.81 1.386 2.125 1.986 3.328 1.53.103-.79.317-1.33.577-1.636-2.016-.23-4.136-1.008-4.136-4.482 0-.99.353-1.8.933-2.434-.094-.23-.405-1.152.088-2.402 0 0 .76-.244 2.49.93a8.65 8.65 0 0 1 2.27-.306c.77 0 1.546.104 2.27.306 1.73-1.174 2.49-.93 2.49-.93.493 1.25.182 2.172.088 2.402.58.634.932 1.444.932 2.434 0 3.484-2.123 4.25-4.146 4.476.326.282.617.838.617 1.69 0 1.22-.011 2.205-.011 2.504 0 .243.164.527.625.438 3.604-1.188 6.208-4.596 6.208-8.606 0-5.02-4.07-9.09-9.09-9.09z"/></svg>'
      },
      link: 'https://gitee.com/jiejinx',
      ariaLabel: '我的 Gitee',
    }
  ]
})

八、favicon 配置

favicon 图标不是 SEO 的直接因素,但它影响用户对站点的第一印象。我用 favicon.ioTEXT to ICO 生成了一版,选用“阶”字,采用风格偏水墨毛笔感,和站名“阶进遐”呼应。

下载后把文件放到 docs/public/ 下,并在 config.tshead 里引用:

ts
['link', { rel: 'icon', href: '/favicon.ico', sizes: 'any' }],
['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' }],
['link', { rel: 'icon', type: 'image/png', sizes: '16x16', href: '/favicon-16x16.png' }],
['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }],

九、最小 SEO 检查清单

做完上述配置后,后续每发一篇新文章,只需要确认这几件事:

  1. 本地 .md 文件写好了 frontmatter(title / description)
  2. pnpm build 后 sitemap 自动更新
  3. 部署到服务器(如果用了第七篇的自动化部署,git push 即可)
  4. 去百度 / 必应站长平台手动提交新增 URL 加速收录(或后续接入 API 自动推送)
  5. 如果在知乎同步发布,文末加回链

十、日常维护

10.1 查看收录状态

# 百度
site:jiejinx.cn

# 必应
site:jiejinx.cn

如果搜索结果为空,说明还没收录,正常,继续等。

10.2 查看抓取统计

百度站长平台 → 抓取诊断 → 输入首页 URL,看能否正常抓取。如果返回 200,说明爬虫能正常访问你的站点。

10.3 检查 sitemap 是否更新

每次新增文章后,访问 https://jiejinx.cn/sitemap.xml,确认新文章的 URL 是否出现在列表中。如果没有,检查 pnpm build 是否成功。

十一、故障排查

11.1 提交 sitemap 后长时间无收录

新站有沙盒期,百度通常需要 1–3 周才开始收录,必应稍快。如果超过一个月仍无收录:

  • 检查 robots.txt 是否误写了 Disallow: /
  • 检查页面是否返回 200(不要是 301/302/403/500)
  • 检查页面是否有 noindex 标签
  • 确认站点已在站长平台验证通过

11.2 搜品牌词不出自己站点

新站权重低,品牌词先出知乎是正常的。持续产出内容 + 知乎回链,2–4 周后自有站点会慢慢上来。

11.3 页面已收录但标题/描述不对

检查该页面的 frontmatter 是否写对了 title 和 description。百度可能会用自己的算法重写摘要,不一定完全听你的,但写了总比不写好。

十二、总结

这篇我们实现了:

步骤说明
配置站点 title/description让搜索引擎知道你是谁
每篇文章加 frontmatter让每页有独立的标题和摘要
生成 sitemap.xml给搜索引擎一份站点目录
配置 robots.txt告诉爬虫哪些可以抓取
提交百度/必应站长平台主动通知搜索引擎来收录
知乎文章加回链利用高权重平台反哺品牌词
配置 favicon提升用户第一印象

做完这些,你的站点已经从“无人知晓”进入了“可以被发现”的状态。剩下的就是持续产出内容,让搜索引擎慢慢认识这个站点。

SEO 不是一天做完的,但新站上线第一天该做的,就是这些。