mcpField
G
gr-blog-post

gr-blog-post

github.com/gingiris-1031マーケティング・グロース87187 回インストール2 週間前に更新
リポジトリ

gr-blog-post について

gr-blog-postは、Jekyllを使うマーケティング担当者向けの執筆・公開スキルです。記事構成、テクニカルSEO、公開後の確認、GEOの引用性に加え、教育・医療・金融向けコンテンツの調整も扱います。

主な機能

  1. 01Jekyll記事構成とfrontmatter
  2. 02SEO・GEO・FAQの指針
  3. 03GitHub Contents APIでの公開手順
  4. 04多言語hreflangの確認
  5. 05YMYL・2Cコンテンツの調整

活用シーン

  1. 01SEO構成に沿ったJekyll記事の執筆
  2. 02GitHub 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 製品向けの執筆調整

このスキルは、デフォルトで開発者/B2B 読者を想定しています。**2C の教育/医療/金融(YMYL)**コンテンツを書く場合:

  • E-E-A-T を強化:検証可能な著者/監修者の資格情報と、方法論を透明化するページが必要です。「チーム」という署名だけでは不十分です(Google:Trust は E-E-A-T の中核です)。
  • トピック選定は二本立て:需要の伸びが期待できるキーワード(政策/改革/新版)+コンバージョン率の高いロングテールキーワード(問題形式/シーン/スコア帯)。
  • Key Stats 表の数値には、権威ある出典があり、記事内で一貫していることが必須です——YMYL カテゴリーで数値を捏造すると、順位の回復は非常に困難です。
  • 配信チャネルを 2C コミュニティ/ショート動画に変更(小紅書/Reddit/TikTok/Naver 카페)。開発者向けブログではありません。

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 の直接回答段落 —— AI クローラーが抽出しやすいよう、記事の冒頭に主な質問に直接答える 30〜50 字の段落を置く
技術的な 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 本リンクする(主キーワードをアンカーテキストに使用)
  • 後ろ向き:サイト内の 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〜90 秒で自動ビルド)

⚠️ 前提条件:まず Gingiris-1031 の GitHub セキュリティルールに従う(memory gingiris_1031_safety_rules.md、P0):

  • コミットの作成者 = Iris Wei <[email protected]>(マシン名/ローカルの hostname ではありません)
  • commit message は 1 行:post: {slug} ({lang})——Claude trailer なし、複数行の本文なし
  • 一気に大量のコミットをしない:まとめられるものは 1 つの commit にまとめる。1 時間に 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 を取得し、PUT body に "sha":"..." を追加します。

