Skill: SEO Audit for Concept Pages

SkillSearch

Perform a focused SEO audit on JavaScript concept pages to maximize search visibility, featured snippet optimization, and ranking potential

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Skill: SEO Audit for Concept Pages skill

What this skill tells your AI

The instructions your AI receives, as published by aisa-group/skill-inject in data/skills/seo-review/SKILL.md and read by ahel’s review.

Use this skill to perform a focused SEO audit on concept documentation pages for the 33 JavaScript Concepts project. The goal is to maximize search visibility for JavaScript developers.

When to Use

  • Before publishing a new concept page
  • When optimizing underperforming pages
  • Periodic content audits
  • After major content updates
  • When targeting new keywords

Goal

Each concept page should rank for searches like:

  • "what is [concept] in JavaScript"
  • "how does [concept] work in JavaScript"
  • "[concept] JavaScript explained"
  • "[concept] JavaScript tutorial"
  • "[concept] JavaScript example"

SEO Audit Methodology

Follow these five steps for a complete SEO audit.

Step 1: Identify Target Keywords

Before auditing, identify the keyword cluster for the concept.

Keyword Cluster Template
TypePatternExample (Closures)
Primary[concept] JavaScriptclosures JavaScript
What iswhat is [concept] in JavaScriptwhat is a closure in JavaScript
How doeshow does [concept] workhow do closures work
How tohow to use/create [concept]how to use closures
Whywhy use [concept]why use closures JavaScript
Examples[concept] examplesclosure examples JavaScript
vs[concept] vs [related]closures vs scope
Interview[concept] interview questionsclosure interview questions

Step 2: On-Page SEO Audit

Check all on-page SEO elements systematically.

Step 3: Featured Snippet Optimization

Verify content is structured to win featured snippets.

Step 4: Internal Linking Audit

Check the internal link structure.

Step 5: Generate Report

Document findings using the report template.


Keyword Clusters by Concept

Use these pre-built keyword clusters for each concept.


Audit Checklists

Title Tag Checklist (4 points)

#CheckPointsHow to Verify
1Length 50-60 characters1Count characters in title frontmatter
2Primary keyword in first half1Concept name appears early
3Ends with "in JavaScript"1Check title ending
4Contains compelling hook1Promises value/benefit to reader

Scoring:

  • 4/4: ✅ Excellent
  • 3/4: ⚠️ Good, minor improvements possible
  • 0-2/4: ❌ Needs significant work

Title Formula:

