Pillar page 和 cluster page 怎么排:让 Google 看懂你的内容结构

用内容 schema、内链审计脚本和 pillar 页模板把 pillar/cluster 关系编码进数据,让 Google 真的看懂主题权威。

pillar/cluster 不是 SEO 黑魔法,它只是一种内容组织方式,正好对上 Google 评估主题权威的方式。做对了,pillar 页能上宽词排名,cluster 页能上长尾排名,它们之间用合理的内链连起来。关键是把关系编码进 schema,不是装脑子里。

问题背景

pillar page 是覆盖某个主题的宽度页(例如”如何搭一个内容站”)。cluster page 是覆盖一个细分子主题的深度页(例如”如何向 Google 提交 sitemap”)。cluster 向上链到 pillar,pillar 向下链到每个 cluster。Google 读链接图后判断”这个站在这个主题上有深度”。

判断标准

  • 你能一口气说出站上 top 5-10 个主题簇。
  • 每个 pillar 页有 5-15 个 cluster 页指向它。
  • 任意 cluster 页距首页不超过 2 次点击。
  • 内链锚文本用的是目标关键词,不是”点这里”。
  • 新文章很自然就能归到已有 pillar,不需要手动调整。

快速结论

把 pillar/cluster 当数据维护——frontmatter 有 pillar 字段、脚本生成链接图。双向链、描述性锚文本、孤儿检测是关键。

开始前准备

  • 已经发了至少 20-30 篇可以归类。
  • 内容 schema 能扩出 pillar 字段。
  • 能跑个小 Node 脚本审计链接。

实操步骤

  1. frontmatter 加 pillar 字段。 扩 schema:
// src/content/config.ts
schema: z.object({
  // ...
  pillar: z.string().optional(),    // 此文所属 pillar 的 slug
  isPillar: z.boolean().default(false),
}),

cluster 文章:

---
title: "如何向 Search Console 提交 sitemap"
urlSlug: "submit-sitemap-search-console"
pillar: "submit-website-to-google"
isPillar: false
---

pillar 文章:

---
title: "2026 把新站提交给 Google"
urlSlug: "submit-new-site-to-google-2026"
isPillar: true
---
  1. 想 5-10 个 pillar 主题。 每个需要至少 10-20 个候选 cluster,否则太窄。pillar 超过 10 个说明太宽。

  2. 先写 cluster 再写 pillar。 先写 pillar 容易写空。每个 pillar 先发 5-7 篇 cluster,再写 pillar——这样 pillar 会更厚实更诚实。

  3. pillar 的”子文章列表”用程序自动生成。 pillar layout 里:

---
import { getCollection } from 'astro:content';
const { lang, urlSlug } = Astro.props.article.data;
const clusters = (await getCollection('articles', (a) =>
  a.data.lang === lang && a.data.pillar === urlSlug && !a.data.isPillar
)).sort((a, b) => a.data.title.localeCompare(b.data.title));
---
<h2>本指南包含</h2>
<ul>
  {clusters.map((c) => (
    <li>
      <a href={`/${lang}/articles/${c.data.urlSlug}/`}>{c.data.title}</a>
      <p>{c.data.description}</p>
    </li>
  ))}
</ul>
  1. cluster 回链 pillar 也自动渲。 cluster layout 里:
---
const { lang, pillar } = Astro.props.article.data;
const p = pillar
  ? (await getEntry('articles', `${lang}/${pillarPath}/${pillar}`))
  : null;
---
{p && (
  <aside class="pillar-up">
    属于:<a href={`/${lang}/articles/${p.data.urlSlug}/`}>{p.data.title}</a>
  </aside>
)}
  1. 两个方向的锚文本都要描述性。 pillar → cluster 锚文本描述 cluster 主题;cluster → pillar 锚文本描述 pillar 主题。避免 “click here” 或直接写 slug。

  2. 跑 pillar/cluster 审计脚本。 找弱 pillar 和孤儿 cluster:

// scripts/audit-pillars.mjs
import { readdirSync, readFileSync } from 'node:fs';
import { join } from 'node:path';
import matter from 'gray-matter';

const byPillar = new Map();
const pillars = new Set();

function walk(dir) {
  for (const f of readdirSync(dir, { withFileTypes: true })) {
    const full = join(dir, f.name);
    if (f.isDirectory()) walk(full);
    else if (f.name.endsWith('.mdx')) {
      const { data } = matter(readFileSync(full, 'utf8'));
      if (data.isPillar) pillars.add(data.urlSlug);
      else if (data.pillar) {
        if (!byPillar.has(data.pillar)) byPillar.set(data.pillar, []);
        byPillar.get(data.pillar).push(data.urlSlug);
      }
    }
  }
}
walk('src/content/articles');

for (const p of pillars) {
  const count = (byPillar.get(p) || []).length;
  if (count < 4) console.warn(`WEAK PILLAR (${count}): ${p}`);
}
for (const [pillar, kids] of byPillar) {
  if (!pillars.has(pillar)) {
    console.warn(`ORPHAN CLUSTERS(pillar 还没发)for "${pillar}": ${kids.join(', ')}`);
  }
}
  1. 每季度复盘。 少于 4 条 cluster 链入的 pillar 是弱的;没有 pillar 的孤儿 cluster 需要补 pillar。

执行检查清单

  • schema 包含 pillar + isPillar 字段。
  • pillar 页根据 frontmatter 自动渲 cluster 列表,不是手维护。
  • 每篇 cluster 有 back-link 块。
  • 审计脚本接到 prebuild,弱 pillar / 孤儿告警。
  • 双向锚文本都描述性。

上线后验证

  • Search Console → Performance → Pages:pillar URL 在宽关键词上累积曝光。
  • URL Inspection cluster 显示 pillar 在 “Referring URLs” 里。
  • Lighthouse → Accessibility → 链接可识别——全绿。

容易踩的坑

  • 把 pillar 写成 1 万字大杂烩,什么都讲。更好的做法是结构化总览 + 链出。
  • pillar → cluster 链了,cluster 不回链。双向链才是 cluster 模式生效的关键。
  • 所有链都用同一个锚文本。要用相关词自然变化。
  • pillar 设太多。5 个强 pillar 永远胜过 15 个半成品。
  • cluster 列表硬编码在 pillar 里,过几个月就老化——一定要自动生成。
  • 把 pillar/cluster 当 URL 结构(/pillar/<x>/cluster/<y>/)。它是逻辑结构,不是 URL 结构。

FAQ

  • pillar 页要多长?: 一般 2000-4000 字,但覆盖度比字数更重要。如果链了 10 篇深度 cluster,pillar 不需要再重复内容。
  • cluster 之间可以互相链吗?: 可以,相关时就应该链。模式是 hub-and-spoke,但 spoke 之间也可以连。
  • 需要专门的 /pillar/ URL 结构吗?: 不需要。这是逻辑结构不是 URL 结构。pillar 和 cluster 都可以放在 /articles/ 下。
  • pillar 之间有重叠怎么办?: 选一个作为 canonical,把另一个合并掉,或者把它们的范围划窄到不重叠。
  • 要加 JSON-LD WebPage about schema 吗?: 可选但有用。pillar 标 WebPage,加 about 指向主题。

相关阅读

标签: #独立开发 #内容运营 #SEO #建站策划 #Pillar / Cluster #Technical SEO