内容站发布节奏:用 git log 反推可持续频次

用真实 8 周 git 数据定可持续发布节奏:批量写作流程 + backlog 跟踪脚本 + 季度复盘。

大多数独立内容站不是死于内容差,而是死于发布不稳定。连续 12 周猛发然后沉默 4 个月,比稳定发一半的量更差——Google 会把突然沉默当成站要死的信号。节奏的目的不是最大化产量,是可预测——而且要从你真实的 git log 里量,不是从愿望里量。

问题背景

Google 不会真的奖励”每周二发”这种模式,但它会奖励长期持续输出相关新内容的站。更重要的是,你自己需要节奏来维持习惯。没有节奏,内容会被无限推到”以后”。“可量化节奏 + 小 backlog + 每周发文检查”是真正能撑住的最小系统。

判断标准

  • 你发文呈”波”——猛冲几周然后沉默。
  • 几个月前定了目标节奏,没撑住。
  • 对发布频率有负罪感(说明目标错,不是你错)。
  • 过去 8 周的平均产出远低于你对外承诺的数字。

快速结论

挑你 90% 确定能连续 12 个月都做到的最低节奏。这是你真实的节奏,超出的都算 bonus。

开始前准备

  • 编辑控制面(git log、内容目录)能拿到。
  • 留 30 分钟搭下面这套测量脚本。
  • 公开承诺数字前先把数算对。

实操步骤

  1. git log 老实量。 frontmatter 里有发布日期,但 git log 证明你真正何时 ship 了:
# 过去 8 周变动的文章数
git log --since="8 weeks ago" --pretty=format:'%ai' --name-only -- 'src/content/articles/' \
  | grep '\.mdx$' | awk -F/ '{print $NF}' | sort -u | wc -l

git log --since="8 weeks ago" --pretty=format:'%ai' --diff-filter=A --name-only \
  -- 'src/content/articles/' \
  | grep '\.mdx$' \
  | awk -F/ '{print $NF}' | sort -u | wc -l
# 新增(A = added)的文章数

或者更简单地看 frontmatter:

grep -rh '^publishedAt:' src/content/articles \
  | awk '{print $2}' \
  | awk -F- '{print $1"-"$2}' | sort | uniq -c
# 按年-月计数,最近几个月的数据说真话
  1. × 0.8 即可持续下限。 8 周发了 16 篇 → 真实节奏 16 × 0.8 / 8 = 1.6 篇/周。向下取整成干净排期(1/周、2/周)。

  2. 定固定发布日。 周二 + 周五是常见模式。写进 CONTENT.md

# 发布节奏
- 目标: 2 篇/周
- 日期: 周二 10:00 ET、周五 10:00 ET
- backlog 缓冲: 任何时刻有 2-3 篇待发
- 每季度复盘;中途不调整
  1. 建小 backlog。 一个 drafts/ 目录放待发:
ls drafts/*.mdx | wc -l
# < 2 就告警:
[ "$(ls drafts/*.mdx 2>/dev/null | wc -l)" -lt 2 ] && echo "WARN: backlog 低于 2"

挂到每周清单里,告警前的告警就是告警。

  1. 只追踪”本周发了/没发”。 别追字数和工时,跟结果没相关性。小追踪脚本:
# scripts/cadence-check.mjs
import { execSync } from 'node:child_process';
const since = new Date(Date.now() - 7 * 86400 * 1000).toISOString().slice(0, 10);
const out = execSync(
  `git log --since="${since}" --diff-filter=A --name-only -- 'src/content/articles/'`
).toString();
const newArticles = out.split('\n').filter(l => l.endsWith('.mdx')).length / 2; // en + zh
console.log(`本周: ${newArticles} 篇新文`);
if (newArticles === 0) console.log('断更');

挂到每周 cron 或周五早晨人工跑。

  1. 每季度复盘。 13 周总结:
grep -rh '^publishedAt:' src/content/articles \
  | awk '{print $2}' \
  | awk -F- '{print $1"-W"int(($2*30+$3)/7)}' \
  | sort | uniq -c | tail -13

12 周都觉得轻松,月产 +1;觉得吃力降一档。中途不要调。

  1. 不要前置猛冲。 20 篇上线周 + 8 周沉默,比稳定 2/周差得多。至少前一个季度匀着发。

执行检查清单

  • 8 周基线从 git log 量,不是凭记忆。
  • 公开节奏 ≤ 实测 × 0.8。
  • 固定发布日写进 CONTENT.md
  • backlog ≥ 2 篇。
  • 每周”发了吗”检查自动化或仪式化。

上线后验证

  • 12 周后 git log 显示的连续周数与目标一致。
  • backlog 从未掉到 1 以下。
  • Search Console “new pages discovered” 平稳,不再尖刺。

容易踩的坑

  • 按”别的独立站怎么做”定节奏。你不是他们,你的生活也不是。
  • 上线第一个月猛冲。一周发 20 篇看起来漂亮,然后是 8 周沉默。要分散。
  • 不留 backlog。一旦一周状态差就断更。
  • 用复杂的内容日历工具。Google Sheet 或 Notion 表格够用,工具不是瓶颈。
  • 跟踪输入指标(字数、小时)而不是输出(发布数)。输入不是承诺。

FAQ

  • 一周两篇够吗?: 如果能撑一年,够。独立站上,稳定 2 篇/周几乎总赢过撑不住的 5 篇/周。
  • 断更一周怎么办?: 用 backlog 补。backlog 空了就第二天发一篇短的,不要跳到”下周”。
  • 要不要提前几个月批量囤稿?: 适当囤可以,但别超过 4-6 周。市场和你的兴趣会变,囤太久的稿子读起来会陈旧。
  • 发布时间点重要吗?: SEO 上不重要。社交和邮件分发上,受众时区有一点影响。不要过度优化。
  • 假期 / 出差怎么办?: 提前从 backlog 发。栈支持就排定时(publishedAt 未来 + 每日 build cron)。

相关阅读

标签: #独立开发 #内容运营 #SEO #建站策划 #工作流