摘要:在大型语言模型与 AI 搜索(Perplexity、ChatGPT Search、Claude 等)迅速崛起的今天,个人网站的曝光逻辑正在发生根本性变革——不仅要让传统搜索引擎(Google、Bing 等)“看得懂、排得高”,还要让 AI Agent“抓得快、读得准、优先引”。本文系统复盘了 Voocii-Portal 历经 P0(紧急修复降权隐患)、P1(社交分享与结构化数据体系)到 P2(GEO 前沿架构升级)的完整演进路径,并为站点管理员提供详细的验证实操指南。
在系统性审查前,站点在搜索引擎优化(SEO)与 AI 搜索引擎可见性(GEO - Generative Engine Optimization)上存在若干致命隐患与体验断层,可分为三个层级:
RootLayout 中硬编码了全局 alternates: { canonical: siteUrl },导致全站所有内页(如 /blog、/portfolio、/books 以及文章详情页)的规范链接全部被指向主页 https://voocii.com。在搜索引擎眼中,全站内页均被判定为“主页的重复内容”,导致内页严重降权甚至直接被搜索索引剔除。sitemap.xml 中所有中文页面均被硬编码带上了 /zh 前缀(例如 https://voocii.com/zh/blog),而站点的 next-intl 中间件默认语言策略是 as-needed(默认中文不带前缀)。搜索引擎爬虫请求时会触发大量 307 Temporary Redirect,消耗爬取配额且伤害信任度;同时,/trending、/books 及开发工具页面均未收录在 sitemap 中。"Jane Doe",不仅未能为站长真实身份积累技术品牌资产,还污染了 Google 知识图谱(Knowledge Graph)关联。WebSite 结构声明;Book 实体(无法展示 ISBN、出版社、原书作者等专有富文本信息);BreadcrumbList 面包屑结构,搜索引擎结果页(SERP)无法展示清晰的面包屑导航层级。llms.txt(站点结构纲要)与 llms-full.txt(全站高密度知识库),AI 爬虫难以快速建立对站点的宏观认知。GPTBot、ClaudeBot、PerplexityBot、Google-Extended 等)缺乏显式友好准入策略。针对上述问题,我们按严重等级分三阶段实施了端到端改造:
graph LR
A[全维度优化体系] --> B[P0: 核心纠偏]
A --> C[P1: 社交与富媒体]
A --> D[P2: GEO 前沿升级]
B --> B1[精准 Canonical / Hreflang]
B --> B2[无重定向 Sitemap]
B --> B3[真实实体绑定]
C --> C1[动态 OpenGraph / Twitter]
C --> C2[Book / WebSite Schema]
C --> C3[BreadcrumbList 面包屑]
D --> D1[llms.txt 站点索引]
D --> D2[llms-full.txt 语料库]
D --> D3[原生 .md 直链 Rewrite]
D --> D4[AI Bots 准入策略]
apps/web/src/lib/seo.ts):
封装统一的 getCanonicalUrl(pathname, locale) 与 getAlternateLanguages(pathname),严格匹配 next-intl 的 as-needed 规则(默认中文路径无 /zh,英文路径补 /en),同时自动生成 x-default。app/[locale]/layout.tsx 中移除全局硬编码规范链接,由具体页面按需生成独立的 alternates。app/sitemap.ts:
/zh,消除 307 重定向;/trending、/books 以及 5 个常用开发工具页面;<xhtml:link rel="alternate" hreflang="..."> 双语映射。site.config.ts、SEO 工具库及 Schema 声明中统一绑定站长真实配置 siteConfig.site.author || 'Rick'。blog/[slug]/page.tsx 的 generateMetadata 中声明 og:type: 'article'、封面图、发布/修改时间、作者及标签,并在页面中注入 BreadcrumbList 面包屑结构化数据。portfolio/[slug]/page.tsx 中实现多语言回退卡片与高清封面绑定。Book 实体:
在 books/[slug]/page.tsx 中输出符合 Google 规范的标准 Book JSON-LD,包含书名、作者(Person)、ISBN、出版社(Organization)及封面图。WebSite Schema:
在首页(/)注入 WebSite 实体声明,明示站点名称、域名、双语支持与发布者。llms.txt 站点索引 (apps/web/src/app/llms.txt/route.ts):
遵循 llmstxt.org 标准,输出包含站长背景、全站核心导航、精选开源项目与全量技术文章清单的轻量纯文本,并附带文章的原生 Markdown 直链。llms-full.txt (apps/web/src/app/llms-full.txt/route.ts):
专为 AI Agent(如 Claude、Cursor、NotebookLM)设计的全站纯文本知识库,聚合站长履历、系统架构、所有已发布博客纯净全文与精选书评,配置 1 小时 CDN 缓存与 24 小时 stale-while-revalidate。apps/web/src/app/api/raw/blog/[slug]/route.ts,自动为文章注入标准的 YAML Frontmatter(包含 title、author、category、tags、canonical、date)并输出纯 Markdown;apps/web/next.config.ts 的 rewrites 中映射 /blog/:slug.md,使 AI 引擎通过 .md 后缀直达纯文本。app/robots.ts AI 爬虫准入清单:
显式为 GPTBot、ClaudeBot、PerplexityBot、Google-Extended、Applebot-Extended 配置准入规则,明确放行 /llms.txt、/llms-full.txt、/feed.xml 与 /blog/。改造完成后,站点管理员可通过浏览器直接访问、开发者工具(DevTools)、命令行 curl 及权威平台验证工具进行全方位验收。
测试地址:
http://localhost:3000/sitemap.xml
检查要点:
https://voocii.com/blog,绝不能带有 /zh;<url> 节点内部包含 <xhtml:link rel="alternate" hreflang="zh-CN" ...> 与 hreflang="en-US";/trending、/books、/tools/json-formatter 等全量功能页面。http://localhost:3000/blog 或 http://localhost:3000/portfolio)F12 或右键选择“检查”(Inspect);Elements 面板,展开 <head> 标签;<link rel="canonical"。/blog 页面的 canonical 为 https://voocii.com/blog(绝不能指向主页 https://voocii.com);/en/blog 页面的 canonical 必须为 https://voocii.com/en/blog。# 请求默认中文页面,应当直接返回 200 OK,没有任何 307 Temporary Redirect
curl -I http://localhost:3000/blog
http://localhost:3000/blog/advanced-typescript-type-tricks)Elements 面板,展开 <head>;og: 与 twitter: 标签。<meta property="og:type" content="article" />
<meta property="og:title" content="22 - TypeScript 高级类型技巧 | 博客" />
<meta property="og:description" content="深入理解 TypeScript 的条件类型..." />
<meta property="og:url" content="https://voocii.com/blog/advanced-typescript-type-tricks" />
<meta property="article:author" content="Rick" />
<meta name="twitter:card" content="summary" />
http://localhost:3000/books/free-to-choose)application/ld+json;Book 实体定义:包含书名《自由选择》、作者米尔顿·弗里德曼、ISBN、出版社及封面图;BreadcrumbList 面包屑实体:首页 > 读书 > 自由选择。.md 直链http://localhost:3000/blog/advanced-typescript-type-tricks.md
(或者 http://localhost:3000/blog/vpn-openvpn.md)
Content-Type 为 text/markdown; charset=utf-8。llms.txt 与 llms-full.txthttp://localhost:3000/llms.txt
.md Raw 地址)。http://localhost:3000/llms-full.txt
robots.txt AI 爬虫准入清单http://localhost:3000/robots.txt
User-Agent: *
Allow: /
Allow: /llms.txt
Allow: /llms-full.txt
Allow: /feed.xml
Disallow: /admin/
Disallow: /api/
User-Agent: GPTBot
User-Agent: ClaudeBot
User-Agent: PerplexityBot
User-Agent: Google-Extended
User-Agent: Applebot-Extended
Allow: /
Allow: /llms.txt
Allow: /llms-full.txt
Allow: /feed.xml
Allow: /blog/
Disallow: /admin/
Disallow: /api/
Sitemap: https://voocii.com/sitemap.xml
通过上述三个阶段的渐进式演化,Voocii-Portal 完成了从 传统基础 SEO 纠偏 到 全平台社交富媒体呈现,再到 AI 时代 GEO 原生适配 的全面跃升:
llms.txt、llms-full.txt 以及 .md 直链重写,极大降低了 Perplexity、ChatGPT Search 等新一代搜索 Agent 的抓取解析成本,帮助个人技术内容在生成式 AI 时代获得更高的引用权重。未来,站点还可以进一步引入针对 AI 搜索的自动化事实核查锚点(Fact-Check Anchors)与动态 RSS 内容增强,持续保持在现代 Web 索引领域的技术领先性。