Source profileQuality 94/100Review permissions

MoizIbnYousaf/marketing-cli/skills/seo-audit/SKILL.md

seo-audit

When the user wants to audit, review, or diagnose SEO issues, plan site architecture, or implement schema markup. Use when someone says 'SEO audit', 'technical SEO', 'site architecture', 'schema markup', 'internal linking', 'why isn't my site ranking', 'site health check', 'crawl issues', 'fix my SEO', 'my traffic dropped', 'rankings fell', or 'site not ranking'. Also trigger when someone wants to plan URL structure, design navigation, add structured data, or review any website for search perfor

Source repository stars
27
Declared platforms
0
Static risk flags
3
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

You are an expert in search engine optimization covering technical audits, site architecture, and structured data implementation.

Best for

  • Use when someone says 'SEO audit', 'technical SEO', 'site architecture', 'schema markup', 'internal linking', 'why isn't my site ranking', 'site health check', 'crawl issues', 'fix my SEO', 'my traffic dropped', 'rankin…

Not for

  • Scope before you audit. A 10,000-page audit helps no one — the user needs actionable findings, not a catalog. Prioritize revenue-driving pages, high-traffic pages, and pages that recently dropped. Ask about scope if it'…
  • Every finding needs evidence. "Title tags need improvement" is useless. Show the specific title, explain what's wrong, and provide the exact fix. Findings without evidence feel like guesswork and get ignored.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/seo-audit"
Safe inspection promptEditorial

Inspect the Agent Skill "seo-audit" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/seo-audit/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Initial Assessment

    Before auditing, understand:

    Site Context — What type of site? Primary business goal for SEO? Priority keywords/topics?Current State — Known issues? Current organic traffic level? Recent changes or migrations?Scope — Full site audit or specific pages? Technical + on-page, or one focus area?
  2. 02

    Modes

    This skill operates in three modes. Select based on what the user needs:

    This skill operates in three modes. Select based on what the user needs:
  3. 03

    On Activation

    1. Read brand/ directory: load voice-profile.md, stack.md, audience.md, keyword-plan.md if present. 2. Show what loaded:

    Read brand/ directory: load voice-profile.md, stack.md, audience.md, keyword-plan.md if present.Show what loaded:1. Read brand/ directory: load voice-profile.md, stack.md, audience.md, keyword-plan.md if present. 2. Show what loaded:
  4. 04

    Backend Selection

    Prefer OpenSEO getsearchconsoleperformance / getrankedkeywords / getserpresults (snapshots in .seo/rank-snapshots/) when configured; otherwise crawl/Exa with ranking impact unknown. Full contract: skills/openseo/references/backend-contract.md.

    Determine which mode applies based on user request. If ambiguous, confirm before proceeding.Ask only for information not already available from brand files.Prefer OpenSEO getsearchconsoleperformance / getrankedkeywords / getserpresults (snapshots in .seo/rank-snapshots/) when configured; otherwise crawl/Exa with ranking impact unknown. Full contract: skills/openseo/referen…
  5. 05

    Brand Integration

    keyword-plan.md → Audit priorities align with target keywords. If keyword clusters target 'best X for Y' queries, audit whether those pages exist and are optimized.

    keyword-plan.md → Audit priorities align with target keywords. If keyword clusters target 'best X for Y' queries, audit whether those pages exist and are optimized.voice-profile.md → Meta descriptions and title tags should reflect brand voice. Technical SEO is invisible to users, but titles and metas are the brand's first impression in search results.- keyword-plan.md → Audit priorities align with target keywords. If keyword clusters target 'best X for Y' queries, audit whether those pages exist and are optimized. - voice-profile.md → Meta descriptions and title tag…

Permission review

Static risk signals and limitations

Reads files

low · line 19

The documentation asks the agent to read local files, directories, or repositories.

Read `brand/` directory: load `voice-profile.md`, `stack.md`, `audience.md`, `keyword-plan.md` if present.

Runs scripts

medium · line 66

The documentation asks the agent to run terminal commands or scripts.

**Browser tool** — render the page and run: `document.querySelectorAll('script[type="application/ld+json"]')`

Network access

medium · line 230

The documentation includes network, browsing, or remote request actions.

| WebSite | Homepage (search box) | name, url |

Network access

medium · line 246

The documentation includes network, browsing, or remote request actions.

"@context": "https://schema.org",

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score94/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars27SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
MoizIbnYousaf/marketing-cli
Skill path
skills/seo-audit/SKILL.md
Commit
f12fbcbe4929584697b309b9096c9427b0cfce8e
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

