seo-aeo-audit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

SEO Optimization

SEO优化

Search engine optimization based on Lighthouse SEO audits and Google Search guidelines. Focus on technical SEO, on-page optimization, and structured data.
基于Lighthouse SEO审计和Google搜索指南的搜索引擎优化。聚焦技术SEO、页面内优化和结构化数据。

Technical SEO

技术SEO

Crawlability

可抓取性

robots.txt:
text
undefined
robots.txt:
text
undefined

/robots.txt

/robots.txt

User-agent: * Allow: /
User-agent: * Allow: /

Block admin/private areas

Block admin/private areas

Disallow: /admin/ Disallow: /api/ Disallow: /private/
Disallow: /admin/ Disallow: /api/ Disallow: /private/

Don't block resources needed for rendering

Don't block resources needed for rendering

❌ Disallow: /static/

❌ Disallow: /static/


**Meta robots:**
```html
<!-- Default: indexable, followable -->
<meta name="robots" content="index, follow">

<!-- Noindex specific pages -->
<meta name="robots" content="noindex, nofollow">

<!-- Indexable but don't follow links -->
<meta name="robots" content="index, nofollow">

<!-- Control snippets -->
<meta name="robots" content="max-snippet:150, max-image-preview:large">
Canonical URLs:
html
<!-- Prevent duplicate content issues -->
<link rel="canonical" href="https://example.com/page">

<!-- Self-referencing canonical (recommended) -->
<link rel="canonical" href="https://example.com/current-page">

<!-- For paginated content -->
<link rel="canonical" href="https://example.com/products">
<!-- Or use rel="prev" / rel="next" for explicit pagination -->

**元机器人标签:**
```html
<!-- Default: indexable, followable -->
<meta name="robots" content="index, follow">

<!-- Noindex specific pages -->
<meta name="robots" content="noindex, nofollow">

<!-- Indexable but don't follow links -->
<meta name="robots" content="index, nofollow">

<!-- Control snippets -->
<meta name="robots" content="max-snippet:150, max-image-preview:large">
规范URL:
html
<!-- Prevent duplicate content issues -->
<link rel="canonical" href="https://example.com/page">

<!-- Self-referencing canonical (recommended) -->
<link rel="canonical" href="https://example.com/current-page">

<!-- For paginated content -->
<link rel="canonical" href="https://example.com/products">
<!-- Or use rel="prev" / rel="next" for explicit pagination -->

XML sitemap

XML站点地图

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2024-01-15</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/products</loc>
    <lastmod>2024-01-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
Sitemap best practices:
  • Maximum 50,000 URLs or 50MB per sitemap
  • Use sitemap index for larger sites
  • Include only canonical, indexable URLs
  • Update
    lastmod
    when content changes
  • Submit to Google Search Console
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2024-01-15</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/products</loc>
    <lastmod>2024-01-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
站点地图最佳实践:
  • 每个站点地图最多包含50,000个URL或50MB大小
  • 大型站点使用站点地图索引文件
  • 仅包含规范的、可被索引的URL
  • 内容更新时更新
    lastmod
    字段
  • 提交至Google搜索控制台

URL structure

URL结构

✅ Good URLs:
https://example.com/products/blue-widget
https://example.com/blog/how-to-use-widgets

❌ Poor URLs:
https://example.com/p?id=12345
https://example.com/products/item/category/subcategory/blue-widget-2024-sale-discount
URL guidelines:
  • Use hyphens, not underscores
  • Lowercase only
  • Keep short (< 75 characters)
  • Include target keywords naturally
  • Avoid parameters when possible
  • Use HTTPS always
✅ 优质URL:
https://example.com/products/blue-widget
https://example.com/blog/how-to-use-widgets

❌ 劣质URL:
https://example.com/p?id=12345
https://example.com/products/item/category/subcategory/blue-widget-2024-sale-discount
URL规范:
  • 使用连字符,而非下划线
  • 仅使用小写字母
  • 保持简短(少于75个字符)
  • 自然融入目标关键词
  • 尽可能避免使用参数
  • 始终使用HTTPS

HTTPS & security

HTTPS与安全

html
<!-- Ensure all resources use HTTPS -->
<img src="https://example.com/image.jpg">

