diff --git a/skills/parasite-seo/SKILL.md b/skills/parasite-seo/SKILL.md index ff1895f..05ad880 100644 --- a/skills/parasite-seo/SKILL.md +++ b/skills/parasite-seo/SKILL.md @@ -1,14 +1,16 @@ --- name: parasite-seo -description: Execute or manage buy-intent parasite SEO for young domains or client lead generation. Use when ranking high-purchase-intent long-tail queries via Medium Substack YouTube GitHub Instagram, automating programmatic SEO for ICP + location combinations, or productizing this as a Digital Operations Partner service for SMBs. Triggers on parasite SEO, buy-intent keywords, GEO optimization, local service lead gen automation, or client content pipelines that skip weak-domain ranking fights. +description: Execute or manage buy-intent parasite SEO for young domains or client lead generation. Use when ranking high-purchase-intent long-tail queries via YouTube Reddit Quora Medium Substack, automating programmatic SEO for ICP + location combinations, or productizing this as a Digital Operations Partner service for SMBs. Triggers on parasite SEO, buy-intent keywords, GEO optimization, local service lead gen automation, or client content pipelines that skip weak-domain ranking fights. --- -# Parasite SEO (Buy-Intent) +# Parasite SEO (Buy-Intent) — V3 ## Overview Skip the multi-year ranking war on weak/young domains. Generate and publish thousands of ultra-specific, high-purchase-intent long-tail answers on platforms Google and AI answer engines already trust. Automate the pipeline so it runs nightly. This is a core lead-generation capability for Digital Operations Partner clients (local services, professional practices, productized SMBs). +**Version 3 changes:** Platform persona layer, GBP separated from parasite, agency blog removed, tiered data synthesis, community-safe formatting. + ## When to Activate - Client or internal domain is <3 years old or has low authority @@ -20,11 +22,81 @@ Skip the multi-year ranking war on weak/young domains. Generate and publish thou ## Core Principles 1. Target only buy-intent long-tails. Volume is secondary to commercial intent. -2. Publish on high-authority parasite domains (Medium, Substack, YouTube, GitHub, Instagram). Rent their trust. -3. Every article must contain a unique statistic drawn from real client/internal data. Generic advice is never cited. +2. Publish on high-authority parasite domains. Rent their trust. +3. Every article must contain unique value drawn from real data (tiered: proprietary → aggregated → service knowledge). Never cite generic filler. 4. Track every keyword with a unique constraint so crashes cannot double-post. -5. Verify the public URL is live before marking success. Automation often reports false positives on drafts. -6. Failed keywords return to the pool. Never permanently consume a keyword on a failed publish. +5. Verify the public URL is live AND publicly accessible (HTTP 200, no login wall, contains target keyword) before marking success. +6. Failed keywords return to the pool. Never permanently consume a keyword on a failed or unverified publish. +7. **Platform persona matters:** Content MUST match native community expectations or accounts get banned. + +## Platform Priority Matrix (V2+) + +Rank platforms by actual SEO + GEO citation value, not theoretical authority: + +| Rank | Platform | SEO Value | GEO Value | Notes | +|------|----------|-----------|-----------|-------| +| 1 | Google Business Profile posts | High | High | Owned local signal — see GBP section below | +| 2 | YouTube descriptions + pinned comments | High | Medium | Google-owned, trusted by AI engines | +| 3 | Reddit (niche/local subreddits) | Medium | High | Perplexity/ChatGPT cite these — PERSONA REQUIRED | +| 4 | Quora (topic answers) | Medium | Medium | AI Overview sources — EXPERT PERSONA REQUIRED | +| 5 | Medium/Substack | Low | Low | TOS risk, spam penalty, degrading GEO value | + +**Removed:** Agency-owned blog — defeats the purpose if the domain is weak. This playbook is for renting authority, not building it. + +## GBP Posts — Owned Local Signals (NOT Parasite SEO) + +GBP posts are a separate category. They are: +- **Owned assets**, not rented authority +- **Character-limited** (1,500 chars max, ~1000 recommended) +- **Time-limited** (expire after 6 months, best impact first 2-4 weeks) +- **CTA-optimized** (must include "Book Now", "Call", or "Learn More" button) + +**GBP Post Format:** +- Headline with target keyword +- 1-2 short paragraphs with real data point (Tier 1: GBP rating, review count, years in business) +- Strong CTA matching the keyword intent +- Relevant service photo +- NO FAQ section (wastes character budget) +- NO quotable summary block (too long for GBP) + +**GBP Cadence:** 2-4 posts per week per location. Rotate keywords. Never repeat the same keyword on GBP within 30 days. + +## Community Platform Persona Layer (V3 — Critical) + +Publishing from a business account or with corporate tone on community platforms gets you banned. Every community platform requires a distinct persona: + +### Reddit Formatting Rules +- **Must appear as a genuine community member**, not a business +- Use local knowledge and personal experience framing +- Reference the client as "this place I've been using" or "a salon in [area]" +- Include specific details that only a real user would know (neighborhood references, parking tips, personal experience) +- **Never** include: phone numbers, direct links, pricing, "we offer", corporate language +- **Cadence:** Max 1 post per subreddit per week from the same account +- **Account requirement:** 30+ day old account with genuine post/comment history in other subs +- **Format example:** "Moved to Folsom recently — has anyone had experience with a salon that does good bridal packages? A friend recommended Phoenix Salon+Spa near El Dorado Hills and I heard they handle [specific detail]. Anyone else tried them for weddings?" + +### Quora Formatting Rules +- **Must appear as an industry expert**, not a salesperson +- Answer genuine questions with technical depth +- Use the client as a case study or real-world example within the explanation +- Include process details, industry knowledge, or technical nuance +- **Allowed:** Mentioning the business by name as an example, linking to portfolio/gallery +- **Not allowed:** Direct sales pitch, "book now", contact info in answer body +- **Cadence:** Max 2 answers per day per account on different questions +- **Account requirement:** Verified professional profile with credentials listed + +### YouTube Formatting Rules +- Video content preferred, but descriptions and pinned comments also rank +- Description: First 3 lines = direct answer to target query with keyword +- Pinned comment: Extended answer with FAQ-style breakdown +- Tags: Include target keyword + location variants +- **Cadence:** 1-2 videos per week, descriptions can be updated more frequently + +### Medium/Substack Formatting Rules +- Full article format with quotable summary block +- Must have genuine editorial value — not just keyword stuffing +- **Cadence:** Max 1-2 per account per day +- **Account requirement:** Multiple accounts recommended (3-5) to avoid TOS violations ## Required Inputs (collect or confirm before running) @@ -32,7 +104,7 @@ Skip the multi-year ranking war on weak/young domains. Generate and publish thou - ICP / vertical list (e.g. personal injury lawyers, med spas, dental practices, yoga studios — prioritize by customer LTV) - Location list (cities, metros, or "near me" variants) - Real question list from Google Search Console (or equivalent) filtered to questions -- Platform accounts + credentials or API access (Medium, Substack, YouTube, GitHub, Instagram) +- Platform accounts + credentials or API access (see Platform Priority Matrix above) - Access to proprietary data sources for unique stats (billing, analytics, support tickets, reviews) - Target publish cadence (default: 1 original article per platform account per night) @@ -45,44 +117,124 @@ Skip the multi-year ranking war on weak/young domains. Generate and publish thou ` alternative for ` 3. Score and sort so highest commercial-value combinations (high LTV verticals first) publish earliest. 4. Store in a durable table with unique constraint on the full keyword string + platform. +5. **V3 addition:** Tag each keyword with recommended platform based on query type: + - "best X in Y" → GBP Post + YouTube description + - "how much does X cost" → Quora answer + - "X near me" → Reddit local sub + Quora + - "top rated X" → Reddit + Quora Example scale: 31 parents × 86 verticals × 99 cities = 166k+ unique queries. Generate once, publish for years. -## Content Format (mandatory for both SEO and GEO) - -Every piece must contain: +## Content Format (V3 — Platform-Dependent) +### Standard Parasite Article (Medium/Substack) - Quotable summary block (3–5 sentences) at the absolute top — this is what AI engines lift. - Direct answer to the query in the first paragraph (no fluff intro). -- FAQ section built from the real Search Console questions collected earlier. +- FAQ section built from real Search Console questions (or seeded high-intent questions if GSC unavailable). - Exactly one image — filename and alt text = the target keyword. - Internal links to earlier posts published on the same platform account. -- At least one unique, non-invented statistic from real data (billing history, product analytics, support tickets, review aggregates, etc.). +- At least one data point from the tiered data system (see below). -Never invent numbers. If proprietary data is unavailable, stop and request it. +### Reddit Post Format +- Community-native framing (see Persona Layer above) +- Specific, detailed, experience-based +- No links, no phone numbers, no pricing +- Target keyword naturally embedded in text +- Reference to business is incidental, not promotional + +### Quora Answer Format +- Expert perspective with technical depth +- Target keyword in first paragraph +- Process explanation or comparison +- Business mentioned as real-world example +- CTA: subtle portfolio link or "check their work" (never "book now") + +### GBP Post Format +- Headline with target keyword +- 1-2 short paragraphs (max ~1000 chars) +- Real data point (Tier 1: rating, reviews, years) +- Strong CTA with GBP button +- Service photo + +### YouTube Description Format +- First 3 lines: direct answer to query with keyword +- Expanded details in following paragraphs +- Timestamps if video content +- Tags: keyword + location variants + +## Tiered Data Synthesis (V3 — Replaces Single Stat Requirement) + +The "one unique statistic per article" rule is mathematically impossible at scale. V3 uses three tiers: + +**Tier 1 (Proprietary — Best):** Real client data +- GBP rating + review count +- Years in business +- Client volume / annual appointments +- Service pricing ranges +- Client testimonials / transformation results +- Booking patterns (e.g., "90% of bridal clients book 6+ months ahead") + +**Tier 2 (Aggregated — Acceptable):** Industry data from credible sources +- State licensing board statistics +- Industry association data (NHA, AHA) +- Review aggregate comparisons +- **Must be attributed** ("According to the National Hair Products Association...") +- **Never present as proprietary** + +**Tier 3 (Service Knowledge — Acceptable for community platforms):** Unique positioning +- Specific technique descriptions only this business uses +- Before/after references +- Owner expertise / training background +- Process details competitors don't publish +- **No statistics required** — uniqueness comes from specific knowledge + +**Rule:** Tier 1 and 2 require real data. If unavailable, use Tier 3. **Never invent numbers.** If no tier data is available for a keyword, skip it and return to the pool with reason "no_data_available". ## Automation Prompt (hand to Claude / Hermes / Leonard) Use this (or a refined version) as the core routine: ``` -Build me a nightly parasite SEO routine. Generate a keyword universe from my parent keywords crossed with buyer verticals and cities, scored so the most commercial combinations publish first. Each night, publish one original article per account across my platform accounts, one keyword each, never repeating a keyword. Track what published in its own table with a unique constraint on the keyword so a crash cannot double post. Every article gets a quotable summary block up top, an FAQ from my real Search Console questions, one generated image with the keyword as filename and alt text, and internal links to my earlier posts on that same account. Only cite statistics from my own database, never invented ones. Record what failed each night and feed it into the next run. +Build me a nightly parasite SEO routine. Generate a keyword universe from my parent keywords crossed with buyer verticals and cities, scored so the most commercial combinations publish first. Each night, publish one original article per account across my platform accounts, one keyword each, never repeating a keyword. Track what published in its own table with a unique constraint on the keyword + platform so a crash cannot double post. Every article follows the platform-specific format rules (persona layer for community platforms, GBP format for local signals, standard article for Medium/Substack). Use tiered data: proprietary stats first, then attributed industry data, then service knowledge. Only cite real data, never invented ones. Verify every published URL is publicly accessible (HTTP 200, no login wall, contains keyword). Record what failed each night with exact reason and feed it back into the pool. ``` After the first run, instruct the model to improve itself on every failure. ## Platform Execution Notes -- Prefer real APIs where available. -- For platforms without APIs, use browser automation (Claude browser use or equivalent Playwright/Puppeteer). -- After every publish, verify the returned URL is publicly accessible and not a draft/editor page. +- Prefer real APIs where available (GBP API, YouTube API, Reddit API). +- For platforms without APIs, use browser automation (Playwright/Puppeteer) with CAPTCHA detection. +- After every publish, run the **verification chain**: + 1. HTTP GET returned URL → confirm 200 + 2. Confirm page is public (not behind login wall) + 3. Confirm page content contains target keyword + 4. Only then mark as "published" - Record the verified public URL, not the editor URL. +- **V3 addition:** Daily health check — automated test publish every morning to confirm pipeline is alive. Log result. ## Failure Handling (critical) - If publish reports success but URL is not public → treat as failure, return keyword to pool, log the exact failure reason. - Login / auth failures → do not consume the keyword. - Image generation or data lookup failures → abort that article, return keyword, continue with next. +- CAPTCHA / Cloudflare block → log as "platform_block", switch to next platform for that keyword, alert for manual review if all platforms blocked. +- Account suspension detected → quarantine that account immediately, shift volume to backup accounts, alert for account recovery. +- **Never mark a keyword consumed on a failed or unverified publish.** + +## Tracking Requirements + +Maintain a single source of truth table (or spreadsheet / DB) with at minimum: + +- keyword (unique) +- platform +- persona_type (reddit_local / quora_expert / youtube_desc / gbp_post / medium_article) +- status (queued / published / failed) +- published_url (only when verified public) +- published_at +- failure_reason (if any) +- data_tier_used (tier1 / tier2 / tier3) +- next_retry_after (for failed items) +- account_used (which account published it) ## Integration with Digital Operations Partner @@ -92,7 +244,7 @@ This skill is a productizable module inside the Digital Operations Partner offer - Typical clients: local service businesses, professional practices, and young SaaS/product companies (examples already in use: salons, medspas, law firms). - Delivery model: one-time setup of keyword universe + platform accounts + data connectors, then monthly recurring management + reporting of published pieces and resulting leads/citations. - Leonard (or Hermes agents) can own the nightly execution, verification, and weekly performance summary for each client. -- Unique stats come from the client's own systems (or agency-collected review/performance data) so every piece has proprietary signal that competitors cannot copy. +- Unique data comes from the client's own systems (or agency-collected review/performance data) so every piece has proprietary signal that competitors cannot copy. When operating for a client, always: @@ -100,27 +252,19 @@ When operating for a client, always: 2. Use client-branded or neutral voice as specified in the engagement. 3. Report verified public URLs and any ranking/citation signals back into the client dashboard or weekly ops report. -## Tracking Requirements - -Maintain a single source of truth table (or spreadsheet / DB) with at minimum: - -- keyword (unique) -- platform -- status (queued / published / failed) -- published_url (only when verified public) -- published_at -- failure_reason (if any) -- unique_stat_used -- next_retry_after (for failed items) - ## Safety and Quality Rules - Never invent statistics or fabricate data sources. - Never mark a keyword consumed on a failed or unverified publish. - Prefer quality and uniqueness over volume on any single night. - If the client has an existing brand voice or compliance requirements, load those first and enforce them. +- **V3:** Never post from a business account on community platforms (Reddit/Quora). Use persona accounts with genuine history. +- **V3:** GBP posts are owned signals, not parasite SEO — categorize and track separately. +- **V3:** Agency blog is NOT a parasite platform — removed from scope. ## Related Resources - Original playbook source: the Aug 2026 @borjafat thread on buy-intent parasite SEO. +- V2 upgrade: Platform priority matrix, tiered data, HTTP verification, expanded GEO platforms. +- V3 upgrade: Persona layer, GBP separation, agency blog removal, community-safe formatting. - For platform-specific publishing scripts or data connectors, place them under `references/` or `scripts/` and load on demand.