SEO 分享与数据统计
14.2 SEO基础配置
Tip
SEO (Search Engine Optimization) 不是玄学,而是让搜索引擎能看懂你的网站。如果你不说话,Google 就不知道你卖什么。
1. 为什么要学这个?
你搜 "Vibe Coding",出来的却是 "Home | My Website"。 你搜教程内容,完全搜不到。 因为你的每个页面标题都叫 "React App",描述都是空的。 Google 对你一无所知,所以它把你的网站扔进了垃圾堆。
2. 核心概念:TDK
在 SEO 界,最基础的三个要素叫 TDK:
- Title (标题): 浏览器标签页上显示的字。权重最高。
- Description (描述): 搜索结果标题下面那两行小字。决定用户点不点。
- Keywords (关键词): 现在 Google 基本忽略,但其他引擎可能还看。
3. 解决方案 (HOW)
3.1 动态页面的元数据 (以博客文章为例)
对于博客文章页 [slug]/page.tsx,标题必须是文章的标题。
import type { Metadata } from 'next'
// 动态生成元数据
export async function generateMetadata({ params }): Promise<Metadata> {
const post = await getPost(params.slug) // 查数据库或 CMS
return {
title: post.title, // "如何使用 Docker"
description: post.summary,
}
}
export default function Page({ params }) {
// ...
}
这样,当用户进入 "如何使用 Docker" 页面,浏览器标题就会自动变成 "如何使用 Docker | Vibe Coding"。
3.2 SEO 渲染流程图
graph TD
GoogleBot["Google 爬虫"] -->|"Step 1: 访问页面"| Server["Next.js 服务器"]
Server -->|"Step 2: 查库 (getPost)"| DB["数据库/CMS"]
DB --"Step 3: 返回文章数据"--> Server
Server -->|"Step 4: 生成 HTML (<title>)"| GoogleBot
GoogleBot -->|"Step 5: 收录索引"| Index["Google 索引库"]
style GoogleBot fill:#e1bee7,stroke:#8e24aa
style Index fill:#fff9c4,stroke:#fbc02d
4. 避坑指南
| ❌ 不要这样做 | ✅ 应该这样做 | 为什么 |
|---|---|---|
| 全站统一标题 | 动态标题 | 每个页面的 title 和 description 必须是独一无二的。如果有重复,Google 会认为你在做内容农场。 |
| 标题太长 | < 60 字符 | 标题太长会被 Google 截断成 ...。把最重要的关键词(比如你的品牌名)放在最前面或最后面。 |
| 忽略 Canonical | 配置 Canonical | 如果 mysite.com 和 www.mysite.com 都能访问,必须指定 canonical 告诉 Google 哪个是正主,防止权重分散。 |
5. 真实案例
Story
2016年,SPA 的痛
在 Next.js 出现之前,大量网站用纯 React (CSR) 编写。
爬虫抓取到的 HTML 只有一个空的 <div id="root"></div>。页面内容全靠 JS 渲染。
虽然 Google 宣称能执行 JS,但实际上效率极低且不稳定;而百度等爬虫根本抓不到内容。
导致很多 React 应用 SEO 为零,流量全靠买广告。
Vibe 心法:搜索引擎不会读心术,它只读 HTML。SSR(服务端渲染) 是现代 SEO 的救星,它确保爬虫在第一秒就能拿到核心数据。通过动态生成元数据,让每一个页面都拥有独立的“灵魂”标签。
6. 本章小结
- Dynamic: 让每个页面都有自己的名字。
- SSR: 让内容在爬虫面前“裸奔”,而不是藏在 JS 后面。
- TDK: 依然是 SEO 的基石。