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".
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Instruções da origem · Visualização somente leitura
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".
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:
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.
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.
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.
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
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>" --jsonQuota: 100 units per search (10,000 units/day free).
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.
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.md for PageSpeed and CrUX evidence.
assets/templates/gsc-performance-report.md for Search Analytics exports.
assets/templates/indexation-status-report.md for 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 integrations have no usage fee within quota. Cloud Natural Language
requires billing and can incur charges; Google Ads requires account and
developer-token access.
Read references/search-currentness.md before diagnosing a named update,
canonical change, Discover visibility, Google generative-AI reporting,
platform properties, Preferred Sources, AMP, or crawler byte-limit issue.
A named update's dates do not prove what caused an individual site's change.
Wait one full week after rollout before comparing data, and separate Web,
Image, Video, and News performance.
Googlebot processes only the first 2MB of supported files and first 64MB of
PDFs. Keep critical metadata and primary content before the cutoff.
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.