跳转到内容
GoingGEO.com
返回

结构化数据实战:Article 和 FAQ Schema 手把手配置

更新于:
作者:GoingGEO 团队

上一篇 讲了 Schema 标记的原理和三种最重要的类型。这篇直接上手做——给你的 AstroPaper 博客加上 FAQPage Schema 和 Organization Schema。

不需要懂 TypeScript,不需要改复杂配置。我给你完整的代码模板,你只需要做两件事:复制、粘贴。


你的博客现在的状态

先确认一下当前的情况:

BlogPosting Schema → ✅ 已内置,自动生效。每篇文章都有,不需要操作。

FAQPage Schema → ❌ 还没有。文章末尾的 FAQ 区块没有被结构化标记,AI 只能靠内容解析来识别。

Organization Schema → ❌ 还没有。AI 不知道你的网站代表哪个品牌/组织。

这篇做完后,三个都补齐。


第一步:加 FAQPage Schema

为什么手动加?

AstroPaper 主题没有自动生成 FAQPage Schema 的功能。虽然 AI 可以通过解析 HTML 来识别 FAQ 内容,但加了 FAQPage Schema 后,AI 不需要猜——它直接知道「这段是 FAQ,问题是 X,答案是 Y」。

根据研究数据,这个操作可以让你的 FAQ 内容被 AI 引用的概率提升 2.7-3.2 倍。

实现方案

在 Astro 的文章模板里,用 JavaScript 从页面 DOM 中自动提取 FAQ 内容,生成 FAQPage Schema 的 JSON-LD 代码,注入到页面 <head> 里。

具体做法:在 src/pages/posts/[...slug]/index.astro 文件的底部 <script> 标签里,加一段 FAQ 提取代码。

在 GitHub 上编辑 src/pages/posts/[...slug]/index.astro,找到文件底部的 <script is:inline> 标签,在 updateScrollProgress() 函数后面加一段代码:

// === FAQPage Schema 自动生成 ===
function injectFAQSchema() {
  const article = document.getElementById('article');
  if (!article) return;

  const headings = article.querySelectorAll('h2, h3');
  let faqHeading = null;
  for (const h of headings) {
    if (h.textContent.includes('常见问题') || h.textContent.includes('FAQ')) {
      faqHeading = h;
      break;
    }
  }
  if (!faqHeading) return;

  const questions = [];
  let el = faqHeading.nextElementSibling;
  while (el && el.tagName !== 'H2' && el.tagName !== 'H3') {
    if (el.tagName === 'P' && el.textContent.includes('Q:')) {
      const qText = el.textContent.split('A:')[0].replace(/.*Q:/, '').trim();
      const aText = el.textContent.split('A:')[1]?.trim() || '';
      if (qText && aText) {
        questions.push({
          "@type": "Question",
          "name": qText,
          "acceptedAnswer": {
            "@type": "Answer",
            "text": aText
          }
        });
      }
    }
    el = el.nextElementSibling;
  }

  if (questions.length === 0) return;

  const schema = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": questions
  };

  const script = document.createElement('script');
  script.type = 'application/ld+json';
  script.textContent = JSON.stringify(schema);
  document.head.appendChild(script);
}
injectFAQSchema();

这段代码做的事:

  1. 找到文章里的「常见问题」标题
  2. 提取每个 **Q:** 和 A: 的内容
  3. 生成 FAQPage Schema 的 JSON-LD
  4. 注入到页面 <head> 里

你的文章末尾 FAQ 格式是 **Q:问题** 和 A:答案,和这段代码完全匹配。 以后每篇新文章只要有这种格式的 FAQ,Schema 就会自动生成。


第二步:加 Organization Schema

在哪里加?

在首页 src/pages/index.astro 或 About 页面 src/pages/about.astro 的 frontmatter 区域加。

推荐加在 About 页面,因为 Organization 信息和 About 页面的内容天然重合。

在 GitHub 上编辑 src/pages/about.astro,在 <Layout> 标签里的 <Fragment slot="head"> 区域加一段:

<Fragment slot="head">
  <script is:inline type="application/ld+json" set:html={JSON.stringify({
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "GoingGEO",
    "url": "https://goinggeo.com",
    "description": "面向外贸企业的 GEO(生成式引擎优化)教育博客",
    "email": "[email protected]"
  })} />
</Fragment>

把 name、description、email 换成你自己的信息就行。


第三步:验证 Schema 是否生效

配置完成后,等 Cloudflare 部署成功,用这两个工具验证:

验证 FAQPage Schema

注意:Google 已于 2026 年 5 月全面下线 FAQ 富结果展示,并在同年 8 月从 Rich Results Test 中移除了 FAQ 检测——测试显示“无富结果”是正常现象,不代表配置失败。

推荐用 Schema Markup Validator 验证:

  1. 打开 Schema Markup Validator
  2. 输入你任何一篇有 FAQ 的文章 URL
  3. 如果看到 FAQPage 类型被检测到、没有错误,说明配置成功

验证 Organization Schema

  1. 打开 Schema Markup Validator
  2. 输入你的 About 页面 URL
  3. 如果看到 Organization 类型被检测到,说明配置成功

常见问题

Q:FAQ 富结果都已经下线了,FAQPage Schema 还有必要吗?

A:有必要。富结果下线改变的是 Google 搜索结果页的展示形式,不是结构化数据本身的作用。2026 年的多项研究显示,带 FAQPage 标记的页面在 AI Overviews 中的引用率仍显著更高(Semrush 2026 年 4 月研究约为无标记页面的 3.2 倍),ChatGPT 和 Perplexity 也会读取 FAQPage 标记。FAQ 价值的战场已经从“搜索结果折叠框”转移到了“AI 引用”。

Q:加了 FAQPage Schema 后多久能看到效果?

A:Schema 标记在 AI 搜索引擎下次索引你的页面时生效,通常需要 1-2 周。Google 的索引更新更快,通常 3-5 天。Perplexity 和 ChatGPT 的索引更新稍慢,需要 2-4 周。

Q:我的文章没有 FAQ 区块怎么办?

A:那就不会有 FAQPage Schema,只有 BlogPosting Schema。这是正常的——不是每篇文章都需要 FAQ。但建议尽量在每篇文章末尾加 3-5 个 FAQ,因为这是 AI 引用率最高的内容格式。

Q:FAQPage Schema 里的答案需要和页面上的文字完全一致吗?

A:是的,必须一致。Schema 标记的内容必须和页面可见内容匹配,否则会被搜索引擎视为操纵行为。上面的代码是从页面 DOM 中自动提取的,所以天然一致——你不需要担心这个问题。

Q:Organization Schema 只加在 About 页面够吗?

A:够用。Organization Schema 不需要每个页面都加。加在 About 页面或首页,搜索引擎和 AI 会通过站点范围内的爬取找到它。如果你想更保险,也可以在首页 index.astro 里也加一份。

Q:代码不太懂,有没有更简单的方法?

A:如果你不想改代码,可以先用 Google Tag Manager 来注入 Schema。但 Astro 项目里直接改代码是更干净、更可靠的方式——不依赖第三方工具,加载速度更快,也不容易被广告拦截器屏蔽。


分享本文:

上一篇
robots.txt 和 llms.txt:AI 爬虫配置完全指南
下一篇
外贸企业做 GEO 最常见的 3 个失败模式