<!-- Not: -->
<img src="http://example.com/image.jpg">
Security headers for SEO trust signals:
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

html
<!-- 确保所有资源使用HTTPS -->
<img src="https://example.com/image.jpg">

<!-- 不要这样写: -->
<img src="http://example.com/image.jpg">
用于SEO信任信号的安全头:
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

On-page SEO

页面内SEO

Title tags

标题标签

html
<!-- ❌ Missing or generic -->
<title>Page</title>
<title>Home</title>

<!-- ✅ Descriptive with primary keyword -->
<title>Blue Widgets for Sale | Premium Quality | Example Store</title>
Title tag guidelines:
  • 50-60 characters (Google truncates ~60)
  • Primary keyword near the beginning
  • Unique for every page
  • Brand name at end (unless homepage)
  • Action-oriented when appropriate
html
<!-- ❌ 缺失或过于通用 -->
<title>Page</title>
<title>Home</title>

<!-- ✅ 包含主关键词的描述性标题 -->
<title>Blue Widgets for Sale | Premium Quality | Example Store</title>
标题标签规范:
  • 长度控制在50-60字符(Google约在60字符处截断)
  • 主关键词尽量靠前
  • 每个页面使用唯一标题
  • 品牌名放在末尾(首页除外)
  • 必要时使用行动导向的表述

Meta descriptions

元描述

html
<!-- ❌ Missing or duplicate -->
<meta name="description" content="">

<!-- ✅ Compelling and unique -->
<meta name="description" content="Shop premium blue widgets with free shipping. 30-day returns. Rated 4.9/5 by 10,000+ customers. Order today and save 20%.">
Meta description guidelines:
  • 150-160 characters
  • Include primary keyword naturally
  • Compelling call-to-action
  • Unique for every page
  • Matches page content
html
<!-- ❌ 缺失或重复 -->
<meta name="description" content="">

<!-- ✅ 具有吸引力且唯一 -->
<meta name="description" content="Shop premium blue widgets with free shipping. 30-day returns. Rated 4.9/5 by 10,000+ customers. Order today and save 20%.">
元描述规范:
  • 长度控制在150-160字符
  • 自然融入主关键词
  • 包含具有吸引力的行动号召
  • 每个页面使用唯一描述
  • 与页面内容匹配

Heading structure

标题层级结构

html
<!-- ❌ Poor structure -->
<h2>Welcome to Our Store</h2>
<h4>Products</h4>
<h1>Contact Us</h1>

<!-- ✅ Proper hierarchy -->
<h1>Blue Widgets - Premium Quality</h1>
  <h2>Product Features</h2>
    <h3>Durability</h3>
    <h3>Design</h3>
  <h2>Customer Reviews</h2>
  <h2>Pricing</h2>
