你搜这个关键词,真正想解决的其实是一件事:让 AI 搜索引擎(ChatGPT、Perplexity、Google AI Overview)在抓取你每篇 WordPress 文章时,能直接读懂”这是一篇讲什么的文章、谁写的、回答了什么问题”

答案不复杂:在每篇文章<head> 里写入一段 JSON-LD 结构化数据。最稳的做法不是逐篇手粘,而是用 wp_head 钩子 + is_single() 条件判断,让 WordPress 自动为每篇文章动态生成。下面给你一套可复制即用的代码,以及 GEO 视角下”普通 SEO schema”和”能被 AI 引用”的差别。

一、先搞懂:GEO 优化的”结构代码”到底是什么

定义块:GEO(Generative Engine Optimization,生成式引擎优化)是面向 AI 搜索引擎的内容优化;它的”结构代码”通常指 JSON-LD 格式的结构化数据(基于 schema.org 词汇)。它是一段放在网页 <head><body> 里的 <script type="application/ld+json">,人类看不见,但 AI 爬虫能直接解析出”实体—关系”。

它和 SEO 的区别很关键:

  • 传统 SEO:优化关键词和链接,让网页在搜索结果里排得靠前
  • GEO:优化内容和结构,让 AI 在生成答案时直接引用你。AI 不看你的美观排版,只看能否提取出干净的数据结构。

为什么一定要进 <head>?因为 <head> 在 HTML 最前面,AI 爬虫在解析 DOM 之前就能拿到实体定义;而且用 wp_head 钩子注入,比在正文里粘 <script> 更不容易被可视化编辑器误删。

二、三种写入方式怎么选

方式 做法 优点 缺点 适合谁
插件(Rank Math / Yoast) 后台勾选生成 零代码、自动 字段有限、易重复冲突、有性能开销 非技术/懒人
无插件 functions.php wp_head 钩子动态注入 轻量、可控、无冲突 需改子主题 技术站/SEO(推荐)
逐篇 Custom HTML 块 编辑器里粘 <script> 单篇灵活 维护灾难、易失效 仅个别页面

结论:如果你的站是内容驱动、追求 GEO 与性能,选”无插件 + wp_head“。下面给的就是这条路线。

三、每篇文章自动注入(核心代码)

打开子主题functions.php(务必用子主题,父主题更新会清空改动),在末尾追加:

// 每篇文章自动注入 GEO 结构化数据到 <head>
add_action('wp_head', 'yuan_shu_article_schema');
function yuan_shu_article_schema() {
    if (! is_single() || get_post_type() !== 'post') {
        return;
    }
    global $post;
    $schema = array(
        '@context' => 'https://schema.org',
        '@type'   => 'Article',
        'headline' => get_the_title($post),
        'url'      => get_permalink($post),
        'description' => wp_strip_all_tags(get_the_excerpt($post)),
        'image'    => get_the_post_thumbnail_url($post->ID, 'full'),
        'datePublished' => get_the_date('c', $post),
        'dateModified'  => get_the_modified_date('c', $post),
        'author' => array(
            '@type' => 'Person',
            'name'  => get_the_author_meta('display_name', $post->post_author),
        ),
        'publisher' => array(
            '@type' => 'Organization',
            'name'  => get_bloginfo('name'),
            'logo'  => array(
                '@type' => 'ImageObject',
                'url'   => get_site_icon_url(),
            ),
        ),
        'mainEntityOfPage' => get_permalink($post),
    );
    echo '<script type="application/ld+json">' 
         . wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) 
         . '</script>' . "\n";
}

要点:

  • is_single() 保证只作用于单篇文章,不会污染首页/列表页。
  • wp_json_encode() 用 WordPress 原生函数安全生成 JSON,避免手写出错。
  • JSON_UNESCAPED_UNICODE 让中文不被转义成 \uXXXX,可读性更好。
  • 字段全部从 WordPress 动态取(标题/作者/日期/缩略图/URL),文章更新时 schema 自动同步,不会”写完就过期”。

四、GEO 升级:把 FAQ 嵌套进 JSON-LD