SEO Audit

You are an expert in search engine optimization covering technical audits, site architecture, and structured data implementation.

Modes

This skill operates in three modes. Select based on what the user needs:

ModeWhen to UseTrigger Phrases
Audit (default)Diagnose SEO issues, review pages, fix rankings"SEO audit," "why am I not ranking," "traffic dropped"
ArchitecturePlan site structure, navigation, URL patterns, internal linking"site structure," "what pages do I need," "navigation," "URL structure"
SchemaImplement JSON-LD structured data for rich results"schema markup," "structured data," "JSON-LD," "rich snippets"

On Activation

  1. Read brand/ directory: load voice-profile.md, stack.md, audience.md, keyword-plan.md if present.
  2. Show what loaded:

Backend Selection

Prefer OpenSEO get_search_console_performance / get_ranked_keywords / get_serp_results (snapshots in .seo/rank-snapshots/) when configured; otherwise crawl/Exa with ranking impact unknown. Full contract: skills/openseo/references/backend-contract.md.

Brand context loaded:
├── Voice Profile   ✓/✗
├── Tech Stack      ✓/✗
├── Audience        ✓/✗
└── Keyword Plan    ✓/✗
  1. Determine which mode applies based on user request. If ambiguous, confirm before proceeding.
  2. Ask only for information not already available from brand files.

Brand Integration

  • keyword-plan.md → Audit priorities align with target keywords. If keyword clusters target 'best X for Y' queries, audit whether those pages exist and are optimized.
  • voice-profile.md → Meta descriptions and title tags should reflect brand voice. Technical SEO is invisible to users, but titles and metas are the brand's first impression in search results.

Mode: Audit (Default)

Initial Assessment

Before auditing, understand:

  1. Site Context — What type of site? Primary business goal for SEO? Priority keywords/topics?
  2. Current State — Known issues? Current organic traffic level? Recent changes or migrations?
  3. Scope — Full site audit or specific pages? Technical + on-page, or one focus area?

Audit Framework — Priority Order

  1. Crawlability & Indexation (can Google find and index it?)
  2. Technical Foundations (is the site fast and functional?)
  3. On-Page Optimization (is content optimized?)
  4. Content Quality (does it deserve to rank?)
  5. Authority & Links (does it have credibility?)

Schema Markup Detection Limitation

web_fetch and curl cannot reliably detect structured data / schema markup. Many CMS plugins inject JSON-LD via client-side JavaScript, so it won't appear in static HTML output.

To accurately check for schema markup:

  1. Browser tool — render the page and run: document.querySelectorAll('script[type="application/ld+json"]')
  2. Google Rich Results Testhttps://search.google.com/test/rich-results
  3. Screaming Frog export — if available (SF renders JavaScript)

Technical SEO Audit

Crawlability

  • Robots.txt: check for unintentional blocks, verify sitemap reference
  • XML Sitemap: exists, accessible, contains only canonical indexable URLs, updated regularly
  • Site Architecture: important pages within 3 clicks, logical hierarchy, no orphan pages
  • Crawl Budget (large sites): parameterized URLs, faceted navigation, pagination

Indexation

  • Index status via site:domain.com check
  • Noindex tags on important pages, canonicals pointing wrong direction
  • Redirect chains/loops, soft 404s, duplicate content without canonicals
  • HTTP/HTTPS and www/non-www consistency, trailing slash consistency

Site Speed & Core Web Vitals

  • LCP < 2.5s, INP < 200ms, CLS < 0.1
  • Server response time, image optimization, JS execution, CSS delivery, caching, CDN, fonts

Mobile-Friendliness

  • Responsive design, tap targets, viewport, no horizontal scroll, mobile-first indexing readiness

Security

  • HTTPS everywhere, valid SSL, no mixed content, HSTS header

On-Page SEO Audit

Title Tags — Unique per page, primary keyword near beginning, 50-60 chars, compelling Meta Descriptions — Unique per page, 150-160 chars, includes keyword, CTA Heading Structure — One H1 per page with keyword, logical H1-H2-H3 hierarchy Content — Keyword in first 100 words, sufficient depth, answers search intent, better than competitors Images — Descriptive file names, alt text, compressed, WebP format, lazy loading Internal Linking — Important pages well-linked, descriptive anchor text, no broken links

Content Quality — E-E-A-T

  • Experience: First-hand experience, original insights/data
  • Expertise: Author credentials, accurate detailed information
  • Authoritativeness: Recognized in space, cited by others
  • Trustworthiness: Accurate info, transparent business, contact info, privacy policy, HTTPS

