Blog Google: Google API Data for Blog Performance

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.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit AgriciDaniel/claude-blog/skills/blog-google#main ~/.claude/skills/blog-google-2

For one project only, change the path to .claude/skills/blog-google-2. This skill also uses robots.txt — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text323 lines
blog-google-2/SKILL.md323 lines13.0 KBpushed 27d agoRawView on GitHub

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.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.
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.
1---
2name: blog-google
3description: >
4 Google API integration for blog performance: PageSpeed Insights, CrUX Core Web
5 Vitals with 25-week history, Search Console performance, URL Inspection, Indexing
6 API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search
7 for embedding, and Google Ads Keyword Planner. Progressive feature availability
8 based on credential tier (API key, OAuth/service account, GA4, Ads). Shares
9 config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user
10 says "google data", "page speed", "core web vitals", "search console",
11 "indexation", "GA4", "keyword research", "nlp entities", "blog performance",
12 "youtube search", "google api setup".
13user-invokable: true
14argument-hint: "[setup|pagespeed|crux|crux-history|gsc|inspect|index|ga4|nlp|youtube|keywords|report|quotas] [url|property|query]"
15license: MIT
16metadata:
17 author: AgriciDaniel
18 version: "2.2.0"
19 category: blog
20---
21 
22# Blog Google: Google API Data for Blog Performance
23 
24Direct access to Google's SEO APIs for blog performance analysis. Provides real
25Chrome user metrics, indexation status, search performance, entity analysis, YouTube
26video discovery, keyword volumes, and PDF/HTML performance reports.
27 
28Most integrations have no usage fee within their documented quotas. Cloud
29Natural Language requires billing and can incur charges after its free monthly
30tier. Google Ads requires an eligible account and developer token. Never enable
31billing or make a paid request without explicit user approval.
32 
33## Prerequisites
34 
35**Always check credentials before running any command:**
36```bash
37python3 skills/blog-google/scripts/run.py google_auth --check --json
38```
39 
40**Config file:** `~/.config/claude-seo/google-api.json` (shared with claude-seo)
41```json
42{
43 "api_key": "YOUR_GOOGLE_API_KEY",
44 "oauth_client_path": "/path/to/client_secret.json",
45 "default_property": "sc-domain:example.com",
46 "ga4_property_id": "properties/123456789",
47 "ads_developer_token": "...",
48 "ads_customer_id": "123-456-7890",
49 "ads_login_customer_id": "123-456-7890"
50}
51```
52 
53If missing, read `references/auth-setup.md` and walk the user through setup.
54 
55### Credential Tiers
56 
57| Tier | Detection | Available Commands |
58|------|-----------|-------------------|
59| **0** (API Key) | `api_key` present | `pagespeed`, `crux`, `crux-history`, `youtube`, `nlp` |
60| **1** (OAuth/SA) | + OAuth token or service account | Tier 0 + `gsc`, `inspect`, `index` |
61| **2** (Full) | + `ga4_property_id` configured | Tier 1 + `ga4` |
62| **3** (Ads) | + `ads_developer_token` + `ads_customer_id` | Tier 2 + `keywords` |
63 
64Always communicate the detected tier before running commands.
65 
66## Quick Reference
67 
68| Command | What it does | Tier |
69|---------|-------------|------|
70| `/blog google setup` | Check/configure API credentials |: |
71| `/blog google pagespeed <url>` | PSI Lighthouse + CrUX field data | 0 |
72| `/blog google crux <url>` | CrUX field data only (p75 metrics) | 0 |
73| `/blog google crux-history <url>` | 25-week CWV trend analysis | 0 |
74| `/blog google youtube <query>` | YouTube video search (views, likes, duration) | 0 |
75| `/blog google nlp <url-or-text>` | NLP entity extraction + sentiment | 0 |
76| `/blog google gsc <property>` | Search Console: clicks, impressions, CTR, position | 1 |
77| `/blog google inspect <url>` | URL Inspection: index status, canonical | 1 |
78| `/blog google index <url>` | Submit URL to Indexing API | 1 |
79| `/blog google ga4 [property-id]` | GA4 organic traffic report | 2 |
80| `/blog google keywords <seed>` | Keyword ideas from Google Ads Keyword Planner | 3 |
81| `/blog google report <type>` | PDF/HTML performance report |: |
82| `/blog google quotas` | Show rate limits for all APIs |: |
83 
84---
85 
86## PageSpeed + CrUX
87 
88### `/blog google pagespeed <url>`
89 
90Combined Lighthouse lab data + CrUX field data for a published blog post.
91 
92**Script:** `python3 skills/blog-google/scripts/run.py pagespeed_check <url> --json`
93**Reference:** `references/api-reference.md`
94 
95Output merges lab scores (point-in-time Lighthouse) with field data (28-day
96Chrome user metrics). CrUX tries URL-level first, falls back to origin-level.
97 
98### `/blog google crux <url>`
99 
100CrUX field data only (no Lighthouse run). Faster.
101 
102**Script:** `python3 skills/blog-google/scripts/run.py pagespeed_check <url> --crux-only --json`
103 
104### `/blog google crux-history <url>`
105 
10625-week CrUX History trends. Shows whether CWV metrics are improving, stable, or degrading.
107 
108**Script:** `python3 skills/blog-google/scripts/run.py crux_history <url> --json`
109 
110---
111 
112## Search Console
113 
114### `/blog google gsc <property>`
115 
116Search Analytics: clicks, impressions, CTR, position for last 28 days.
117 
118**Script:** `python3 skills/blog-google/scripts/run.py gsc_query --property <property> --json`
119**Default:** 28 days, dimensions=query,page, type=web, limit=1000.
120 
121Includes quick-win detection: queries at position 4-10 with high impressions.
122 
123The dedicated Search Console generative-AI reports are a gradual, subset
124rollout in the Search Console UI. They have separate Search and Discover views;
125the Search view covers AI Overviews and AI Mode. Do not promise clicks, queries,
126or API retrieval from these dedicated views. Until Google documents an API,
127report that capability as `SKIPPED` or unavailable and point the user to the UI.
128 
129Google's July 29 Search Central announcement says Search Console platform
130properties for Instagram, TikTok, X, and YouTube are globally available. The
131current Help Center still says gradual rollout. Report this as a Google-source
132conflict, verify availability in the user's account, and do not claim that
133`/blog google gsc` retrieves these platform reports through the current API.
134 
135### `/blog google inspect <url>`
136 
137URL Inspection: real indexation status from Google.
138 
139**Script:** `python3 skills/blog-google/scripts/run.py gsc_inspect <url> --json`
140 
141Returns: verdict (PASS/FAIL), coverage state, robots.txt status, indexing state,
142page fetch state, canonical selection, mobile usability, rich results.
143 
144After a canonicalization fix, Google may retain the URL in a duplicate cluster
145for up to two weeks. If the implementation is now correct and the fix is within
146that window, report `PENDING_REEVALUATION` rather than an immediate failure.
147Search Console's Request Indexing feature is quota-limited; reserve it for
148important URLs.
149 
150For batch inspection: `python3 skills/blog-google/scripts/run.py gsc_inspect --batch <file> --json`
151 
152---
153 
154## Indexing API
155 
156### `/blog google index <url>`
157 
158Notify Google of a URL update through the Indexing API.
159 
160**Script:** `python3 skills/blog-google/scripts/run.py indexing_notify <url> --json`
161**Reference:** `references/api-reference.md`
162 
163The Indexing API is officially for JobPosting and BroadcastEvent/VideoObject pages.
164Always inform the user of this restriction. Daily quota: 200 publish requests.
165Do not present it as a general-purpose replacement for URL Inspection's Request
166Indexing feature.
167 
168For batch: `python3 skills/blog-google/scripts/run.py indexing_notify --batch <file> --json`
169 
170---
171 
172## GA4 Traffic
173 
174### `/blog google ga4 [property-id]`
175 
176Organic traffic report: daily sessions, users, pageviews, bounce rate, engagement.
177 
178**Script:** `python3 skills/blog-google/scripts/run.py ga4_report --property <id> --json`
179**Default:** 28 days, filtered to Organic Search channel group.
180 
181For top landing pages: `python3 skills/blog-google/scripts/run.py ga4_report --property <id> --report top-pages --json`
182 
183---
184 
185## YouTube (Video Discovery)
186 
187YouTube research can add useful, relevant media and distribution context. Any
188third-party visibility correlation is observational, not a Google ranking or
189citation requirement. Free, API key only. Used by blog-write and blog-rewrite
190for video embedding.
191 
192### `/blog google youtube <query>`
193 
194Search YouTube for videos relevant to a blog topic.
195 
196**Script:** `python3 skills/blog-google/scripts/run.py youtube_search search "<query>" --json`
197**Quota:** 100 units per search (10,000 units/day free).
198 
199Returns: title, channel, views, likes, duration, description, tags.
200 
201For video details + comments: `python3 skills/blog-google/scripts/run.py youtube_search video <video_id> --json`
202 
203---
204 
205## NLP Content Analysis
206 
207Google's entity and sentiment analysis can support topic and editorial review.
208It does not expose ranking-system scores, and E-E-A-T is not a numeric Google
209ranking factor.
210 
211### `/blog google nlp <url-or-text>`
212 
213Full NLP analysis: entities, sentiment, content classification.
214 
215**Script:** `python3 skills/blog-google/scripts/run.py nlp_analyze --url <url> --json`
216**Free tier:** 5,000 units/month. Requires billing enabled on GCP project.
217 
218For entity extraction only: `python3 skills/blog-google/scripts/run.py nlp_analyze --url <url> --features entities --json`
219 
220---
221 
222## Keyword Research (Google Ads)
223 
224Gold-standard keyword volume data. Requires Google Ads account (Tier 3).
225 
226### `/blog google keywords <seed>`
227 
228Generate keyword ideas from seed terms for blog topic research.
229 
230**Script:** `python3 skills/blog-google/scripts/run.py keyword_planner ideas "<seed>" --json`
231 
232For volume lookup: `python3 skills/blog-google/scripts/run.py keyword_planner volume "<kw1>,<kw2>" --json`
233 
234---
235 
236## Reports
237 
238### `/blog google report <type>`
239 
240Generate a PDF/HTML report with charts and tables.
241 
242**Script:** `python3 skills/blog-google/scripts/run.py google_report --type <type> --data <json> --domain <domain> --format pdf`
243 
244| Type | Input | Output |
245|------|-------|--------|
246| `cwv-audit` | PSI + CrUX + CrUX History data | Core Web Vitals audit with gauges, timelines |
247| `gsc-performance` | GSC query data | Search Console report with query tables |
248| `indexation` | Batch inspection data | Indexation status with coverage donut |
249| `full` | All data combined | Comprehensive Google SEO report |
250 
251**Note:** PDF generation requires system libraries: `sudo apt install libpango1.0-dev libcairo2-dev`.
252Falls back to HTML if WeasyPrint is unavailable or PDF rendering fails.
253 
254---
255 
256## Rate Limits
257 
258| API | Per-Minute | Per-Day | Auth |
259|-----|-----------|---------|------|
260| PSI v5 | 240 QPM | 25,000 QPD | API Key |
261| CrUX + History | 150 QPM (shared) | Unlimited | API Key |
262| GSC Search Analytics | 1,200 QPM/site | 30M QPD | Service Account |
263| GSC URL Inspection | 600 QPM | 2,000 QPD/site | Service Account |
264| Indexing API | 380 RPM | 200 publish/day | Service Account |
265| GA4 Data API | 10 concurrent (50 for 360) | 200K Core Tokens/day (2M for 360) | Service Account |
266| YouTube Data |: | 10,000 units/day | API Key |
267| NLP API |: | 5,000 units/month | API Key (billing) |
268 
269Read `references/rate-limits-quotas.md` for detailed quota management.
270 
271## Blog Workflow Integration
272 
273This skill is both user-invocable (`/blog google pagespeed`) and callable
274internally by other blog sub-skills:
275 
276- **blog-seo-check**: Runs PSI + CrUX on published post URL for live CWV data
277- **blog-rewrite**: NLP entity analysis to identify E-E-A-T entity gaps
278- **blog-geo**: GSC performance data for real search appearance insights
279- **blog-audit**: Batch CWV + indexation checks across all published blog URLs
280- **blog-write / blog-rewrite**: YouTube search for video embedding
281 
282Falls back gracefully when credentials are not configured.
283 
284## Report Templates
285 
286Use the bundled templates when a workflow requests a durable human-readable
287report. Keep unavailable account data marked `SKIPPED`; never fill an empty
288section with estimated metrics.
289 
290- `assets/templates/cwv-audit-report.md` for PageSpeed and CrUX evidence.
291- `assets/templates/gsc-performance-report.md` for Search Analytics exports.
292- `assets/templates/indexation-status-report.md` for URL Inspection evidence.
293 
294## Technical Notes
295 
296- INP replaced FID on March 12, 2024. Never reference FID.
297- CLS values from CrUX are string-encoded (e.g., "0.05"). Scripts handle parsing.
298- CrUX 404 = insufficient Chrome traffic, not an auth error.
299- Search Analytics data has 2-3 day lag.
300- Indexing API is officially for JobPosting/BroadcastEvent pages only.
301- Most integrations have no usage fee within quota. Cloud Natural Language
302 requires billing and can incur charges; Google Ads requires account and
303 developer-token access.
304- Read `references/search-currentness.md` before diagnosing a named update,
305 canonical change, Discover visibility, Google generative-AI reporting,
306 platform properties, Preferred Sources, AMP, or crawler byte-limit issue.
307- A named update's dates do not prove what caused an individual site's change.
308 Wait one full week after rollout before comparing data, and separate Web,
309 Image, Video, and News performance.
310- Googlebot processes only the first 2MB of supported files and first 64MB of
311 PDFs. Keep critical metadata and primary content before the cutoff.
312 
313## Error Handling
314 
315| Scenario | Action |
316|----------|--------|
317| No credentials configured | Run `/blog google setup`. List Tier 0 commands (API key only). |
318| Service account lacks GSC access | Add `client_email` to GSC > Settings > Users > Add. |
319| CrUX data unavailable (404) | Insufficient Chrome traffic. Use PSI lab data as fallback. |
320| GA4 property not found | Find property ID in GA4 Admin > Property Details. |
321| Indexing API quota exceeded | 200/day limit. Prioritize most important URLs. |
322| Rate limit (429) | Wait and retry with exponential backoff. |
323 

Discussion

Alternatives

Also in Services & APIs
Context7Pulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.Coding · MITAdaptyv Bio Foundry APIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.Science · MIT.NET Backend Development PatternsMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.Coding · MITAdd AI protectionProtect AI chat and completion endpoints from abuse — detect prompt injection and jailbreak attempts, block PII and sensitive info from leaking in responses, and enforce token budget rate limits to control costs. Use this skill when the user is building or securing any endpoint that processes user prompts with an LLM, even if they describe it as "preventing jailbreaks," "stopping prompt attacks," "blocking sensitive data," or "controlling AI API costs" rather than naming specific protections.Coding · CC0-1.0