seo-review
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: SEO Audit for Concept Pages
技能:概念页面SEO审核
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.
使用此技能对33个JavaScript概念项目的概念文档页面进行针对性SEO审核,目标是提升面向JavaScript开发者的搜索可见性。
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"
每个概念页面都应针对以下类型的搜索排名:
- "what is [concept] in JavaScript"(JavaScript中的[概念]是什么)
- "how does [concept] work in JavaScript"(JavaScript中的[概念]如何运作)
- "[concept] JavaScript explained"(JavaScript[概念]详解)
- "[concept] JavaScript tutorial"(JavaScript[概念]教程)
- "[concept] JavaScript example"(JavaScript[概念]示例)
SEO Audit Methodology
SEO审核方法
Follow these five steps for a complete SEO audit.
按照以下五个步骤完成完整的SEO审核。
Step 1: Identify Target Keywords
步骤1:确定目标关键词
Before auditing, identify the keyword cluster for the concept.
审核前,先确定该概念的关键词集群。
Keyword Cluster Template
关键词集群模板
| Type | Pattern | Example (Closures) |
|---|---|---|
| Primary | [concept] JavaScript | closures JavaScript |
| What is | what is [concept] in JavaScript | what is a closure in JavaScript |
| How does | how does [concept] work | how do closures work |
| How to | how to use/create [concept] | how to use closures |
| Why | why use [concept] | why use closures JavaScript |
| Examples | [concept] examples | closure examples JavaScript |
| vs | [concept] vs [related] | closures vs scope |
| Interview | [concept] interview questions | closure interview questions |
| 类型 | 模式 | 示例(闭包) |
|---|---|---|
| 核心关键词 | [概念] JavaScript | closures JavaScript |
| 定义类 | what is [concept] in JavaScript | what is a closure in JavaScript |
| 运作类 | how does [concept] work | how do closures work |
| 使用类 | how to use/create [concept] | how to use closures |
| 原因类 | why use [concept] | why use closures JavaScript |
| 示例类 | [concept] examples | closure examples JavaScript |
| 对比类 | [concept] vs [related] | closures vs scope |
| 面试类 | [concept] interview questions | closure interview questions |
Step 2: On-Page SEO Audit
步骤2:页面内SEO审核
Check all on-page SEO elements systematically.
系统检查所有页面内SEO元素。
Step 3: Featured Snippet Optimization
步骤3:精选摘要优化
Verify content is structured to win featured snippets.
验证内容结构是否符合精选摘要的要求。
Step 4: Internal Linking Audit
步骤4:内部链接审核
Check the internal link structure.
检查内部链接结构。
Step 5: Generate Report
步骤5:生成报告
Document findings using the report template.
使用报告模板记录审核结果。
Keyword Clusters by Concept
各概念对应的关键词集群
Use these pre-built keyword clusters for each concept.
<AccordionGroup>
<Accordion title="Call Stack">
| Type | Keywords |
|------|----------|
| Primary | JavaScript call stack, call stack JavaScript |
| What is | what is the call stack in JavaScript |
| How does | how does the call stack work |
| Error | maximum call stack size exceeded, stack overflow JavaScript |
| Visual | call stack visualization, call stack explained |
| Interview | call stack interview questions JavaScript |
</Accordion>
<Accordion title="Primitive Types">
| Type | Keywords |
|------|----------|
| Primary | JavaScript primitive types, primitives in JavaScript |
| What are | what are primitive types in JavaScript |
| List | JavaScript data types, types in JavaScript |
| vs | primitives vs objects JavaScript |
| typeof | typeof JavaScript, JavaScript typeof operator |
| Interview | JavaScript types interview questions |
</Accordion>
<Accordion title="Value vs Reference Types">
| Type | Keywords |
|------|----------|
| Primary | JavaScript value vs reference, pass by reference JavaScript |
| What is | what is pass by value in JavaScript |
| How does | how does JavaScript pass objects |
| Comparison | value types vs reference types JavaScript |
| Copy | how to copy objects JavaScript, deep copy JavaScript |
</Accordion>
<Accordion title="Type Coercion">
| Type | Keywords |
|------|----------|
| Primary | JavaScript type coercion, type conversion JavaScript |
| What is | what is type coercion in JavaScript |
| How does | how does type coercion work |
| Implicit | implicit type conversion JavaScript |
| Explicit | explicit type conversion JavaScript |
| Interview | type coercion interview questions |
</Accordion>
<Accordion title="Equality Operators">
| Type | Keywords |
|------|----------|
| Primary | JavaScript equality, == vs === JavaScript |
| What is | what is the difference between == and === |
| Comparison | loose equality vs strict equality JavaScript |
| Best practice | when to use == vs === |
| Interview | JavaScript equality interview questions |
</Accordion>
<Accordion title="Scope and Closures">
| Type | Keywords |
|------|----------|
| Primary | JavaScript closures, JavaScript scope |
| What is | what is a closure in JavaScript, what is scope |
| How does | how do closures work, how does scope work |
| Types | types of scope JavaScript, lexical scope |
| Use cases | closure use cases, why use closures |
| Interview | closure interview questions JavaScript |
</Accordion>
<Accordion title="Event Loop">
| Type | Keywords |
|------|----------|
| Primary | JavaScript event loop, event loop JavaScript |
| What is | what is the event loop in JavaScript |
| How does | how does the event loop work |
| Visual | event loop visualization, event loop explained |
| Related | call stack event loop, task queue JavaScript |
| Interview | event loop interview questions |
</Accordion>
<Accordion title="Promises">
| Type | Keywords |
|------|----------|
| Primary | JavaScript Promises, Promises in JavaScript |
| What is | what is a Promise in JavaScript |
| How to | how to use Promises, how to chain Promises |
| Methods | Promise.all, Promise.race, Promise.allSettled |
| Error | Promise error handling, Promise catch |
| vs | Promises vs callbacks, Promises vs async await |
</Accordion>
<Accordion title="async/await">
| Type | Keywords |
|------|----------|
| Primary | JavaScript async await, async await JavaScript |
| What is | what is async await in JavaScript |
| How to | how to use async await, async await tutorial |
| Error | async await error handling, try catch async |
| vs | async await vs Promises |
| Interview | async await interview questions |
</Accordion>
<Accordion title="this Keyword">
| Type | Keywords |
|------|----------|
| Primary | JavaScript this keyword, this in JavaScript |
| What is | what is this in JavaScript |
| How does | how does this work in JavaScript |
| Binding | call apply bind JavaScript, this binding |
| Arrow | this in arrow functions |
| Interview | this keyword interview questions |
</Accordion>
<Accordion title="Prototypes">
| Type | Keywords |
|------|----------|
| Primary | JavaScript prototype, prototype chain JavaScript |
| What is | what is a prototype in JavaScript |
| How does | how does prototype inheritance work |
| Chain | prototype chain explained |
| vs | prototype vs class JavaScript |
| Interview | prototype interview questions JavaScript |
</Accordion>
<Accordion title="DOM">
| Type | Keywords |
|------|----------|
| Primary | JavaScript DOM, DOM manipulation JavaScript |
| What is | what is the DOM in JavaScript |
| How to | how to manipulate DOM JavaScript |
| Methods | getElementById, querySelector JavaScript |
| Events | DOM events JavaScript, event listeners |
| Performance | DOM performance, virtual DOM vs DOM |
</Accordion>
<Accordion title="Higher-Order Functions">
| Type | Keywords |
|------|----------|
| Primary | JavaScript higher order functions, higher order functions |
| What are | what are higher order functions |
| Examples | map filter reduce JavaScript |
| How to | how to use higher order functions |
| Interview | higher order functions interview |
</Accordion>
<Accordion title="Recursion">
| Type | Keywords |
|------|----------|
| Primary | JavaScript recursion, recursion in JavaScript |
| What is | what is recursion in JavaScript |
| How to | how to write recursive functions |
| Examples | recursion examples JavaScript |
| vs | recursion vs iteration JavaScript |
| Interview | recursion interview questions |
</Accordion>
</AccordionGroup>
为每个概念使用以下预构建的关键词集群。
<AccordionGroup>
<Accordion title="调用栈">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript call stack, call stack JavaScript |
| 定义类 | what is the call stack in JavaScript |
| 运作类 | how does the call stack work |
| 错误类 | maximum call stack size exceeded, stack overflow JavaScript |
| 可视化类 | call stack visualization, call stack explained |
| 面试类 | call stack interview questions JavaScript |
</Accordion>
<Accordion title="原始类型">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript primitive types, primitives in JavaScript |
| 定义类 | what are primitive types in JavaScript |
| 列表类 | JavaScript data types, types in JavaScript |
| 对比类 | primitives vs objects JavaScript |
| 操作符类 | typeof JavaScript, JavaScript typeof operator |
| 面试类 | JavaScript types interview questions |
</Accordion>
<Accordion title="值类型与引用类型">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript value vs reference, pass by reference JavaScript |
| 定义类 | what is pass by value in JavaScript |
| 运作类 | how does JavaScript pass objects |
| 对比类 | value types vs reference types JavaScript |
| 复制类 | how to copy objects JavaScript, deep copy JavaScript |
</Accordion>
<Accordion title="类型转换">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript type coercion, type conversion JavaScript |
| 定义类 | what is type coercion in JavaScript |
| 运作类 | how does type coercion work |
| 隐式类 | implicit type conversion JavaScript |
| 显式类 | explicit type conversion JavaScript |
| 面试类 | type coercion interview questions |
</Accordion>
<Accordion title="相等运算符">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript equality, == vs === JavaScript |
| 定义类 | what is the difference between == and === |
| 对比类 | loose equality vs strict equality JavaScript |
| 最佳实践类 | when to use == vs === |
| 面试类 | JavaScript equality interview questions |
</Accordion>
<Accordion title="作用域与闭包">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript closures, JavaScript scope |
| 定义类 | what is a closure in JavaScript, what is scope |
| 运作类 | how do closures work, how does scope work |
| 类型类 | types of scope JavaScript, lexical scope |
| 用例类 | closure use cases, why use closures |
| 面试类 | closure interview questions JavaScript |
</Accordion>
<Accordion title="事件循环">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript event loop, event loop JavaScript |
| 定义类 | what is the event loop in JavaScript |
| 运作类 | how does the event loop work |
| 可视化类 | event loop visualization, event loop explained |
| 关联类 | call stack event loop, task queue JavaScript |
| 面试类 | event loop interview questions |
</Accordion>
<Accordion title="Promise">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript Promises, Promises in JavaScript |
| 定义类 | what is a Promise in JavaScript |
| 使用类 | how to use Promises, how to chain Promises |
| 方法类 | Promise.all, Promise.race, Promise.allSettled |
| 错误处理类 | Promise error handling, Promise catch |
| 对比类 | Promises vs callbacks, Promises vs async await |
</Accordion>
<Accordion title="async/await">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript async await, async await JavaScript |
| 定义类 | what is async await in JavaScript |
| 使用类 | how to use async await, async await tutorial |
| 错误处理类 | async await error handling, try catch async |
| 对比类 | async await vs Promises |
| 面试类 | async await interview questions |
</Accordion>
<Accordion title="this关键字">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript this keyword, this in JavaScript |
| 定义类 | what is this in JavaScript |
| 运作类 | how does this work in JavaScript |
| 绑定类 | call apply bind JavaScript, this binding |
| 箭头函数类 | this in arrow functions |
| 面试类 | this keyword interview questions |
</Accordion>
<Accordion title="原型">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript prototype, prototype chain JavaScript |
| 定义类 | what is a prototype in JavaScript |
| 运作类 | how does prototype inheritance work |
| 链类 | prototype chain explained |
| 对比类 | prototype vs class JavaScript |
| 面试类 | prototype interview questions JavaScript |
</Accordion>
<Accordion title="DOM">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript DOM, DOM manipulation JavaScript |
| 定义类 | what is the DOM in JavaScript |
| 使用类 | how to manipulate DOM JavaScript |
| 方法类 | getElementById, querySelector JavaScript |
| 事件类 | DOM events JavaScript, event listeners |
| 性能类 | DOM performance, virtual DOM vs DOM |
</Accordion>
<Accordion title="高阶函数">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript higher order functions, higher order functions |
| 定义类 | what are higher order functions |
| 示例类 | map filter reduce JavaScript |
| 使用类 | how to use higher order functions |
| 面试类 | higher order functions interview |
</Accordion>
<Accordion title="递归">
| 类型 | 关键词 |
|------|----------|
| 核心关键词 | JavaScript recursion, recursion in JavaScript |
| 定义类 | what is recursion in JavaScript |
| 使用类 | how to write recursive functions |
| 示例类 | recursion examples JavaScript |
| 对比类 | recursion vs iteration JavaScript |
| 面试类 | recursion interview questions |
</Accordion>
</AccordionGroup>
Audit Checklists
审核检查清单
Title Tag Checklist (4 points)
标题标签检查清单(4分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | Length 50-60 characters | 1 | Count characters in |
| 2 | Primary keyword in first half | 1 | Concept name appears early |
| 3 | Ends with "in JavaScript" | 1 | Check title ending |
| 4 | Contains compelling hook | 1 | Promises 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 JavaScriptGood Examples:
| Concept | Title (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:
| Issue | Bad Title | Better 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 |
| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 长度为50-60字符 | 1 | 统计 |
| 2 | 核心关键词位于前半部分 | 1 | 概念名称出现在标题靠前位置 |
| 3 | 以"in JavaScript"结尾 | 1 | 检查标题结尾 |
| 4 | 包含吸引人的钩子 | 1 | 向读者承诺价值/收益 |
评分标准:
- 4/4: ✅ 优秀
- 3/4: ⚠️ 良好,可进行小幅优化
- 0-2/4: ❌ 需要大幅改进
标题公式:
[概念]: [你将理解的内容] in JavaScript优秀示例:
| 概念 | 标题(含字符数) |
|---|---|
| 闭包 | "Closures: How Functions Remember Their Scope in JavaScript"(58字符) |
| 事件循环 | "Event Loop: How Async Code Actually Runs in JavaScript"(54字符) |
| Promise | "Promises: Handling Async Operations in JavaScript"(49字符) |
| DOM | "DOM: How Browsers Represent Web Pages in JavaScript"(51字符) |
反面示例:
| 问题 | 不佳标题 | 优化后标题 |
|---|---|---|
| 过短 | "Closures" | "Closures: How Functions Remember Their Scope in JavaScript" |
| 过长 | "Understanding JavaScript Closures and How They Work with Examples"(66字符) | "Closures: How Functions Remember Their Scope in JavaScript"(58字符) |
| 无钩子 | "JavaScript Closures" | "Closures: How Functions Remember Their Scope in JavaScript" |
| 缺少"JavaScript" | "Understanding Closures and Scope" | 在结尾添加"in JavaScript" |
Meta Description Checklist (4 points)
元描述检查清单(4分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | Length 150-160 characters | 1 | Count characters in |
| 2 | Starts with action word | 1 | "Learn", "Understand", "Discover" (NOT "Master") |
| 3 | Contains primary keyword | 1 | Concept name + "JavaScript" present |
| 4 | Promises specific value | 1 | Lists 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:
| Concept | Description |
|---|---|
| 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:
| Issue | Bad Description | Fix |
|---|---|---|
| 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" |
| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 长度为150-160字符 | 1 | 统计 |
| 2 | 以动作词开头 | 1 | 使用"Learn"、"Understand"、"Discover"(不要用"Master") |
| 3 | 包含核心关键词 | 1 | 包含概念名称和"JavaScript" |
| 4 | 承诺具体价值 | 1 | 列出读者将学到的内容 |
描述公式:
[动作词] [概念定义] in JavaScript. [具体学习内容]: [主题1], [主题2], 和 [主题3].优秀示例:
| 概念 | 描述 |
|---|---|
| 闭包 | "Learn JavaScript closures and how functions remember their scope. Covers lexical scoping, practical use cases, memory considerations, and common closure patterns."(159字符) |
| 事件循环 | "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字符 - 需要精简!) |
| 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字符) |
反面示例:
| 问题 | 不佳描述 | 修复方案 |
|---|---|---|
| 过短 | "Learn about closures"(20字符) | 扩展至150-160字符并添加具体内容 |
| 过长 | [会被截断] | 严格精简,保留关键信息 |
| 以"Master"开头 | "Master JavaScript closures..." | 改为"Learn JavaScript closures..." |
| 无关键词 | "Functions can remember things" | 添加"closures"和"JavaScript" |
| 过于模糊 | "A guide to closures" | 列出具体主题:"涵盖X、Y和Z" |
Keyword Placement Checklist (5 points)
关键词位置检查清单(5分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | Primary keyword in title | 1 | Check frontmatter |
| 2 | Primary keyword in meta description | 1 | Check frontmatter |
| 3 | Primary keyword in first 100 words | 1 | Check opening paragraphs |
| 4 | Keyword in at least one H2 heading | 1 | Scan all |
| 5 | No keyword stuffing | 1 | Content 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 │
│ │
└─────────────────────────────────────────────────────────────────────────┘| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 标题中包含核心关键词 | 1 | 检查前置元数据 |
| 2 | 元描述中包含核心关键词 | 1 | 检查前置元数据 |
| 3 | 前100词中包含核心关键词 | 1 | 检查开篇段落 |
| 4 | 至少一个H2标题中包含关键词 | 1 | 扫描所有 |
| 5 | 无关键词堆砌 | 1 | 内容阅读自然 |
关键词位置分布:
┌─────────────────────────────────────────────────────────────────────────┐
│ 关键词位置分布 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 🔴 关键位置(必须包含关键词) │
│ ───────────────────────────────── │
│ • 标题前置元数据 │
│ • 描述前置元数据 │
│ • 第一段(前100词内) │
│ • 至少一个H2标题 │
│ │
│ 🟡 推荐位置(自然融入) │
│ ────────────────────────────────── │
│ • "你将学到什么"信息框 │
│ • H3子标题 │
│ • 关键要点部分 │
│ • 主要H2标题后的第一句话 │
│ │
│ ⚠️ 需避免 │
│ ───────── │
│ • 每1000词中同一短语出现超过4次 │
│ • 在可用代词的地方强行插入关键字 │
│ • 为适配关键词使用生硬的句子结构 │
│ │
└─────────────────────────────────────────────────────────────────────────┘Content Structure Checklist (6 points)
内容结构检查清单(6分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | Opens with question hook | 1 | First paragraph asks engaging question |
| 2 | Code example in first 200 words | 1 | Simple example appears early |
| 3 | "What you'll learn" Info box | 1 | |
| 4 | Short paragraphs (2-4 sentences) | 1 | Scan content for long blocks |
| 5 | 1,500+ words | 1 | Word count check |
| 6 | Key terms bolded on first mention | 1 | Important terms use |
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 │
│ │
└─────────────────────────────────────────────────────────────────────────┘| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 以问题式钩子开篇 | 1 | 第一段提出引人入胜的问题 |
| 2 | 前200词内包含代码示例 | 1 | 简单示例尽早出现 |
| 3 | 包含"你将学到什么"信息框 | 1 | 开篇后使用 |
| 4 | 短段落(2-4句话) | 1 | 扫描内容,避免长段落 |
| 5 | 字数达1500+ | 1 | 检查字数统计 |
| 6 | 关键术语首次出现时加粗 | 1 | 重要术语使用 |
内容结构模板:
┌─────────────────────────────────────────────────────────────────────────┐
│ 理想页面结构 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. 问题式钩子(前50词) │
│ "JavaScript如何...?为什么要...?" │
│ │
│ 2. 简要回答 + 代码示例(50-200词) │
│ 快速解释 + 简单代码演示 │
│ │
│ 3. "你将学到什么"信息框 │
│ 5-7个项目符号 │
│ │
│ 4. 前置知识提示(如适用) │
│ 链接至所需的前置概念 │
│ │
│ 5. 主要内容章节(H2标题) │
│ 每个H2标题回答一个问题或讲解一个概念 │
│ 包含代码示例、图表、表格 │
│ │
│ 6. 常见误区/陷阱章节 │
│ 指出容易出错的地方 │
│ │
│ 7. 关键要点 │
│ 8-10条编号要点总结全部内容 │
│ │
│ 8. 自我测试 │
│ 5-6个问答折叠面板 │
│ │
│ 9. 相关概念 │
│ 4个卡片链接至相关主题 │
│ │
│ 10. 资源(参考资料、文章、视频) │
│ MDN链接、精选文章、视频 │
│ │
└─────────────────────────────────────────────────────────────────────────┘Featured Snippet Checklist (4 points)
精选摘要优化检查清单(4分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | "What is X" has 40-60 word definition | 1 | Count words in first paragraph after "What is" H2 |
| 2 | At least one H2 is phrased as question | 1 | Check for "What is", "How does", "Why" H2s |
| 3 | Numbered steps for "How to" content | 1 | Uses |
| 4 | Comparison tables (if applicable) | 1 | Tables 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):
markdown
undefined| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | "What is X"部分包含40-60词的定义 | 1 | 统计"What is" H2标题后第一段的词数 |
| 2 | 至少一个H2标题以问题形式呈现 | 1 | 检查是否有"What is"、"How does"、"Why"类H2标题 |
| 3 | "How to"内容使用编号步骤 | 1 | 使用 |
| 4 | (如适用)包含对比表格 | 1 | 为"X vs Y"内容添加表格 |
精选摘要格式:
┌─────────────────────────────────────────────────────────────────────────┐
│ 精选摘要格式 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 查询类型 获胜格式 你的内容 │
│ ─────────── ────────────── ──────────── │
│ │
│ "What is X" 段落 40-60词的定义 │
│ H2标题后,关键词加粗 │
│ │
│ "How to X" 编号列表 <Steps>组件或 │
│ 1. 2. 3. 格式的markdown │
│ │
│ "X vs Y" 表格 | 特性 | X | Y | │
│ 对比表格 │
│ │
│ "Types of X" 项目符号列表 - **类型1** — 描述 │
│ - **类型2** — 描述 │
│ │
│ "[X] examples" 代码块 ```javascript │
│ + 解释 // 示例代码 │
│ │
└─────────────────────────────────────────────────────────────────────────┘定义段落示例(40-60词):
markdown
undefinedWhat is a Closure in JavaScript?
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)
---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.
(共52词 - 非常适合作为精选摘要)
---Internal Linking Checklist (4 points)
内部链接检查清单(4分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | 3-5 related concepts linked in body | 1 | Count |
| 2 | Descriptive anchor text | 1 | No "click here", "here", "this" |
| 3 | Prerequisites in Warning box | 1 | |
| 4 | Related Concepts section has 4 cards | 1 | |
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:
markdown
<!-- 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>| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 正文中包含3-5个相关概念链接 | 1 | 统计正文中指向 |
| 2 | 使用描述性锚文本 | 1 | 避免使用"click here"、"here"、"this" |
| 3 | 提示框中包含前置知识链接 | 1 | 开头使用 |
| 4 | 相关概念部分包含4个卡片 | 1 | 结尾使用 |
优质锚文本示例:
| ❌ 不佳 | ✓ 优质 |
|---|---|
| "click here" | "event loop concept" |
| "here" | "JavaScript closures" |
| "this article" | "our Promises guide" |
| "read more" | "understanding the call stack" |
链接位置策略:
markdown
<!-- 前置知识提示框中 -->
<Warning>
**前置知识:** 本指南假设你已了解[Promises](/concepts/promises)
和[Event Loop](/concepts/event-loop)。如有需要,请先阅读这些内容。
</Warning>
<!-- 正文中(自然语境下) -->
回调完成后,会被添加至任务队列 — 由[event loop](/concepts/event-loop)管理。
<!-- 相关概念部分 -->
<CardGroup cols={2}>
<Card title="Promises" icon="handshake" href="/concepts/promises">
async/await 基于Promises构建
</Card>
</CardGroup>Technical SEO Checklist (3 points)
技术SEO检查清单(3分)
| # | Check | Points | How to Verify |
|---|---|---|---|
| 1 | Single H1 per page | 1 | Only one |
| 2 | URL slug contains keyword | 1 | |
| 3 | No orphan pages | 1 | Page 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
markdown
undefined| 序号 | 检查项 | 分值 | 验证方式 |
|---|---|---|---|
| 1 | 每页仅一个H1标题 | 1 | 仅保留一个 |
| 2 | URL路径包含关键词 | 1 | 使用 |
| 3 | 无孤立页面 | 1 | 至少有一个其他页面链接至本页面 |
H1标题规则:
每个页面应仅有一个H1标题(你的主标题)。这对SEO至关重要:
- H1标题告诉Google页面的核心主题
- 多个H1标题会让搜索引擎对页面层级产生困惑
- 所有其他标题应使用H2 ()及更低层级
## - H1标题应包含核心关键词
markdown
undefinedClosures in JavaScript ← This is your H1 (only one!)
Closures in JavaScript ← 这是你的H1标题(仅一个!)
What is a Closure? ← H2 for sections
What is a Closure? ← 章节使用H2标题
Lexical Scope ← H3 for subsections
Lexical Scope ← 子章节使用H3标题
How Closures Work ← Another H2
How Closures Work ← 另一个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 underscores** — `event-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)
---
**URL/路径最佳实践:**
| ✅ 优质 | ❌ 不佳 |
|---------|--------|
| `/concepts/closures` | `/concepts/c1` |
| `/concepts/event-loop` | `/concepts/topic-7` |
| `/concepts/type-coercion` | `/concepts/abc123` |
| `/concepts/async-await` | `/concepts/async_await` |
路径规则:
- **包含核心关键词** — 概念名称应出现在URL中
- **使用连字符,而非下划线** — `event-loop`而非`event_loop`
- **保持路径简短易读** — 不超过50字符
- **不使用UUID、数据库ID或随机字符串**
- **仅使用小写字母** — `/concepts/Event-Loop`应改为`/concepts/event-loop`
**孤立页面检测:**
孤立页面指没有其他页面通过内部链接指向它的页面。这会损害SEO,因为:
- Google可能无法频繁发现或抓取它
- 这表明该页面在你的网站结构中不重要
- 用户无法自然导航至该页面
- 链接权重无法传递至该页面
**如何检查孤立页面:**
1. 在代码库中搜索指向该概念的链接:`grep -r "/concepts/[slug]" docs/`
2. 验证它至少出现在一个其他概念的"相关概念"部分
3. 检查将其列为前置知识的页面是否有相应的反向链接
4. 确保它已包含在导航中(`docs.json`)
**修复孤立页面:**
- 将该概念添加至相关页面的"相关概念"CardGroup组件中
- 在相关概念的正文中自然地添加指向它的链接
- 确保双向链接(如果A链接至B,B也应在相关语境下链接回A)
---Scoring System
评分系统
Total Points Available: 30
总分:30分
| Category | Max Points |
|---|---|
| Title Tag | 4 |
| Meta Description | 4 |
| Keyword Placement | 5 |
| Content Structure | 6 |
| Featured Snippets | 4 |
| Internal Linking | 4 |
| Technical SEO | 3 |
| Total | 30 |
| 类别 | 最高分 |
|---|---|
| 标题标签 | 4 |
| 元描述 | 4 |
| 关键词位置 | 5 |
| 内容结构 | 6 |
| 精选摘要 | 4 |
| 内部链接 | 4 |
| 技术SEO | 3 |
| 总计 | 30 |
Score Interpretation
分数解读
| Score | Percentage | Status | Action |
|---|---|---|---|
| 27-30 | 90-100% | ✅ Excellent | Ready to publish |
| 23-26 | 75-89% | ⚠️ Good | Minor optimizations needed |
| 17-22 | 55-74% | ⚠️ Fair | Several improvements needed |
| 0-16 | <55% | ❌ Poor | Significant work required |
| 分数 | 百分比 | 状态 | 操作建议 |
|---|---|---|---|
| 27-30 | 90-100% | ✅ 优秀 | 可发布 |
| 23-26 | 75-89% | ⚠️ 良好 | 需要小幅优化 |
| 17-22 | 55-74% | ⚠️ 一般 | 需要多项改进 |
| 0-16 | <55% | ❌ 较差 | 需要大幅整改 |
Common SEO Issues and Fixes
常见SEO问题及修复方案
Title Tag Issues
标题标签问题
| Issue | Current | Fix |
|---|---|---|
| Too short (<50 chars) | "Closures" (8) | "Closures: How Functions Remember Their Scope in JavaScript" (58) |
| Too long (>60 chars) | "Understanding JavaScript Closures and How They Work with Examples" (66) | "Closures: How Functions Remember Their Scope in JavaScript" (58) |
| Missing keyword | "Understanding Scope" | Add concept name: "Closures: Understanding Scope in JavaScript" |
| No hook | "JavaScript Closures" | Add benefit: "Closures: How Functions Remember Their Scope in JavaScript" |
| Missing "JavaScript" | "Closures Explained" | Add at end: "Closures Explained in JavaScript" |
| 问题 | 当前情况 | 修复方案 |
|---|---|---|
| 过短(<50字符) | "Closures"(8字符) | "Closures: How Functions Remember Their Scope in JavaScript"(58字符) |
| 过长(>60字符) | "Understanding JavaScript Closures and How They Work with Examples"(66字符) | "Closures: How Functions Remember Their Scope in JavaScript"(58字符) |
| 缺少关键词 | "Understanding Scope" | 添加概念名称:"Closures: Understanding Scope in JavaScript" |
| 无钩子 | "JavaScript Closures" | 添加价值点:"Closures: How Functions Remember Their Scope in JavaScript" |
| 缺少"JavaScript" | "Closures Explained" | 在结尾添加"in JavaScript" |
Meta Description Issues
元描述问题
| Issue | Current | Fix |
|---|---|---|
| Too short (<120 chars) | "Learn about closures" (20) | Expand with specifics to 150-160 chars |
| Too long (>160 chars) | [Gets truncated] | Edit ruthlessly, keep key information |
| Starts with "Master" | "Master JavaScript closures..." | "Learn JavaScript closures..." |
| No keyword | "Functions that remember" | Include "closures" and "JavaScript" |
| Too vague | "A guide to closures" | List specific topics: "Covers X, Y, and Z" |
| 问题 | 当前情况 | 修复方案 |
|---|---|---|
| 过短(<120字符) | "Learn about closures"(20字符) | 扩展至150-160字符并添加具体内容 |
| 过长(>160字符) | [会被截断] | 严格精简,保留关键信息 |
| 以"Master"开头 | "Master JavaScript closures..." | 改为"Learn JavaScript closures..." |
| 无关键词 | "Functions that remember" | 添加"closures"和"JavaScript" |
| 过于模糊 | "A guide to closures" | 列出具体主题:"涵盖X、Y和Z" |
Content Structure Issues
内容结构问题
| Issue | Fix |
|---|---|
| No question hook | Start with "How does...?" or "Why...?" |
| Code example too late | Move simple example to first 200 words |
| Missing Info box | Add |
| Long paragraphs | Break into 2-4 sentence chunks |
| Under 1,500 words | Add more depth, examples, edge cases |
| No bolded terms | Bold key concepts on first mention |
| 问题 | 修复方案 |
|---|---|
| 无问题式钩子 | 以"How does...?"或"Why...?"开头 |
| 代码示例过晚 | 将简单示例移至前200词内 |
| 缺少信息框 | 添加 |
| 长段落 | 拆分为2-4句话的短段落 |
| 字数不足1500 | 添加更多深度内容、示例和边界情况 |
| 关键术语未加粗 | 首次出现关键概念时使用加粗格式 |
Featured Snippet Issues
精选摘要问题
| Issue | Fix |
|---|---|
| No "What is" definition | Add 40-60 word definition paragraph |
| Definition too long | Tighten to 40-60 words |
| No question H2s | Add "What is X?" or "How does X work?" H2 |
| Steps not numbered | Use |
| No comparison tables | Add table for "X vs Y" sections |
| 问题 | 修复方案 |
|---|---|
| 无"What is"定义 | 添加40-60词的定义段落 |
| 定义过长 | 精简至40-60词 |
| 无问题式H2标题 | 添加"What is X?"或"How does X work?"类H2标题 |
| 步骤未编号 | 使用 |
| 无对比表格 | 为"X vs Y"部分添加表格 |
Internal Linking Issues
内部链接问题
| Issue | Fix |
|---|---|
| No internal links | Add 3-5 links to related concepts |
| Bad anchor text | Replace "click here" with descriptive text |
| No prerequisites | Add |
| Empty Related Concepts | Add 4 Cards linking to related topics |
| 问题 | 修复方案 |
|---|---|
| 无内部链接 | 添加3-5个指向相关概念的链接 |
| 锚文本不佳 | 将"click here"替换为描述性文本 |
| 无前置知识提示 | 添加 |
| 相关概念部分为空 | 添加4个指向相关主题的卡片 |
Technical SEO Issues
技术SEO问题
| Issue | Fix |
|---|---|
| Multiple H1 tags | Keep only one |
| Slug missing keyword | Rename file to include concept name (e.g., |
| Orphan page | Add links from related concept pages' body or Related Concepts section |
| Underscore in slug | Use hyphens: |
| Uppercase in slug | Use lowercase only: |
| Slug too long | Shorten to primary keyword: |
| 问题 | 修复方案 |
|---|---|
| 多个H1标题 | 仅保留一个 |
| 路径缺少关键词 | 重命名文件以包含概念名称(如 |
| 孤立页面 | 在相关概念页面的正文或相关概念部分添加指向它的链接 |
| 路径中使用下划线 | 使用连字符: |
| 路径中使用大写字母 | 仅使用小写字母: |
| 路径过长 | 简化为核心关键词: |
SEO Audit Report Template
SEO审核报告模板
Use this template to document your findings.
markdown
undefined使用此模板记录审核结果。
markdown
undefinedSEO Audit Report: [Concept Name]
SEO审核报告:[概念名称]
File:
Date: YYYY-MM-DD
Auditor: [Name/Claude]
Overall Score: XX/30 (XX%)
Status: ✅ Excellent | ⚠️ Needs Work | ❌ Poor
/docs/concepts/[slug].mdx文件:
日期: YYYY-MM-DD
审核人: [姓名/Claude]
总分: XX/30(XX%)
状态: ✅ 优秀 | ⚠️ 需要改进 | ❌ 较差
/docs/concepts/[slug].mdxScore Summary
评分摘要
| Category | Score | Status |
|---|---|---|
| Title Tag | X/4 | ✅/⚠️/❌ |
| Meta Description | X/4 | ✅/⚠️/❌ |
| Keyword Placement | X/5 | ✅/⚠️/❌ |
| Content Structure | X/6 | ✅/⚠️/❌ |
| Featured Snippets | X/4 | ✅/⚠️/❌ |
| Internal Linking | X/4 | ✅/⚠️/❌ |
| Technical SEO | X/3 | ✅/⚠️/❌ |
| Total | X/30 | STATUS |
| 类别 | 得分 | 状态 |
|---|---|---|
| 标题标签 | X/4 | ✅/⚠️/❌ |
| 元描述 | X/4 | ✅/⚠️/❌ |
| 关键词位置 | X/5 | ✅/⚠️/❌ |
| 内容结构 | X/6 | ✅/⚠️/❌ |
| 精选摘要 | X/4 | ✅/⚠️/❌ |
| 内部链接 | X/4 | ✅/⚠️/❌ |
| 技术SEO | X/3 | ✅/⚠️/❌ |
| 总计 | X/30 | 状态 |
Target Keywords
目标关键词
Primary Keyword: [e.g., "JavaScript closures"]
Secondary Keywords:
- [keyword 1]
- [keyword 2]
- [keyword 3]
Search Intent: Informational / How-to / Comparison
核心关键词: [例如:"JavaScript closures"]
次要关键词:
- [关键词1]
- [关键词2]
- [关键词3]
搜索意图: 信息类 / 操作类 / 对比类
Title Tag Analysis
标题标签分析
Current Title: "[current title from frontmatter]"
Character Count: XX characters
Score: X/4
| Check | Status | Notes |
|---|---|---|
| Length 50-60 chars | ✅/❌ | XX characters |
| Primary keyword in first half | ✅/❌ | [notes] |
| Ends with "in JavaScript" | ✅/❌ | [notes] |
| Contains compelling hook | ✅/❌ | [notes] |
Issues Found: [if any]
Recommended Title: "[suggested title]" (XX chars)
当前标题: "[前置元数据中的当前标题]"
字符数: XX字符
得分: X/4
| 检查项 | 状态 | 备注 |
|---|---|---|
| 长度50-60字符 | ✅/❌ | XX字符 |
| 核心关键词位于前半部分 | ✅/❌ | [备注] |
| 以"in JavaScript"结尾 | ✅/❌ | [备注] |
| 包含吸引人的钩子 | ✅/❌ | [备注] |
发现的问题:(如有)
推荐标题: "[建议标题]"(XX字符)
Meta Description Analysis
元描述分析
Current Description: "[current description from frontmatter]"
Character Count: XX characters
Score: X/4
| Check | Status | Notes |
|---|---|---|
| Length 150-160 chars | ✅/❌ | XX characters |
| Starts with action word | ✅/❌ | Starts with "[word]" |
| Contains primary keyword | ✅/❌ | [notes] |
| Promises specific value | ✅/❌ | [notes] |
Issues Found: [if any]
Recommended Description: "[suggested description]" (XX chars)
当前描述: "[前置元数据中的当前描述]"
字符数: XX字符
得分: X/4
| 检查项 | 状态 | 备注 |
|---|---|---|
| 长度150-160字符 | ✅/❌ | XX字符 |
| 以动作词开头 | ✅/❌ | 以"[词汇]"开头 |
| 包含核心关键词 | ✅/❌ | [备注] |
| 承诺具体价值 | ✅/❌ | [备注] |
发现的问题:(如有)
推荐描述: "[建议描述]"(XX字符)
Keyword Placement Analysis
关键词位置分析
Score: X/5
| Location | Present | Notes |
|---|---|---|
| Title | ✅/❌ | [notes] |
| Meta description | ✅/❌ | [notes] |
| First 100 words | ✅/❌ | Found at word XX |
| H2 heading | ✅/❌ | Found in: "[H2 text]" |
| Natural reading | ✅/❌ | [no stuffing / stuffing detected] |
Missing Keyword Placements:
- [Location where keyword should be added]
得分: X/5
| 位置 | 是否存在 | 备注 |
|---|---|---|
| 标题 | ✅/❌ | [备注] |
| 元描述 | ✅/❌ | [备注] |
| 前100词 | ✅/❌ | 出现在第XX词 |
| H2标题 | ✅/❌ | 出现在:"[H2文本]" |
| 阅读流畅度 | ✅/❌ | [无堆砌 / 存在堆砌] |
缺失的关键词位置:
- [应添加关键词的位置]
Content Structure Analysis
内容结构分析
Word Count: X,XXX words
Score: X/6
| Check | Status | Notes |
|---|---|---|
| Question hook opening | ✅/❌ | [notes] |
| Code in first 200 words | ✅/❌ | Code appears at word XX |
| "What you'll learn" box | ✅/❌ | [present/missing] |
| Short paragraphs | ✅/❌ | [notes on paragraph length] |
| 1,500+ words | ✅/❌ | X,XXX words |
| Bolded key terms | ✅/❌ | [notes] |
Structure Issues:
- [Issue and recommendation]
字数: X,XXX词
得分: X/6
| 检查项 | 状态 | 备注 |
|---|---|---|
| 问题式钩子开篇 | ✅/❌ | [备注] |
| 前200词内包含代码 | ✅/❌ | 代码出现在第XX词 |
| "你将学到什么"信息框 | ✅/❌ | [存在/缺失] |
| 短段落 | ✅/❌ | [关于段落长度的备注] |
| 字数1500+ | ✅/❌ | X,XXX词 |
| 关键术语加粗 | ✅/❌ | [备注] |
结构问题:
- [问题及建议]
Featured Snippet Analysis
精选摘要分析
Score: X/4
| Check | Status | Notes |
|---|---|---|
| 40-60 word definition | ✅/❌ | Currently XX words |
| Question-format H2 | ✅/❌ | Found: "[H2]" / Not found |
| Numbered steps | ✅/❌ | [notes] |
| Comparison tables | ✅/❌/N/A | [notes] |
Snippet Opportunities:
-
"What is [concept]" snippet:
- Current definition: XX words
- Action: [Expand to/Trim to] 40-60 words
-
"How to [action]" snippet:
- Action: [Add Steps component / Already present]
得分: X/4
| 检查项 | 状态 | 备注 |
|---|---|---|
| 40-60词的定义 | ✅/❌ | 当前为XX词 |
| 问题式H2标题 | ✅/❌ | 已找到:"[H2标题]" / 未找到 |
| 编号步骤 | ✅/❌ | [备注] |
| 对比表格 | ✅/❌/不适用 | [备注] |
精选摘要机会:
-
"What is [concept]"摘要:
- 当前定义:XX词
- 操作:[扩展至/精简至]40-60词
-
"How to [action]"摘要:
- 操作:[添加Steps组件 / 已存在]
Internal Linking Analysis
内部链接分析
Score: X/4
| Check | Status | Notes |
|---|---|---|
| 3-5 internal links in body | ✅/❌ | Found X links |
| Descriptive anchor text | ✅/❌ | [notes] |
| Prerequisites in Warning | ✅/❌ | [present/missing] |
| Related Concepts section | ✅/❌ | X cards present |
Current Internal Links:
- [Anchor text] →
/concepts/[slug] - [Anchor text] →
/concepts/[slug]
Recommended Links to Add:
- Link to [concept] in [section/context]
- Link to [concept] in [section/context]
Bad Anchor Text Found:
- Line XX: "click here" → change to "[descriptive text]"
得分: X/4
| 检查项 | 状态 | 备注 |
|---|---|---|
| 正文中包含3-5个内部链接 | ✅/❌ | 找到X个链接 |
| 描述性锚文本 | ✅/❌ | [备注] |
| 提示框中包含前置知识 | ✅/❌ | [存在/缺失] |
| 相关概念部分 | ✅/❌ | 存在X个卡片 |
当前内部链接:
- [锚文本] →
/concepts/[slug] - [锚文本] →
/concepts/[slug]
建议添加的链接:
- 在[章节/语境]中链接至[概念]
- 在[章节/语境]中链接至[概念]
不佳锚文本:
- 第XX行:"click here" → 改为"[描述性文本]"
Technical SEO Analysis
技术SEO分析
Score: X/3
| Check | Status | Notes |
|---|---|---|
| Single H1 per page | ✅/❌ | [Found X H1 tags] |
| URL slug contains keyword | ✅/❌ | Current: |
| Not an orphan page | ✅/❌ | Linked from X other pages |
H1 Tags Found:
- Line XX: ← Should be the only one
# [H1 text] - [List any additional H1s that need to be changed to H2]
Slug Analysis:
- Current slug:
[slug].mdx - Contains keyword: ✅/❌
- Format correct: ✅/❌ (lowercase, hyphens, no special chars)
Incoming Links Found:
- → Links to this page in [section]
/concepts/[other-concept] - → Links in Related Concepts
/concepts/[other-concept]
If orphan page, add links from:
- [Suggested concept page] in [section]
- [Suggested concept page] in Related Concepts
得分: X/3
| 检查项 | 状态 | 备注 |
|---|---|---|
| 每页仅一个H1标题 | ✅/❌ | [找到X个H1标题] |
| URL路径包含关键词 | ✅/❌ | 当前路径: |
| 非孤立页面 | ✅/❌ | 被X个其他页面链接 |
找到的H1标题:
- 第XX行:← 应仅保留这一个
# [H1文本] - [列出所有需要改为H2的额外H1标题]
路径分析:
- 当前路径:
[slug].mdx - 包含关键词:✅/❌
- 格式正确:✅/❌(小写、连字符、无特殊字符)
入站链接:
- → 在[章节]中链接至本页面
/concepts/[other-concept] - → 在相关概念部分链接
/concepts/[other-concept]
如果是孤立页面,从以下页面添加链接:
- [建议的概念页面]的[章节]
- [建议的概念页面]的相关概念部分
Priority Fixes
优先级修复方案
High Priority (Do First)
高优先级(优先处理)
-
[Issue]
- Current: [what it is now]
- Recommended: [what it should be]
- Impact: [why this matters]
-
[Issue]
- Current: [what it is now]
- Recommended: [what it should be]
- Impact: [why this matters]
-
[问题]
- 当前情况:[当前状态]
- 建议方案:[目标状态]
- 影响:[重要性说明]
-
[问题]
- 当前情况:[当前状态]
- 建议方案:[目标状态]
- 影响:[重要性说明]
Medium Priority
中优先级
- [Issue]
- Recommendation: [fix]
- [问题]
- 建议方案:[修复方式]
Low Priority (Nice to Have)
低优先级(可选优化)
- [Issue]
- Recommendation: [fix]
- [问题]
- 建议方案:[修复方式]
Competitive Analysis (Optional)
竞品分析(可选)
Top-Ranking Pages for "[primary keyword]":
-
[Competitor 1 - URL]
- What they do well: [observation]
- Word count: ~X,XXX
-
[Competitor 2 - URL]
- What they do well: [observation]
- Word count: ~X,XXX
Our Advantages:
- [What we do better]
Gaps to Fill:
- [What we're missing that competitors have]
"[核心关键词]"排名靠前的页面:
-
[竞品1 - URL]
- 优势:[观察结果]
- 字数:~X,XXX
-
[竞品2 - URL]
- 优势:[观察结果]
- 字数:~X,XXX
我们的优势:
- [我们做得更好的地方]
待填补的差距:
- [竞品有但我们缺失的内容]
Implementation Checklist
实施检查清单
After making fixes, verify:
- Title is 50-60 characters with keyword and hook
- Description is 150-160 characters with action word and value
- Primary keyword in title, description, first 100 words, and H2
- Opens with question hook
- Code example in first 200 words
- "What you'll learn" Info box present
- Paragraphs are 2-4 sentences
- 1,500+ words total
- Key terms bolded on first mention
- 40-60 word definition for featured snippet
- At least one question-format H2
- 3-5 internal links with descriptive anchor text
- Prerequisites in Warning box (if applicable)
- Related Concepts section has 4 cards
- Single H1 per page (title only)
- URL slug contains primary keyword
- Page linked from at least one other concept page
- All fixes implemented and verified
完成修复后,验证以下内容:
- 标题长度为50-60字符,包含关键词和钩子
- 描述长度为150-160字符,包含动作词和价值点
- 核心关键词出现在标题、描述、前100词和H2标题中
- 以问题式钩子开篇
- 前200词内包含代码示例
- 包含"你将学到什么"信息框
- 段落为2-4句话的短段落
- 总字数达1500+
- 首次出现关键术语时已加粗
- 包含40-60词的定义以优化精选摘要
- 至少一个问题式H2标题
- 包含3-5个带描述性锚文本的内部链接
- (如适用)提示框中包含前置知识链接
- 相关概念部分包含4个卡片
- 每页仅一个H1标题(即主标题)
- URL路径包含核心关键词
- 至少有一个其他概念页面链接至本页面
- 所有修复已实施并验证
Final Recommendation
最终建议
Ready to Publish: ✅ Yes / ❌ No - [reason]
Next Review Date: [When to re-audit, e.g., "3 months" or "after major update"]
---可发布: ✅ 是 / ❌ 否 - [原因]
下次审核日期: [重新审核时间,如"3个月后"或"重大更新后"]
---Quick Reference
快速参考
Character Counts
字符数要求
| Element | Ideal Length |
|---|---|
| Title | 50-60 characters |
| Meta Description | 150-160 characters |
| Definition paragraph | 40-60 words |
| 元素 | 理想长度 |
|---|---|
| 标题 | 50-60字符 |
| 元描述 | 150-160字符 |
| 定义段落 | 40-60词 |
Keyword Density
关键词密度
- Don't exceed 3-4 mentions of exact phrase per 1,000 words
- Use variations naturally (e.g., "closures", "closure", "JavaScript closures")
- 每1000词中精确短语提及次数不超过3-4次
- 自然使用变体(如"closures"、"closure"、"JavaScript closures")
Content Length
内容长度
| Length | Assessment |
|---|---|
| <1,000 words | Too thin - add depth |
| 1,000-1,500 | Minimum viable |
| 1,500-2,500 | Good |
| 2,500-4,000 | Excellent |
| >4,000 | Consider splitting |
| 长度 | 评估 |
|---|---|
| <1000词 | 过于单薄 - 需增加深度 |
| 1000-1500词 | 最低合格标准 |
| 1500-2500词 | 良好 |
| 2500-4000词 | 优秀 |
| >4000词 | 考虑拆分 |
Summary
总结
When auditing a concept page for SEO:
- Identify target keywords using the keyword cluster for that concept
- Check title tag — 50-60 chars, keyword first, hook, ends with "JavaScript"
- Check meta description — 150-160 chars, action word, keyword, specific value
- Verify keyword placement — Title, description, first 100 words, H2
- Audit content structure — Question hook, early code, Info box, short paragraphs
- Optimize for featured snippets — 40-60 word definitions, numbered steps, tables
- Check internal linking — 3-5 links, good anchors, Related Concepts section
- Generate report — Document score, issues, and prioritized fixes
Remember: SEO isn't about gaming search engines — it's about making content easy to find for developers who need it. Every optimization should also improve the reader experience.
审核概念页面SEO时,请遵循以下步骤:
- 确定目标关键词 - 使用该概念对应的关键词集群
- 检查标题标签 - 长度50-60字符,关键词前置,包含钩子,以"JavaScript"结尾
- 检查元描述 - 长度150-160字符,以动作词开头,包含关键词和具体价值
- 验证关键词位置 - 标题、描述、前100词、H2标题中均需包含
- 审核内容结构 - 问题式钩子、早期代码示例、信息框、短段落
- 优化精选摘要 - 40-60词定义、编号步骤、表格
- 检查内部链接 - 3-5个链接、优质锚文本、相关概念部分
- 生成报告 - 记录得分、问题和优先级修复方案
请记住: SEO并非欺骗搜索引擎,而是让有需要的开发者更容易找到内容。每一项优化都应同时提升读者体验。