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

blog-google

Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.4 KB

SKILL.md(原文)

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

Blog Google: Google API Data for Blog Performance

Direct access to Google's SEO APIs for blog performance analysis. Provides real Chrome user metrics, indexation status, search performance, entity analysis, YouTube video discovery, keyword volumes, and PDF/HTML performance reports.

All APIs are free at normal usage levels. Setup requires a Google Cloud project with an API key and/or service account.

Prerequisites

Always check credentials before running any command:

python3 skills/blog-google/scripts/run.py google_auth --check --json

Config file: ~/.config/claude-seo/google-api.json (shared with claude-seo)

{
  "api_key": "AIzaSy...",
  "oauth_client_path": "/path/to/client_secret.json",
  "default_property": "sc-domain:example.com",
  "ga4_property_id": "properties/123456789",
  "ads_developer_token": "...",
  "ads_customer_id": "123-456-7890",
  "ads_login_customer_id": "123-456-7890"
}

If missing, read references/auth-setup.md and walk the user through setup.

Credential Tiers

TierDetectionAvailable Commands
0 (API Key)api_key presentpagespeed, crux, crux-history, youtube, nlp
1 (OAuth/SA)+ OAuth token or service accountTier 0 + gsc, inspect, index
2 (Full)+ ga4_property_id configuredTier 1 + ga4
3 (Ads)+ ads_developer_token + ads_customer_idTier 2 + keywords

Always communicate the detected tier before running commands.

Quick Reference

CommandWhat it doesTier
/blog google setupCheck/configure API credentials:
/blog google pagespeed <url>PSI Lighthouse + CrUX field data0
/blog google crux <url>CrUX field data only (p75 metrics)0
/blog google crux-history <url>25-week CWV trend analysis0
/blog google youtube <query>YouTube video search (views, likes, duration)0
/blog google nlp <url-or-text>NLP entity extraction + sentiment0
/blog google gsc <property>Search Console: clicks, impressions, CTR, position1
/blog google inspect <url>URL Inspection: index status, canonical1
/blog google index <url>Submit URL to Indexing API1
/blog google ga4 [property-id]GA4 organic traffic report2
/blog google keywords <seed>Keyword ideas from Google Ads Keyword Planner3
/blog google report <type>PDF/HTML performance report:
/blog google quotasShow rate limits for all APIs:

PageSpeed + CrUX

/blog google pagespeed <url>

Combined Lighthouse lab data + CrUX field data for a published blog post.

Script: python3 skills/blog-google/scripts/run.py pagespeed_check <url> --json Reference: references/api-reference.md

Output merges lab scores (point-in-time Lighthouse) with field data (28-day Chrome user metrics). CrUX tries URL-level first, falls back to origin-level.

/blog google crux <url>

CrUX field data only (no Lighthouse run). Faster.

Script: python3 skills/blog-google/scripts/run.py pagespeed_check <url> --crux-only --json

/blog google crux-history <url>

25-week CrUX History trends. Shows whether CWV metrics are improving, stable, or degrading.

Script: python3 skills/blog-google/scripts/run.py crux_history <url> --json


Search Console

/blog google gsc <property>

Search Analytics: clicks, impressions, CTR, position for last 28 days.

Script: python3 skills/blog-google/scripts/run.py gsc_query --property <property> --json Default: 28 days, dimensions=query,page, type=web, limit=1000.

Includes quick-win detection: queries at position 4-10 with high impressions.

/blog google inspect <url>

URL Inspection: real indexation status from Google.

Script: python3 skills/blog-google/scripts/run.py gsc_inspect <url> --json

Returns: verdict (PASS/FAIL), coverage state, robots.txt status, indexing state, page fetch state, canonical selection, mobile usability, rich results.

For batch inspection: python3 skills/blog-google/scripts/run.py gsc_inspect --batch <file> --json


Indexing API

/blog google index <url>

Notify Google of a URL update. Submit new blog posts for faster indexation.

Script: python3 skills/blog-google/scripts/run.py indexing_notify <url> --json Reference: references/api-reference.md

The Indexing API is officially for JobPosting and BroadcastEvent/VideoObject pages. Always inform the user of this restriction. Daily quota: 200 publish requests.

