Download brain/.raw/sources/claude-blog-skill/skills/blog-google/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does blog-google live?
The publisher keeps it at https://github.com/AgriciDaniel/claude-blog.
Which agents can use blog-google?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.
>
name: blog-google
description: >
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".
user-invokable: true
argument-hint: "[setup|pagespeed|crux|crux-history|gsc|inspect|index|ga4|nlp|youtube|keywords|report|quotas] [url|property|query]"
license: MIT
metadata:
author: AgriciDaniel
version: "1.11.0"
category: blog
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:
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.
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
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>" --jsonQuota: 100 units per search (10,000 units/day free).
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
API
Per-Minute
Per-Day
Auth
PSI v5
240 QPM
25,000 QPD
API Key
CrUX + History
150 QPM (shared)
Unlimited
API Key
GSC Search Analytics
1,200 QPM/site
30M QPD
Service Account
GSC URL Inspection
600 QPM
2,000 QPD/site
Service Account
Indexing API
380 RPM
200 publish/day
Service Account
GA4 Data API
10 concurrent (50 for 360)
200K Core Tokens/day (2M for 360)
Service Account
YouTube Data
:
10,000 units/day
API Key
NLP API
:
5,000 units/month
API 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
Scenario
Action
No credentials configured
Run /blog google setup. List Tier 0 commands (API key only).
Service account lacks GSC access
Add client_email to GSC > Settings > Users > Add.
CrUX data unavailable (404)
Insufficient Chrome traffic. Use PSI lab data as fallback.
GA4 property not found
Find property ID in GA4 Admin > Property Details.
Indexing API quota exceeded
200/day limit. Prioritize most important URLs.
Rate limit (429)
Wait and retry with exponential backoff.
How do I install blog-google?
Download brain/.raw/sources/claude-blog-skill/skills/blog-google/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does blog-google live?
The publisher keeps it at https://github.com/AgriciDaniel/claude-blog.
Which agents can use blog-google?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.