跳到主要内容
IM智引科技

研究 / 外贸与 B2B 增长

注册表驱动的内容增长:用 AI 定期发现新词与生成选题日历

注册表建好之后不能不动。这篇讲三个新词来源(GSC 已有曝光的词、竞品新增词、AI 搜索的相关问题)如何汇入注册表,以及如何用注册表的覆盖缺口自动生成季度选题日历,让内容增长有依据而不是靠灵感。

BLKTECH 编辑部2026年8月4日12 分钟难度 实战低成本Node.jsGoogle Search ConsoleClaude

新词三个来源按 ROI 排序:GSC 已有曝光但未注册的词(需求已验证,最高)、竞品新增词(第 56 篇)、AI 搜索的相关问题。选题日历从注册表的覆盖缺口生成,按 priority×搜索量×是否有 Pillar 支撑排序,每季度产出 8–12 个选题。

注册表驱动的内容增长:用 AI 定期发现新词与生成选题日历

选题不该靠灵感

“这个月写什么?” 如果每个月都要重新想这个问题,说明缺少机制。

注册表提供了这个机制:它记录了所有已规划的词和已建的页面,两者的差集就是待办清单。而新词的持续注入,保证这个清单不会枯竭。

新词来源 → 汇入注册表 → 覆盖度审计(第 46 篇)→ 缺口清单 → 选题日历
                ↑                                          ↓
                └──────────── 页面上线后更新 ←──────────────┘

一、三个新词来源(按 ROI 排序)

来源 1:GSC 已有曝光但未注册的词(最高 ROI)

这是最容易被忽略的宝库。你的站点已经在某些词上有曝光,但这些词从未被规划过——说明 Google 认为你的内容和这些词相关,只是你没有专门优化。

为什么 ROI 最高

  • 需求已被验证(有真实曝光)
  • 相关性已被 Google 确认
  • 往往只需优化现有页面,不用新建

筛选条件

从 GSC 导出 Query 数据,筛选:
- 曝光量 ≥ 20(有实际搜索)
- 排名在 8–40 之间(有戏但没到位)
- 不在 registry.json 里

排名 8–40 是关键区间:排名 1–7 的词说明已经做好了;排名 40+ 的词说明相关性太弱,优化成本高。

来源 2:竞品新增词(第 56 篇)

竞品上季度新增了排名的词,是市场动向的信号。做法见第 56 篇,这里只强调频率:每季度一次,不要更频繁

来源 3:AI 搜索的相关问题

Perplexity 和 ChatGPT 在回答问题后会给出“相关问题”(Related Questions)。这些是 AI 判断的语义相邻问题,往往包含传统关键词工具挖不到的长尾。

收集方法(手工,每季度 30 分钟):

1. 在 Perplexity 输入你的核心 PKW(如 "centrifugal pump for chemical transfer")
2. 记录回答下方的 Related Questions(通常 3–5 个)
3. 对每个相关问题再问一次,继续收集(做两层即可)
4. 一个 PKW 通常能收集到 10–15 个相关问题

这些问题的用途

  • 直接作为 FAQ 条目(第 41 篇的自包含格式)
  • 判断是否值得单独建 Resource Cluster 页
  • 补充现有页面的内容缺口

注意:AI 给出的相关问题没有搜索量数据。判断是否值得做,看它是否指向一个你还没覆盖的技术主题。


二、GSC 新词发现脚本

// scripts/discover-new-keywords.mjs
import fs from 'fs/promises';
import { parse } from 'csv-parse/sync';

const registry = JSON.parse(await fs.readFile('registry.json', 'utf8'));

// 注册表中已有的词(包含 keyword 和所有 skw)
const registered = new Set();
for (const row of registry) {
  registered.add(row.keyword.toLowerCase().trim());
  for (const s of row.skw ?? []) registered.add(s.toLowerCase().trim());
}

// 已排除的词(第 56 篇的排除列表,复用)
let excluded = new Set();
try {
  const list = JSON.parse(
    await fs.readFile('data/excluded-keywords.json', 'utf8')
  );
  excluded = new Set(list.map(e => e.keyword.toLowerCase()));
} catch {}

// 读取 GSC 数据
const csv = await fs.readFile('data/gsc-queries.csv', 'utf8');
const rows = parse(csv, { columns: true, skip_empty_lines: true });

const FILTERS = {
  minImpressions: 20,
  positionRange: [8, 40],
};

const candidates = [];

