本文へ移動
cccskills
無料GitHub で公開

gr-seo-patrol

每日 SEO/GEO 巡逻(2026-06-24 标准)。

覆盖:SERP 关键词排名追踪(DataForSEO / volume 300-1000 / KD 5-35)、 Google 索引数统计、llms.txt 可达性、GA4 tag 部署检测及 AI 来源 channel 配置、 PH canonical 合并修复、社媒关键词雪崩救援(title 含 best/free/top/guide+年份、内链注入 ≤2-3/段、 主动 cite 竞品外链)。

当用户说"跑 SEO 日报"、"检查排名"、"某关键词掉了"、"修 canonical"、"加内链"时调用。

インストール方法を見る

含まれるファイル(18)

  • SKILL.md12.0 KB
  • gr-seo-patrol/scripts/canonical-fix.py2.5 KB
  • gr-seo-patrol/scripts/check-page.py28.8 KB
  • gr-seo-patrol/scripts/check-schema.py14.2 KB
  • gr-seo-patrol/scripts/check-site.py13.1 KB
  • gr-seo-patrol/scripts/check-social.py13.8 KB
  • gr-seo-patrol/scripts/daily-report.py4.0 KB
  • gr-seo-patrol/scripts/README.md1.2 KB
  • gr-seo-patrol/scripts/rescue-post.py4.0 KB
  • gr-seo-patrol/SKILL.md12.0 KB
  • scripts/canonical-fix.py2.5 KB
  • scripts/check-page.py28.8 KB
  • scripts/check-schema.py14.2 KB
  • scripts/check-site.py13.1 KB
  • scripts/check-social.py13.8 KB
  • scripts/daily-report.py4.0 KB
  • scripts/README.md1.2 KB
  • scripts/rescue-post.py4.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

gr-seo-patrol — SEO/GEO 日常巡逻

什么时候用

场景动作
"跑今日 SEO 日报"执行完整巡逻(scripts/daily-report.py)
"某关键词排名掉了"单词诊断(Claude 直接执行下方诊断流程)
"修 canonical"批量合并(scripts/canonical-fix.py)
"救一下这篇文章"社媒救援(scripts/rescue-post.py)—— title 前置 + 3 个高权重内链
"检查 GA4 部署"扫 HTML 里的 G-XXXXX tag
"查 llms.txt"HTTP 200 + 字节数

核心流程

1. 日报模式

输入:无(全自动) 或 指定关键词清单 输出:

  • 关键词排名 diff 表(今日 vs 昨日基线)
  • Google 索引数
  • llms.txt 状态
  • GA4 覆盖状态
  • 🚨 异常提示(跌出 top 100、整体刷新)

2. 单词诊断

输入:1 个关键词 过程:

  1. 跑 4-5 个 long-tail 变体 SERP
  2. 检查目标 URL 是否 HTTP 200
  3. 用 site: 查询确认是否索引
  4. 对比 3 天前的数据(如果有历史)
  5. 2026-06-24 新增检查:
    • 确认关键词在 volume 300–1,000 / KD 5–35 区间(若不在,标注为低优先级)
    • 检查该页面 title 是否含 best/free/top/guide+年份(CTR 公式)
    • 检查该页面内链密度是否超 2-3/段
    • 确认页面有 BreadcrumbList schema
    • 确认 last-updated 日期已展示(freshness 信号) 输出:雪崩 / 个别 / SERP 刷新 / 死链 四选一,附 2026 合规评分

3. Canonical 批量修复

输入:同主题的 N 篇文章 + 1 个 master URL 过程:替换每篇 frontmatter 里的 canonical_url: → master,GitHub API PUT 安全护栏:

  • 只改 _posts/ 下的 .md
  • 每篇 commit 独立(方便回滚)
  • 跳过 ja/ko(hreflang 替代,保持 self-canonical)

4. 社媒救援

输入:1 个雪崩 URL 动作:

  • a. 重写 title:主关键词前置,长度 ≤ 60 字,必须含 best/free/top/guide+年份(2026-06-24 CTR 公式)
  • b. 重写 meta description:关键词 rephrase(如 "figma alternative" → "the alternative to Figma")
  • c. 从 top-3 高权重文章注入内链(带 anchor text = 目标关键词),每段 ≤ 2-3 个内链上限
  • d. 主动添加 1-2 个竞品 blog 外链(提信用分 → 提 ranking)
  • e. 检查并添加/更新【最后更新日期】(freshness 信号)
  • f. 确认 BreadcrumbList schema 已配置
  • g. 记录修改前后到日志

