$npx -y skills add zubair-trabzada/ai-marketing-claude --skill market-seoThis script extracts: - Title tag and meta description - Open Graph tags - Heading hierarchy (H1-H6) - Links (internal and external) - Images and alt text status - Forms and CTAs - Schema/structured data - Social links - Tracking scripts - Viewport meta tag (mobile-friendliness i
| 1 | # SEO Content Audit |
| 2 | |
| 3 | ## Skill Purpose |
| 4 | Perform a comprehensive SEO audit of a webpage or website, covering on-page SEO, content quality (E-E-A-T), keyword analysis, technical SEO, and content strategy. This skill combines automated analysis via `scripts/analyze_page.py` with expert-level manual review to produce an actionable SEO audit document. |
| 5 | |
| 6 | ## When to Use |
| 7 | - User provides a URL and asks for SEO analysis, audit, or recommendations |
| 8 | - User wants to improve organic search rankings and traffic |
| 9 | - User asks about on-page SEO, meta tags, content quality, or technical SEO |
| 10 | - User wants a content gap analysis or content strategy recommendations |
| 11 | - Triggered by `/market seo <url>` or `/market seo` |
| 12 | |
| 13 | ## How to Execute |
| 14 | |
| 15 | ### Step 1: Run Automated Analysis |
| 16 | Use the Python analysis script to gather baseline data: |
| 17 | |
| 18 | ```bash |
| 19 | python3 scripts/analyze_page.py <url> |
| 20 | ``` |
| 21 | |
| 22 | This script extracts: |
| 23 | - Title tag and meta description |
| 24 | - Open Graph tags |
| 25 | - Heading hierarchy (H1-H6) |
| 26 | - Links (internal and external) |
| 27 | - Images and alt text status |
| 28 | - Forms and CTAs |
| 29 | - Schema/structured data |
| 30 | - Social links |
| 31 | - Tracking scripts |
| 32 | - Viewport meta tag (mobile-friendliness indicator) |
| 33 | - Canonical tag |
| 34 | - Robots meta directives |
| 35 | |
| 36 | Capture the JSON output and use it as the foundation for the manual analysis. |
| 37 | |
| 38 | ### Step 2: On-Page SEO Checklist |
| 39 | Evaluate each element and score it as Pass, Needs Work, or Fail. |
| 40 | |
| 41 | #### Title Tag |
| 42 | | Criteria | Best Practice | Check | |
| 43 | |---|---|---| |
| 44 | | Exists | Every page must have a unique title tag | Pass/Fail | |
| 45 | | Length | 50-60 characters (displays fully in SERPs) | Pass/Needs Work/Fail | |
| 46 | | Primary keyword | Contains the primary target keyword | Pass/Needs Work/Fail | |
| 47 | | Keyword position | Primary keyword appears near the beginning | Pass/Needs Work/Fail | |
| 48 | | Brand name | Includes brand name (typically at the end, separated by pipe or dash) | Pass/Needs Work/Fail | |
| 49 | | Uniqueness | Different from other pages on the site | Pass/Fail | |
| 50 | | Compelling | Would a searcher want to click this? | Pass/Needs Work/Fail | |
| 51 | |
| 52 | **Common title tag mistakes:** |
| 53 | - Too long (truncated in search results) |
| 54 | - Missing primary keyword |
| 55 | - Keyword stuffing ("Best SEO Tool | Top SEO Tool | SEO Software | SEO Platform") |
| 56 | - Using the same title across multiple pages |
| 57 | - Generic titles ("Home", "Welcome", "Page 1") |
| 58 | - Missing brand name |
| 59 | |
| 60 | #### Meta Description |
| 61 | | Criteria | Best Practice | Check | |
| 62 | |---|---|---| |
| 63 | | Exists | Every page should have a meta description | Pass/Fail | |
| 64 | | Length | 150-160 characters | Pass/Needs Work/Fail | |
| 65 | | Primary keyword | Naturally includes the target keyword | Pass/Needs Work/Fail | |
| 66 | | Call to action | Includes a reason to click | Pass/Needs Work/Fail | |
| 67 | | Unique | Different from other pages | Pass/Fail | |
| 68 | | Compelling | Acts as ad copy for the search result | Pass/Needs Work/Fail | |
| 69 | |
| 70 | #### Heading Hierarchy (H1-H6) |
| 71 | | Criteria | Best Practice | Check | |
| 72 | |---|---|---| |
| 73 | | H1 exists | Exactly one H1 per page | Pass/Fail | |
| 74 | | H1 contains keyword | Primary keyword in the H1 | Pass/Needs Work/Fail | |
| 75 | | H1 differs from title | H1 and title tag are different (but related) | Pass/Needs Work/Fail | |
| 76 | | Logical hierarchy | H2 under H1, H3 under H2 (no skipping levels) | Pass/Needs Work/Fail | |
| 77 | | Descriptive subheadings | H2s and H3s describe content sections clearly | Pass/Needs Work/Fail | |
| 78 | | Keywords in subheadings | Secondary keywords appear naturally in H2s/H3s | Pass/Needs Work/Fail | |
| 79 | | Not overused | Headers used for structure, not styling | Pass/Needs Work/Fail | |
| 80 | |
| 81 | #### Image Optimization |
| 82 | | Criteria | Best Practice | Check | |
| 83 | |---|---|---| |
| 84 | | Alt text | Every image has descriptive alt text | Pass/Needs Work/Fail | |
| 85 | | Alt text quality | Alt text describes the image and includes keywords naturally | Pass/Needs Work/Fail | |
| 86 | | File names | Descriptive filenames (not IMG_001.jpg) | Pass/Needs Work/Fail | |
| 87 | | File size | Images optimized for web (WebP preferred, compressed) | Pass/Needs Work/Fail | |
| 88 | | Lazy loading | Below-fold images use lazy loading | Pass/Needs Work/Fail | |
| 89 | | Responsive images | Uses srcset or picture element for different sizes | Pass/Needs Work/Fail | |
| 90 | | Decorative images | Decorative images have empty alt="" (not missing alt) | Pass/Needs Work/Fail | |
| 91 | |
| 92 | #### Internal Linking |
| 93 | | Criteria | Best Practice | Check | |
| 94 | |---|---|---| |
| 95 | | Internal links present | Page links to other relevant pages on the site | Pass/Needs Work/Fail | |
| 96 | | Anchor text | Internal link anchor text is descriptive (not "click here") | Pass/Needs Work/Fail | |
| 97 | | Deep linking | Links go to specific pages, not just homepage | Pass/Needs Work/Fail | |
| 98 | | Relevant context | Links are contextually relevant to surrounding content | Pass/Needs Work/Fail | |
| 99 | | Reasonable count | 3-10 internal links per 1,000 words of content | Pass/Needs Work/Fail | |
| 100 | | Broken links | No broken internal links (404s) | Pass/Fail | |
| 101 | |
| 102 | #### URL Structure |
| 103 | | Criteria | Best Practice | Check | |
| 104 | |---|---|---| |
| 105 | | Readable | URL is human-readable and descriptive | Pass/Needs Work/Fail | |
| 106 | | Keywords | URL contains relevant keywords | Pass/Needs Work/Fail |