for (const r of rows) {
  const query = (r.Query ?? '').toLowerCase().trim();
  if (!query) continue;
  if (registered.has(query)) continue;
  if (excluded.has(query)) continue;

  const impressions = Number(r.Impressions ?? 0);
  const position = Number(r.Position ?? 999);
  const clicks = Number(r.Clicks ?? 0);

  if (impressions < FILTERS.minImpressions) continue;
  if (position < FILTERS.positionRange[0] || position > FILTERS.positionRange[1]) continue;

  // 机会分:曝光量 ÷ 排名(排名越靠前、曝光越大,分越高)
  const opportunityScore = Math.round(impressions / position * 10);

  candidates.push({
    query,
    impressions,
    clicks,
    ctr: r.CTR,
    position,
    opportunityScore,
    // 记录当前是哪个页面在排这个词(如 GSC 导出含 Page 维度)
    currentPage: r.Page ?? null,
  });
}

candidates.sort((a, b) => b.opportunityScore - a.opportunityScore);

// 按词形做初步意图推测(复用第 51 篇的规则表思路)
function guessIntent(q) {
  if (/manufacturer|supplier|factory|oem|wholesale|buy|price|quote/.test(q))
    return 'commercial';
  if (/specs|specification|datasheet|dimensions|flow rate|pressure|\bfor\b|\bvs\b/.test(q))
    return 'engineering';
  if (/what is|how does|how to|why|types of|explained|guide/.test(q))
    return 'informational';
  return 'unknown';
}

const annotated = candidates.map(c => ({
  ...c,
  guessedIntent: guessIntent(c.query),
}));

console.log(JSON.stringify({
  summary: {
    gscTotalQueries: rows.length,
    registeredKeywords: registered.size,
    newCandidates: candidates.length,
    filters: FILTERS,
    intentDistribution: {
      commercial: annotated.filter(c => c.guessedIntent === 'commercial').length,
      engineering: annotated.filter(c => c.guessedIntent === 'engineering').length,
      informational: annotated.filter(c => c.guessedIntent === 'informational').length,
      unknown: annotated.filter(c => c.guessedIntent === 'unknown').length,
    },
  },
  // 交给模型做业务相关性过滤和处置判断
  candidates: annotated.slice(0, 80),
}, null, 2));

三、新词处置决策

脚本给出候选词后,每个词有三种处置方式。判断顺序如下:

决策 1:加入现有页面的 SKW(优先)

条件:该词的意图和主题与某个现有页面一致。

示例:
新词:"chemical transfer pump seal type"(曝光 45,排名 18)
当前排这个词的页面:/applications/centrifugal-pump-chemical-transfer/

判断:意图 engineering,主题就是这个页面的内容
处置:加入该页 SKW,并在页面补充一个 H2 专门讲密封选型

必须做的检查(第 45 篇的唯一性约束):

□ 该词不是其他页面的 PKW
□ 该词不在目标页面的 NKW 里
□ 加入后不会与其他页面的 SKW 大量重叠

决策 2:新建页面

条件:该词代表一个独立的搜索意图或技术主题,现有页面都覆盖不了。

示例:
新词:"pump for battery electrolyte transfer"(曝光 32,排名 22)
现有页面:无对应的电池电解液场景页

判断:这是一个独立应用场景(新能源行业)
处置:新建 Application Cluster 页,走第 53 篇的 Content Brief 流程

决策 3:加入排除列表

条件:业务范围外、竞品品牌词、或明确不做的方向。

处置方式同第 56 篇——记录原因和 reconsiderIf 字段。


四、选题日历生成

有了新词和覆盖缺口,生成季度选题日历。

排序公式

选题优先级分 =
    priority × 30            (注册表业务优先级,1–5)
  + 搜索量归一化 × 25         (月搜索量 / 最大搜索量 × 100)
  + 意图权重 × 20            (commercial=100, engineering=80, informational=50)
  + Pillar 支撑 × 15         (有对应 Pillar 已上线=100,否则=0)
  + 数据就绪度 × 10          (applications.yaml 已有该场景数据=100,否则=0)

为什么“Pillar 支撑”占权重:一个 Cluster 页如果没有对应的 Pillar 已上线,它的权重无处汇聚,效果会打折。应该先建 Pillar 再建 Cluster。

为什么“数据就绪度”占权重:如果 applications.yaml 里已有该场景的完整数据(第 28 篇),可以直接走 pSEO 流程(第 54 篇),成本低得多。

生成脚本

// scripts/content-calendar.mjs
import fs from 'fs/promises';
import yaml from 'js-yaml';

