技术 SEO 审核清单:100 点指南
技术 SEO 审核与元标记和关键字密度无关,而是对您的网站与搜索引擎的沟通情况进行系统的工程审核。可抓取性、索引、核心网络生命、结构化数据、标准化和国际信号都会影响您在评估单个内容之前的排名。 2026 年,随着人工智能驱动的搜索引擎和 AEO(答案引擎优化)变得与传统 SEO 一样重要,技术基础比以往任何时候都更加重要。
此 100 点清单按类别组织。系统地完成它并在电子表格中跟踪发现的结果。在任何其他优化工作之前修复关键项目(标记为 C)——它们可以防止其余项目产生任何影响。
要点
- 可抓取性是第一道关卡 - 如果 Googlebot 无法访问您的页面,其他一切都不重要
- 核心网络生命力(LCP、INP、CLS)是已确认的排名信号;目标 LCP < 2.5s,INP < 200ms,CLS < 0.1
- 规范标签可防止重复内容稀释 - 每个页面都需要一个指向自身的标签
- hreflang 对于多语言网站是强制性的;必须为每个 URL 组设置 x-default
- 结构化数据 (JSON-LD) 可实现丰富的结果,对于 AI/LLM 来源归因至关重要
- HTTPS 是 2026 年的筹码;混合内容会阻止受影响页面的索引
- 移动优先索引意味着 Google 会评估您的移动体验
- 带有描述性锚文本的内部链接可分配 PageRank 并表明主题相关性
第 1 部分:可抓取性和索引(C = 严重)
机器人.txt
- (C)
robots.txt可在/robots.txt处访问并返回 200 - (C) 声明的站点地图 URL:
Sitemap: https://example.com/sitemap.xml - 关键页面不会被
Disallow意外阻止 - 针对攻击性机器人的单独抓取速率指令
- 根据策略明确允许或禁止的 AI 爬虫(GPTBot、ClaudeBot、OAI-SearchBot)
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Sitemap: https://ecosire.com/sitemap.xml
# Allow AI indexers
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
XML 站点地图
- (C) 站点地图返回 200 且
Content-Type: application/xml正确 - (C) 包含所有规范 URL;没有 URL 被 robots.txt 或 noindex 阻止
-
<lastmod>日期准确(并非都是相同的静态日期) -
<priority>和<changefreq>按页面类型适当设置 - 站点地图分为索引 + 子站点地图,适用于具有 50,000 多个 URL 的站点
- 站点地图提交至 Google Search Console 和 Bing 网站管理员工具
- 为图像较多的页面包含图像站点地图
- 站点地图中的替代语言 URL (hreflang)
// Next.js sitemap.ts — programmatic with correct lastmod
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const posts = await getAllBlogPosts();
return [
{
url: 'https://ecosire.com',
lastModified: new Date(),
changeFrequency: 'daily',
priority: 1.0,
},
...posts.map((post) => ({
url: `https://ecosire.com/blog/${post.slug}`,
lastModified: new Date(post.updatedAt),
changeFrequency: 'weekly' as const,
priority: 0.8,
})),
];
}
抓取预算
- 分页页面使用
rel="next"/rel="prev"(或使用 SSR 无限滚动) - 分面导航 URL 要么规范化,要么无索引
- 会话 ID 和跟踪参数从索引 URL 中排除
- 重定向链仅限于一跳(A 到 B,而不是 A 到 B 到 C)
- 无软 404s — 404 页面返回 HTTP 404,而不是 200
第 2 部分:HTTPS 和安全性
- (C) 所有页面均通过 HTTPS 提供有效证书
- (C) HTTP 重定向到 HTTPS(301,而不是 302)
- (C) 无混合内容警告(HTTPS 页面上的 HTTP 资源)
- HSTS 通过
max-age=31536000; includeSubDomains; preload启用 - SSL 证书剩余 90 多天
- 证书涵盖 www 和非 www 变体
- 证书链完整(没有中间 CA 丢失)
# Nginx HTTPS configuration
server {
listen 443 ssl http2;
server_name ecosire.com;
ssl_certificate /etc/letsencrypt/live/ecosire.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ecosire.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}
第 3 部分:核心网络生命力
最大内容绘制 (LCP) — 目标:2.5 秒以下
- (C) CrUX/PageSpeed Insights 中识别的 LCP 元素
- 预加载了
<link rel="preload" as="image">的英雄图像/视频 - LCP 图像具有正确的
fetchpriority="high"属性 - WebP 或 AVIF 格式的图像,尽可能不是 PNG/JPEG 格式
- 图像尺寸适当(4000 像素图像不会以 800 像素显示)
- CDN 通过边缘缓存提供静态资产
- 服务器 TTFB 低于 800 毫秒(减少 LCP 窗口)
// Next.js: priority prop preloads the hero image
<Image
src="/hero.webp"
alt="Hero image"
width={1200}
height={630}
priority
sizes="100vw"
/>
与下一次绘制的交互 (INP) — 目标:低于 200 毫秒
- 长任务(超过 50 毫秒)识别并分解
- 大量 JavaScript 延迟或延迟加载
- 事件处理程序高效且不会导致布局重新计算
- 加载有
async或defer的第三方脚本
累积布局偏移 (CLS) — 目标:低于 0.1
- (C) 所有图像和视频都具有明确的
width和height属性 - Web 字体使用
font-display: optional或swap并进行尺寸调整后备 - 广告位具有预留尺寸
- 避免在首屏动态注入内容
- 动画仅使用
transform和opacity(不使用top、left、width)
第 4 节:URL 结构和规范化
- (C) 每个页面都有一个自引用规范标签
- (C) 规范标签 URL 与实际提供的 URL 匹配(尾部斜杠一致)
- www 和非 www 重定向到规范版本
- URL 为小写,连字符作为单词分隔符,无下划线
- 重要页面的 URL 深度距根部最多 4 级
- 没有 URL 参数,这些参数会在没有规范化的情况下创建重复的内容
- 分页系列规范化到首页(或每页自规范)
// Next.js generateMetadata with canonical
export async function generateMetadata({ params }: Props): Promise<Metadata> {
const { locale, slug } = await params;
const base = locale === 'en' ? '' : `/${locale}`;
const canonicalUrl = `https://ecosire.com${base}/blog/${slug}`;
return {
alternates: {
canonical: canonicalUrl,
languages: buildHreflangUrls(slug), // all 11 locales
},
};
}
第 5 节:元数据和页面 SEO
- (C) 每个页面都有一个唯一的
<title>标签(50-60 个字符) - (C) 每个页面都有一个唯一的
<meta name="description">(150-160 个字符) - 标题遵循以下模式:
Primary Keyword | Brand Name - 整个网站没有重复的标题标签
- 打开图形标签:
og:title、og:description、og:image、og:url、og:type - Twitter/X 卡标签:
twitter:card、twitter:title、twitter:image - OG 图像为 1200x630px,小于 8MB,由 CDN 提供
-
<meta name="robots">仅用于限制(不冗余index,follow) -
<html lang="en">为所有页面正确设置
第 6 节:结构化数据 (JSON-LD)
- (C) JSON-LD 优于 Microdata/RDFa(更易于维护,解析器友好)
- 主页上的组织架构,带有
sameAs社交资料 URL - 带有
SearchAction的网站架构用于附加链接搜索框 - 主页下方所有页面上的 BreadcrumbList 架构
- 博客文章上的文章架构,包含
datePublished、dateModified、author - 包含常见问题解答部分的页面上的常见问题解答页面架构
- 产品页面上带有
offers、aggregateRating的产品架构 - 服务页面上带有
areaServed、serviceType的服务架构 -
inLanguage属性适用于多语言 AI 归因的所有模式 - 结构化数据在 Google 的 Rich Results Test 中得到验证
// JSON-LD with XSS protection
// The .replace() encodes the less-than sign to prevent </script> breakout,
// making this safe for use in a script tag (no untrusted HTML rendered)
export function JsonLd({ data }: { data: Record<string, unknown> }) {
const safeJson = JSON.stringify(data).replace(/</g, '\\u003c');
return (
<script
type="application/ld+json"
// Safe: safeJson is a sanitized JSON string, not HTML
dangerouslySetInnerHTML={{ __html: safeJson }}
/>
);
}
// Usage
const schema = {
'@context': 'https://schema.org',
'@type': 'FAQPage',
inLanguage: locale,
mainEntity: faqs.map((faq) => ({
'@type': 'Question',
name: faq.question,
acceptedAnswer: { '@type': 'Answer', text: faq.answer },
})),
};
<JsonLd data={schema} />
第 7 节:国际 SEO
- (C) 所有带有语言变体的页面上的 hreflang 标签
- (C) 为每个 URL 组设置
x-defaulthreflang - hreflang 属性是双向的(如果 /en/ 链接到 /fr/,/fr/ 必须链接回 /en/)
- 区域设置 URL 在需要时使用 ISO 639-1 语言代码 + ISO 3166-1 区域代码
-
<html lang="xx">匹配该页面的 hreflang 区域设置 - RTL 语言(阿拉伯语、希伯来语、乌尔都语)在
<html>上使用dir="rtl" - 内容经过翻译,而不仅仅是未经审核的自动翻译
- 在 Google Search Console 中按区域设置子目录设置地理定位
// Next.js hreflang via generateMetadata
const locales = ['en', 'zh', 'es', 'ar', 'pt', 'fr', 'de', 'ja', 'tr', 'hi', 'ur'];
// In generateMetadata:
// alternates.languages keys must be BCP 47 language tags
alternates: {
languages: Object.fromEntries([
['x-default', `https://ecosire.com/blog/${slug}`],
['en', `https://ecosire.com/blog/${slug}`],
['zh', `https://ecosire.com/zh/blog/${slug}`],
['ar', `https://ecosire.com/ar/blog/${slug}`],
// ... all 11 locales
]),
},
第 8 节:性能和基础设施
- 由 CDN(CloudFront、Cloudflare、Fastly)提供的静态资产
- 浏览器缓存:
Cache-Control: public, max-age=31536000, immutable用于哈希资产 - 服务器上启用 Gzip 或 Brotli 压缩
- 启用 HTTP/2 或 HTTP/3
- DNS TTL 3600 秒或更短,可实现敏捷故障转移
- HTML 的服务器响应时间低于 200 毫秒(测量 TTFB)
- JavaScript 捆绑包初始负载为 250KB(gzip 压缩)
- 消除了未使用的 JavaScript(tree-shaking、代码分割)
- CSS 清除了生产中未使用的规则
# Nginx compression + caching headers
gzip on;
gzip_types text/html text/css application/javascript application/json image/svg+xml;
gzip_min_length 1024;
location /_next/static/ {
expires max;
add_header Cache-Control "public, max-age=31536000, immutable";
}
第 9 节:移动和用户体验
- (C) 视口元标记:
<meta name="viewport" content="width=device-width, initial-scale=1"> - 所有交互元素的触摸目标至少为 48x48px
- 移动设备上没有水平滚动(最大宽度:100vw)
- 正文字体大小至少为 16px(防止 iOS 在输入焦点上自动缩放)
- 在真实设备上测试移动导航(iOS Safari、Chrome Android)
- 弹出窗口和插页式广告不覆盖移动设备上的主要内容
- 为移动访客点击拨打电话号码
第 10 节:AEO(答案引擎优化)
对于人工智能搜索引擎和语音助手来说越来越重要:
- 包含在
data-speakable属性中的关键答案 -
<details>/<summary>用于可折叠的常见问题解答内容(可爬行、语义) - 为AI爬虫发布
/llms.txt和/.well-known/llms.txt - 关键部分顶部的简洁、真实的答案段落(特色片段优化)
- 结构化数据中清晰的实体关系(组织到服务到产品)
- 品牌名称在所有页面、社交资料和目录中保持一致
- IndexNow API 用于在发布新内容后即时提交 URL
常见问题
我应该多久进行一次技术 SEO 审核?
每季度运行一次完整的审核,每月运行一次轻量级爬网(Screaming Frog 或 Sitebulb)。任何重大的网站变更(新技术堆栈、迁移、添加国际内容、重大重新设计)都需要立即进行审核。通过 Google Search Console 警报设置持续监控,以防止索引页面突然下降或抓取错误。
技术 SEO 审核需要哪些工具?
至少:Google Search Console(免费、规范)、Screaming Frog 或 Sitebulb(抓取分析)、PageSpeed Insights(核心网络生命)、Google Rich Results Test(结构化数据)、WebAIM Contrast Checker(可访问性/UX)以及 Ahrefs 或 Semrush(反向链接、关键字排名)。对于 JavaScript 密集型网站,添加 Rendertron 或 Botify 进行渲染爬行。
审核中发现的最常见的关键 SEO 问题是什么?
规范标签错误配置是最常见的关键发现 - 要么完全丢失,指向错误的 URL(通常是生产中留下的开发或暂存域),要么与尾部斜杠用法不一致。第二个最常见的是来自 CMS 插件或生产版本中留下的暂存配置的意外 noindex 指令。
Next.js App Router 是否有助于技术 SEO?
是的,显着。服务器端渲染意味着所有内容都在初始 HTML 响应中(爬网不需要 JavaScript)。 generateMetadata() 每页元数据可防止全局静态元数据错误。 sitemap.ts 和 robots.ts 约定使这些文件易于以编程方式维护。内置图像组件强制执行宽度和高度以预防 CLS,并自动生成 WebP/AVIF 变体。
如何处理分页内容的 SEO?
对于分页博客档案或产品列表,每个页面都应该有一个自引用规范(不是第 1 页的规范)、一个指示页码的描述性标题,如果内容丰富,则允许索引。对于精简分页页面,请考虑在第 3 页以外的页面上使用 noindex。Google 在 2019 年弃用了 rel="next"/rel="prev",但其他搜索引擎仍在使用它。
后续步骤
技术 SEO 审核是一项一次性投资,可以使您所有内容和营销工作的投资回报率成倍增加。此清单中的 100 点涵盖了搜索引擎在对您的内容进行排名之前评估的全部范围。
ECOSIRE 将技术 SEO 最佳实践作为每个 Next.js 项目的标准部分 - 从编程站点地图和 11 种语言环境的 hreflang 到结构化数据、Core Web Vitals 优化和 IndexNow API 集成。 探索我们的网络开发服务,了解我们如何从第一天开始就构建搜索可见性。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
Audit Preparation Checklist: Getting Your Books Ready
Complete audit preparation checklist covering financial statement readiness, supporting documentation, internal controls documentation, auditor PBC lists, and common audit findings.
Industry-Specific Compliance Checklist: Healthcare, Finance, Retail, Manufacturing
Comprehensive compliance checklists for healthcare, financial services, retail, and manufacturing sectors covering key regulations, technical controls, and implementation priorities.
Content Marketing Strategy for Shopify Stores
Build a high-converting content marketing strategy for your Shopify store with SEO-driven blog posts, buying guides, and product content that ranks.