For batch: python3 skills/blog-google/scripts/run.py indexing_notify --batch <file> --json


GA4 Traffic

/blog google ga4 [property-id]

Organic traffic report: daily sessions, users, pageviews, bounce rate, engagement.

Script: python3 skills/blog-google/scripts/run.py ga4_report --property <id> --json Default: 28 days, filtered to Organic Search channel group.

For top landing pages: python3 skills/blog-google/scripts/run.py ga4_report --property <id> --report top-pages --json


YouTube (Video Discovery)

YouTube mentions have the strongest AI visibility correlation (0.737, Ahrefs 75K brands). Free, API key only. Used by blog-write and blog-rewrite for video embedding.

/blog google youtube <query>

Search YouTube for videos relevant to a blog topic.

Script: python3 skills/blog-google/scripts/run.py youtube_search search "<query>" --json Quota: 100 units per search (10,000 units/day free).

Returns: title, channel, views, likes, duration, description, tags.

For video details + comments: python3 skills/blog-google/scripts/run.py youtube_search video <video_id> --json


NLP Content Analysis

Google's own entity/sentiment analysis. Enhances E-E-A-T scoring for blog content.

/blog google nlp <url-or-text>

Full NLP analysis: entities, sentiment, content classification.

Script: python3 skills/blog-google/scripts/run.py nlp_analyze --url <url> --json Free tier: 5,000 units/month. Requires billing enabled on GCP project.

For entity extraction only: python3 skills/blog-google/scripts/run.py nlp_analyze --url <url> --features entities --json


Keyword Research (Google Ads)

Gold-standard keyword volume data. Requires Google Ads account (Tier 3).

/blog google keywords <seed>

Generate keyword ideas from seed terms for blog topic research.

Script: python3 skills/blog-google/scripts/run.py keyword_planner ideas "<seed>" --json

For volume lookup: python3 skills/blog-google/scripts/run.py keyword_planner volume "<kw1>,<kw2>" --json


Reports

/blog google report <type>

Generate a PDF/HTML report with charts and tables.

Script: python3 skills/blog-google/scripts/run.py google_report --type <type> --data <json> --domain <domain> --format pdf

TypeInputOutput
cwv-auditPSI + CrUX + CrUX History dataCore Web Vitals audit with gauges, timelines
gsc-performanceGSC query dataSearch Console report with query tables
indexationBatch inspection dataIndexation status with coverage donut
fullAll data combinedComprehensive Google SEO report

Note: PDF generation requires system libraries: sudo apt install libpango1.0-dev libcairo2-dev. Falls back to HTML if WeasyPrint is unavailable or PDF rendering fails.


Rate Limits

APIPer-MinutePer-DayAuth
PSI v5240 QPM25,000 QPDAPI Key
CrUX + History150 QPM (shared)UnlimitedAPI Key
GSC Search Analytics1,200 QPM/site30M QPDService Account
GSC URL Inspection600 QPM2,000 QPD/siteService Account
Indexing API380 RPM200 publish/dayService Account
GA4 Data API10 concurrent (50 for 360)200K Core Tokens/day (2M for 360)Service Account
YouTube Data:10,000 units/dayAPI Key
NLP API:5,000 units/monthAPI Key (billing)

Read references/rate-limits-quotas.md for detailed quota management.

Blog Workflow Integration

This skill is both user-invocable (/blog google pagespeed) and callable internally by other blog sub-skills:

  • blog-seo-check: Runs PSI + CrUX on published post URL for live CWV data
  • blog-rewrite: NLP entity analysis to identify E-E-A-T entity gaps
  • blog-geo: GSC performance data for real search appearance insights
  • blog-audit: Batch CWV + indexation checks across all published blog URLs
  • blog-write / blog-rewrite: YouTube search for video embedding

Falls back gracefully when credentials are not configured.

Technical Notes

  • INP replaced FID on March 12, 2024. Never reference FID.
  • CLS values from CrUX are string-encoded (e.g., "0.05"). Scripts handle parsing.
  • CrUX 404 = insufficient Chrome traffic, not an auth error.
  • Search Analytics data has 2-3 day lag.
  • Indexing API is officially for JobPosting/BroadcastEvent pages only.
  • All Google APIs used are FREE at normal usage levels.

Error Handling