const registry = JSON.parse(await fs.readFile('registry.json', 'utf8'));

// 复用第 46 篇的覆盖度审计结果
const coverage = JSON.parse(
  await fs.readFile('/tmp/coverage.json', 'utf8')
);

// 已上线的 Pillar
const livePillars = new Set(
  coverage.coveredPages.filter(slug => {
    const row = registry.find(r => r.page_slug === slug);
    return row?.page_type === 'pillar';
  })
);

// applications.yaml 里已有数据的场景
let readyScenarios = new Set();
try {
  const apps = yaml.load(
    await fs.readFile('src/data/applications.yaml', 'utf8')
  );
  readyScenarios = new Set(
    apps.filter(a =>
      (a.challenges?.length ?? 0) >= 3 &&
      (a.keySelectionCriteria?.length ?? 0) >= 3
    ).map(a => a.slug)
  );
} catch {}

const INTENT_WEIGHT = {
  commercial: 100,
  engineering: 80,
  informational: 50,
};

// 待建页面(来自覆盖度审计的 A 区)
const pending = coverage.missingPages;
const maxVolume = Math.max(
  ...pending.map(p => p.monthlyVolume ?? 0), 1
);

const scored = pending.map(p => {
  const row = registry.find(r => r.page_slug === p.slug);
  const category = row?.category;

  // 是否有对应 Pillar 已上线
  const pillarRow = registry.find(r =>
    r.page_type === 'pillar' && r.category === category
  );
  const hasPillarSupport = pillarRow
    ? livePillars.has(pillarRow.page_slug)
    : false;

  // 数据是否就绪(从 slug 匹配场景)
  const dataReady = [...readyScenarios].some(s => p.slug.includes(s));

  const score = Math.round(
    (p.priority ?? 3) * 30
    + ((p.monthlyVolume ?? 0) / maxVolume * 100) * 0.25
    + (INTENT_WEIGHT[p.intent] ?? 50) * 0.20
    + (hasPillarSupport ? 100 : 0) * 0.15
    + (dataReady ? 100 : 0) * 0.10
  );

  return {
    ...p,
    hasPillarSupport,
    dataReady,
    // 建议的生产方式
    productionMethod: dataReady && p.pageType === 'cluster-app'
      ? 'pSEO 批量生成(第 54 篇)'
      : 'Content Brief + 人工写作(第 53 篇)',
    score,
  };
});

scored.sort((a, b) => b.score - a.score);

// 按季度产能切分(假设每季度能产出 8–12 篇)
const QUARTERLY_CAPACITY = 10;

console.log(JSON.stringify({
  summary: {
    totalPending: pending.length,
    quarterlyCapacity: QUARTERLY_CAPACITY,
    estimatedQuarters: Math.ceil(pending.length / QUARTERLY_CAPACITY),
    pSeoEligible: scored.filter(s =>
      s.productionMethod.startsWith('pSEO')
    ).length,
  },
  // 本季度选题
  thisQuarter: scored.slice(0, QUARTERLY_CAPACITY),
  // 后续队列
  backlog: scored.slice(QUARTERLY_CAPACITY),
  // 被 Pillar 缺失阻塞的选题(应先建 Pillar)
  blockedByMissingPillar: scored.filter(s => !s.hasPillarSupport),
}, null, 2));

五、Skill 说明书

# Skill:注册表驱动的内容增长

## 何时使用
- 每季度做内容规划时
- 注册表覆盖率已达标,需要发现新增长点

## 输入
- `registry.json`
- GSC Query 导出 CSV(近 90 天)
- 可选:第 56 篇的竞品差距分析结果
- 可选:手工收集的 AI 搜索相关问题清单

## 执行步骤

### Step 1:运行新词发现脚本
执行 `npm run seo:discover`

### Step 2:业务相关性过滤(你来判断)
同第 56 篇的过滤规则。剔除的词写入排除列表。

### Step 3:逐词做处置决策(你来判断)

对每个保留的候选词,按第三节的三种决策判断。

**决策 1(加入现有页面)的额外要求**
必须同时给出该页面需要补充什么内容。
只把词加进 SKW 而不改页面内容,排名不会提升。

示例输出:

新词:chemical transfer pump seal type(曝光 45,排名 18) 决策:加入 /applications/centrifugal-pump-chemical-transfer/ 的 SKW 需补充内容: 新增 H2 “Seal Selection for Chemical Service”

  • 机械密封 vs 磁力驱动的适用条件(含具体介质举例)
  • 密封面材料选择(碳化硅 / 碳石墨 / 陶瓷)
  • 引用 API 682 密封选型标准 预估工时:1.5 小时 唯一性检查:✅ 该词非其他页面 PKW,不在本页 NKW

