Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 d
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 178% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 190% | 0% |
| case-19 | ✓→✗ | ▼ Worse | 191% | 0% |
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.
/market seo <url> or /market seoUse the Python analysis script to gather baseline data:
bashpython3 scripts/analyze_page.py <url>
This script extracts:
Capture the JSON output and use it as the foundation for the manual analysis.
Evaluate each element and score it as Pass, Needs Work, or Fail.
| Criteria | Best Practice | Check | |---|---|---| | Exists | Every page must have a unique title tag | Pass/Fail | | Length | 50-60 characters (displays fully in SERPs) | Pass/Needs Work/Fail | | Primary keyword | Contains the primary target keyword | Pass/Needs Work/Fail | | Keyword position | Primary keyword appears near the beginning | Pass/Needs Work/Fail | | Brand name | Includes brand name (typically at the end, separated by pipe or dash) | Pass/Needs Work/Fail | | Uniqueness | Different from other pages on the site | Pass/Fail | | Compelling | Would a searcher want to click this? | Pass/Needs Work/Fail |
Common title tag mistakes:
| Criteria | Best Practice | Check | |---|---|---| | Exists | Every page should have a meta description | Pass/Fail | | Length | 150-160 characters | Pass/Needs Work/Fail | | Primary keyword | Naturally includes the target keyword | Pass/Needs Work/Fail | | Call to action | Includes a reason to click | Pass/Needs Work/Fail | | Unique | Different from other pages | Pass/Fail | | Compelling | Acts as ad copy for the search result | Pass/Needs Work/Fail |
| Criteria | Best Practice | Check | |---|---|---| | H1 exists | Exactly one H1 per page | Pass/Fail | | H1 contains keyword | Primary keyword in the H1 | Pass/Needs Work/Fail | | H1 differs from title | H1 and title tag are different (but related) | Pass/Needs Work/Fail | | Logical hierarchy | H2 under H1, H3 under H2 (no skipping levels) | Pass/Needs Work/Fail | | Descriptive subheadings | H2s and H3s describe content sections clearly | Pass/Needs Work/Fail | | Keywords in subheadings | Secondary keywords appear naturally in H2s/H3s | Pass/Needs Work/Fail | | Not overused | Headers used for structure, not styling | Pass/Needs Work/Fail |
| Criteria | Best Practice | Check | |---|---|---| | Alt text | Every image has descriptive alt text | Pass/Needs Work/Fail | | Alt text quality | Alt text describes the image and includes keywords naturally | Pass/Needs Work/Fail | | File names | Descriptive filenames (not IMG_001.jpg) | Pass/Needs Work/Fail | | File size | Images optimized for web (WebP preferred, compressed) | Pass/Needs Work/Fail | | Lazy loading | Below-fold images use lazy loading | Pass/Needs Work/Fail | | Responsive images | Uses srcset or picture element for different sizes | Pass/Needs Work/Fail | | Decorative images | Decorative images have empty alt="" (not missing alt) | Pass/Needs Work/Fail |
| Criteria | Best Practice | Check | |---|---|---| | Internal links present | Page links to other relevant pages on the site | Pass/Needs Work/Fail | | Anchor text | Internal link anchor text is descriptive (not "click here") | Pass/Needs Work/Fail | | Deep linking | Links go to specific pages, not just homepage | Pass/Needs Work/Fail | | Relevant context | Links are contextually relevant to surrounding content | Pass/Needs Work/Fail | | Reasonable count | 3-10 internal links per 1,000 words of content | Pass/Needs Work/Fail | | Broken links | No broken internal links (404s) | Pass/Fail |
| Criteria | Best Practice | Check | |---|---|---| | Readable | URL is human-readable and descriptive | Pass/Needs Work/Fail | | Keywords | URL contains relevant keywords | Pass/Needs Work/Fail | | Length | Under 75 characters (ideally under 60) | Pass/Needs Work/Fail | | Hyphens | Words separated by hyphens (not underscores) | Pass/Fail | | Lowercase | All lowercase characters | Pass/Fail | | No parameters | Clean URLs without unnecessary query parameters | Pass/Needs Work/Fail | | Trailing slashes | Consistent use (either always or never) | Pass/Needs Work/Fail |
Evaluate the content against Google's E-E-A-T framework:
Does the content demonstrate first-hand experience with the topic?
Check for:
Score: Strong / Present / Weak / Missing
Does the author have demonstrated knowledge in this subject?
Check for:
Score: Strong / Present / Weak / Missing
Is the website and author recognized as an authority on this topic?
Check for:
Score: Strong / Present / Weak / Missing
Can users trust this content and this website?
Check for:
Score: Strong / Present / Weak / Missing
| Element | Evaluation | |---|---| | Primary keyword identified | What keyword is this page targeting? | | Search intent alignment | Does the content match what searchers expect? (informational, commercial, transactional, navigational) | | Keyword in title | Present, position, natural usage | | Keyword in H1 | Present, natural usage | | Keyword in first 100 words | Appears early in the content | | Keyword in subheadings | Appears in at least one H2 or H3 | | Keyword in meta description | Present and natural | | Keyword in URL | Present | | Keyword density | 1-2% is ideal. Over 3% is keyword stuffing. |
Identify 5-10 related keywords that should be naturally included in the content:
Determine the search intent behind the target keyword and evaluate if the content matches:
| Intent Type | User Goal | Content Should Be | |---|---|---| | Informational | Learn something | Blog post, guide, tutorial, FAQ | | Commercial | Compare options | Comparison page, review, list | | Transactional | Buy something | Product page, pricing page, checkout | | Navigational | Find a specific page | Homepage, login page, specific tool |
Misalignment is a ranking killer. If the user searches "how to do X" (informational) and lands on a sales page (transactional), they bounce -- and Google notices.
Check: Does /robots.txt exist and is it properly configured?Check: Does /sitemap.xml exist?Reference benchmarks:
| Metric | Good | Needs Work | Poor | |---|---|---|---| | Largest Contentful Paint (LCP) | Under 2.5s | 2.5-4.0s | Over 4.0s | | First Input Delay (FID) | Under 100ms | 100-300ms | Over 300ms | | Cumulative Layout Shift (CLS) | Under 0.1 | 0.1-0.25 | Over 0.25 | | Time to First Byte (TTFB) | Under 200ms | 200-500ms | Over 500ms | | First Contentful Paint (FCP) | Under 1.8s | 1.8-3.0s | Over 3.0s |
Common speed issues to flag:
<meta name="viewport" content="width=device-width, initial-scale=1">)Methodology for identifying content gaps:
Content Gap Template: | Missing Topic | Search Volume Potential | Competition | Content Type Needed | Priority | |---|---|---|---|---| | Topic] | High/Med/Low | High/Med/Low | Blog/Guide/Tool/Page | 1-5 |
Identify opportunities to capture featured snippets:
Types of featured snippets:
Optimization checklist:
Check for structured data implementation:
| Schema Type | Applicable To | Status | |---|---|---| | Organization | Homepage, About page | Present/Missing | | LocalBusiness | Local businesses | Present/Missing/N/A | | Product | Product pages | Present/Missing/N/A | | Article | Blog posts, news | Present/Missing/N/A | | FAQ | FAQ sections | Present/Missing | | HowTo | Tutorial content | Present/Missing/N/A | | Review/AggregateRating | Reviews, testimonials | Present/Missing/N/A | | BreadcrumbList | All pages with breadcrumbs | Present/Missing | | WebSite/SearchAction | Homepage (sitelinks search box) | Present/Missing | | Event | Event pages | Present/Missing/N/A |
Implementation guidance:
Identify specific internal linking improvements:
Linking Architecture Assessment:
Homepage
|-- Category/Service Pages (Pillar Content)
|-- Individual Blog Posts/Articles (Cluster Content)
|-- Back-links to Pillar Content
|-- Key Conversion Pages (Pricing, Signup, Contact)
|-- Linked from relevant contentEvaluate the revenue impact of Core Web Vitals performance:
Research-backed impacts:
Recommendations by metric: | Metric | If Failing | Typical Fixes | |---|---|---| | LCP | Over 2.5s | Optimize hero image, preload critical resources, use CDN, reduce server response time | | FID/INP | Over 100ms | Reduce JavaScript execution, defer non-critical scripts, use web workers | | CLS | Over 0.1 | Set image dimensions, reserve space for ads/embeds, avoid inserting content above existing content |
Based on the audit findings, recommend:
Content Prioritization Matrix: | Content Idea | Search Volume | Competition | Business Value | Priority Score | |---|---|---|---|---| | Topic] | High/Med/Low | High/Med/Low | High/Med/Low | 1-10 |
Scoring: High volume + Low competition + High business value = Highest priority
Generate a file called SEO-AUDIT.md with:
markdown# SEO Content Audit ## [URL] ### Date: [Date] --- ## SEO Health Score: [X/100] --- ## On-Page SEO Checklist ### Title Tag - Status: [Pass/Needs Work/Fail] - Current: "[current title]" - Recommended: "[improved title]" - Issues: [list issues] ### Meta Description - Status: [Pass/Needs Work/Fail] - Current: "[current meta]" - Recommended: "[improved meta]" ### Heading Hierarchy [H1-H6 structure analysis] ### Image Optimization [Alt text audit results] ### Internal Linking [Link analysis] ### URL Structure [URL assessment] --- ## Content Quality (E-E-A-T) | Dimension | Score | Evidence | |---|---|---| | Experience | [Strong/Present/Weak/Missing] | [details] | | Expertise | [Strong/Present/Weak/Missing] | [details] | | Authoritativeness | [Strong/Present/Weak/Missing] | [details] | | Trustworthiness | [Strong/Present/Weak/Missing] | [details] | --- ## Keyword Analysis - Primary Keyword: [keyword] - Search Intent: [type] - Keyword Placement: [checklist results] - Secondary Keywords: [list] --- ## Technical SEO [Quick check results] --- ## Content Gap Analysis [Missing topics table] --- ## Featured Snippet Opportunities [Specific opportunities] --- ## Schema Markup [Current vs recommended] --- ## Internal Linking Opportunities [Specific recommendations] --- ## Core Web Vitals [Performance assessment with revenue impact] --- ## Content Strategy Recommendations [Publishing plan, content priorities] --- ## Prioritized Recommendations ### Critical (Fix Immediately) 1. [recommendation with expected impact] ### High Priority (This Month) 1. [recommendation] ### Medium Priority (This Quarter) 1. [recommendation] ### Low Priority (When Resources Allow) 1. [recommendation]
/market audit or /market landing previously, cross-reference those findings with the SEO audit for a more complete picture.Other measured skills in the registry, with their headline benchmark lift.