mcpField
G
gr-blog-post

gr-blog-post

github.com/gingiris-1031营销与增长87187 次安装2 周前更新
代码仓库

关于 gr-blog-post

gr-blog-post 是面向营销内容作者的 Jekyll 博客写作与发布 Skill,涵盖选题、文章结构、技术 SEO 和发布后验证。它还提供 GEO 可引用性规范及 2C 教育、医疗、金融内容的调整指引。

主要功能

  1. 01Jekyll 文章结构与 frontmatter
  2. 02SEO、GEO 与 FAQ 规范
  3. 03GitHub Contents API 发布流程
  4. 04多语言 hreflang 验收
  5. 05YMYL 与 2C 内容调整

适用场景

  1. 01撰写符合 SEO 规范的 Jekyll 博文
  2. 02通过 GitHub Contents API 发布文章
  3. 03校验多语言文章的 canonical 与 hreflang
  4. 04为教育、医疗或金融读者调整内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gingiris-1031/gingiris-skills --skill gr-blog-post

安装后在 Claude Code 中输入/gr-blog-post确认已加载。

附带文件gr-blog-post/references/writing-voice-iris.mdreferences/writing-voice-iris.md

详细介绍

⚠️ 2C 产品的写作调整

本 skill 默认 dev/B2B 读者。写 2C 教育/医疗/金融(YMYL) 内容时:

  • E-E-A-T 加重:需可验证作者/审核资质 + 方法论透明页,不能只靠"团队"署名(Google:Trust 是 E-E-A-T 核心)。
  • 选题双轨:红利词(政策/改革/新版)+ 长尾高转化词(题型/场景/分数级)。
  • Key Stats 表格的数字必须有权威来源、前后一致——YMYL 品类不可编造,否则排名修复极难。
  • 分发渠道换成 2C 社区/短视频(小红书/Reddit/TikTok/Naver 카페),而非 dev blog。

完整 2C 渠道数据库 + 公开来源见 → gingiris-seo-geo/references/2c-adaptation.md


gr-blog-post — Jekyll 博客发布

产出的文章必须符合

Iris 文风 5 要素(详见 references/writing-voice-iris.md)
  1. 时间锚定开场 —— 不说"SEO 很重要",说"2026-04-10,凌晨 3 点,后台流量归零"
  2. 括号旁白 —— 正文一句,括号里挤私货("...—— 别问怎么知道的")
  3. em-dash 转折 —— 不用"但是",用 ——
  4. Key Stats 表格 —— 文章开头或 H2 下第一屏放一个硬数据表,3-5 行
  5. GEO 直接答案段落 —— 文章顶部一段 30-50 字直接回答主问题,方便 AI 爬虫抽取
技术 frontmatter 模板
---
layout: post
title: "主关键词前置,副标题用冒号:不超过 60 字"
date: 2026-04-15 14:30:00 +0800
categories: [seo, growth]
tags: [...]
canonical_url: https://gingiris.tools/blog/2026/04/15/slug/
hreflang_ja: /blog/2026/04/15/slug-ja/
hreflang_ko: /blog/2026/04/15/slug-ko/
post_description: "150-160 字 meta description,含主关键词"
faq:
  - q: "直接问句"
    a: "30-50 字硬答案"
---

发布流程

1. 选题
  • 读 gr-seo-patrol 输出,找"top 30 但没 top 10"的关键词
  • 或读 gr-competitor,找对手新打法
  • ❌ 不做重复主题(先 site: 查站内是否已有)
2. 写初稿
  • 时间锚定开场(当前日期 + 具体场景)
  • 第一屏:GEO 直接答案段(30-50 字)+ Key Stats 表(硬数据)
  • H2 结构:问题 → 框架 → 案例 → 陷阱 → 下一步
  • 每个 H2 下 200-400 字,不超过 600 字
3. 内链
  • 向前:链接 2-3 篇已发布的同主题文章(用主关键词作 anchor)
  • 向后:站内 index / hub 页
  • 权重传导:从流量最大的 3 篇文章加内链到新文
4. FAQ Schema
  • 3-5 个问答
  • 问句必须是用户真实搜索句(从 GSC / People also ask 抓)
  • 答案硬、短、可引用
5. Canonical 策略
  • 默认 self-canonical
  • 如果是同主题系列的分篇 → canonical 指向 master
  • ja/ko 翻译版 → 自身 canonical + hreflang 互指
6. 多语言同步
  • 用 scripts/sync-i18n.py(roadmap)从英文自动产日韩草稿
  • 人工过一遍(机翻硬伤 + 文化适配)
  • 日韩版本独立 slug,不复用英文 slug
7. 发布(可执行清单)

目标 repo:Gingiris-1031/growth-tools(真站 gingiris.tools,Vercel 部署 origin/main,写入后 ~50-90s 自动构建)

