Renumber 12 existing skills to new ranges: - SEO: 11→13, 12→18, 13→16, 14→17, 15→14, 16→15, 17→29, 18→30, 19→12 - GTM: 20→60, 21→61, 22→62 Update cross-references in gateway architect/builder skills, GTM guardian README, CLAUDE.md (skill tables + directory layout), and AGENTS.md (domain routing ranges). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.7 KiB
3.7 KiB
CLAUDE.md
Overview
Core Web Vitals analyzer using Google PageSpeed Insights API: LCP, FID, CLS, INP, TTFB, FCP measurement and recommendations.
Quick Start
pip install -r scripts/requirements.txt
# Requires API key
export PAGESPEED_API_KEY=your_api_key
python scripts/pagespeed_client.py --url https://example.com
Scripts
| Script | Purpose |
|---|---|
pagespeed_client.py |
PageSpeed Insights API client |
base_client.py |
Shared utilities |
Usage
# Mobile analysis (default)
python scripts/pagespeed_client.py --url https://example.com
# Desktop analysis
python scripts/pagespeed_client.py --url https://example.com --strategy desktop
# Both strategies
python scripts/pagespeed_client.py --url https://example.com --strategy both
# JSON output
python scripts/pagespeed_client.py --url https://example.com --json
# Batch analysis
python scripts/pagespeed_client.py --urls urls.txt --output results.json
Core Web Vitals Metrics
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤2.5s | 2.5s-4s | >4s |
| FID (First Input Delay) | ≤100ms | 100ms-300ms | >300ms |
| CLS (Cumulative Layout Shift) | ≤0.1 | 0.1-0.25 | >0.25 |
| INP (Interaction to Next Paint) | ≤200ms | 200ms-500ms | >500ms |
Additional Metrics
| Metric | Description |
|---|---|
| TTFB | Time to First Byte |
| FCP | First Contentful Paint |
| SI | Speed Index |
| TBT | Total Blocking Time |
Output
{
"url": "https://example.com",
"strategy": "mobile",
"score": 85,
"core_web_vitals": {
"lcp": {"value": 2.1, "rating": "good"},
"fid": {"value": 50, "rating": "good"},
"cls": {"value": 0.05, "rating": "good"},
"inp": {"value": 180, "rating": "good"}
},
"opportunities": [
{
"id": "render-blocking-resources",
"title": "Eliminate render-blocking resources",
"savings_ms": 1200
}
],
"diagnostics": []
}
Configuration
Environment variables:
PAGESPEED_API_KEY=AIza... # Required for higher quotas
GOOGLE_API_KEY=AIza... # Alternative key name
Rate Limits
| Tier | Limit |
|---|---|
| No API key | 25 queries/day |
| With API key | 25,000 queries/day |
Common Recommendations
| Issue | Fix |
|---|---|
| Large LCP | Optimize images, preload critical resources |
| High CLS | Set image dimensions, avoid injected content |
| Poor INP | Reduce JavaScript, optimize event handlers |
| Slow TTFB | Improve server response, use CDN |
Dependencies
google-api-python-client>=2.100.0
requests>=2.31.0
python-dotenv>=1.0.0
rich>=13.7.0
Notion Output (Required)
IMPORTANT: All audit reports MUST be saved to the OurDigital SEO Audit Log database.
Database Configuration
| Field | Value |
|---|---|
| Database ID | 2c8581e5-8a1e-8035-880b-e38cefc2f3ef |
| URL | https://www.notion.so/dintelligence/2c8581e58a1e8035880be38cefc2f3ef |
Required Properties
| Property | Type | Description |
|---|---|---|
| Issue | Title | Report title (Korean + date) |
| Site | URL | Audited website URL |
| Category | Select | Technical SEO, On-page SEO, Performance, Schema/Structured Data, Sitemap, Robots.txt, Content, Local SEO |
| Priority | Select | Critical, High, Medium, Low |
| Found Date | Date | Audit date (YYYY-MM-DD) |
| Audit ID | Rich Text | Format: [TYPE]-YYYYMMDD-NNN |
Language Guidelines
- Report content in Korean (한국어)
- Keep technical English terms as-is (e.g., SEO Audit, Core Web Vitals, Schema Markup)
- URLs and code remain unchanged
Example MCP Call
mcp-cli call notion/API-post-page '{"parent": {"database_id": "2c8581e5-8a1e-8035-880b-e38cefc2f3ef"}, "properties": {...}}'