Heading guidelines:
  • Single
    <h1>
    per page (the main topic)
  • Logical hierarchy (don't skip levels)
  • Include keywords naturally
  • Descriptive, not generic
html
<!-- ❌ 不合理的结构 -->
<h2>Welcome to Our Store</h2>
<h4>Products</h4>
<h1>Contact Us</h1>

<!-- ✅ 合理的层级结构 -->
<h1>Blue Widgets - Premium Quality</h1>
  <h2>产品特性</h2>
    <h3>耐用性</h3>
    <h3>设计</h3>
  <h2>客户评价</h2>
  <h2>定价</h2>
标题规范:
  • 每个页面仅使用一个
    <h1>
    标签(代表页面主题)
  • 遵循逻辑层级(不要跳过层级)
  • 自然融入关键词
  • 描述性强,避免过于通用

Image SEO

图片SEO

html
<!-- ❌ Poor image SEO -->
<img src="IMG_12345.jpg">

<!-- ✅ Optimized image -->
<img src="blue-widget-product-photo.webp"
     alt="Blue widget with chrome finish, side view showing control panel"
     width="800"
     height="600"
     loading="lazy">
Image guidelines:
  • Descriptive filenames with keywords
  • Alt text describes the image content
  • Compressed and properly sized
  • WebP/AVIF with fallbacks
  • Lazy load below-fold images
html
<!-- ❌ 劣质图片SEO -->
<img src="IMG_12345.jpg">

<!-- ✅ 优化后的图片 -->
<img src="blue-widget-product-photo.webp"
     alt="Blue widget with chrome finish, side view showing control panel"
     width="800"
     height="600"
     loading="lazy">
图片规范:
  • 使用包含关键词的描述性文件名
  • Alt文本描述图片内容
  • 压缩并调整至合适尺寸
  • 使用WebP/AVIF格式并提供降级方案
  • 对首屏以下的图片启用懒加载

Internal linking

内部链接

html
<!-- ❌ Non-descriptive -->
<a href="/products">Click here</a>
<a href="/widgets">Read more</a>

<!-- ✅ Descriptive anchor text -->
<a href="/products/blue-widgets">Browse our blue widget collection</a>
<a href="/guides/widget-maintenance">Learn how to maintain your widgets</a>
Linking guidelines:
  • Descriptive anchor text with keywords
  • Link to relevant internal pages
  • Reasonable number of links per page
  • Fix broken links promptly
  • Use breadcrumbs for hierarchy

html
<!-- ❌ 描述性不足 -->
<a href="/products">Click here</a>
<a href="/widgets">Read more</a>

<!-- ✅ 描述性锚文本 -->
<a href="/products/blue-widgets">Browse our blue widget collection</a>
<a href="/guides/widget-maintenance">Learn how to maintain your widgets</a>
链接规范:
  • 使用包含关键词的描述性锚文本
  • 链接至相关的内部页面
  • 每页链接数量保持合理
  • 及时修复失效链接
  • 使用面包屑导航体现层级

Structured data (JSON-LD)

结构化数据(JSON-LD)

Organization

组织信息

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-555-123-4567",
    "contactType": "customer service"
  }
}
</script>
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-555-123-4567",
    "contactType": "customer service"
  }
}
</script>

Article

文章

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Choose the Right Widget",
  "description": "Complete guide to selecting widgets for your needs.",
  "image": "https://example.com/article-image.jpg",
  "author": {
    "@type": "Person",
    "name": "Jane Smith",
    "url": "https://example.com/authors/jane-smith"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2024-01-15",
  "dateModified": "2024-01-20"
}
</script>
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Choose the Right Widget",
  "description": "Complete guide to selecting widgets for your needs.",
  "image": "https://example.com/article-image.jpg",
  "author": {
    "@type": "Person",
    "name": "Jane Smith",
    "url": "https://example.com/authors/jane-smith"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2024-01-15",
  "dateModified": "2024-01-20"
}
</script>

Product

产品

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Blue Widget Pro",
  "image": "https://example.com/blue-widget.jpg",
  "description": "Premium blue widget with advanced features.",
  "brand": {
    "@type": "Brand",
    "name": "WidgetCo"
  },
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/blue-widget"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "1250"
  }
}
</script>
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Blue Widget Pro",
  "image": "https://example.com/blue-widget.jpg",
  "description": "Premium blue widget with advanced features.",
  "brand": {
    "@type": "Brand",
    "name": "WidgetCo"
  },
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/blue-widget"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "1250"
  }
}
</script>

FAQ

FAQ

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What colors are available?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Our widgets come in blue, red, and green."
      }
    },
    {
      "@type": "Question",
      "name": "What is the warranty?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "All widgets include a 2-year warranty."
      }
    }
  ]
}
</script>
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What colors are available?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Our widgets come in blue, red, and green."
      }
    },
    {
      "@type": "Question",
      "name": "What is the warranty?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "All widgets include a 2-year warranty."
      }
    }
  ]
}
</script>

Breadcrumbs

面包屑导航

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Products",
      "item": "https://example.com/products"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Blue Widgets",
      "item": "https://example.com/products/blue-widgets"
    }
  ]
}
</script>
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Products",
      "item": "https://example.com/products"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Blue Widgets",
      "item": "https://example.com/products/blue-widgets"
    }
  ]
}
</script>

Validation

验证

可通过以下工具测试结构化数据:

Mobile SEO

移动SEO

Responsive design

响应式设计

html
<!-- ❌ Not mobile-friendly -->
<meta name="viewport" content="width=1024">

<!-- ✅ Responsive viewport -->
<meta name="viewport" content="width=device-width, initial-scale=1">
html
<!-- ❌ 非移动端友好 -->
<meta name="viewport" content="width=1024">