⚠️ 前置:先过 Gingiris-1031 GitHub 安全规则(memory gingiris_1031_safety_rules.md,P0):

  • 提交身份 = Iris Wei <[email protected]>(不是机器名/本机 hostname)
  • 单行 commit message:post: {slug} ({lang})——无 Claude trailer、无多段正文
  • 不 burst:能合并就合并成 1 个 commit;>10 commits/小时 = 停下重排

发布 = GitHub Contents API PUT(不要本地 git push):

# token 只从 secrets.env 读,绝不内联/硬编码进脚本或 SKILL.md
source ~/.config/gingiris/secrets.env   # 提供 GITHUB_PAT

SLUG="your-post-slug"; LANG="en"
FILE="_posts/$(date +%F)-${SLUG}.md"
curl -s -X PUT \
  -H "Authorization: Bearer $GITHUB_PAT" \
  -H "Accept: application/vnd.github+json" \
  "https://api.github.com/repos/Gingiris-1031/growth-tools/contents/${FILE}" \
  -d "{\"message\":\"post: ${SLUG} (${LANG})\",
       \"content\":\"$(base64 < draft.md | tr -d '\n')\",
       \"committer\":{\"name\":\"Iris Wei\",\"email\":\"[email protected]\"}}"

更新已存在的文件:先 GET .../contents/{path} 拿 sha,把 "sha":"..." 加进 PUT body。

