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.
Install / Use
npx skills add AgriciDaniel/claude-blog --skill blog-googleInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of blog-google
blog-google scores 93/100 on our quality scale, 174th of 829 AI & Machine Learning skills we index (top 21%).
Its SKILL.md is 13 KB long, well organised into 28 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
With 2,282 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 4 days ago, so blog-google is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-29. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
blog-google compared with similar skills
All 4 of these similar skills score higher than blog-google; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| blog-google (this skill)by AgriciDaniel | 93 | 2.3k | 4d ago | SKILL.md |
| claude-memby thedotmack | 100 | 94.9k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 86.1k | 13d ago | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 84.6k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install blog-google?
- Run
npx skills add AgriciDaniel/claude-blog --skill blog-google. The install tabs above show the steps for each supported agent. - Which AI agents does blog-google work with?
- It is written for Claude Code, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is blog-google safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is blog-google still maintained?
- The repository was last updated 4 days ago, so blog-google is actively maintained.
Skill content
View source on GitHubname: 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: "2.2.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.
Most integrations have no usage fee within their documented quotas. Cloud Natural Language requires billing and can incur charges after its free monthly tier. Google Ads requires an eligible account and developer token. Never enable billing or make a paid request without explicit user approval.
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": "YOUR_GOOGLE_API_KEY",
"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
| Tier | Detection | Available Commands |
|------|-----------|-------------------|
| 0 (API Key) | api_key present | pagespeed, crux, crux-history, youtube, nlp |
| 1 (OAuth/SA) | + OAuth token or service account | Tier 0 + gsc, inspect, index |
| 2 (Full) | + ga4_property_id configured | Tier 1 + ga4 |
| 3 (Ads) | + ads_developer_token + ads_customer_id | Tier 2 + keywords |
Always communicate the detected tier before running commands.
Quick Reference
| Command | What it does | Tier |
|---------|-------------|------|
| /blog google setup | Check/configure API credentials |: |
| /blog google pagespeed <url> | PSI Lighthouse + CrUX field data | 0 |
| /blog google crux <url> | CrUX field data only (p75 metrics) | 0 |
| /blog google crux-history <url> | 25-week CWV trend analysis | 0 |
| /blog google youtube <query> | YouTube video search (views, likes, duration) | 0 |
| /blog google nlp <url-or-text> | NLP entity extraction + sentiment | 0 |
| /blog google gsc <property> | Search Console: clicks, impressions, CTR, position | 1 |
| /blog google inspect <url> | URL Inspection: index status, canonical | 1 |
| /blog google index <url> | Submit URL to Indexing API | 1 |
| /blog google ga4 [property-id] | GA4 organic traffic report | 2 |
| /blog google keywords <seed> | Keyword ideas from Google Ads Keyword Planner | 3 |
| /blog google report <type> | PDF/HTML performance report |: |
| /blog google quotas | Show 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.
The dedicated Search Console generative-AI reports are a gradual, subset
rollout in the Search Console UI. They have separate Search and Discover views;
the Search view covers AI Overviews and AI Mode. Do not promise clicks, queries,
or API retrieval from these dedicated views. Until Google documents an API,
report that capability as SKIPPED or unavailable and point the user to the UI.
Google's July 29 Search Central announcement says Search Console platform
properties for Instagram, TikTok, X, and YouTube are globally available. The
current Help Center still says gradual rollout. Report this as a Google-source
conflict, verify availability in the user's account, and do not claim that
/blog google gsc retrieves these platform reports through the current API.
/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.
After a canonicalization fix, Google may retain the URL in a duplicate cluster
for up to two weeks. If the implementation is now correct and the fix is within
that window, report PENDING_REEVALUATION rather than an immediate failure.
Search Console's Request Indexing feature is quota-limited; reserve it for
important URLs.
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 through the Indexing API.
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. Do not present it as a general-purpose replacement for URL Inspection's Request Indexing feature.
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 research can add useful, relevant media and distribution context. Any third-party visibility correlation is observational, not a Google ranking or citation requirement. 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 entity and sentiment analysis can support topic and editorial review. It does not expose ranking-system scores, and E-E-A-T is not a numeric Google ranking factor.
/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
| Type | Input | Output |
|------|-------|--------|
| cwv-audit | PSI + CrUX + CrUX History data | Core Web Vitals audit with gauges, timelines |
| gsc-performance | GSC query data | Search Console report with query tables |
| indexation | Batch inspection data | Indexation status with coverage donut |
| full | All data combined | Comprehensive 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
| 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.
Report Templates
Use the bundled templates when a workflow requests a durable human-readable
report. Keep unavailable account data marked SKIPPED; never fill an empty
section with estimated metrics.
assets/templates/cwv-audit-report.mdfor PageSpeed and CrUX evidence.assets/templates/gsc-performance-report.mdfor Search Analytics exports.assets/templates/indexation-status-report.mdfor URL Inspection evidence.
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.
- Most integr
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
94.9kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
86.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
84.6kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
74.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