<!-- ✅ 响应式视口 -->
<meta name="viewport" content="width=device-width, initial-scale=1">

Tap targets

点击目标

css
/* ❌ Too small for mobile */
.small-link {
  padding: 4px;
  font-size: 12px;
}

/* ✅ Adequate tap target */
.mobile-friendly-link {
  padding: 12px;
  font-size: 16px;
  min-height: 48px;
  min-width: 48px;
}
css
/* ❌ 移动端尺寸过小 */
.small-link {
  padding: 4px;
  font-size: 12px;
}

/* ✅ 合适的点击目标 */
.mobile-friendly-link {
  padding: 12px;
  font-size: 16px;
  min-height: 48px;
  min-width: 48px;
}

Font sizes

字体大小

css
/* ❌ Too small on mobile */
body {
  font-size: 10px;
}

/* ✅ Readable without zooming */
body {
  font-size: 16px;
  line-height: 1.5;
}

css
/* ❌ 移动端字体过小 */
body {
  font-size: 10px;
}

/* ✅ 无需缩放即可阅读 */
body {
  font-size: 16px;
  line-height: 1.5;
}

International SEO

国际SEO

Hreflang tags

Hreflang标签

html
<!-- For multi-language sites -->
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="es" href="https://example.com/es/page">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
html
<!-- 多语言站点使用 -->
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="es" href="https://example.com/es/page">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">

Language declaration

语言声明

html
<html lang="en">
<!-- or -->
<html lang="es-MX">

html
<html lang="en">
<!-- 或 -->
<html lang="es-MX">

SEO audit checklist

SEO审计清单

Critical

关键项

  • HTTPS enabled
  • robots.txt allows crawling
  • No
    noindex
    on important pages
  • Title tags present and unique
  • Single
    <h1>
    per page
  • 已启用HTTPS
  • robots.txt允许抓取
  • 重要页面未设置
    noindex
  • 标题标签存在且唯一
  • 每个页面仅有一个
    <h1>
    标签

High priority

高优先级

  • Meta descriptions present
  • Sitemap submitted
  • Canonical URLs set
  • Mobile-responsive
  • Core Web Vitals passing
  • 元描述已设置
  • 站点地图已提交
  • 规范URL已配置
  • 支持移动端响应
  • 核心网页指标达标

Medium priority

中优先级

  • Structured data implemented
  • Internal linking strategy
  • Image alt text
  • Descriptive URLs
  • Breadcrumb navigation
  • 已实现结构化数据
  • 内部链接策略已制定
  • 图片已添加alt文本
  • URL具有描述性
  • 已配置面包屑导航

Ongoing

持续项

  • Fix crawl errors in Search Console
  • Update sitemap when content changes
  • Monitor ranking changes
  • Check for broken links
  • Review Search Console insights

  • 在搜索控制台中修复抓取错误
  • 内容更新时同步更新站点地图
  • 监控排名变化
  • 检查失效链接
  • 查看搜索控制台洞察

Audit workflow

审计流程

  1. Baseline: run Lighthouse and PageSpeed on key templates (home, category, detail, blog).
  2. Crawl: verify indexability, canonicals, and duplicate content (use Search Console + crawler).
  3. Fix blockers:
    noindex
    ,
    robots.txt
    , canonical mismatches, redirect chains.
  4. On-page: titles, meta descriptions, headings, internal linking, image alt.
  5. Structured data: add JSON-LD and validate rich results.
  6. Re-verify: re-run Lighthouse/PageSpeed and check Search Console coverage.

  1. 基准测试:对关键模板页面(首页、分类页、详情页、博客页)运行Lighthouse和PageSpeed测试。
  2. 抓取验证:验证可索引性、规范URL和重复内容(使用搜索控制台+抓取工具)。
  3. 修复障碍:处理
    noindex
    robots.txt
    、规范URL不匹配、重定向链等问题。
  4. 页面内优化:标题、元描述、标题层级、内部链接、图片alt文本。
  5. 结构化数据:添加JSON-LD并验证富媒体结果。
  6. 重新验证:再次运行Lighthouse/PageSpeed测试,并检查搜索控制台覆盖情况。

Common pitfalls