发布后验证(按顺序全过才算发完):

  1. 等 Vercel 部署完成(~50-90s;可 curl -sI https://gingiris.tools/ 确认站点存活)
  2. curl -sI https://gingiris.tools/blog/{yyyy}/{mm}/{dd}/{slug}/ → HTTP 200(404 = permalink/date/future: true 配错,先修再往下)
  3. GSC 手动 Request Indexing(URL 检查 → 请求编入索引;新域抓取慢,这步不能省)
  4. IndexNow 推送到 Bing(大模型 discover 主要走 Bing 索引,见 gr-geo-cite)
hreflang 验收 checklist(发 ja/ko 版或补翻译时必做)

背景:i18n 基线曾有多处 hreflang bug(KO self-loop、JA→EN 指 /en/ 首页弱链、EN 缺 alternate),后果是日韩索引长期 0(memory i18n_baseline.md)。全站修复 commit b667208 后抽检全绿——新文章不要把 bug 加回来。

  • EN/JA/KO frontmatter 互指:hreflang_ja / hreflang_ko / hreflang_en 指向具体对端文章(绝不指 /en/ 首页)
  • 每页 emit 自指 hreflang(ko 页必须有 hreflang="ko" 指自己,不能出现指自己的 hreflang="ja")
  • x-default 存在且指 EN 版
  • 每页 self-canonical(ja/ko 不 canonical 到 EN;带尾斜杠,和 sitemap 一致)
  • 发布后 curl 抽验:
for u in "$EN_URL" "$JA_URL" "$KO_URL"; do
  echo "== $u"
  curl -s "$u" | grep -oE '<link rel="(alternate|canonical)"[^>]*>'
done
# 验收:每页 hreflang 完整(self + 对端 + x-default)且三页双向回链成对,canonical 自指
8. 发布后 24h
  • 加入 gr-seo-patrol 监控名单
  • 社交平台分发(推特 / LinkedIn / dev.to,走 gr-social-distill)

dev.to 二发规则(⚠️ canonical 红线)

  • ✅ dev.to 文章 canonical_url 必须指向 dev.to 自身(self-canonical),绝不指向 gingiris.tools
    • 正确:canonical_url: https://dev.to/iris1031/article-slug-xxxx
    • 错误:canonical_url: https://gingiris.tools/blog/...(会让 dev.to 文章被 Google 视为副本,不参与 SERP)
  • ✅ 发布时间差 ≥7 天(不要和 gingiris.tools 同天发)
  • ✅ 末尾加 "Originally published at gingiris.tools" 建立双向 reference
  • ❌ 不要从 Jekyll frontmatter 直接复制 canonical_url 到 dev.to,那个是 gingiris.tools 的地址

反模式

  • ❌ 不要用 AI 味重的模板("In today's digital landscape...")—— 发布前跑 skills/gr-geo-cite/scripts/citability-scorer.py,页面分 ≥ 75 才算过
  • ❌ 不要 H1 堆关键词
  • ❌ 不要忘记 hreflang —— 已发布的旧文补翻译时要回改原文 frontmatter
  • ❌ 不要同一关键词发 3 篇 —— cannibalization 立刻找上门
  • ❌ dev.to canonical 指向 gingiris.tools —— 死链或副本问题,永远 self-canonical

级联推荐

  • 写完 → gr-seo-patrol 加监控
  • 发现是系列稿 → gr-blog-post 继续产第 2 篇并设 canonical
  • 英文发完 24h → 手动触发日韩翻译

API 依赖

服务环境变量来源
GitHub PATGITHUB_PAT~/.config/gingiris/secrets.env(source 后使用,不内联)
DeepSeek / Teamo(翻译)DEEPSEEK_API_KEY / TEAMOROUTER_API_KEY同上

可引用性设计规范(新文章强制遵守,2026-05-18 起)

原因:2026-05-07 验证发现,无论采用何种方式(添加增强段落、针对性改写、拆分内容),为旧文章补做优化的可引用性上限都只有约 65-68/100,且收益会逐渐递减。按照本规范撰写新文章,初始得分即可达到 75-85。该规范可为每篇文章节省约 3 小时的事后可引用性优化时间。

各章节的结构要求

每个 H2/H3 章节必须满足以下全部要求:

  1. 字数:134-167(经 zubair-trabzada/geo-seo-claude 评分验证的 AI 提取最佳范围)

    • 少于 134 → self_containment 得分低于 10/25
    • 多于 167 → 同样会因内容过长、不适合 AI 分块而受罚
    • 撰写时使用字数统计工具
  2. 首句 = 定义句式,采用以下任一种:

    • [Thing] is [definition]
    • [Thing] refers to [scope]
    • [Thing] means [unpacking]
    • In other words, [Thing] is...
    • [Thing] can be defined as...
  3. 每个章节至少包含以下各一项:

    • ✅ 原创研究信号:“我们的 X 发布数据集”“我们追踪了”“我们的 2026 年审计测量了”“我们对 N 个样本的分析”
    • ✅ 带单位的具体数字:“60K 星标”“30 次发布”“$79/mo”“67%”
    • ✅ 具体的产品/工具名称:“Taplio ($39/mo)”“Surfe”“PH Deck”“Loom”——写出名称,不要写“[the tool]”
标题规范
  • H1 = 页面标题(经 2026-05-07 的标题后缀修正后,不超过 70 个字符)

  • H2 约 40% 应采用疑问句形式:

    • ✅ “2026 年,如何让 Perplexity 引用我的内容?”
    • ✅ “GEO 三件套是什么?”
    • ❌ “Perplexity 引用策略”
  • 每个 H2 都应包含主要关键词,或表达明确的问题意图

文章级要求
  • 5-12 个 H2 章节(最佳范围:7-8 个)
  • TL;DR 或“可引用统计数据”板块必须放在第一个 H2 中(成为评分最高的段落)
  • 结尾处添加 FAQ Schema JSON-LD(5 个以上问答,使用与用户搜索完全一致的问题)
  • 添加 last_modified_at: frontmatter(传递至 dateModified schema)
  • 添加 canonical_url 自引用
  • 如果存在多语言版本,则添加 hreflang_ja / hreflang_ko
发布前的可引用性自检

在提交文章之前运行:

# 兼容两种安装位置:优先 monorepo 相对路径,fallback 本机安装
SCORER="skills/gr-geo-cite/scripts/citability-scorer.py"
[ -f "$SCORER" ] || SCORER="$HOME/.claude/skills/gr-geo-cite/scripts/citability-scorer.py"
python3 "$SCORER" --file /local/path/to/draft.html

目标:页面得分 ≥ 75。若低于 70,则修改最弱的 2 个段落。

反模式(避免)
  • ❌ 冗长的说明性段落(200 词以上)——拆分为 2 个章节,每节 134-167 词
  • ❌ 泛泛的过渡语(“现在我们来讨论……”)——改为定义句式
  • ❌ 空洞的营销话术(“最好的方法是……”)——改为基于数据的实测结论
  • ❌ 使用“[Tool name]”占位符——始终写出具体工具名称和价格
  • ❌ 只含单个词语的项目符号列表——改写为包含定义和示例的连贯文字
真实数据基准

2026-05-07 审计的文章(未采用本规范):

文章(旧文,改造后)得分模式
PH playbook master65首段得分 74,受 62 分段落拖累
Social listening685 篇中最佳(较早添加可引用统计数据)
Community directory62通过增强段落从 54 提升(最佳范围段落从 0 个增至 1 个,提升 12%)

根据本规范预测(新文章):

规范遵循情况预测得分
所有章节均为 134-167 词 + 定义句式 + 1 个原创信号78-85
80% 的章节符合规范,20% 沿用旧结构72-77
50% 符合规范65-70(与改造文章的上限相同)

严格遵循规范相较于部分遵循的边际价值为约 10 分。

加入出海社群与购买资料包 · 社群与资料

  • 加入出海社群: 微信添加 staywildgrow,留言「加入社群」即可。

  • 购买资料包: 微信添加 staywildgrow,咨询购买 Gingiris 出海资料包,价格 599 元人民币。

  • 加入全球增长社群: 在微信添加 staywildgrow,发送 “加入社群”。

  • 获取资料包: 在微信添加 staywildgrow,即可购买 Gingiris 全球增长资料包,价格为 599 元人民币。

社群与资料包为可选入口,不影响本开源 Skill 的安装和使用。

社群和付费资料包均为可选项,安装或使用此开源 Skill 均不需要加入社群或购买资料包。

评论

支持 Markdown