主题
技术SEO检查清单
目标
在网站上线前完成所有 SEO 技术配置,确保搜索引擎能正确抓取、索引和排名你的页面。
前置条件
- Next.js 项目代码库可访问
- 项目已通过 Vercel 部署成功(可在 xxx.vercel.app 访问)
- 自定义域名已完成 DNS 绑定(域名已指向 Vercel)
- 拥有域名的 DNS 管理权限(用于 GSC 验证)
操作步骤
步骤1:GSC 收录配置
目的:让 Google 知道你的网站存在,并开始抓取和索引页面。 操作:
- 访问 Google Search Console,点击「添加属性」。
- 输入你的自定义域名(如
www.yourproduct.com),选择「网域」验证方式。 - 按照提示在你的域名 DNS 记录中添加一条 TXT 记录进行验证:
- 登录域名注册商后台(如 Cloudflare、Namecheap、阿里云)。
- 在 DNS 设置中添加一条 TXT 记录,值为 GSC 提供的验证字符串。
- 等待 DNS 生效(通常 5-30 分钟,最长 48 小时)。
- 回到 GSC 点击「验证」,验证成功后进入控制台。
- 在 GSC 左侧菜单找到「Sitemaps」,提交 sitemap URL:
https://www.yourproduct.com/sitemap.xml。 - 在「网址检查」中输入首页 URL,点击「请求编入索引」。
- 等待 Google 抓取,首次收录通常需要 3-14 天。 验证:
- GSC 中属性状态为「已验证」
- Sitemap 提交状态为「成功」
- 首页索引状态为「已发现 - 已编入索引」
步骤2:sitemap.xml 生成
目的:为搜索引擎提供网站所有页面的结构化地图,确保完整收录。 操作:
- 在 Next.js 项目中安装 next-sitemap 包:bash
npm install next-sitemap - 在项目根目录创建
next-sitemap.config.js:js/** @type {import('next-sitemap').IConfig} */ module.exports = { siteUrl: process.env.SITE_URL || 'https://www.yourproduct.com', generateRobotsTxt: false, // 我们手动配置 robots.txt generateIndexSitemap: false, changefreq: 'weekly', priority: 0.7, exclude: ['/api/*', '/admin/*'], robotsTxtOptions: { policies: [ { userAgent: '*', allow: '/', disallow: ['/api/', '/admin/'] } ] } } - 在
package.json中添加构建后脚本:json{ "scripts": { "postbuild": "next-sitemap" } } - 执行
npm run build,确认public/目录下生成了sitemap.xml文件。 - 本地验证:打开
public/sitemap.xml,确认包含所有目标页面 URL。 - 部署后线上验证:访问
https://www.yourproduct.com/sitemap.xml,确认可正常访问。 验证:
sitemap.xml文件已生成在public/目录- 包含所有需要被收录的页面 URL
- 线上 URL 可正常访问,返回 HTTP 200
- XML 格式正确(可用 XML 验证器检查)
步骤3:robots.txt 配置
目的:告诉搜索引擎爬虫哪些页面可以抓取、哪些不可以,保护私有页面。 操作:
- 在 Next.js 项目的
public/目录下创建robots.txt文件。 - 写入以下内容:txt
# 允许所有搜索引擎抓取公开内容 User-agent: * Allow: / # 禁止抓取 API 路由和管理后台 Disallow: /api/ Disallow: /admin/ # 指定 Sitemap 位置 Sitemap: https://www.yourproduct.com/sitemap.xml - 部署后线上验证:访问
https://www.yourproduct.com/robots.txt。 - 用 Google's robots.txt Tester 验证规则是否正确。 验证:
- robots.txt 可通过线上 URL 访问
- Allow / 规则存在
- Disallow /api/ 和 /admin/ 规则存在
- Sitemap 路径指向正确的 sitemap.xml 地址
步骤4:Canonical 标签配置
目的:告诉搜索引擎页面的规范 URL,避免重复内容问题导致权重分散。 操作:
- 在 Next.js 的 layout 或页面组件中,确保每个页面都有 canonical 标签。
- 使用 Next.js Metadata API 设置 canonical:tsx
// app/layout.tsx 或各页面中 export const metadata = { alternates: { canonical: 'https://www.yourproduct.com/', }, } - 每个子页面设置各自的 canonical URL:tsx
// app/blog/[slug]/page.tsx export const metadata = { alternates: { canonical: 'https://www.yourproduct.com/blog/keyword-research-guide', }, } - 如果网站支持多语言,添加 hreflang 标签:tsx
export const metadata = { alternates: { canonical: 'https://www.yourproduct.com/en/feature-page', languages: { 'en': 'https://www.yourproduct.com/en/feature-page', 'zh': 'https://www.yourproduct.com/zh/feature-page', 'ja': 'https://www.yourproduct.com/ja/feature-page', }, }, } - 检查规则:
- 每个页面有且仅有一个 canonical 标签。
- canonical URL 必须是绝对路径(包含 https:// 和域名)。
- canonical 不能指向 404 页面。 验证:
- 用 AITDK 插件在每个页面检查 canonical 标签是否存在
- canonical URL 与当前页面 URL 一致(或指向规范版本)
- 多语言页面的 hreflang 标签完整且互相对应
步骤5:TDH 优化
目的:优化每个页面的 Title、Description、H1 标签,提升搜索结果点击率和关键词排名。 操作:
- Title(标题标签):
- 长度控制在 50-60 个字符(超过会被 Google 截断)。
- 格式:
核心关键词 - 品牌名或核心关键词 | 产品价值描述。 - 核心关键词放在标题最前面。
- 示例:
AI Writing Tool - Generate Blog Posts in Minutes | YourProduct。
- Description(描述标签):
- 长度控制在 150-160 个字符。
- 包含核心关键词和一次长尾词。
- 以动词开头,描述页面内容的核心价值。
- 包含 CTA(Call to Action),如 "Try free"、"Learn more"。
- 示例:
Generate high-quality blog posts, marketing copy, and social media content with AI. Save hours of writing time. Try free today.
- H1(主标题):
- 每个页面有且仅有 1 个 H1 标签。
- H1 内容应包含核心关键词。
- H1 和 Title 可以相似但不要完全相同。
- 示例 H1:
AI Writing Tool That Creates Content in Minutes。
- 在 Next.js 中配置:tsx
export const metadata = { title: 'AI Writing Tool - Generate Blog Posts in Minutes | YourProduct', description: 'Generate high-quality blog posts, marketing copy, and social media content with AI. Save hours of writing time. Try free today.', } // H1 在 JSX 中直接使用 <h1> 标签
验证:
- 所有页面 Title 长度 50-60 字符,包含核心关键词
- 所有页面 Description 长度 150-160 字符,包含关键词和 CTA
- 所有页面有且仅有 1 个 H1 标签
- Title、Description、H1 三者关键词一致但不重复
步骤6:图片 SEO
目的:优化图片元素,让搜索引擎理解图片内容,同时提升页面加载速度。 操作:
- alt 属性:
- 每张图片必须有 alt 属性。
- alt 文本用自然语言描述图片内容,包含相关关键词。
- 不要关键词堆砌,alt 文本控制在 125 个字符以内。
- 示例:
<img src="ai-writing-dashboard.png" alt="AI writing tool dashboard showing blog post generation interface" />。
- 文件名:
- 图片文件名使用小写英文 + 连字符,包含关键词。
- 错误:
Screenshot 2024-01-15.png、IMG_001.jpg。 - 正确:
ai-writing-tool-dashboard.png、blog-post-generator-interface.webp。
- 图片压缩:
- 使用 WebP 格式替代 PNG/JPG(体积减少 25-35%)。
- Next.js 的
<Image>组件会自动处理格式转换和懒加载,优先使用。 - 手动压缩工具:Squoosh、TinyPNG。
- 图片大小控制:首屏图片 < 100KB,非首屏 < 200KB。
- 尺寸标注:
- 使用
<Image>时设置width和height属性,避免布局偏移(CLS)。 验证:
- 使用
- 页面中所有
<img>标签都有 alt 属性 - 图片文件名使用英文关键词命名
- 图片格式为 WebP 或已通过 Next.js Image 优化
- 首屏图片加载时间 < 2 秒
步骤7:用 AITDK 插件全面检查
目的:上线前做一次全面的 SEO 技术健康检查,确保没有遗漏。 操作:
- 在 Chrome 浏览器中打开你的网站首页,点击 AITDK 插件图标。
- 查看 AITDK 的检查结果,逐项核实:
- Title & Meta Description:是否完整、长度合规。
- Headings 结构:H1 是否唯一,H2-H3 层级是否合理。
- Canonical 标签:是否存在且正确。
- Open Graph 标签:og:title、og:description、og:image 是否完整(社交分享需要)。
- 图片 alt:是否有缺失 alt 的图片。
- 页面加载速度:Core Web Vitals 指标是否达标。
- 逐页检查核心页面(首页、定价页、功能页、博客列表页、博客文章页)。
- 记录所有问题,按优先级修复:
- P0(阻断上线):页面 404、canonical 缺失、Title 缺失。
- P1(上线后 3 天内修复):Description 缺失、H1 缺失或重复、图片无 alt。
- P2(上线后 1 周内修复):OG 标签缺失、页面速度优化。 验证:
- AITDK 检查报告中无 P0 级别问题
- 核心页面全部通过检查
- 所有 P0 问题已修复并验证
检查清单
- [ ] GSC 属性已验证,sitemap 已提交
- [ ] sitemap.xml 可在线上正常访问
- [ ] robots.txt 配置正确(Allow /、Disallow /api/ 和 /admin/)
- [ ] 每个页面都有 canonical 标签且指向正确 URL
- [ ] Title 50-60 字符,包含核心关键词
- [ ] Description 150-160 字符,包含关键词和 CTA
- [ ] 每个页面有且仅有 1 个 H1 标签
- [ ] 所有图片有 alt 属性且文件名合规
- [ ] AITDK 检查无 P0 级别问题
常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| GSC DNS 验证一直失败 | TXT 记录配置错误或 DNS 未生效 | 检查 TXT 记录值是否完整复制,等待 DNS 传播最多 48 小时 |
| sitemap.xml 返回 404 | next-sitemap 未在构建后执行 | 确认 postbuild 脚本存在,手动运行 npx next-sitemap 测试 |
| canonical 指向 http 而非 https | 站点 URL 配置缺少 https | 检查 next-sitemap.config.js 和环境变量中的 siteUrl |
| Title 在搜索结果中被截断 | Title 超过 60 个字符 | 精简 Title,核心关键词前置,控制在 60 字符内 |
| 图片导致 CLS 偏移 | 图片未设置宽高属性 | 使用 Next.js Image 组件并设置 width/height |
| 页面未被 Google 收录 | 内容质量低或技术问题阻断爬取 | 检查 GSC 覆盖率报告,排除 noindex 标签和 robots.txt 阻断 |
关联内容
- 概念卡片:技术SEO、TDH优化、Canonical标签、Core Web Vitals
- 工具档案:Google Search Console、AITDK、next-sitemap
- SOP主线:04-SEO优化配置