常见陷阱

  • noindex
    or
    X-Robots-Tag
    accidentally set on important pages
  • robots.txt
    blocks CSS/JS or critical render resources
  • Canonical points to a different URL than the one indexed
  • Mixed
    http
    /
    https
    or
    www
    /non-
    www
    causing duplicate content
  • Redirect chains/loops (waste crawl budget and slow page load)
  • Parameterized URLs indexable (filters, sort, UTM) without canonical control
  • JavaScript-rendered content not visible in initial HTML
  • Soft 404s (200 status with "not found" content)
  • Sitemap includes non-canonical or
    noindex
    URLs
  • Hreflang tags missing reciprocal links or using wrong language/region codes

  • 重要页面意外设置了
    noindex
    X-Robots-Tag
  • robots.txt
    屏蔽了CSS/JS或关键渲染资源
  • 规范URL指向了与已索引URL不同的地址
  • 混合使用
    http
    /
    https
    www
    /非
    www
    导致重复内容
  • 重定向链/循环(浪费抓取预算且拖慢页面加载)
  • 带参数的URL(筛选、排序、UTM参数)未通过规范URL控制而被索引
  • JavaScript渲染的内容在初始HTML中不可见
  • 软404错误(返回200状态码但内容为“未找到”)
  • 站点地图包含非规范或
    noindex
    的URL
  • Hreflang标签缺失双向链接或使用了错误的语言/地区代码

Tools

工具

ToolUse
Google Search ConsoleMonitor indexing, fix issues
Google PageSpeed InsightsPerformance + Core Web Vitals
Rich Results TestValidate structured data
LighthouseFull SEO audit
Screaming FrogCrawl analysis

工具用途
Google Search Console监控索引状态、修复问题
Google PageSpeed Insights性能+核心网页指标检测
Rich Results Test验证结构化数据
Lighthouse完整SEO审计
Screaming Frog抓取分析

Scripts (optional)

脚本(可选)

Scripts under
scripts/
for repeatable audits:
  • scripts/lighthouse.sh
    : run Lighthouse CLI against a URL or URL list and store JSON reports.
  • scripts/pagespeed.sh
    : call PageSpeed Insights API with
    curl
    and capture JSON output.
  • scripts/search-console-export.mjs
    : export Search Console Search Analytics data (requires OAuth access token).
Example usage:
bash
undefined
scripts/
目录下的脚本用于可重复的审计:
  • scripts/lighthouse.sh
    : 针对单个URL或URL列表运行Lighthouse CLI,并存储JSON报告。
  • scripts/pagespeed.sh
    : 使用
    curl
    调用PageSpeed Insights API并捕获JSON输出。
  • scripts/search-console-export.mjs
    : 导出搜索控制台搜索分析数据(需要OAuth访问令牌)。
使用示例:
bash
undefined

Lighthouse (SEO category only)

Lighthouse(仅SEO类别)

scripts/lighthouse.sh https://example.com scripts/lighthouse.sh urls.txt reports/lighthouse
scripts/lighthouse.sh https://example.com scripts/lighthouse.sh urls.txt reports/lighthouse

PageSpeed Insights API (requires PAGESPEED_API_KEY)

PageSpeed Insights API(需要PAGESPEED_API_KEY)

PAGESPEED_API_KEY=... scripts/pagespeed.sh https://example.com PAGESPEED_API_KEY=... scripts/pagespeed.sh urls.txt reports/pagespeed
PAGESPEED_API_KEY=... scripts/pagespeed.sh https://example.com PAGESPEED_API_KEY=... scripts/pagespeed.sh urls.txt reports/pagespeed

Search Console API (requires GSC_ACCESS_TOKEN)

搜索控制台API(需要GSC_ACCESS_TOKEN)

GSC_ACCESS_TOKEN=... scripts/search-console-export.mjs https://example.com 2024-01-01 2024-01-31

---
GSC_ACCESS_TOKEN=... scripts/search-console-export.mjs https://example.com 2024-01-01 2024-01-31

---

AEO / AI Visibility Optimization

AEO / AI可见性优化

Answer Engine Optimization (AEO) focuses on making content discoverable and citable by AI agents (ChatGPT, Perplexity, Gemini, Google AI Overviews). While SEO targets rankings and clicks, AEO targets citations, mentions, and brand authority within AI-generated responses.
答案引擎优化(AEO)专注于让内容能够被AI代理(ChatGPT、Perplexity、Gemini、Google AI Overviews)直接发现和引用。与针对排名和点击的SEO不同,AEO的目标是在AI生成的响应中获得引用、提及并建立品牌权威性。

