$npx -y skills add Affitor/affiliate-skills --skill seo-auditAudit affiliate blog posts and landing pages for SEO issues. Triggers on: "audit my blog post for SEO", "check my SEO", "SEO review", "improve my rankings", "SEO checklist", "on-page SEO audit", "keyword optimization check", "why isn't my page ranking", "SEO score", "content qual
| 1 | # SEO Audit |
| 2 | |
| 3 | Audit affiliate blog posts and landing pages for SEO issues — on-page optimization, keyword usage, meta tags, content quality signals, affiliate link attributes, and internal linking. Output is a 10-dimension SEO scorecard with a prioritized fix-it checklist. |
| 4 | |
| 5 | ## Stage |
| 6 | |
| 7 | S6: Analytics — 53% of all website traffic comes from organic search. For affiliate bloggers, SEO is the most sustainable traffic source — but most affiliate content has basic SEO mistakes that tank rankings. This skill catches those mistakes and provides quick wins. |
| 8 | |
| 9 | ## When to Use |
| 10 | |
| 11 | - User has a blog post or landing page and wants an SEO review |
| 12 | - User asks "why isn't my page ranking?" or "check my SEO" |
| 13 | - User wants to improve search rankings for affiliate content |
| 14 | - User says "SEO audit", "SEO checklist", "on-page optimization" |
| 15 | - User wants to check affiliate link attributes (nofollow, sponsored) |
| 16 | - Chaining from S3 (blog) or S4 (landing): audit content before or after publishing |
| 17 | |
| 18 | ## Input Schema |
| 19 | |
| 20 | ```yaml |
| 21 | content: string # REQUIRED — the content to audit (markdown, HTML, or URL) |
| 22 | # If URL, will attempt to fetch and analyze |
| 23 | |
| 24 | target_keyword: string # REQUIRED — primary keyword to optimize for |
| 25 | # (e.g., "best AI video tools", "HeyGen review") |
| 26 | |
| 27 | content_type: string # OPTIONAL — "blog_post" | "landing_page" |
| 28 | # Default: "blog_post" |
| 29 | |
| 30 | competitor_urls: # OPTIONAL — competitor pages to compare against |
| 31 | - string # e.g., ["competitor.com/heygen-review"] |
| 32 | |
| 33 | secondary_keywords: # OPTIONAL — additional keywords to check |
| 34 | - string # e.g., ["AI video generator", "HeyGen pricing"] |
| 35 | ``` |
| 36 | |
| 37 | **Chaining context**: If S3 (blog) or S4 (landing page) was run in the same conversation, pull the generated content directly for audit. The user should not have to paste content just generated. |
| 38 | |
| 39 | ## Workflow |
| 40 | |
| 41 | ### Step 1: Analyze Content Structure |
| 42 | |
| 43 | Check: |
| 44 | - **Word count**: Is it competitive? (blog: 1500+ words, landing: varies) |
| 45 | - **Heading structure**: H1 present and unique? H2/H3 hierarchy logical? |
| 46 | - **Paragraph length**: Short paragraphs for readability? |
| 47 | - **Content depth**: Does it cover the topic comprehensively? |
| 48 | |
| 49 | ### Step 2: Check Keyword Usage |
| 50 | |
| 51 | Analyze: |
| 52 | - **Title tag**: Contains target keyword? Under 60 characters? |
| 53 | - **H1**: Contains target keyword? |
| 54 | - **First 100 words**: Keyword appears naturally? |
| 55 | - **Keyword density**: 1-2% optimal (not stuffing, not absent) |
| 56 | - **Keyword in subheadings**: At least one H2 contains keyword or variant? |
| 57 | - **LSI keywords**: Related terms present for topical depth? |
| 58 | |
| 59 | ### Step 3: Evaluate Meta Tags |
| 60 | |
| 61 | Check: |
| 62 | - **Title tag length**: 50-60 characters optimal |
| 63 | - **Meta description**: Present? 150-160 characters? Contains keyword? Compelling? |
| 64 | - **OG tags**: Open Graph tags for social sharing |
| 65 | - **Canonical URL**: Present and correct? |
| 66 | |
| 67 | ### Step 4: Check E-E-A-T Signals |
| 68 | |
| 69 | Evaluate: |
| 70 | - **Experience**: First-person experience with the product? |
| 71 | - **Expertise**: Author credentials or demonstrated knowledge? |
| 72 | - **Authoritativeness**: Citing sources, linking to official pages? |
| 73 | - **Trustworthiness**: Transparent disclosure, balanced (pros AND cons)? |
| 74 | |
| 75 | ### Step 5: Check Affiliate Link Attributes |
| 76 | |
| 77 | Verify: |
| 78 | - All affiliate links have `rel="nofollow sponsored"` (Google requirement) |
| 79 | - Links are not cloaked in a way that violates search guidelines |
| 80 | - FTC disclosure is present and above the fold |
| 81 | - Links open in new tab (`target="_blank"`) for UX |
| 82 | |
| 83 | ### Step 6: Check Internal Linking |
| 84 | |
| 85 | Evaluate: |
| 86 | - Links to related content on the same site? |
| 87 | - Anchor text is descriptive (not "click here")? |
| 88 | - Table of contents for long content? |
| 89 | |
| 90 | ### Step 7: Score on 10 Dimensions |
| 91 | |
| 92 | Rate each 1-10: |
| 93 | 1. Keyword optimization |
| 94 | 2. Content depth and quality |
| 95 | 3. Title tag and meta description |
| 96 | 4. Heading structure |
| 97 | 5. E-E-A-T signals |
| 98 | 6. Affiliate link compliance |
| 99 | 7. Internal linking |
| 100 | 8. Readability and formatting |
| 101 | 9. Mobile friendliness indicators |
| 102 | 10. Technical SEO basics |
| 103 | |
| 104 | ### Step 8: Generate Fix-It Checklist |
| 105 | |
| 106 | Prioritize fixes by impact: |
| 107 | - **Quick wins**: Fix in 5 minutes, big impact (meta tags, keyword in H1) |
| 108 | - **Medium effort**: Fix in 30 minutes (add sections, improve depth) |
| 109 | - **Major revision**: Fix in 2+ hours (restructure content, ad |