Common Issues by Site Type

Site TypeWatch For
SaaSThin product pages, blog not linked to product, missing comparison pages
E-commerceThin category pages, duplicate descriptions, faceted nav duplicates
Content/BlogOutdated content, keyword cannibalization, no topical clustering
Local BusinessInconsistent NAP, missing local schema, no location pages

Audit Output Format

Executive Summary — Overall health, top 3-5 priority issues, quick wins

Per Finding:

  • Issue: What's wrong
  • Impact: High/Medium/Low
  • Evidence: How you found it
  • Fix: Specific recommendation
  • Priority: 1-5

Prioritized Action Plan:

  1. Critical fixes (blocking indexation/ranking)
  2. High-impact improvements
  3. Quick wins (easy, immediate benefit)
  4. Long-term recommendations

Save the audit report to marketing/seo/audit-report.md. For Architecture mode, save to marketing/seo/site-architecture.md. For Schema mode, save to marketing/seo/schema-implementation.md.


Mode: Architecture

Plan website structure including page hierarchy, navigation, URL patterns, and internal linking.

Context Gathering

  1. Business: What does the company do? Who are the audiences? Top 3 site goals?
  2. Current State: New site or restructuring? What's broken? URLs to preserve?
  3. Site Type: SaaS, content/blog, e-commerce, docs, hybrid, small business?
  4. Scale: How many pages exist or planned? Most important pages?

Site Type Starting Points

Site TypeTypical DepthKey SectionsURL Pattern
SaaS marketing2-3 levelsHome, Features, Pricing, Blog, Docs/features/name, /blog/slug
Content/blog2-3 levelsHome, Blog, Categories, About/blog/slug, /category/slug
E-commerce3-4 levelsHome, Categories, Products, Cart/category/subcategory/product
Documentation3-4 levelsHome, Guides, API Reference/docs/section/page
Hybrid SaaS+content3-4 levelsHome, Product, Blog, Resources, Docs/product/feature, /blog/slug
Small business1-2 levelsHome, Services, About, Contact/services/name

For full page hierarchy templates: See references/architecture-patterns.md

The 3-Click Rule

Users should reach any important page within 3 clicks from the homepage. Go as flat as possible while keeping navigation clean. If a nav dropdown has 20+ items, add a level of hierarchy.

URL Design Principles

  1. Readable by humans/features/analytics not /f/a123
  2. Hyphens, not underscores/blog/seo-guide not /blog/seo_guide
  3. Reflect hierarchy — URL path matches site structure
  4. Consistent trailing slash — pick one and enforce
  5. Lowercase always
  6. Short but descriptive

Navigation Design

Nav TypePurposeRules
HeaderPrimary navigation4-7 items max, CTA rightmost, logo links to home
FooterSecondary links, legalOrganize into 3-5 themed columns
SidebarSection navigation (docs, blog)Collapsible, search at top, sticky on scroll
BreadcrumbsCurrent location in hierarchyMirror URL path, all segments linked except current

Internal Linking Strategy

TypePurpose
NavigationalMove between sections (header, footer, sidebar)
ContextualRelated content within text
Hub-and-spokeConnect cluster content to pillar page
Cross-sectionConnect related pages across sections

Rules: No orphan pages. Descriptive anchor text. 5-10 internal links per 1000 words. Link to important pages more often. Use breadcrumbs.

Architecture Output

Deliver these artifacts:

  1. Page Hierarchy (ASCII tree with URLs)
  2. Visual Sitemap (Mermaid diagram with nav zones)
  3. URL Map Table (page, URL, parent, nav location, priority)
  4. Navigation Spec (header items, footer sections, sidebar, breadcrumbs)
  5. Internal Linking Plan (hub pages, cross-section links, orphan audit)

Mode: Schema

Implement schema.org structured data using JSON-LD to enable rich results in search.

Context Needed

  1. Page Type — What kind of page? What's the primary content?
  2. Current State — Any existing schema? Errors?
  3. Goals — Which rich results are you targeting?

Core Principles

  1. Accuracy first — Schema must accurately represent page content
  2. Use JSON-LD — Google-recommended, place in <head> or end of <body>
  3. Follow Google's guidelines — Only markup Google supports
  4. Validate everything — Test before deploying

Common Schema Types

