seanwalter
返回文章列表
2026-05-0510 分钟2k字

别光写代码不写 meta 标签:我给博客做了 SEO 和 GEO 优化的全过程

花一小时补齐 sitemap、robots、Open Graph、JSON-LD、canonical URL,覆盖 Google + Bing 双引擎。不花钱、不影响用户体验。

SEOGEOGoogleBing博客优化结构化数据

你花 3 小时写的博客文章,Google 和 Bing 根本不知道它存在。这不是内容问题,是你连门都没开。

写在前面

我的博客 seanwalter.top 上线快一周了,文章写了好几篇,但打开 Google Analytics 一看——访问量惨淡。

不是内容不行,是搜索引擎根本找不到我

原因很简单:我只管写代码、部署上线,从来没做过任何 SEO 优化。没有 sitemap,没有 robots.txt,没有结构化数据,分享链接到微信的时候光秃秃一个 URL,连标题和描述都没有。

今天花了一个小时,把这些基础全部补齐了,覆盖了 Google 和 Bing 两大搜索引擎。以下是我做了什么、为什么做、做完之后有什么效果。


一、SEO 和 GEO 到底是什么?

先说人话。

SEO(Search Engine Optimization) = 让搜索引擎能找到你、理解你、把你排在前面。

GEO(Generative Engine Optimization) = 让 ChatGPT、Perplexity、Google AI 这些 AI 搜索引擎能引用你的内容。

两者的关系:SEO 是地基,GEO 是上层建筑。基础 SEO 做不好,GEO 根本没戏。

一句话区别:SEO 让人搜到你,GEO 让 AI 引用你。


二、我检查了什么

打开我的博客源码,逐项检查:

检查项状态影响
sitemap.xml没有搜索引擎不知道我有哪些页面
robots.txt没有爬虫不知道哪些能抓
Open Graph 标签没有分享链接没有预览图和描述
JSON-LD 结构化数据没有搜索引擎不知道我是谁、文章是什么
canonical URL没有可能被判定为重复内容
Twitter Card没有推特分享也是光秃秃的
Google Analytics至少能看数据
Google Search Console没提交没人告诉 Google 我存在
Bing Webmaster没提交Bing 也不知道我存在

结论:我的博客在所有搜索引擎眼里都是隐形的。


三、我做了什么(具体改动)

1. sitemap.xml —— 告诉搜索引擎"我有哪些页面"

Next.js 的 App Router 原生支持,写一个 sitemap.ts 就行:

// app/sitemap.ts
export default function sitemap() {
  return [
    { url: "https://seanwalter.top", priority: 1 },
    { url: "https://seanwalter.top/blog", priority: 0.9 },
    { url: "https://seanwalter.top/about", priority: 0.8 },
    // ...博客文章自动生成
  ];
}

构建时自动生成,不需要手动维护。Google 和 Bing 都能读。

2. robots.txt —— 告诉爬虫"什么能抓什么不能抓"

// app/robots.ts
export default function robots() {
  return {
    rules: { userAgent: "*", allow: "/", disallow: ["/api/", "/_next/"] },
    sitemap: "https://seanwalter.top/sitemap.xml",
  };
}

3. Open Graph 标签 —— 分享链接时显示标题和描述

layout.tsx 的 metadata 里加上:

openGraph: {
  type: "website",
  locale: "zh_CN",
  url: "https://seanwalter.top",
  siteName: "seanwalter",
  title: "seanwalter | AI Agent 开发者",
  description: "AI Agent 开发者,专注 RAG 知识库与智能体搭建。",
},
twitter: {
  card: "summary_large_image",
  title: "seanwalter | AI Agent 开发者",
  description: "AI Agent 开发者,专注 RAG 知识库与智能体搭建。",
},

以前分享链接到微信:一个光秃秃的 URL。

现在:标题 + 描述 + 网站名。

4. JSON-LD 结构化数据 —— 告诉 AI "我是谁"

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "seanwalter",
  "url": "https://seanwalter.top",
  "jobTitle": "AI Agent 开发者",
  "knowsAbout": ["AI Agent", "RAG", "LangChain", "LLM", "自动化测试"]
}

这个东西用户看不到,但 Google 和 AI 引擎看到后,会建立你的知识面板——搜"seanwalter"的时候右侧显示你的个人信息。

每篇博客文章也加了 Article 类型的 JSON-LD,包含标题、日期、作者、标签。

5. canonical URL —— 防止被当成重复内容

每个页面都加了 canonical 链接,告诉搜索引擎"这个页面的唯一地址是这里"。

6. 提交搜索引擎站长平台

这是最关键的一步——光写代码不够,得主动告诉搜索引擎你存在。

Google Search Console:

  • 打开 https://search.google.com/search-console
  • 添加资源 → 输入 https://seanwalter.top
  • 验证方式:HTML meta 标签(加一行代码就行)
  • 提交 sitemap.xml

Bing Webmaster Tools:

  • 打开 https://www.bing.com/webmasters
  • 用微软账号登录 → 添加站点
  • 验证方式:也是 HTML meta 标签
  • 提交 sitemap.xml

两个平台的验证代码都写在同一个 layout.tsx 里,一次部署全搞定。


四、这些优化花钱吗?

全部免费。

项目费用
sitemap / robots.txt0(代码生成)
Open Graph / JSON-LD0(写在 HTML 里)
Google Analytics0(免费版够用)
Google Search Console0
Bing Webmaster Tools0

唯一可能花钱的是你想买个 OG 预览图,但 Canva 免费版就能做。


五、优化完有什么变化?

对搜索引擎

  • Google 和 Bing 都能正确收录所有页面
  • 搜"AI 测试自动化"、"RAG 知识库"等关键词时有机会出现
  • 分享链接到社交媒体时自动显示标题和描述

对 AI 引擎

  • ChatGPT / Perplexity 能正确引用你的内容
  • 结构化数据让 AI 知道"这是一个叫 seanwalter 的 AI Agent 开发者"

对用户

  • 零影响——这些都是 HTML 里的元数据,页面没有任何视觉变化
  • 加载速度不受影响

花一小时改代码,换来的是 Google + Bing 都能找到你、分享链接更好看、AI 能引用你。不花钱、不影响用户体验。


六、关于百度要不要做?

我查了一下,百度站长平台也是免费的,但有两个问题:

  • 百度对 Next.js 这种前端渲染的项目抓取不稳定,收录可能很慢
  • 技术博客的读者大概率用 Google 或 Bing,百度的投入产出比不高

我的建议:先把 Google + Bing 跑起来,有精力再加百度。


七、你也可以照着做

如果你也有一个 Next.js 博客,照着这个清单检查一遍:

  • 有没有 sitemap.ts
  • 有没有 robots.ts
  • metadata 里有没有 openGraphtwitter
  • 有没有 JSON-LD 结构化数据?
  • 有没有 canonical URL?
  • 有没有提交 Google Search Console?
  • 有没有提交 Bing Webmaster Tools?

七个全没有?那你和我之前一样——在所有搜索引擎眼里都是隐形的。

花一小时补上,比多写一篇文章有用。


这是我的博客 SEO/GEO 优化实战记录,覆盖 Google + Bing 双引擎。如果你也在做个人博客,希望对你有帮助。

本文是"肖恩的博客"系列文章之一,首发于 seanwalter.top。作者是一名从软件测试转型AI领域的开发者,记录在转型过程中的真实思考。

评论

相关文章