ScenarioAction
No credentials configuredRun /blog google setup. List Tier 0 commands (API key only).
Service account lacks GSC accessAdd client_email to GSC > Settings > Users > Add.
CrUX data unavailable (404)Insufficient Chrome traffic. Use PSI lab data as fallback.
GA4 property not foundFind property ID in GA4 Admin > Property Details.
Indexing API quota exceeded200/day limit. Prioritize most important URLs.
Rate limit (429)Wait and retry with exponential backoff.

レビュー

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

同じリポジトリのスキル

概要と使いどころ

blog

無料

Full-lifecycle blog engine with 31 sub-skills, 12 templates, 100-point scoring, and 5 agents. Routes requests to the right sub-skill: writing, rewriting, analysis, outlines, audits, schema, charts, images, repurposing, AI citation SEO, FLOW prompts, topic clusters, and multilingual publishing. Optimized for Google rankings, E-E-A-T, and AI citations. Supports any platform. Use when the user asks to create, revise, analyze, plan, translate, localize, audit, or repurpose blog content, or invokes a /blog subcommand. Do not activate merely because the word "blog" appears in an unrelated coding, theme-debugging, database, log-analysis, or definition request.

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

blog

無料

Full-lifecycle blog engine with 31 sub-skills, 12 content templates, 5-category 100-point scoring, and 5 specialized agents. Routes user requests to the right sub-skill: writing, rewriting, analysis, outlines, audits, schema, charts, images, repurposing, AI citation SEO, FLOW framework prompts, topic-cluster execution, and multilingual publishing. Optimized for Google rankings around the May 2026 Core Update, E-E-A-T, and AI citations as one SEO discipline. Supports any platform (WordPress, Next.js MDX, Hugo, Ghost, Astro, Jekyll, 11ty, Gatsby, HTML). Use when user says "blog", "write a blog", "blog post", "blog strategy", "content brief", "editorial calendar", "blog audit", "blog optimization", "topic cluster", "multilingual blog", "FLOW framework", or any /blog subcommand. Sub-skill descriptions cover narrower triggers.

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

Audit and score blog posts on a 5-category 100-point scoring system covering content quality, SEO optimization, E-E-A-T signals, technical elements, and AI citation readiness. Includes AI content detection (burstiness, phrase flagging, vocabulary diversity). Supports export formats (markdown, JSON, table) and batch analysis with sorting. Generates prioritized recommendations (Critical/High/Medium/Low) with specific fixes. Works with any format (MDX, markdown, HTML, URL). Use when user says "analyze blog", "audit blog", "blog score", "check blog quality", "blog review", "rate this blog", "blog health check".

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

Score one blog post (or a folder of posts) on a 5-category 100-point scale covering content quality, SEO, E-E-A-T, technical elements, and AI citation readiness. Runs the deterministic analyzer first, then adds judgment and prioritized Critical/High/Medium/Low fixes. Advisory style diagnostics never infer authorship or affect the score. Exports markdown, JSON or table; works with MDX, markdown, HTML or a URL. Use when the user asks to analyze, score, rate or check the quality of specific posts ("analyze blog", "blog score", "check blog quality", "rate this post"). For a site-wide health check (orphan pages, cannibalization, stale content, schema across all posts) use blog-audit instead.

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

Paid Gemini TTS audio for a finished blog post: summary, full read-aloud, or two-speaker dialogue, with an MP3 and an HTML5 embed. Asks for explicit consent before the first paid call. Runs only on an explicit request: /blog audio, "generate audio for this blog post", "narrate this blog post", "audio version of this post", or "podcast version of this post". Not for general speech or dictation questions.

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

Generate audio narration of blog posts using Google Gemini TTS. Supports summary narration, full article read-aloud, and two-speaker podcast/dialogue mode with 30 voice options. Outputs MP3 with HTML5 audio embed code. Works standalone via /blog audio or internally from blog-write. Falls back gracefully when API key is not configured. Use when user says "blog audio", "narrate blog", "audio version", "text to speech", "tts", "podcast mode", "read aloud", "audio narration", "voice", "narration", "generate audio".

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

AgriciDaniel/claude-blog2,3832026年10月14日 更新

AgriciDaniel のスキルをすべて見る

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