vibes-plug 1.0.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +20 -0
- package/AGENTS.md +66 -0
- package/BLUEPRINT.md +152 -60
- package/CHANGELOG.md +50 -0
- package/README.md +346 -194
- package/package.json +25 -25
- package/plugin.json +1 -1
- package/skills/ai-cost-token-optimizer/SKILL.md +52 -0
- package/skills/ai-llm-integration-expert/SKILL.md +180 -162
- package/skills/api-design-expert/SKILL.md +314 -310
- package/skills/app-analyzer-optimizer/SKILL.md +193 -189
- package/skills/apple-ecosystem-expert/SKILL.md +142 -0
- package/skills/async-queue-temporal-expert/SKILL.md +54 -0
- package/skills/authentication-identity-expert/SKILL.md +251 -20
- package/skills/auto-doc-updater/SKILL.md +214 -204
- package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
- package/skills/autonomous-red-teamer/SKILL.md +59 -0
- package/skills/autonomous-swarm-director/SKILL.md +69 -0
- package/skills/autonomous-tdd-debugger/SKILL.md +65 -0
- package/skills/bootstrap-to-modern/SKILL.md +90 -86
- package/skills/brainstorming/SKILL.md +373 -353
- package/skills/browser-automation-expert/SKILL.md +46 -0
- package/skills/ci-cd-devops-architect/SKILL.md +72 -45
- package/skills/cloud-hosting-expert/SKILL.md +244 -244
- package/skills/coderabbit/SKILL.md +192 -192
- package/skills/cron-scheduler-expert/SKILL.md +298 -0
- package/skills/data-telemetry-expert/SKILL.md +213 -213
- package/skills/database-orm-expert/SKILL.md +294 -294
- package/skills/dependency-upgrade-migrator/SKILL.md +295 -0
- package/skills/design-system-architect/SKILL.md +27 -10
- package/skills/doku-mcp-server/SKILL.md +251 -0
- package/skills/doku-payment-gateway/SKILL.md +227 -0
- package/skills/e2e-testing-expert/SKILL.md +315 -315
- package/skills/edge-serverless-db-expert/SKILL.md +43 -0
- package/skills/email-notification-expert/SKILL.md +362 -0
- package/skills/error-resilience-expert/SKILL.md +480 -0
- package/skills/event-driven-architect/SKILL.md +81 -81
- package/skills/feature-flag-analytics-expert/SKILL.md +46 -0
- package/skills/file-upload-media-expert/SKILL.md +431 -0
- package/skills/form-validation-expert/SKILL.md +401 -0
- package/skills/fullstack-expert/SKILL.md +202 -202
- package/skills/fullstack-expert/references/api_design_guide.md +466 -466
- package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
- package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
- package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
- package/skills/gemini-agent-booster/SKILL.md +135 -135
- package/skills/global-a11y-i18n-expert/SKILL.md +81 -81
- package/skills/glsl-shader-expert/SKILL.md +101 -0
- package/skills/go-programming-expert/SKILL.md +295 -295
- package/skills/graphql-apollo-expert/SKILL.md +108 -0
- package/skills/hig/SKILL.md +188 -188
- package/skills/hyper-context-synthesizer/SKILL.md +55 -0
- package/skills/js-backend-expert/SKILL.md +34 -9
- package/skills/legacy-code-translator/SKILL.md +65 -0
- package/skills/llm-cost-arbitrage-router/SKILL.md +59 -0
- package/skills/logging-error-tracking-expert/SKILL.md +338 -0
- package/skills/mcp-client-orchestrator/SKILL.md +70 -0
- package/skills/mcp-server-architect/SKILL.md +194 -194
- package/skills/micro-frontend-architect/SKILL.md +106 -0
- package/skills/mobile-expo-expert/SKILL.md +186 -186
- package/skills/mobile-push-notification-expert/SKILL.md +51 -0
- package/skills/monday-design-aesthetic/SKILL.md +67 -67
- package/skills/monorepo-architect/SKILL.md +227 -227
- package/skills/mpa-orchestrator/SKILL.md +101 -101
- package/skills/multi-agent-orchestration/SKILL.md +234 -234
- package/skills/multiple-entry-points/SKILL.md +55 -55
- package/skills/mvc-expert/SKILL.md +231 -231
- package/skills/payment-gateway-expert/SKILL.md +45 -45
- package/skills/performance-web-vitals/SKILL.md +332 -332
- package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
- package/skills/prd-architect/SKILL.md +201 -191
- package/skills/proactive-background-watcher/SKILL.md +62 -0
- package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
- package/skills/production-ready-hardener/SKILL.md +173 -186
- package/skills/production-ready-hardener/references/production_checklist.md +161 -161
- package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
- package/skills/project-context-mapper/SKILL.md +79 -0
- package/skills/python-programming-expert/SKILL.md +263 -132
- package/skills/rate-limit-abuse-prevention/SKILL.md +371 -0
- package/skills/realtime-collaboration-expert/SKILL.md +45 -45
- package/skills/rust-programming-expert/SKILL.md +235 -235
- package/skills/saas-billing/SKILL.md +377 -377
- package/skills/saas-multi-tenant/SKILL.md +251 -237
- package/skills/saas-mvp-launcher/SKILL.md +10 -0
- package/skills/saas-transformer/SKILL.md +187 -144
- package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
- package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
- package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
- package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
- package/skills/scalability-clean-code/SKILL.md +229 -229
- package/skills/self-evolving-memory-graph/SKILL.md +75 -0
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
- package/skills/senior-frontend/SKILL.md +161 -161
- package/skills/senior-fullstack/SKILL.md +167 -167
- package/skills/seo/SKILL.md +235 -225
- package/skills/seo-geo/SKILL.md +188 -188
- package/skills/session-context-loader/SKILL.md +77 -0
- package/skills/session-handoff-resume/SKILL.md +158 -158
- package/skills/skill_baru/SKILL.md +172 -147
- package/skills/spa-orchestrator/SKILL.md +288 -288
- package/skills/state-management-expert/SKILL.md +272 -272
- package/skills/supabase-security-expert/SKILL.md +243 -243
- package/skills/tailwind-expert/SKILL.md +188 -188
- package/skills/tanstack-query-expert/SKILL.md +199 -199
- package/skills/token-saver/SKILL.md +119 -111
- package/skills/typescript-expert/SKILL.md +324 -279
- package/skills/ui-components-expert/SKILL.md +263 -46
- package/skills/ui-ux-pro-max/SKILL.md +202 -201
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
- package/skills/ui_ux_expert/SKILL.md +17 -6
- package/skills/vector-db-rag-expert/SKILL.md +52 -0
- package/skills/vibe-code-gardener/SKILL.md +181 -173
- package/skills/visual-qa-vision-agent/SKILL.md +65 -0
- package/skills/vue-frontend-expert/SKILL.md +126 -0
- package/skills/web-3d-graphics-expert/SKILL.md +131 -0
- package/skills/web-game-engine-expert/SKILL.md +96 -0
- package/skills/web-scraper/SKILL.md +207 -205
- package/skills/website-design-cloner/SKILL.md +174 -0
- package/skills/webxr-ar-vr-expert/SKILL.md +117 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +206 -180
- package/skills/zero-trust-secret-vault/SKILL.md +40 -0
- package/vibes-swarm-demo.gif +0 -0
package/skills/seo/SKILL.md
CHANGED
|
@@ -1,225 +1,235 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seo
|
|
3
|
-
description: "Run a broad SEO audit across technical SEO, on-page SEO, schema, sitemaps, content quality, AI search readiness, and GEO / Audit SEO menyeluruh (Technical, On-Page, Schema, Sitemap, E-E-A-T, GEO)"
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# SEO Expert (2026 — AI Mode & Core Web Vitals Edition)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
Comprehensive SEO audit covering technical SEO, on-page optimization, structured data, sitemaps, Core Web Vitals, E-E-A-T signals, and **Generative Engine Optimization (GEO)** for AI-powered search (Google AI Mode, ChatGPT Search, Perplexity).
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- Running a full SEO audit on an existing web application.
|
|
21
|
-
- Optimizing technical SEO for a new Next.js / Astro site.
|
|
22
|
-
- Adding structured data (JSON-LD) for rich results and AI citation.
|
|
23
|
-
- Optimizing Core Web Vitals (LCP, INP, CLS).
|
|
24
|
-
- Preparing a site for Google AI Mode and ChatGPT Search indexing.
|
|
25
|
-
- Setting up a sitemap and `robots.txt`.
|
|
26
|
-
|
|
27
|
-
### 2026 SEO Landscape Changes
|
|
28
|
-
|
|
29
|
-
| 2024 (Old) | 2026 (Current) |
|
|
30
|
-
|---|---|
|
|
31
|
-
| AI Overviews (SGE) | **Google AI Mode** — integrated AI answers |
|
|
32
|
-
| FID metric (deprecated) | **INP** (Interaction to Next Paint) |
|
|
33
|
-
| Keyword density focus | **Topical authority + E-E-A-T** |
|
|
34
|
-
| Backlinks only | **Citations in AI responses** |
|
|
35
|
-
| `robots.txt` only | `robots.txt` + **`/llms.txt`** |
|
|
36
|
-
|
|
37
|
-
### Technical SEO Checklist
|
|
38
|
-
|
|
39
|
-
#### Core Web Vitals (2026 Targets)
|
|
40
|
-
```
|
|
41
|
-
LCP (Largest Contentful Paint) < 2.5s
|
|
42
|
-
INP (Interaction to Next Paint) < 200ms ← replaced FID
|
|
43
|
-
CLS (Cumulative Layout Shift) < 0.1
|
|
44
|
-
TTFB (Time to First Byte) < 600ms
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**INP Optimization** (the new critical metric):
|
|
48
|
-
```typescript
|
|
49
|
-
// INP is degraded by long tasks blocking the main thread
|
|
50
|
-
// Solution: Use React's useTransition to defer non-critical updates
|
|
51
|
-
import { useTransition } from 'react';
|
|
52
|
-
|
|
53
|
-
function SearchInput() {
|
|
54
|
-
const [isPending, startTransition] = useTransition();
|
|
55
|
-
|
|
56
|
-
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
57
|
-
startTransition(() => {
|
|
58
|
-
// Defer the expensive filtering to not block INP
|
|
59
|
-
setFilteredResults(filterData(e.target.value));
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
return <input onChange={handleChange} />;
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
#### Crawlability & Indexing
|
|
67
|
-
```typescript
|
|
68
|
-
// Next.js 15 — metadata API for complete SEO
|
|
69
|
-
// app/layout.tsx
|
|
70
|
-
export const metadata: Metadata = {
|
|
71
|
-
metadataBase: new URL('https://myapp.com'),
|
|
72
|
-
title: {
|
|
73
|
-
default: 'My SaaS — One-line value proposition',
|
|
74
|
-
template: '%s | My SaaS',
|
|
75
|
-
},
|
|
76
|
-
description: '150 characters max. Include primary keyword naturally.',
|
|
77
|
-
openGraph: {
|
|
78
|
-
type: 'website',
|
|
79
|
-
url: 'https://myapp.com',
|
|
80
|
-
siteName: 'My SaaS',
|
|
81
|
-
images: [{ url: '/og.png', width: 1200, height: 630 }],
|
|
82
|
-
},
|
|
83
|
-
twitter: { card: 'summary_large_image', creator: '@handle' },
|
|
84
|
-
robots: { index: true, follow: true },
|
|
85
|
-
alternates: { canonical: 'https://myapp.com' },
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// Dynamic sitemap.ts (Next.js App Router)
|
|
91
|
-
// app/sitemap.ts
|
|
92
|
-
import { MetadataRoute } from 'next';
|
|
93
|
-
|
|
94
|
-
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
|
95
|
-
const posts = await getBlogPosts();
|
|
96
|
-
|
|
97
|
-
return [
|
|
98
|
-
{ url: 'https://myapp.com', lastModified: new Date(), changeFrequency: 'weekly', priority: 1 },
|
|
99
|
-
{ url: 'https://myapp.com/features', lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
|
|
100
|
-
...posts.map(p => ({
|
|
101
|
-
url: `https://myapp.com/blog/${p.slug}`,
|
|
102
|
-
lastModified: new Date(p.updatedAt),
|
|
103
|
-
changeFrequency: 'monthly' as const,
|
|
104
|
-
priority: 0.6,
|
|
105
|
-
})),
|
|
106
|
-
];
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Structured Data (JSON-LD) for AI Citation
|
|
111
|
-
```html
|
|
112
|
-
<!-- Organization schema — establishes brand entity -->
|
|
113
|
-
<script type="application/ld+json">
|
|
114
|
-
{
|
|
115
|
-
"@context": "https://schema.org",
|
|
116
|
-
"@type": "Organization",
|
|
117
|
-
"name": "My SaaS",
|
|
118
|
-
"url": "https://myapp.com",
|
|
119
|
-
"logo": "https://myapp.com/logo.png",
|
|
120
|
-
"sameAs": [
|
|
121
|
-
"https://twitter.com/myapp",
|
|
122
|
-
"https://linkedin.com/company/myapp"
|
|
123
|
-
],
|
|
124
|
-
"contactPoint": {
|
|
125
|
-
"@type": "ContactPoint",
|
|
126
|
-
"contactType": "customer support",
|
|
127
|
-
"email": "support@myapp.com"
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
</script>
|
|
131
|
-
|
|
132
|
-
<!-- SoftwareApplication schema for SaaS products -->
|
|
133
|
-
<script type="application/ld+json">
|
|
134
|
-
{
|
|
135
|
-
"@context": "https://schema.org",
|
|
136
|
-
"@type": "SoftwareApplication",
|
|
137
|
-
"name": "My SaaS",
|
|
138
|
-
"applicationCategory": "BusinessApplication",
|
|
139
|
-
"operatingSystem": "Web",
|
|
140
|
-
"offers": {
|
|
141
|
-
"@type": "Offer",
|
|
142
|
-
"price": "0",
|
|
143
|
-
"priceCurrency": "USD",
|
|
144
|
-
"description": "Free tier available"
|
|
145
|
-
},
|
|
146
|
-
"aggregateRating": {
|
|
147
|
-
"@type": "AggregateRating",
|
|
148
|
-
"ratingValue": "4.8",
|
|
149
|
-
"reviewCount": "247"
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
</script>
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### GEO — Google AI Mode Optimization
|
|
156
|
-
Google AI Mode (formerly AI Overviews) now powers the top of search results:
|
|
157
|
-
- **Be the source**: Write comprehensive, authoritative content on your core topics.
|
|
158
|
-
- **Q&A format**: Structure content as questions and answers — AI Mode quotes these directly.
|
|
159
|
-
- **Factual and specific**: Include statistics, named entities, and dates.
|
|
160
|
-
- **`/llms.txt`**: Add an AI-readable site index (see `seo-geo` skill).
|
|
161
|
-
- **Speed**: AI Mode favors fast-loading pages (TTFB < 600ms).
|
|
162
|
-
|
|
163
|
-
### On-Page SEO Standards
|
|
164
|
-
```
|
|
165
|
-
H1: One per page — primary keyword, compelling, < 60 chars
|
|
166
|
-
H2: Section headers — secondary keywords
|
|
167
|
-
H3: Sub-sections — long-tail keywords, FAQ answers
|
|
168
|
-
Meta Title: < 60 chars — keyword + brand
|
|
169
|
-
Meta Description: < 155 chars — keyword + CTA + benefit
|
|
170
|
-
URL: lowercase, hyphens, keyword-in-slug, < 5 segments
|
|
171
|
-
Images: Descriptive alt text, WebP format, lazy loading
|
|
172
|
-
Internal links: 3-5 per long-form page to related content
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
<a name="bahasa-indonesia"></a>
|
|
178
|
-
## Bahasa Indonesia
|
|
179
|
-
|
|
180
|
-
### Deskripsi
|
|
181
|
-
Audit SEO komprehensif mencakup SEO teknikal, optimasi on-page, data terstruktur, sitemap, Core Web Vitals, sinyal E-E-A-T, dan **Generative Engine Optimization (GEO)** untuk pencarian bertenaga AI (Google AI Mode, ChatGPT Search, Perplexity).
|
|
182
|
-
|
|
183
|
-
### Kondisi Pemicu
|
|
184
|
-
- Menjalankan audit SEO penuh pada aplikasi web yang ada.
|
|
185
|
-
- Mengoptimalkan SEO teknikal untuk situs Next.js / Astro baru.
|
|
186
|
-
- Menambahkan data terstruktur (JSON-LD) untuk rich result dan kutipan AI.
|
|
187
|
-
- Mengoptimalkan Core Web Vitals (LCP, INP, CLS).
|
|
188
|
-
- Mempersiapkan situs untuk indexing Google AI Mode dan ChatGPT Search.
|
|
189
|
-
|
|
190
|
-
### Perubahan Lanskap SEO 2026
|
|
191
|
-
|
|
192
|
-
| 2024 (Lama) | 2026 (Sekarang) |
|
|
193
|
-
|---|---|
|
|
194
|
-
| AI Overviews (SGE) | **Google AI Mode** — jawaban AI terintegrasi |
|
|
195
|
-
| Metrik FID (dihentikan) | **INP** (Interaction to Next Paint) |
|
|
196
|
-
| Fokus kepadatan keyword | **Otoritas topikal + E-E-A-T** |
|
|
197
|
-
| Hanya backlink | **Kutipan dalam respons AI** |
|
|
198
|
-
| Hanya `robots.txt` | `robots.txt` + **`/llms.txt`** |
|
|
199
|
-
|
|
200
|
-
### Checklist SEO Teknikal
|
|
201
|
-
|
|
202
|
-
#### Core Web Vitals (Target 2026)
|
|
203
|
-
- LCP < 2.5 detik
|
|
204
|
-
- **INP < 200ms** ← menggantikan FID
|
|
205
|
-
- CLS < 0.1
|
|
206
|
-
- TTFB < 600ms
|
|
207
|
-
|
|
208
|
-
**Optimasi INP**: Metrik kritis baru yang mengukur responsivitas interaksi. Gunakan `useTransition` React untuk menunda pembaruan non-kritis agar tidak memblokir thread utama.
|
|
209
|
-
|
|
210
|
-
#### Crawlability & Indexing
|
|
211
|
-
Gunakan Metadata API Next.js 15 untuk SEO lengkap: `title`, `description`, `openGraph`, `twitter`, `robots`, `alternates.canonical`. Buat sitemap dinamis dengan `app/sitemap.ts` yang menyertakan semua halaman statis dan konten dinamis.
|
|
212
|
-
|
|
213
|
-
### Data Terstruktur (JSON-LD) untuk Kutipan AI
|
|
214
|
-
Tambahkan schema `Organization` untuk membangun entitas merek dan schema `SoftwareApplication` untuk produk SaaS — termasuk `aggregateRating` jika tersedia.
|
|
215
|
-
|
|
216
|
-
### GEO — Optimasi Google AI Mode
|
|
217
|
-
Google AI Mode (sebelumnya AI Overviews) kini mendukung bagian atas hasil pencarian:
|
|
218
|
-
- Tulis konten yang komprehensif dan otoritatif tentang topik inti.
|
|
219
|
-
- Strukturkan konten sebagai Q&A — AI Mode langsung mengutip ini.
|
|
220
|
-
- Sertakan statistik, entitas bernama, dan tanggal.
|
|
221
|
-
- Tambahkan `/llms.txt` sebagai indeks situs yang dapat dibaca AI.
|
|
222
|
-
- Kecepatan: AI Mode lebih memilih halaman yang memuat cepat (TTFB < 600ms).
|
|
223
|
-
|
|
224
|
-
### Standar SEO On-Page
|
|
225
|
-
H1 satu per halaman, H2 untuk header seksi, meta title < 60 karakter, meta deskripsi < 155 karakter, URL lowercase dengan tanda hubung dan keyword di slug, alt text deskriptif untuk semua gambar, 3-5 internal link per halaman long-form.
|
|
1
|
+
---
|
|
2
|
+
name: seo
|
|
3
|
+
description: "Run a broad SEO audit across technical SEO, on-page SEO, schema, sitemaps, content quality, AI search readiness, and GEO / Audit SEO menyeluruh (Technical, On-Page, Schema, Sitemap, E-E-A-T, GEO)"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SEO Expert (2026 — AI Mode & Core Web Vitals Edition)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
Comprehensive SEO audit covering technical SEO, on-page optimization, structured data, sitemaps, Core Web Vitals, E-E-A-T signals, and **Generative Engine Optimization (GEO)** for AI-powered search (Google AI Mode, ChatGPT Search, Perplexity).
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- Running a full SEO audit on an existing web application.
|
|
21
|
+
- Optimizing technical SEO for a new Next.js / Astro site.
|
|
22
|
+
- Adding structured data (JSON-LD) for rich results and AI citation.
|
|
23
|
+
- Optimizing Core Web Vitals (LCP, INP, CLS).
|
|
24
|
+
- Preparing a site for Google AI Mode and ChatGPT Search indexing.
|
|
25
|
+
- Setting up a sitemap and `robots.txt`.
|
|
26
|
+
|
|
27
|
+
### 2026 SEO Landscape Changes
|
|
28
|
+
|
|
29
|
+
| 2024 (Old) | 2026 (Current) |
|
|
30
|
+
|---|---|
|
|
31
|
+
| AI Overviews (SGE) | **Google AI Mode** — integrated AI answers |
|
|
32
|
+
| FID metric (deprecated) | **INP** (Interaction to Next Paint) |
|
|
33
|
+
| Keyword density focus | **Topical authority + E-E-A-T** |
|
|
34
|
+
| Backlinks only | **Citations in AI responses** |
|
|
35
|
+
| `robots.txt` only | `robots.txt` + **`/llms.txt`** |
|
|
36
|
+
|
|
37
|
+
### Technical SEO Checklist
|
|
38
|
+
|
|
39
|
+
#### Core Web Vitals (2026 Targets)
|
|
40
|
+
```
|
|
41
|
+
LCP (Largest Contentful Paint) < 2.5s
|
|
42
|
+
INP (Interaction to Next Paint) < 200ms ← replaced FID
|
|
43
|
+
CLS (Cumulative Layout Shift) < 0.1
|
|
44
|
+
TTFB (Time to First Byte) < 600ms
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**INP Optimization** (the new critical metric):
|
|
48
|
+
```typescript
|
|
49
|
+
// INP is degraded by long tasks blocking the main thread
|
|
50
|
+
// Solution: Use React's useTransition to defer non-critical updates
|
|
51
|
+
import { useTransition } from 'react';
|
|
52
|
+
|
|
53
|
+
function SearchInput() {
|
|
54
|
+
const [isPending, startTransition] = useTransition();
|
|
55
|
+
|
|
56
|
+
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
57
|
+
startTransition(() => {
|
|
58
|
+
// Defer the expensive filtering to not block INP
|
|
59
|
+
setFilteredResults(filterData(e.target.value));
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
return <input onChange={handleChange} />;
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
#### Crawlability & Indexing
|
|
67
|
+
```typescript
|
|
68
|
+
// Next.js 15 — metadata API for complete SEO
|
|
69
|
+
// app/layout.tsx
|
|
70
|
+
export const metadata: Metadata = {
|
|
71
|
+
metadataBase: new URL('https://myapp.com'),
|
|
72
|
+
title: {
|
|
73
|
+
default: 'My SaaS — One-line value proposition',
|
|
74
|
+
template: '%s | My SaaS',
|
|
75
|
+
},
|
|
76
|
+
description: '150 characters max. Include primary keyword naturally.',
|
|
77
|
+
openGraph: {
|
|
78
|
+
type: 'website',
|
|
79
|
+
url: 'https://myapp.com',
|
|
80
|
+
siteName: 'My SaaS',
|
|
81
|
+
images: [{ url: '/og.png', width: 1200, height: 630 }],
|
|
82
|
+
},
|
|
83
|
+
twitter: { card: 'summary_large_image', creator: '@handle' },
|
|
84
|
+
robots: { index: true, follow: true },
|
|
85
|
+
alternates: { canonical: 'https://myapp.com' },
|
|
86
|
+
};
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// Dynamic sitemap.ts (Next.js App Router)
|
|
91
|
+
// app/sitemap.ts
|
|
92
|
+
import { MetadataRoute } from 'next';
|
|
93
|
+
|
|
94
|
+
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
|
95
|
+
const posts = await getBlogPosts();
|
|
96
|
+
|
|
97
|
+
return [
|
|
98
|
+
{ url: 'https://myapp.com', lastModified: new Date(), changeFrequency: 'weekly', priority: 1 },
|
|
99
|
+
{ url: 'https://myapp.com/features', lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
|
|
100
|
+
...posts.map(p => ({
|
|
101
|
+
url: `https://myapp.com/blog/${p.slug}`,
|
|
102
|
+
lastModified: new Date(p.updatedAt),
|
|
103
|
+
changeFrequency: 'monthly' as const,
|
|
104
|
+
priority: 0.6,
|
|
105
|
+
})),
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Structured Data (JSON-LD) for AI Citation
|
|
111
|
+
```html
|
|
112
|
+
<!-- Organization schema — establishes brand entity -->
|
|
113
|
+
<script type="application/ld+json">
|
|
114
|
+
{
|
|
115
|
+
"@context": "https://schema.org",
|
|
116
|
+
"@type": "Organization",
|
|
117
|
+
"name": "My SaaS",
|
|
118
|
+
"url": "https://myapp.com",
|
|
119
|
+
"logo": "https://myapp.com/logo.png",
|
|
120
|
+
"sameAs": [
|
|
121
|
+
"https://twitter.com/myapp",
|
|
122
|
+
"https://linkedin.com/company/myapp"
|
|
123
|
+
],
|
|
124
|
+
"contactPoint": {
|
|
125
|
+
"@type": "ContactPoint",
|
|
126
|
+
"contactType": "customer support",
|
|
127
|
+
"email": "support@myapp.com"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
</script>
|
|
131
|
+
|
|
132
|
+
<!-- SoftwareApplication schema for SaaS products -->
|
|
133
|
+
<script type="application/ld+json">
|
|
134
|
+
{
|
|
135
|
+
"@context": "https://schema.org",
|
|
136
|
+
"@type": "SoftwareApplication",
|
|
137
|
+
"name": "My SaaS",
|
|
138
|
+
"applicationCategory": "BusinessApplication",
|
|
139
|
+
"operatingSystem": "Web",
|
|
140
|
+
"offers": {
|
|
141
|
+
"@type": "Offer",
|
|
142
|
+
"price": "0",
|
|
143
|
+
"priceCurrency": "USD",
|
|
144
|
+
"description": "Free tier available"
|
|
145
|
+
},
|
|
146
|
+
"aggregateRating": {
|
|
147
|
+
"@type": "AggregateRating",
|
|
148
|
+
"ratingValue": "4.8",
|
|
149
|
+
"reviewCount": "247"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
</script>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### GEO — Google AI Mode Optimization
|
|
156
|
+
Google AI Mode (formerly AI Overviews) now powers the top of search results:
|
|
157
|
+
- **Be the source**: Write comprehensive, authoritative content on your core topics.
|
|
158
|
+
- **Q&A format**: Structure content as questions and answers — AI Mode quotes these directly.
|
|
159
|
+
- **Factual and specific**: Include statistics, named entities, and dates.
|
|
160
|
+
- **`/llms.txt`**: Add an AI-readable site index (see `seo-geo` skill).
|
|
161
|
+
- **Speed**: AI Mode favors fast-loading pages (TTFB < 600ms).
|
|
162
|
+
|
|
163
|
+
### On-Page SEO Standards
|
|
164
|
+
```
|
|
165
|
+
H1: One per page — primary keyword, compelling, < 60 chars
|
|
166
|
+
H2: Section headers — secondary keywords
|
|
167
|
+
H3: Sub-sections — long-tail keywords, FAQ answers
|
|
168
|
+
Meta Title: < 60 chars — keyword + brand
|
|
169
|
+
Meta Description: < 155 chars — keyword + CTA + benefit
|
|
170
|
+
URL: lowercase, hyphens, keyword-in-slug, < 5 segments
|
|
171
|
+
Images: Descriptive alt text, WebP format, lazy loading
|
|
172
|
+
Internal links: 3-5 per long-form page to related content
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
<a name="bahasa-indonesia"></a>
|
|
178
|
+
## Bahasa Indonesia
|
|
179
|
+
|
|
180
|
+
### Deskripsi
|
|
181
|
+
Audit SEO komprehensif mencakup SEO teknikal, optimasi on-page, data terstruktur, sitemap, Core Web Vitals, sinyal E-E-A-T, dan **Generative Engine Optimization (GEO)** untuk pencarian bertenaga AI (Google AI Mode, ChatGPT Search, Perplexity).
|
|
182
|
+
|
|
183
|
+
### Kondisi Pemicu
|
|
184
|
+
- Menjalankan audit SEO penuh pada aplikasi web yang ada.
|
|
185
|
+
- Mengoptimalkan SEO teknikal untuk situs Next.js / Astro baru.
|
|
186
|
+
- Menambahkan data terstruktur (JSON-LD) untuk rich result dan kutipan AI.
|
|
187
|
+
- Mengoptimalkan Core Web Vitals (LCP, INP, CLS).
|
|
188
|
+
- Mempersiapkan situs untuk indexing Google AI Mode dan ChatGPT Search.
|
|
189
|
+
|
|
190
|
+
### Perubahan Lanskap SEO 2026
|
|
191
|
+
|
|
192
|
+
| 2024 (Lama) | 2026 (Sekarang) |
|
|
193
|
+
|---|---|
|
|
194
|
+
| AI Overviews (SGE) | **Google AI Mode** — jawaban AI terintegrasi |
|
|
195
|
+
| Metrik FID (dihentikan) | **INP** (Interaction to Next Paint) |
|
|
196
|
+
| Fokus kepadatan keyword | **Otoritas topikal + E-E-A-T** |
|
|
197
|
+
| Hanya backlink | **Kutipan dalam respons AI** |
|
|
198
|
+
| Hanya `robots.txt` | `robots.txt` + **`/llms.txt`** |
|
|
199
|
+
|
|
200
|
+
### Checklist SEO Teknikal
|
|
201
|
+
|
|
202
|
+
#### Core Web Vitals (Target 2026)
|
|
203
|
+
- LCP < 2.5 detik
|
|
204
|
+
- **INP < 200ms** ← menggantikan FID
|
|
205
|
+
- CLS < 0.1
|
|
206
|
+
- TTFB < 600ms
|
|
207
|
+
|
|
208
|
+
**Optimasi INP**: Metrik kritis baru yang mengukur responsivitas interaksi. Gunakan `useTransition` React untuk menunda pembaruan non-kritis agar tidak memblokir thread utama.
|
|
209
|
+
|
|
210
|
+
#### Crawlability & Indexing
|
|
211
|
+
Gunakan Metadata API Next.js 15 untuk SEO lengkap: `title`, `description`, `openGraph`, `twitter`, `robots`, `alternates.canonical`. Buat sitemap dinamis dengan `app/sitemap.ts` yang menyertakan semua halaman statis dan konten dinamis.
|
|
212
|
+
|
|
213
|
+
### Data Terstruktur (JSON-LD) untuk Kutipan AI
|
|
214
|
+
Tambahkan schema `Organization` untuk membangun entitas merek dan schema `SoftwareApplication` untuk produk SaaS — termasuk `aggregateRating` jika tersedia.
|
|
215
|
+
|
|
216
|
+
### GEO — Optimasi Google AI Mode
|
|
217
|
+
Google AI Mode (sebelumnya AI Overviews) kini mendukung bagian atas hasil pencarian:
|
|
218
|
+
- Tulis konten yang komprehensif dan otoritatif tentang topik inti.
|
|
219
|
+
- Strukturkan konten sebagai Q&A — AI Mode langsung mengutip ini.
|
|
220
|
+
- Sertakan statistik, entitas bernama, dan tanggal.
|
|
221
|
+
- Tambahkan `/llms.txt` sebagai indeks situs yang dapat dibaca AI.
|
|
222
|
+
- Kecepatan: AI Mode lebih memilih halaman yang memuat cepat (TTFB < 600ms).
|
|
223
|
+
|
|
224
|
+
### Standar SEO On-Page
|
|
225
|
+
H1 satu per halaman, H2 untuk header seksi, meta title < 60 karakter, meta deskripsi < 155 karakter, URL lowercase dengan tanda hubung dan keyword di slug, alt text deskriptif untuk semua gambar, 3-5 internal link per halaman long-form.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
### 🎨 Automatic Visual Assets Generation Mandate (CRITICAL)
|
|
229
|
+
**MANDATORY**: Whenever you are building a new application, scaffolding a project, or finalizing the initial UI/UX, you MUST automatically use the `generate_image` tool to create a custom logo that perfectly matches the application's core concept and aesthetic.
|
|
230
|
+
This generated image MUST be explicitly used as:
|
|
231
|
+
1. The primary application logo (e.g., in the header/navbar).
|
|
232
|
+
2. The website favicon (`favicon.ico` or equivalent).
|
|
233
|
+
3. The Open Graph (OG) image for SEO metadata (`og:image`).
|
|
234
|
+
|
|
235
|
+
Do not use placeholders for these assets. Generate and integrate them automatically.
|