Key differences from SEO

与SEO的核心差异

SEO: Rank high → get clicks → drive traffic
AEO: Be cited → own the answer → build authority

SEO metric: Position, CTR, impressions
AEO metric: Citations, mentions, AI visibility score

SEO query: "best project management software"
AEO query: "What's the best project management software for a remote team of 15 with budget under $500/month?"
Market shift:
  • Gartner predicts 25% drop in traditional search volume by 2026 due to AI chatbots
  • 400M+ people use OpenAI products weekly
  • 58% of searches are now "zero-click" (answered directly in AI interface)
SEO: 排名靠前 → 获取点击 → 引流
AEO: 被引用 → 主导答案 → 建立权威

SEO指标: 排名位置、点击率、曝光量
AEO指标: 引用次数、提及次数、AI可见性得分

SEO查询: "best project management software"
AEO查询: "What's the best project management software for a remote team of 15 with budget under $500/month?"
市场趋势:
  • Gartner预测到2026年,传统搜索量将因AI聊天机器人下降25%
  • 每周有超过4亿人使用OpenAI产品
  • 58%的搜索现在是“零点击”结果(用户直接在AI界面获得答案)

Content structure for AEO

AEO内容结构

Answer-first formatting:
markdown
<!-- ❌ SEO-style (context first) -->
先给出答案的格式:
markdown
<!-- ❌ SEO风格(先讲背景) -->

What is AEO?

What is AEO?

In recent years, the rise of AI-powered search has transformed how users discover information. This shift has created new opportunities for brands. Answer Engine Optimization is...
<!-- ✅ AEO-style (answer first) -->
In recent years, the rise of AI-powered search has transformed how users discover information. This shift has created new opportunities for brands. Answer Engine Optimization is...
<!-- ✅ AEO风格(先给答案) -->

What is AEO?

What is AEO?

Answer Engine Optimization (AEO) is the practice of structuring content so AI systems can directly extract and cite answers. It focuses on citations in AI responses rather than search rankings.
Unlike traditional SEO, AEO optimizes for conversational queries and zero-click results where users get answers without visiting your site.

**Guidelines:**
- Lead with 40-60 word direct answer
- Self-contained responses (AI extracts without surrounding context)
- Conversational, natural language
- Specific data > vague claims
- Include quantified claims, dates, authoritative citations

**Entity-based optimization:**

```markdown
<!-- ❌ Keyword-focused -->
"Our software helps teams collaborate better with features 
for project management and communication."

<!-- ✅ Entity-focused -->
"Acme PM is a project management platform for remote teams. 
Founded in 2020, serves 50,000+ companies. Key features: 
Kanban boards, time tracking, Slack integration. Pricing: 
$12/user/month."
Define who you are, what you do, and why AI should trust you.
Answer Engine Optimization (AEO) is the practice of structuring content so AI systems can directly extract and cite answers. It focuses on citations in AI responses rather than search rankings.
Unlike traditional SEO, AEO optimizes for conversational queries and zero-click results where users get answers without visiting your site.

**规范:**
- 开头先用40-60字直接给出答案
- 回答需独立完整(无需上下文AI即可提取)
- 使用对话式、自然的语言
- 具体数据优于模糊表述
- 包含量化的声明、日期和权威引用

**基于实体的优化:**

```markdown
<!-- ❌ 关键词导向 -->
"Our software helps teams collaborate better with features 
for project management and communication."

<!-- ✅ 实体导向 -->
"Acme PM is a project management platform for remote teams. 
Founded in 2020, serves 50,000+ companies. Key features: 
Kanban boards, time tracking, Slack integration. Pricing: 
$12/user/month."
明确你的品牌身份、业务范围,以及AI为何应该信任你。

Schema for AEO

AEO结构化数据

Expand beyond SEO schema to optimize for AI extraction.
Critical schema types for AEO:
  1. FAQPage (highest AI citation rate)
    • Template:
      references/json-ld-templates.md