API 依赖

ServiceEnv var用途
DataForSEODATAFORSEO_B64SERP 查询
GitHub PATGITHUB_TOKEN读写 _posts/

完整 key 模板见 docs/api-keys-template.md。


SERP 查询模板

import urllib.request, json
def serp(kw, loc=2840, lang="en", depth=100):
    key = os.environ["DATAFORSEO_B64"]
    payload = json.dumps([{"keyword": kw, "location_code": loc,
                           "language_code": lang, "device": "desktop",
                           "depth": depth}]).encode()
    req = urllib.request.Request(
        "https://api.dataforseo.com/v3/serp/google/organic/live/advanced",
        data=payload,
        headers={"Authorization": f"Basic {key}",
                 "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=40) as r:
        return json.loads(r.read())

常用 location_code:

  • 2840 US / 2826 UK / 2392 JP / 2410 KR / 2156 CN(无效,中国不返回)

执行脚本

实际可执行的脚本在 scripts/ 下:

  • daily-report.py — 完整日报
  • canonical-fix.py — canonical 批量合并
  • rescue-post.py — 社媒文章救援
  • diag-keyword.py — 单关键词诊断(roadmap,暂用下方「单词诊断」流程替代)

每个脚本独立可跑。调用时优先用 Bash 工具,不要重写脚本。


输出规范

  1. 先给表格,再给结论
  2. 差异用箭头:#6 ↑ / #19 ↓↓
  3. 超过 3 项异常 → 单独开"🚨 异常"一节
  4. 所有排名必须带 location_code,不要假设

级联推荐

  • 发现 cannibalization(同一关键词多篇排名接近) → gr-blog-post 做 canonical 整合
  • 发现 N 个关键词同日跌出 top 100 → 先等 24h,不要硬改内容
  • 发现新关键词机会(长尾 top 30) → gr-blog-post 扩写

反模式

  • ❌ 不要用 grep / find 扫 _posts/,改用 GitHub Contents API
  • ❌ 不要在生产环境直接 git push —— 用 Contents API 的 PUT
  • ❌ 不要一次 serp 50 个关键词 —— 批量过大易触发 rate limit,按 6-10 个一批
  • ❌ canonical 改到 master 后不要立刻 force Google 重新索引 —— 等 3-7 天自然爬取

Monthly Full-Site Audit Workflow

Validated 2026-05-07 on 58 pages: caught 43 SERP-truncating titles + 36 schema warns + 27 stop-word slugs in a single 30-min pass. Single layout-level fix (commit 24a0410e) resolved 20 of 43 title issues.

Run once per month before phase2-monthly-checkpoint. Output: HTML report + machine-readable findings.json archived to ~/Downloads/seo-audit/audit-{YYYY-MM-DD}.json.

Stage 1 — Discovery (5 min)

import urllib.request, re
sm = urllib.request.urlopen("https://gingiris.tools/sitemap.xml").read().decode()
urls = [u for u in re.findall(r"<loc>([^<]+)</loc>", sm) if "/blog/" in u]
# typically 50-70 URLs

Stage 2 — Parallel Audit (20 min for 60 pages, 4 threads)

Use the adopted seo-audit-skill scripts in scripts/:

# For each URL — run 2 scripts in parallel
python3 scripts/check-page.py URL --timeout 20    # title, H1, meta, canonical, slug, alt, keyword placement
python3 scripts/check-schema.py URL --timeout 20  # JSON-LD validation

Or batch with Python's concurrent.futures.ThreadPoolExecutor(max_workers=4). Don't go higher than 4 — GitHub Pages CDN throttles aggressive parallel hits.

Each script outputs structured JSON envelope:

{"field": {"status": "pass|warn|fail|info", "detail": "...", "llm_review_required": false}}

Stage 3 — Aggregate Findings

Bucket by category:

  • Title length > 70 chars (SERP truncation risk)
  • H1 length > 70 chars (mobile readability)
  • Meta description < 80 or > 170 chars
  • Schema warns by @type (BlogPosting, Article, Organization)
  • Canonical issues (mismatch with final URL)
  • Slug issues (stop words, uppercase, missing keyword)
  • Image alt text missing on content images

Save aggregated counts + per-issue URL lists to findings.json.

Stage 4 — Layered Fix Strategy (HIGH ROI ORDER)

1️⃣ Layout-level fixes first (1 commit, fixes 20+ pages):

  • Schema bugs in _layouts/default.html
  • Site-name suffix in <title> tag
  • Missing dateModified from last_modified_at frontmatter
  • Organization / Publisher / contactPoint completeness

2️⃣ Config-level fixes (1 commit, fixes site-wide):

  • _config.yml — logo URL (must be absolute), twitter, social, author structure

3️⃣ Per-article batch fixes (1 commit per file, parallelizable):

  • Trim long titles while preserving keyword (target ≤ 70 chars, ideal 50-60)
  • Trim long H1s (target ≤ 70 chars)
  • Expand short meta descriptions (target 120-160 chars)
  • Add missing Citable Statistics blocks for top GSC-impression pages

4️⃣ Skip these (low ROI):

  • Slug stop words (changing breaks 301)
  • Old articles with <50 imp/month (low traffic = low fix priority)

Stage 5 — Verify (after Jekyll rebuild ~60-90s)

Re-run check-schema.py on a sample page. Confirm status: pass for at least: Article · BlogPosting · Organization · FAQPage

Stage 6 — Archive

Commit findings.json to ~/Downloads/seo-audit/audit-{YYYY-MM-DD}.json for trend tracking. Add 2-5 atoms documenting any new lessons learned.


HARD RULE (anti-hallucination guardrail)

Adopted from JeffLi1993/seo-audit-skill — strict whitelist pattern.

⛔ Output ONLY the checks defined in the audit script's JSON envelope.

  • Do NOT add "bonus" checks not in the script output
  • Do NOT contradict the script's status field unless you have additional observable evidence
  • Do NOT invent metrics like "EEAT score 89" — third-party scoring tools are unofficial (per Google's 2026 guidance)
  • Do NOT include checks marked llm_review_required: false in your judgment commentary — the script's status is final
  • If llm_review_required: true, make explicit judgment, document reasoning, then update status

The script envelope is the single source of truth. Treat it as a strict whitelist.


Companion skill

For single-page audits (not full-site), the same scripts power JeffLi1993/seo-audit-skill which produces a polished HTML audit report. Install as a complementary skill if you want client-presentable per-page audits.


Platform Description

EN: Daily SEO/GEO patrol skill (2026-06-24 standards). Tracks SERP keyword rankings (DataForSEO, filters volume 300–1,000 / KD 5–35), checks Google index count, llms.txt accessibility, GA4 tag deployment + AI traffic channel grouping. Rescues underperforming posts by applying title formula (best/free/top/guide+year), keyword rephrase in meta description, internal link density enforcement (≤2–3 per paragraph), competitor blog external link injection, BreadcrumbList schema check, and freshness date update. Fixes canonical issues.

ZH: 每日 SEO/GEO 巡逻 skill(2026-06-24 标准)。追踪 SERP 排名(DataForSEO,volume 300–1,000 / KD 5–35 筛选),检查 Google 索引数、llms.txt 可达性、GA4 部署 + AI 流量频道分组。救援雪崩文章:title 含 best/free/top/guide+年份、meta description 关键词 rephrase、内链密度 ≤2–3/段、主动 cite 竞品外链、BreadcrumbList schema、freshness 日期更新、canonical 修复。

JA: デイリーSEO/GEOパトロールskill(2026-06-24基準)。SERPランキング追跡(DataForSEO、volume 300–1,000/KD 5–35フィルター)、Googleインデックス数、llms.txt確認、GA4タグ+AIトラフィックチャンネル設定。スノーアバランシュ記事の救援:タイトルにbest/free/top/guide+年、meta descriptionキーワードrephrase、内部リンク密度≤2–3/段落、競合ブログ外部リンク挿入、BreadcrumbListスキーマ、freshness日付更新、canonical修正。

KO: 일일 SEO/GEO 순찰 skill(2026-06-24 기준). SERP 순위 추적(DataForSEO, volume 300–1,000/KD 5–35 필터), Google 인덱스 수, llms.txt 접근성, GA4 태그 + AI 트래픽 채널 그룹 확인. 부진 게시물 복구: 제목 best/free/top/guide+연도 적용, meta description 키워드 rephrase, 내부 링크 밀도 ≤2–3/단락, 경쟁사 블로그 외부링크 삽입, BreadcrumbList 스키마, freshness 날짜 업데이트, canonical 수정.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

AI Agent Workflow & Skill Architecture Guide — turn expert work into measurable, reusable agent systems. Covers workflow discovery, skill decomposition, harness design, evaluation, human escalation, observability, cost control, and multi-agent orchestration. Includes a measured marketing-delivery case: 15 people × 3–4 weeks reduced to one strategist + AI in 5 days. By Gingiris.

日本語の概要は準備中です。原文の説明を表示しています。

Gingiris-1031/gingiris-skills842026年10月8日 更新

Launch your AI product to global attention — the playbook behind Manus, Devin, and AFFiNE's breakout launches. Covers AI-specific GTM strategy, hype cycle management, waitlist tactics, and multi-market rollout for maximum day-one impact.

日本語の概要は準備中です。原文の説明を表示しています。

Gingiris-1031/gingiris-skills842026年10月8日 更新

First AI Product Launch — Zero to Live in 30 Days. Step-by-step guide for shipping your first AI product from idea validation to paying customers. Includes day-by-day timeline and real examples. By @WeiYipei.

日本語の概要は準備中です。原文の説明を表示しています。

Gingiris-1031/gingiris-skills842026年10月8日 更新

Beginner-friendly App Store Optimization guide covering keyword research, screenshot design, rating management, and A/B testing for iOS and Android. By @WeiYipei — practical ASO for indie developers and small teams.

日本語の概要は準備中です。原文の説明を表示しています。

Gingiris-1031/gingiris-skills842026年10月8日 更新

Complete B2B marketing pipeline combining LinkedIn content, cold email sequences, and webinar funnels. Designed for SaaS founders doing $0–$1M ARR who need predictable lead generation. By @WeiYipei.

日本語の概要は準備中です。原文の説明を表示しています。

Gingiris-1031/gingiris-skills842026年10月8日 更新

community-ambassador-playbook

無料日本語概要

You launched an ambassador program. 3 applications. One ghosted after week 2. Should you lower the bar? Offer more perks? Spam influencers? This gives you the community & ambassador operations SOP with volunteer, paid tutorial creator and code-contributor tracks — from pre-launch checklist to recruitment to tiered management to retention to governance. Built from Notion (20M users, real ambassador interviews), AFFiNE (60K stars), Asana, and ClickUp programs. By @WeiYipei. 🇨🇳 你搞了个大使计划。来了3个申请。一个第二周就消失了。该降门槛?加福利?群发KOL?这份SOP给你从启动前置条件到招募到留存到治理的完整社区/大使运营方法论。基于 Notion(2000万用户,大使真实访谈)、AFFiNE(60K stars)、Asana、ClickUp 实战案例。 🇯🇵 アンバサダープログラムを立ち上げた。応募3件。1人は2週間で消えた。基準を下げる?特典を増やす?このSOPは、事前チェックリストから採用、段階管理、リテンション、ガバナンスまでの完全なコミュニティ&アンバサダー運営フレームワークを提供します。Notion(2000万ユーザー)、AFFiNE(60K stars)の実例から構築。 🇰🇷 앰배서더 프로그램을 시작했습니다. 지원 3건. 하나는 2주 만에 사라졌습니다. 기준을 낮출까요? 이 SOP는 사전 체크리스트부터 모집, 단계별 관리, 리텐션, 거버넌스까지 완전한 커뮤니티 & 앰배서더 운영 프레임워크를 제공합니다. Notion(2000만 사용자), AFFiNE(60K stars) 실전 사례에서 구축. Triggers: "ambassador program" | "community building" | "community management" | "DevRel" | "developer relations" | "community growth" | "大使计划" | "社区运营" | "社区搭建" | "コミュニティ運営" | "アンバサダー" | "커뮤니티 운영" | "앰배서더" | "open source community" | "user retention"

Gingiris-1031/gingiris-skills842026年10月8日 更新

Gingiris-1031 のスキルをすべて見る

このスキルの問題を報告する