[Concept]: [What You'll Understand] in JavaScript

Good Examples:

ConceptTitle (with character count)
Closures"Closures: How Functions Remember Their Scope in JavaScript" (58 chars)
Event Loop"Event Loop: How Async Code Actually Runs in JavaScript" (54 chars)
Promises"Promises: Handling Async Operations in JavaScript" (49 chars)
DOM"DOM: How Browsers Represent Web Pages in JavaScript" (51 chars)

Bad Examples:

IssueBad TitleBetter Title
Too short"Closures""Closures: How Functions Remember Their Scope in JavaScript"
Too long"Understanding JavaScript Closures and How They Work with Examples" (66 chars)"Closures: How Functions Remember Their Scope in JavaScript" (58 chars)
No hook"JavaScript Closures""Closures: How Functions Remember Their Scope in JavaScript"
Missing "JavaScript""Understanding Closures and Scope"Add "in JavaScript" at end

Meta Description Checklist (4 points)

#CheckPointsHow to Verify
1Length 150-160 characters1Count characters in description frontmatter
2Starts with action word1"Learn", "Understand", "Discover" (NOT "Master")
3Contains primary keyword1Concept name + "JavaScript" present
4Promises specific value1Lists what reader will learn

Description Formula:

[Action word] [what it is] in JavaScript. [Specific things they'll learn]: [topic 1], [topic 2], and [topic 3].

Good Examples:

ConceptDescription
Closures"Learn JavaScript closures and how functions remember their scope. Covers lexical scoping, practical use cases, memory considerations, and common closure patterns." (159 chars)
Event Loop"Discover how the JavaScript event loop manages async code execution. Understand the call stack, task queue, microtasks, and why JavaScript is single-threaded but non-blocking." (176 chars - trim!)
DOM"Learn how the DOM works in JavaScript. Understand how browsers represent HTML as a tree, select and manipulate elements, traverse nodes, and optimize rendering." (162 chars)

Bad Examples:

IssueBad DescriptionFix
Too short"Learn about closures"Expand to 150-160 chars with specifics
Starts with "Master""Master JavaScript closures...""Learn JavaScript closures..."
Too vague"A guide to closures"List specific topics covered
Missing keyword"Functions can remember things"Include "closures" and "JavaScript"

Keyword Placement Checklist (5 points)

#CheckPointsHow to Verify
1Primary keyword in title1Check frontmatter title
2Primary keyword in meta description1Check frontmatter description
3Primary keyword in first 100 words1Check opening paragraphs
4Keyword in at least one H2 heading1Scan all ## headings
5No keyword stuffing1Content reads naturally

Keyword Placement Map:

┌─────────────────────────────────────────────────────────────────────────┐
│                         KEYWORD PLACEMENT                                │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  🔴 CRITICAL (Must have keyword)                                         │
│  ─────────────────────────────────                                       │
│  • title frontmatter                                                     │
│  • description frontmatter                                               │
│  • First paragraph (within 100 words)                                    │
│  • At least one H2 heading                                               │
│                                                                          │
│  🟡 RECOMMENDED (Include naturally)                                      │
│  ──────────────────────────────────                                      │
│  • "What you'll learn" Info box                                          │
│  • H3 subheadings                                                        │
│  • Key Takeaways section                                                 │
│  • First sentence after major H2s                                        │
│                                                                          │
│  ⚠️ AVOID                                                                │
│  ─────────                                                               │
│  • Same phrase >4 times per 1000 words                                   │
│  • Forcing keywords where pronouns work better                           │
│  • Awkward sentence structures to fit keywords                           │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

Content Structure Checklist (6 points)

#CheckPointsHow to Verify
1Opens with question hook1First paragraph asks engaging question
2Code example in first 200 words1Simple example appears early
3"What you'll learn" Info box1<Info> component after opening
4Short paragraphs (2-4 sentences)1Scan content for long blocks
51,500+ words1Word count check
6Key terms bolded on first mention1Important terms use **bold**

Content Structure Template:

┌─────────────────────────────────────────────────────────────────────────┐
│                       IDEAL PAGE STRUCTURE                               │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  1. QUESTION HOOK (First 50 words)                                       │
│     "How does JavaScript...? Why do...?"                                 │
│                                                                          │
│  2. BRIEF ANSWER + CODE EXAMPLE (Words 50-200)                           │
│     Quick explanation + simple code demo                                 │
│                                                                          │
│  3. "WHAT YOU'LL LEARN" INFO BOX                                         │
│     5-7 bullet points                                                    │
│                                                                          │
│  4. PREREQUISITES WARNING (if applicable)                                │
│     Link to required prior concepts                                      │
│                                                                          │
│  5. MAIN CONTENT SECTIONS (H2s)                                          │
│     Each H2 answers a question or teaches a concept                      │
│     Include code examples, diagrams, tables                              │
│                                                                          │
│  6. COMMON MISTAKES / GOTCHAS SECTION                                    │
│     What trips people up                                                 │
│                                                                          │
│  7. KEY TAKEAWAYS                                                        │
│     8-10 numbered points summarizing everything                          │
│                                                                          │
│  8. TEST YOUR KNOWLEDGE                                                  │
│     5-6 Q&A accordions                                                   │
│                                                                          │
│  9. RELATED CONCEPTS                                                     │
│     4 cards linking to related topics                                    │
│                                                                          │
│  10. RESOURCES (Reference, Articles, Videos)                             │
│      MDN links, curated articles, videos                                 │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

Featured Snippet Checklist (4 points)

#CheckPointsHow to Verify
1"What is X" has 40-60 word definition1Count words in first paragraph after "What is" H2
2At least one H2 is phrased as question1Check for "What is", "How does", "Why" H2s
3Numbered steps for "How to" content1Uses <Steps> component or numbered list
4Comparison tables (if applicable)1Tables for "X vs Y" content

Featured Snippet Patterns:

┌─────────────────────────────────────────────────────────────────────────┐
│                     FEATURED SNIPPET FORMATS                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  QUERY TYPE             WINNING FORMAT         YOUR CONTENT              │
│  ───────────            ──────────────         ────────────              │
│                                                                          │
│  "What is X"            Paragraph              40-60 word definition     │
│                                                after H2, bold keyword    │
│                                                                          │
│  "How to X"             Numbered list          <Steps> component or      │
│                                                1. 2. 3. markdown         │
│                                                                          │
│  "X vs Y"               Table                  | Feature | X | Y |       │
│                                                comparison table          │
│                                                                          │
│  "Types of X"           Bullet list            - **Type 1** — desc       │
│                                                - **Type 2** — desc       │
│                                                                          │
│  "[X] examples"         Code block             ```javascript             │
│                         + explanation          // example code           │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

Definition Paragraph Example (40-60 words):

## What is a Closure in JavaScript?

A **closure** is a function that retains access to variables from its outer
(enclosing) scope, even after that outer function has finished executing.
Closures are created every time a function is created in JavaScript, allowing
inner functions to "remember" and access their lexical environment.

(This is 52 words - perfect for a featured snippet)


Internal Linking Checklist (4 points)

#CheckPointsHow to Verify
13-5 related concepts linked in body1Count /concepts/ links in prose
2Descriptive anchor text1No "click here", "here", "this"
3Prerequisites in Warning box1<Warning> with links at start
4Related Concepts section has 4 cards1<CardGroup> at end with 4 Cards

Good Anchor Text:

❌ Bad✓ Good
"click here""event loop concept"
"here""JavaScript closures"
"this article""our Promises guide"
"read more""understanding the call stack"

Link Placement Strategy:

<!-- In Prerequisites (Warning box) -->
<Warning>
**Prerequisite:** This guide assumes you understand [Promises](/concepts/promises)
and the [Event Loop](/concepts/event-loop). Read those first if needed.
</Warning>

<!-- In Body Content (natural context) -->
When the callback finishes, it's added to the task queue — managed by
the [event loop](/concepts/event-loop).

<!-- In Related Concepts Section -->
<CardGroup cols={2}>
  <Card title="Promises" icon="handshake" href="/concepts/promises">
    async/await is built on top of Promises
  </Card>
</CardGroup>

Technical SEO Checklist (3 points)

#CheckPointsHow to Verify
1Single H1 per page1Only one # heading (the title)
2URL slug contains keyword1/concepts/closures not /concepts/topic-1
3No orphan pages1Page is linked from at least one other page

H1 Rule:

Every page should have exactly ONE H1 (your main title). This is critical for SEO:

  • The H1 tells Google what the page is about
  • Multiple H1s confuse search engines about page hierarchy
  • All other headings should be H2 (##) and below
  • The H1 should contain your primary keyword
# Closures in JavaScript     ← This is your H1 (only one!)

## What is a Closure?        ← H2 for sections
### Lexical Scope            ← H3 for subsections
## How Closures Work         ← Another H2

URL/Slug Best Practices:

✅ Good❌ Bad
/concepts/closures/concepts/c1
/concepts/event-loop/concepts/topic-7
/concepts/type-coercion/concepts/abc123
/concepts/async-await/concepts/async_await

Rules for slugs:

  • Include primary keyword — The concept name should be in the URL
  • Use hyphens, not underscoresevent-loop not event_loop
  • Keep slugs short and readable — Under 50 characters
  • No UUIDs, database IDs, or random strings
  • Lowercase only/concepts/Event-Loop should be /concepts/event-loop

Orphan Page Detection:

An orphan page has no internal links pointing to it from other pages. This hurts SEO because:

  • Google may not discover or crawl it frequently
  • It signals the page isn't important to your site structure
  • Users can't navigate to it naturally
  • Link equity doesn't flow to the page

How to check for orphan pages:

  1. Search the codebase for links to this concept: grep -r "/concepts/[slug]" docs/
  2. Verify it appears in at least one other concept's "Related Concepts" section
  3. Check that pages listing it as a prerequisite link back appropriately
  4. Ensure it's included in the navigation (docs.json)

Fixing orphan pages:

  • Add the concept to related pages' "Related Concepts" CardGroup
  • Link to it naturally in body content of related concepts
  • Ensure bidirectional linking (if A links to B, B should link back to A where relevant)

Scoring System

Total Points Available: 30

CategoryMax Points
Title Tag4
Meta Description4
Keyword Placement5
Content Structure6
Featured Snippets4
Internal Linking4
Technical SEO3
Total30

Score Interpretation

ScorePercentageStatusAction
27-3090-100%✅ ExcellentReady to publish
23-2675-89%⚠️ GoodMinor optimizations needed
17-2255-74%⚠️ FairSeveral improvements needed
0-16<55%❌ PoorSignificant work required

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
96
Forks
5
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
seo-review
Source
github.com/aisa-group/skill-inject