FAQ answer guidelines for AEO:
  • 40-60 words ideal (under 30 = lacks substance, over 80 = hard to extract)
  • Match visible H2/H3 headings to schema "name" property exactly
  • Include specific numbers, dates, and data
  • Self-contained (makes sense without context)
  • Natural question phrasing (how users actually ask)
  1. Author + Organization (trust signals)
    • Template:
      references/json-ld-templates.md
Why it matters: AI engines prioritize content from identifiable, authoritative sources. Use
sameAs
links to disambiguate your brand.
  1. Product (for e-commerce AEO)
    • Template:
      references/json-ld-templates.md
Allows AI shopping modules to show accurate pricing, availability, reviews.
在SEO结构化数据的基础上扩展,优化AI提取效果。
AEO关键结构化数据类型:
  1. FAQPage(AI引用率最高)
    • 模板:
      references/json-ld-templates.md
AEO FAQ答案规范:
  • 理想长度为40-60字(少于30字缺乏实质内容,超过80字难以提取)
  • 可见的H2/H3标题需与结构化数据的"name"属性完全匹配
  • 包含具体数字、日期和数据
  • 独立完整(脱离上下文仍有意义)
  • 使用符合用户实际提问方式的自然问句
  1. 作者+组织(信任信号)
    • 模板:
      references/json-ld-templates.md
重要性: AI引擎优先选择来自可识别、权威来源的内容。使用
sameAs
链接明确你的品牌身份。
  1. 产品(电商AEO适用)
    • 模板:
      references/json-ld-templates.md
可让AI购物模块展示准确的定价、库存和评价信息。

Platform-specific optimization

平台专属优化

Different AI engines have different preferences. Balance all three for maximum citation probability.
ChatGPT:
  • Neutral, encyclopedia-style tone
  • Authoritative external citations
  • Specific data and quantified claims
  • Formal structure
markdown
Example: "According to a 2025 Gartner study, 78% of enterprises 
adopted AI-powered search tools. The primary drivers were cost 
reduction (cited by 62% of respondents) and improved accuracy 
(58%). Source: Gartner AI Search Report 2025."
Perplexity:
  • Conversational, experience-driven
  • Practical examples and case studies
  • Community insights and real-world context
  • Less formal tone
markdown
Example: "Most teams start with the free tier and upgrade after 
2-3 months once they've proven ROI. Based on feedback from 500+ 
customers, common triggers for upgrading include hitting user 
limits or needing advanced reporting."
Google AI Overviews:
  • E-E-A-T signals (Experience, Expertise, Authoritativeness, Trust)
  • Fresh content with recent dates
  • Featured snippet-friendly formatting
  • Mobile-optimized structure
markdown
Example: "Updated February 2026: Current pricing starts at 
$12/user/month (annual billing). Month-to-month adds 20%. 
Education and nonprofit discounts available. No free tier 
as of Q1 2026."
不同AI引擎有不同偏好,平衡优化以最大化引用概率。
ChatGPT:
  • 中立、百科全书式语气
  • 权威外部引用
  • 具体数据和量化声明
  • 正式结构
markdown
Example: "According to a 2025 Gartner study, 78% of enterprises 
adopted AI-powered search tools. The primary drivers were cost 
reduction (cited by 62% of respondents) and improved accuracy 
(58%). Source: Gartner AI Search Report 2025."
Perplexity:
  • 对话式、经验导向
  • 实用示例和案例研究
  • 社区见解和真实场景
  • 语气较随意
markdown
Example: "Most teams start with the free tier and upgrade after 
2-3 months once they've proven ROI. Based on feedback from 500+ 
customers, common triggers for upgrading include hitting user 
limits or needing advanced reporting."
Google AI Overviews:
  • E-E-A-T信号(经验、专业度、权威性、可信度)
  • 包含最新日期的新鲜内容
  • 适配精选片段的格式
  • 移动端优化结构
markdown
Example: "Updated February 2026: Current pricing starts at 
$12/user/month (annual billing). Month-to-month adds 20%. 
Education and nonprofit discounts available. No free tier 
as of Q1 2026."

AEO measurement & tools

AEO衡量与工具

Metrics:
  • Citation frequency (how often AI mentions your brand)
  • Visibility score (presence across AI platforms)
  • Context quality (positive/neutral/negative sentiment)
  • Source attribution (which URLs AI cites)