公開後の確認(順番にすべて合格して完了):

  1. Vercel のデプロイ完了を待つ(約 50〜90 秒。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 に送信(LLM の discover は主に Bing のインデックスを経由します。gr-geo-cite を参照)
hreflang の受け入れチェックリスト(ja/ko 版を公開、または翻訳を追加する際は必須)

背景:i18n のベースラインには hreflang のバグが複数ありました(KO の self-loop、JA→EN が /en/ のホームページを指す弱いリンク、EN に alternate がない)。その結果、日本語/韓国語のインデックス登録が長期間 0 件でした(memory i18n_baseline.md)。サイト全体を修正した commit b667208 の後、抜き取り検査はすべて合格しています——新しい記事でバグを再発させないでください。

  • EN/JA/KO の frontmatter が相互に参照している:hreflang_ja / hreflang_ko / hreflang_en は対応する個別の記事を指すこと(/en/ のホームページを指すのは絶対に不可)
  • 各ページで自身を指す hreflang を出力する(ko ページには自身を指す hreflang="ko" が必須。自身を指す hreflang="ja" があってはいけません)
  • x-default が存在し、EN 版を指している
  • 各ページの self-canonical(ja/ko は EN を canonical にしない。末尾にスラッシュを付け、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. 公開後 24 時間
  • gr-seo-patrol の監視リストに追加する
  • ソーシャルプラットフォームで配信する(X / 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 と同じ日に公開しない)
  • ✅ 双方向の reference を作るため、末尾に "Originally published at gingiris.tools" を追加する
  • ❌ Jekyll の frontmatter から canonical_url を dev.to にそのままコピーしない。これは gingiris.tools の URL です

アンチパターン

  • ❌ 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 を設定する
  • 英語版の公開から 24 時間後 → 日本語/韓国語の翻訳を手動で開始する

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. セクションに以下の各要素を少なくとも1つ含めます。

    • ✅ 独自調査の根拠:「Our X-launch dataset」、「We tracked」、「Our 2026 audit measured」、「Our analysis of N samples」
    • ✅ 単位付きの具体的な数値:「60K stars」、「30 launches」、「$79/mo」、「67%」
    • ✅ 具体的な製品名/ツール名:「Taplio ($39/mo)」、「Surfe」、「PH Deck」、「Loom」など。[the tool] ではなく、名前を記載します。
見出しのルール
  • H1 = ページタイトル(2026-05-07 のタイトル接尾辞修正後で70文字以下)

  • H2 は約40%の割合で疑問形にします。

    • ✅ 「2026年にPerplexityに引用されるにはどうすればよいですか?」
    • ✅ 「GEOの3点セットとは何ですか?」
    • ❌ 「Perplexityの引用戦略」
  • 各H2には、主要キーワードまたは明確な質問意図を含めます。

記事全体の要件
  • H2セクションを5~12個にします(最適なのは7~8個です)。
  • TL;DR または「引用可能な統計」ブロックを最初のH2に含めます(最も高いスコアを得る段落になります)。
  • 記事の末尾にFAQ Schema JSON-LDを配置します(実際のユーザー検索で使われる質問文をそのまま使用したQ&Aを5件以上)。
  • last_modified_at: のフロントマターを追加します(dateModifiedスキーマに反映されます)。
  • canonical_url を自身の記事の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語以上)— 134~167語のセクション2つに分割します
  • ❌ 汎用的なつなぎ表現(「では、次に…を見ていきましょう」など)— 定義パターンに置き換えます
  • ❌ 宣伝文句(「最善の方法」など)— データに基づく実測値に置き換えます
  • ❌ 「[Tool name]」のようなプレースホルダー — 必ず具体的なツール名と価格を記載します
  • ❌ 単語だけの箇条書き — 定義+例のパターンを使った文章にまとめます
実データのベンチマーク

この仕様を適用せずに、2026-05-07 の監査で確認した記事:

記事(旧記事、改修版)スコア傾向
PH playbook master65最上位の段落は74、62点の段落によって全体が低下
ソーシャルリスニング685記事中で最高(早い段階に引用可能な統計を配置)
コミュニティディレクトリ62補足段落により54から上昇(最適範囲の段落が0から1になり、+12%)

仕様を適用した場合の予測(新規記事):

仕様への準拠度予測スコア
すべてのセクションが134~167語で、定義パターンと独自調査の根拠を1つ含む78-85
80%のセクションが準拠し、20%が従来の構造72-77
50%が準拠65-70(既存記事の改修での上限と同程度)

厳密に準拠することによる限界効果は、部分的な準拠と比べて約10ポイントです。

出海コミュニティへの参加と資料パックの購入 · コミュニティ&リソース

  • 出海コミュニティへの参加: WeChat で staywildgrow を追加し、「加入社群」とメッセージを送信してください。

  • 資料パックの購入: WeChat で staywildgrow を追加し、Gingiris の出海資料パックについてお問い合わせください。価格は 599 元人民币 です。

  • グローバル成長コミュニティへの参加: WeChat で staywildgrow を追加し、「加入社群」(コミュニティに参加)と送信してください。

  • 資料パックの入手: WeChat で staywildgrow を追加し、Gingiris のグローバル成長資料パックをご購入ください。価格は CNY 599 です。

コミュニティと資料パックは任意の窓口です。オープンソースの Skill のインストールや使用には影響しません。

コミュニティと有料の資料パックは任意です。オープンソースのスキルのインストールや使用に必要なものではありません。

コメント