Vibe Tutorial
SEO 分享与数据统计

14.3 SEO最佳实践

Tip

你配置好了 TDK (14.2),Google 知道你是谁了。但你的网站有 1000 个页面,Google 怎么知道这 1000 个页面的地址?你需要给 Google 一张地图 (Sitemap)


1. 为什么要学这个?

你写了 500 篇博客。但 Google 搜不到。 因为 GoogleBot 从首页顺藤摸瓜,只找到了 5 篇文章的链接。剩下的它找不到入口。 如果不主动提交 Sitemap,你的深层页面可能需要几个月才能被发现。


2. 核心概念:Sitemap & Robots.txt

  • Sitemap.xml (藏宝图): 一个 XML 文件,列出了网站所有页面的 URL 和最后更新时间。爬虫会定期检查这个文件。
  • Robots.txt (门禁卡): 一个 TXT 文件,告诉爬虫哪些房间不能进(比如后台管理页、测试环境)。

3. 解决方案 (HOW)

3.1 动态 Sitemap (Next.js)

app/sitemap.ts 中:

import { MetadataRoute } from 'next'

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const posts = await getAllPosts() // 从数据库获取所有文章
  const baseUrl = 'https://vibecoding.com'

  const postUrls = posts.map((post) => ({
    url: `${baseUrl}/posts/${post.slug}`,
    lastModified: post.date,
  }))

  return [
    { url: baseUrl, lastModified: new Date() },
    ...postUrls,
  ]
}

Next.js 会自动生成 /sitemap.xml

3.2 爬虫路径示意图

graph TD
    Bot["GoogleBot"] -->|"Step 1: 敲门"| Robots["robots.txt"]
    
    Robots --"Step 2: 禁止 /admin"--> Block["Block"]
    Robots --"Step 3: 地图在这"--> Sitemap["sitemap.xml"]
    
    Sitemap -->|"Step 4: 获取 URL 列表"| List["Post 1, Post 2, ... Post 100"]
    
    List -->|"Step 5: 逐个抓取"| Pages["文章详情页"]
    
    style Robots fill:#fff9c4,stroke:#fbc02d
    style Sitemap fill:#c8e6c9,stroke:#2e7d32

4. 避坑指南

❌ 不要这样做 ✅ 应该这样做 为什么
手写 Sitemap 代码生成 永远不要手动维护 Sitemap。你一定会忘更新,导致新文章很久才被收录。
坐等收录 提交 GSC 主动去 Google Search Console (GSC) 提交你的 Sitemap 地址。这能把收录速度从几周缩短到几小时。
用 display:none 用 robots.txt 即使你在页面里隐藏了链接,爬虫还是能看到源码。不想被搜到的内容,必须显式在 robots.txt 里 Disallow。

5. 真实案例

Story

2020年,泄露的测试环境

某公司把开发环境部署在 dev.company.com。 忘了配置 robots.txt 禁止抓取。 结果 Google 把整个测试环境收录了。 用户搜公司名,第一条是官网,第二条是乱七八糟的测试版(里面甚至有假数据和脏话)。

Vibe 心法:不要在 GoogleBot 的智商上赌博。对于测试环境与敏感后台,显式的 Disallow 是唯一的门禁。主动提交 Sitemap 并不是示弱,而是邀请搜索引擎巨头高效扫描你“数字王国”的官方请柬。


6. 本章小结

  1. Sitemap:是网站的目录,动态生成它。
  2. Robots.txt:是网站的保安,告诉爬虫止步于此。
  3. GSC:Google Search Console 是站长的必修课。