### Step 4:生成选题日历
执行 `node scripts/content-calendar.mjs`

### Step 5:审核并调整日历(你来判断)

脚本的排序是机械的,需要人工调整:

**必须检查的两点**:
1. `blockedByMissingPillar` 里的选题
   → 如果某个 Pillar 还没建,应把 Pillar 提到本季度最前
2. `pSeoEligible` 的选题
   → 数据就绪的场景页可以批量做,一次性排 3–5 个
     (但要遵守第 54 篇的批次质量门槛)

**可以调整的情况**:
- 业务重点变化(如新产品线上市,相关选题提前)
- 竞品动作(竞品刚发布某场景内容,可以跟进做更好的)
- 季节性(某些应用有采购季节性)

### Step 6:输出季度内容计划

## 输出格式

Q4 2026 内容计划

新词发现汇总

GSC 候选词:[N] 个(曝光≥20,排名 8–40) 业务相关性过滤后:[N] 个 处置分布:

  • 加入现有页面 SKW:[N] 个
  • 新建页面:[N] 个
  • 加入排除列表:[N] 个

优先级 1:优化现有页面([N] 项)

1. /applications/centrifugal-pump-chemical-transfer/

新增词:chemical transfer pump seal type(曝光 45,排名 18) 需补充内容:[具体的 H2 和内容点] 预估工时:1.5 小时 预期效果:该词排名 18 → 10 以内

优先级 2:新建页面(本季度 [N] 篇)

1. /products/magnetic-drive-pumps/(Pillar)

  • 优先级分:87
  • 为什么排第一:3 个 Cluster 选题都在等这个 Pillar
  • 生产方式:Content Brief + 人工写作
  • 预估工时:6 小时

2–4. 磁力泵相关 Application 页 × 3

  • 优先级分:72–78
  • 生产方式:pSEO 批量生成(数据已就绪)
  • 预估工时:3 小时(含审核)
  • 依赖:需在选题 1 完成后进行

待办队列(后续季度,[N] 项)

[列出 Top 10 及优先级分]

被阻塞的选题([N] 项)

以下选题缺少对应 Pillar 支撑,建议先建 Pillar:

  • /applications/gear-pump-food-processing/ → 需先建 /products/gear-pumps/

AI 搜索相关问题(本季度收集)

从 Perplexity 收集的 [N] 个相关问题:

  • 可直接作为 FAQ 补充到现有页面:[N] 个(列出)
  • 值得新建页面:[N] 个(已并入上方选题)

## 禁止行为
- 本季度选题不要超过 10 个(超出产能的计划等于没计划)
- 决策 1(加入现有页面)必须给出具体的内容补充要求
- 不要在 Pillar 未上线时安排大量 Cluster 页
- 新词加入注册表前必须过第 45 篇的唯一性检查

六、季度运营节奏

把这一篇和第 63 篇的自动化结合,形成完整的季度循环:

季度首日(自动化,第 63 篇)
  → GitHub Actions 生成健康度报告骨架

第 1 周(人工,2–3 小时)
  → 手动导出 GSC 数据
  → 跑新词发现脚本(本篇)
  → 跑竞品差距分析(第 56 篇,每季度一次)
  → 业务相关性过滤 + 处置决策
  → 补完健康度报告的人工部分(第 50 篇)

第 1 周末
  → 生成选题日历,确定本季度 8–12 个选题
  → 处理健康度报告的 Top 5 行动项

第 2–12 周(执行)
  → 按日历产出内容
  → 每篇走 Content Brief(第 53 篇)或 pSEO(第 54 篇)
  → 每次新建页面前跑 npm run seo:lint

第 12 周
  → 回顾:计划完成率、各页面上线后的表现
  → 准备下季度循环

这个循环的关键:新词发现和选题决策集中在季度初的一周内做完,剩下 11 周专注执行。不要每周都在重新规划——那会消耗掉本该用于产出的时间。


→ 全系列 AI Skills 工具箱汇总:Prompt 合集与使用指南

NEXT ACTION / 下一步

继续系列:AI 外贸站建设全系列

把读到的方法变成一个小行动,完成后再回来迭代。

继续

RELATED / 相关推荐

接着读这些

按同一分类、系列与标签为你挑选。