diff --git a/seo-playbook/index.md b/seo-playbook/index.md new file mode 100644 index 0000000..d0fe3ef --- /dev/null +++ b/seo-playbook/index.md @@ -0,0 +1,72 @@ +--- +title: SEO Playbook — On-Page, Off-Page, and GEO/AEO Ranking Factors +description: Comprehensive SEO reference covering on-page parameters, off-page signals, Core Web Vitals, and GEO/AEO for AI answer engines. Source: madebyaris/rankmyseo OSS toolkit. +status: active +category: technical +tags: [seo, web-vitals, geo, aeo, structured-data, content-strategy, rankmyseo] +draft: true +created: 2026-07-29 +updated: 2026-07-29 +origin: buzz://d8a718be-031f-4a6e-9f5c-a55466641654/efbe934206e056b0ada5fc080f0d64947c32d42999d08ded8e69a19b78969161 +--- + +# SEO Playbook — On-Page, Off-Page, and GEO/AEO + +## Summary + +A practitioner reference for what makes a site rank, covering on-page SEO parameters, off-page authority signals, Core Web Vitals thresholds, and the emerging frontier of GEO/AEO (being cited by AI answer engines). Sourced from the RankMySEO open-source toolkit by Aris Setiawan (@madebyaris), an Indonesian developer from Sidoarjo. + +## Research Question + +What are the concrete, measurable SEO parameters that affect search ranking, and how do they map to an audit tool? + +## Scope + +- On-page SEO: metadata, content quality, HTML structure, media +- Off-page SEO: backlinks, brand signals, local SEO, digital PR +- Core Web Vitals: LCP, INP, CLS thresholds (2026) +- GEO/AEO: optimization for AI Overviews, ChatGPT Search, Perplexity +- Not covered: PPC/paid search, social media marketing, content writing tips + +## Key Findings + +- **SEO has five pillars**: Technical SEO (foundation), On-Page (content & HTML), Off-Page (authority & trust), UX/Core Web Vitals, and GEO/AEO (AI answer engines) +- **On-page audit parameters are concrete**: title length (50-60 chars), meta description (70-160 chars), single H1, heading structure, Open Graph tags, JSON-LD structured data, image alt text, content depth (≥250 words), html lang, mobile viewport, HTTPS, indexability +- **Core Web Vitals (2026)**: LCP < 2.5s, INP < 200ms (replaced FID in March 2024), CLS < 0.1 +- **Off-page is out of scope for the OSS audit engine** (no backlink crawling in v1) but documented as practitioner reference +- **GEO/AEO is the 2026 frontier**: being the cited source inside AI Overviews, ChatGPT Search, Perplexity, Gemini — the same fundamentals (clear, factual, well-structured, trustworthy content) win here +- **Meta-principle**: Google rewards demonstrable expertise, trust, and genuinely good UX — not tricks +- **RankMySEO maps each parameter to a check ID** (e.g. `title-length`, `meta-description`, `cwv-lcp`) enabling automated regression testing + +## Sources + +- [SEO Playbook (raw markdown)](https://raw.githubusercontent.com/madebyaris/rankmyseo/refs/heads/main/docs/seo-playbook.md) — the primary document analyzed +- [RankMySEO GitHub repo](https://github.com/madebyaris/rankmyseo) — OSS toolkit, Apache-2.0, npm `@rankmyseo` scope, 5 stars +- [Google Search Central](https://developers.google.com/search/docs) + Search Quality Rater Guidelines (E-E-A-T definition) +- [web.dev](https://web.dev/vitals/) — Core Web Vitals source of truth +- [Schema.org](https://schema.org/) — structured data vocabulary +- Author: Aris Setiawan (@madebyaris), Sidoarjo, Indonesia — [madebyaris.com](https://madebyaris.com) + +## Detail Files + +- [[seo-playbook/sources|Sources]] — full reference list with links + +## Related Research + +- (none yet) + +## Discussion + +User asked to fetch and research the SEO playbook from the RankMySEO repo. The document is the knowledge base behind the on-page checks in the RankMySEO audit engine. It covers both on-page and off-page SEO comprehensively, with mermaid diagrams and parameter tables that map directly to check IDs in the codebase. + +Origin thread: buzz://d8a718be-031f-4a6e-9f5c-a55466641654/efbe934206e056b0ada5fc080f0d64947c32d42999d08ded8e69a19b78969161 + +## Next Steps + +- [ ] Evaluate RankMySEO as a tool for our own projects (job aggregator, law retrieval, research site) +- [ ] Apply SEO parameters to research.rasyidanaf.com when publishing via Quartz +- [ ] Investigate GEO/AEO optimization for being cited in AI answer engines + +## Conclusion + +The SEO playbook is a solid practitioner reference covering the full spectrum of ranking factors. The RankMySEO toolkit itself is a mature OSS project (M0-M5 implemented, 20+ packages, multi-framework support) that could be useful for SEO auditing of our own sites. The GEO/AEO section is particularly relevant as AI search engines become more prominent. diff --git a/seo-playbook/sources.md b/seo-playbook/sources.md new file mode 100644 index 0000000..3ee2ef6 --- /dev/null +++ b/seo-playbook/sources.md @@ -0,0 +1,90 @@ +# Sources — SEO Playbook Research + +## Primary document + +- [SEO Playbook (raw markdown)](https://raw.githubusercontent.com/madebyaris/rankmyseo/refs/heads/main/docs/seo-playbook.md) — the document analyzed in this research topic + +## Toolkit + +- [RankMySEO GitHub repo](https://github.com/madebyaris/rankmyseo) — OSS SEO toolkit, Apache-2.0 +- [RankMySEO Wiki](https://github.com/madebyaris/rankmyseo/wiki) — architecture, roadmap, design decisions +- npm scope: [@rankmyseo](https://www.npmjs.com/org/rankmyseo) (v0.3.x) +- Author: Aris Setiawan (@madebyaris), Sidoarjo, Indonesia — [madebyaris.com](https://madebyaris.com) + +## Authoritative SEO sources (referenced in the playbook) + +- [Google Search Central](https://developers.google.com/search/docs) — official Google search documentation +- [Google Search Essentials](https://developers.google.com/search/docs/essentials) — formerly Webmaster Guidelines +- [Search Quality Rater Guidelines](https://developers.google.com/search/blog/2024/11/rater-guidelines-update) — definition of E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) +- [web.dev Core Web Vitals](https://web.dev/vitals/) — source of truth for LCP, INP, CLS +- [Schema.org](https://schema.org/) — structured data vocabulary +- [Bing Webmaster Guidelines](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba232) — now relevant for ChatGPT Search + +## Practitioners and publications (referenced in the playbook) + +- *The Art of SEO* (Enge et al.) — book +- [Backlinko](https://backlinko.com/) — blog +- [Ahrefs Blog](https://ahrefs.com/blog/) — blog +- [Moz Blog](https://moz.com/blog) — blog +- Aleyda Solís — international SEO consultant +- Lily Ray — E-E-A-T and algorithm update analysis +- Marie Haynes — algorithm updates and quality rater perspectives + +## RankMySEO on-page audit checks (parameter → check ID) + +| Parameter | Target | Check ID | +|-----------|--------|----------| +| Title length | 50-60 chars, keyword front | `title-length` | +| Meta description | 70-160 chars | `meta-description` | +| Canonical URL | self-referencing / preferred URL | `canonical` | +| Single H1 | exactly one | `single-h1` | +| Subheading structure | ≥1 H2 | `heading-structure` | +| Open Graph | og:title/description/image | `og-tags` | +| Structured data | valid JSON-LD | `json-ld` | +| Image alt text | every meaningful image | `image-alt` | +| Content depth | not thin (≥ ~250 words) | `content-depth` | +| HTML lang | declared | `lang-attribute` | +| Mobile viewport | `` | `viewport-meta` | +| Indexable | no `noindex` | `robots-indexable` | +| HTTPS | served over TLS | `https` | +| LCP | < 2.5s | `cwv-lcp` | +| INP | < 200ms | `cwv-inp` | +| CLS | < 0.1 | `cwv-cls` | + +## Core Web Vitals thresholds (2026) + +| Metric | Good | Measures | +|--------|------|----------| +| LCP | < 2.5s | loading | +| INP | < 200ms | responsiveness (replaced FID, March 2024) | +| CLS | < 0.1 | visual stability | + +## Off-page parameters (practitioner reference, not in OSS v1) + +| Parameter | What good looks like | +|-----------|---------------------| +| Referring domains | steady growth of unique, relevant domains | +| Link quality | high-authority, topically relevant sources | +| Anchor text profile | mostly branded/natural; small exact-match % | +| dofollow/nofollow mix | natural blend | +| Link velocity | organic pace, no spikes | +| Toxic links | monitored; disavow only clear spam | +| Branded search | rising brand queries | +| Brand mentions | linked + unlinked | +| Google Business Profile | complete, verified, active | +| Reviews | volume + rating + recency + responses | +| NAP consistency | identical across citations | +| Digital PR | earned coverage in authoritative media | + +## RankMySEO toolkit overview + +- **License**: Apache-2.0 +- **Status**: M0-M5 implemented, published on npm under `@rankmyseo` scope (v0.3.x) +- **Stars**: 5 (as of 2026-07-29) +- **Commits**: 24 +- **Created**: 2026-06-24 +- **Architecture**: Monorepo (pnpm + Turborepo), headless core + framework adapters +- **Supports**: Node.js ≥ 20, Hono/Express/Next/Nitro/SvelteKit/Astro, SQLite + Postgres (Drizzle/Prisma/Kysely) +- **Multi-tenant**: every row scoped by `tenantId` + `projectId` +- **AI layer**: AI SDK tools + MCP server for dashboard customization (approval-gated) +- **20+ packages** under `@rankmyseo` scope (core, storage, server adapters, react/vue/svelte, ui, cli, agent, scanner, collector, datasource, scheduler)