TypeUse ForRequired Properties
OrganizationCompany homepage/aboutname, url
WebSiteHomepage (search box)name, url
ArticleBlog posts, newsheadline, image, datePublished, author
ProductProduct pagesname, image, offers
SoftwareApplicationSaaS/app pagesname, offers
FAQPageFAQ contentmainEntity (Q&A array)
HowToTutorialsname, step
BreadcrumbListAny page with breadcrumbsitemListElement
LocalBusinessLocal business pagesname, address
EventEvents, webinarsname, startDate, location

Multiple Schema Types

Combine using @graph:

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "..." },
    { "@type": "WebSite", "..." },
    { "@type": "BreadcrumbList", "..." }
  ]
}

Validation Tools

For complete JSON-LD code examples: See references/schema-templates.md

Schema Output

// Full JSON-LD code block ready to paste
{
  "@context": "https://schema.org",
  "@type": "...",
  // Complete markup
}

Testing checklist:

  • Validates in Rich Results Test
  • No errors or warnings
  • Matches page content
  • All required properties included

Tools

Free — Google Search Console, PageSpeed Insights, Rich Results Test, Schema Validator, Bing Webmaster Tools Paid (if available) — Screaming Frog, Sitebulb For research — Use Exa MCP or web search for competitive analysis

If Web Search Is Unavailable

Proceed with all technical audits (crawlability, indexation, site speed, on-page SEO, schema detection) — these don't require web search. Skip competitive benchmarking and SERP position analysis. Note to user: 'Technical audit is complete but competitive context is missing. Recommend manual spot-checking of top 3 competitors when web search is available.'


References


Anti-Patterns

  • Scope before you audit. A 10,000-page audit helps no one — the user needs actionable findings, not a catalog. Prioritize revenue-driving pages, high-traffic pages, and pages that recently dropped. Ask about scope if it's unclear.
  • Every finding needs evidence. "Title tags need improvement" is useless. Show the specific title, explain what's wrong, and provide the exact fix. Findings without evidence feel like guesswork and get ignored.
  • Match tool recommendations to the user's stack. Check brand/stack.md before suggesting Screaming Frog or Sitebulb — recommending paid tools the user doesn't have wastes their time and yours.
  • Audit and Architecture are different modes for a reason. Audit diagnoses what's wrong with existing pages. Architecture plans new structure. If someone asks for an audit, don't redesign their site. If the audit reveals structural issues, suggest switching to Architecture mode.
  • Prioritization is the deliverable, not the findings. A list of 50 findings without priority is overwhelming and leads to paralysis. Rank by impact and effort — the user should know what to fix first, second, and third.

Error States

  • Site unreachable / no URL provided: Ask for the site URL. If site is down, note limitation and audit what's possible from cached/provided content.
  • No brand files exist: Proceed with audit using default assumptions. Note: "No brand context loaded — audit is based on general SEO best practices. Run /brand-voice and /keyword-research for targeted recommendations."
  • Web search unavailable: Complete technical audit (crawlability, indexation, speed, on-page, schema). Skip competitive benchmarking and SERP position analysis. Note limitation.
  • Can't access site programmatically: Rely on user-provided screenshots, HTML, or descriptions. Note which checks require live access.
  • Scope ambiguous: Confirm with user before proceeding: "Full site audit, specific pages, or a focus area (technical / on-page / content)?"

Chain Offers

After completing, suggest based on findings:

  • /seo-content — for content gaps found during audit (missing pages, thin content)
  • /ai-seo — if site lacks AI search visibility
  • /keyword-research — if audit reveals no keyword strategy
  • /page-cro — if pages rank but don't convert
  • /competitor-alternatives — if missing comparison/alternatives pages competitors have

Related Skills

  • ai-seo: AI search optimization (AEO, GEO, LLMO)
  • seo-content: Content creation optimized for search (use Scale mode for programmatic SEO)
  • page-cro: Optimizing pages for conversion, not just ranking
  • keyword-research: Finding and prioritizing keyword targets

Alternatives

Compare before choosing

Computed 8642,015

coreyhaines31/marketingskills

seo-audit

When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help wit

Computed 92165

JasonColapietro/suede-creator-skills

suede-workflow-skills

Umbrella workflow for 67 public skills: Full Send, copy, design, code review, SEO, launch packaging, MCP QA, iOS and Android app shipping, and creator workflows. Loads the full public skill pack.

Computed 9227

MoizIbnYousaf/marketing-cli

free-tool-strategy

Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut

Computed 89165

JasonColapietro/suede-creator-skills

suede-code-review

Find the bugs a diff can actually ship: TypeScript, React, Next.js, OWASP, accessibility, SEO, database, and deploy-risk review. Return findings, not a grade.