普通 Article schema 只能告诉 AI”这是文章”。要让 AI 直接引用你的答案,把 FAQ 也写成结构化数据:

// 在上面的函数内,$schema 数组追加:
$schema['mainEntity'] = array(
    '@type' => 'FAQPage',
    'mainEntity' => array(
        array(
            '@type' => 'Question',
            'name'  => 'WordPress 结构化数据放在 head 还是 body?',
            'acceptedAnswer' => array(
                '@type' => 'Answer',
                'text'  => '两者 Google 都认,但放 <head> 通过 wp_head 注入最稳,且不易被编辑器剥离。',
            ),
        ),
    ),
);

进阶:用 sameAs 把实体关联到权威页面(如维基百科的”Generative artificial intelligence”),帮 AI 确认你的实体身份,减少”猜错”。

五、配合 llms.txt 与 robots.txt

GEO 不只靠 JSON-LD:

  • llms.txt:在站点根目录放一份,告诉 AI 爬虫”本站哪些内容可优先取用、怎么用”。这是 2026 年 AI 爬虫的新兴协议。
  • robots.txt:确认 AI 爬虫(GPTBot、Google-Extended、ClaudeBot 等)未被误屏蔽。
  • 去 JS 噪声:AI 爬虫常不执行 JavaScript,重型页面构建器(Elementor/Divi)会让 AI 看到”空白页”。精简主题、减少内联噪声,让正文可被直接解析。

六、验证与避坑

验证:文章发布后,复制 URL 到 Google Rich Results Test 与 Schema Markup Validator 跑一遍,确保无语法错误(一个缺逗号整段失效)。

7 个常见坑

  1. 重复 schema 冲突:插件已生成 Article,你又手动加一块 → 谷歌可能忽略其一。先用 Rich Results Test 查冲突。
  2. 粘进可视化编辑器被剥离:古腾堡会把 <script> 包进 <p> 或直接删掉。务必走 wp_head,别在正文粘。
  3. 改了父主题 functions.php:主题一更新全没。用子主题或自定义插件。
  4. GTM 注入延迟:JS 注入的 schema 谷歌发现更慢,优先级低于静态 HTML。
  5. 硬编码 FAQ:多篇文章硬编码 FAQ 到 functions.php 不可维护,应用自定义字段/ACF 动态化。
  6. 字段过期:手写静态 JSON,改了标题 schema 不跟着变 → 触发”spammy structured data”风险。
  7. 中文被转义:忘记 JSON_UNESCAPED_UNICODE,中文变 \u 序列,可读性差(不影响解析但难调试)。

常见问题 FAQ

Q:WordPress 结构化数据放在 head 还是 body?
A:Google 两者都支持。但从稳定性和防误删角度,用 wp_head 注入 <head> 最优。

Q:不用插件会影响网站速度吗?
A:不会。一段 JSON-LD 是极轻量的文本,PHP 输出耗时通常低于 1 毫秒,对 Core Web Vitals 无影响,反而比装 2MB 的 SEO 插件更省资源。

Q:每篇文章 FAQ 不一样,怎么动态生成?
A:用自定义字段(Custom Field)或 ACF 存每篇问答,functions.php 里 get_post_meta() 读取后拼进 JSON-LD,作者只填后台表单,schema 自动同步。

Q:重复 schema 谷歌会怎么处理?
A:可能忽略其中一块,严重时被判 spammy。同一页面同一类型只保留一个来源(插件或手动,二选一)。

Q:GEO 和 SEO 到底什么关系?
A:SEO 是地基(让 AI 能发现你),GEO 是进化(让 AI 引用你)。二者不冲突,结构化数据同时讨好传统搜索与 AI 搜索。

结语

把”每篇文章自动注入 GEO 结构化数据”这件事交给 wp_head + is_single(),你就拥有了可持续、不易出错、AI 友好的内容底座。复制上面的片段 → 粘进子主题 functions.php → 用验证工具跑一遍 → 然后把它分发到公众号、知乎、百家号等平台,让更多 AI 和用户看到你。

本文作者元枢,一线 SEO/GEO 实战 10 年,专注帮 WordPress 站点做 AI 友好型结构化改造。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。