Tracking AI referral traffic:
In Google Analytics 4, filter traffic sources:
  • chat.openai.com
    (ChatGPT)
  • perplexity.ai
  • gemini.google.com
  • copilot.microsoft.com
Monitor these as separate acquisition sources.
Use your preferred AEO monitoring tool to track citation frequency, context, and source attribution.
指标:
  • 引用频率(AI提及你的品牌的次数)
  • 可见性得分(在各AI平台的覆盖情况)
  • 上下文质量(正面/中性/负面情绪)
  • 来源归因(AI引用的具体URL)
追踪AI推荐流量:
在Google Analytics 4中,筛选流量来源:
  • chat.openai.com
    (ChatGPT)
  • perplexity.ai
  • gemini.google.com
  • copilot.microsoft.com
将这些作为独立的获客来源进行监控。
使用你偏好的AEO监控工具追踪引用频率、上下文和来源归因。

AEO audit checklist

AEO审计清单

Content audit

内容审计

  • All key pages have 40-60 word direct answers upfront
  • FAQ sections with self-contained answers
  • Conversational language matching natural queries
  • Specific data (numbers, dates, sources) not vague claims
  • Author bios and organization info visible
  • Content updated with recent dates (freshness)
  • 所有关键页面开头都有40-60字的直接答案
  • FAQ部分包含独立完整的答案
  • 使用匹配用户自然提问的对话式语言
  • 使用具体数据(数字、日期、来源)而非模糊声明
  • 作者简介和组织信息可见
  • 内容包含最新日期(保持新鲜度)

Schema audit

结构化数据审计

  • FAQPage schema on FAQ/guide pages
  • Author schema on all articles/blogs
  • Organization schema site-wide
  • Product schema on product pages (if e-commerce)
  • Article schema with datePublished/dateModified
  • Schema matches visible content exactly (no hidden markup)
  • Validate with Google Rich Results Test
  • FAQ/指南页面已配置FAQPage结构化数据
  • 所有文章/博客已配置作者结构化数据
  • 全站已配置组织结构化数据
  • 产品页面已配置产品结构化数据(电商站点)
  • 文章已配置包含datePublished/dateModified的结构化数据
  • 结构化数据与可见内容完全匹配(无隐藏标记)
  • 已通过Google富媒体结果测试验证

Technical audit

技术审计

  • JSON-LD format (preferred by AI engines)
  • Schema.org standards compliance
  • No conflicting or duplicate schema
  • Fast page load (AI crawlers prefer fast sites)
  • Clean HTML structure (semantic headings)
  • Mobile-optimized (especially for Google AI Overviews)
  • 使用JSON-LD格式(AI引擎首选)
  • 符合Schema.org标准
  • 无冲突或重复的结构化数据
  • 页面加载速度快(AI抓取工具偏好快速站点)
  • HTML结构清晰(语义化标题)
  • 已适配移动端(尤其针对Google AI Overviews)

Entity & authority signals

实体与权威信号

  • Clear brand identity (who you are, what you do)
  • Consistent NAP (name, address, phone) across web
  • sameAs
    links to LinkedIn, Twitter, official profiles
  • External citations and backlinks from authoritative sources
  • Active presence on review platforms
  • Google Business Profile optimized (local businesses)
  • 品牌身份清晰(明确你是谁、做什么)
  • 全网NAP(名称、地址、电话)信息一致
  • 包含指向LinkedIn、Twitter等官方账号的
    sameAs
    链接
  • 来自权威来源的外部引用和反向链接
  • 在评价平台保持活跃
  • Google商家资料已优化(本地商家)

AI visibility monitoring

AI可见性监控

  • Test top 10-20 commercial queries monthly
  • Track AI referral traffic in GA4
  • Monitor brand mentions across AI platforms
  • Check citation context (positive/neutral/negative)
  • Verify factual accuracy of AI responses about your brand
  • Set up alerts for visibility changes (if using paid tools)

  • 每月测试前10-20个商业查询
  • 在GA4中追踪AI推荐流量
  • 监控各AI平台的品牌提及
  • 检查引用上下文(正面/中性/负面)
  • 验证AI关于你的品牌的回答的事实准确性
  • 设置可见性变化提醒(若使用付费工具)

References

参考资料