mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-16 23:23:29 +08:00
feat: add SEO audit support
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Everything Claude Code (ECC) — Agent Instructions
|
# Everything Claude Code (ECC) — Agent Instructions
|
||||||
|
|
||||||
This is a **production-ready AI coding plugin** providing 38 specialized agents, 162 skills, 72 commands, and automated hook workflows for software development.
|
This is a **production-ready AI coding plugin** providing 39 specialized agents, 163 skills, 72 commands, and automated hook workflows for software development.
|
||||||
|
|
||||||
**Version:** 1.10.0
|
**Version:** 1.10.0
|
||||||
|
|
||||||
@@ -145,8 +145,8 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
|
|||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
agents/ — 38 specialized subagents
|
agents/ — 39 specialized subagents
|
||||||
skills/ — 162 workflow skills and domain knowledge
|
skills/ — 163 workflow skills and domain knowledge
|
||||||
commands/ — 72 slash commands
|
commands/ — 72 slash commands
|
||||||
hooks/ — Trigger-based automations
|
hooks/ — Trigger-based automations
|
||||||
rules/ — Always-follow guidelines (common + per-language)
|
rules/ — Always-follow guidelines (common + per-language)
|
||||||
|
|||||||
10
README.md
10
README.md
@@ -236,7 +236,7 @@ For manual install instructions see the README in the `rules/` folder. When copy
|
|||||||
/plugin list ecc@ecc
|
/plugin list ecc@ecc
|
||||||
```
|
```
|
||||||
|
|
||||||
**That's it!** You now have access to 38 agents, 162 skills, and 72 legacy command shims.
|
**That's it!** You now have access to 39 agents, 163 skills, and 72 legacy command shims.
|
||||||
|
|
||||||
### Multi-model commands require additional setup
|
### Multi-model commands require additional setup
|
||||||
|
|
||||||
@@ -1152,9 +1152,9 @@ The configuration is automatically detected from `.opencode/opencode.json`.
|
|||||||
|
|
||||||
| Feature | Claude Code | OpenCode | Status |
|
| Feature | Claude Code | OpenCode | Status |
|
||||||
|---------|-------------|----------|--------|
|
|---------|-------------|----------|--------|
|
||||||
| Agents | PASS: 38 agents | PASS: 12 agents | **Claude Code leads** |
|
| Agents | PASS: 39 agents | PASS: 12 agents | **Claude Code leads** |
|
||||||
| Commands | PASS: 72 commands | PASS: 31 commands | **Claude Code leads** |
|
| Commands | PASS: 72 commands | PASS: 31 commands | **Claude Code leads** |
|
||||||
| Skills | PASS: 162 skills | PASS: 37 skills | **Claude Code leads** |
|
| Skills | PASS: 163 skills | PASS: 37 skills | **Claude Code leads** |
|
||||||
| Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** |
|
| Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** |
|
||||||
| Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** |
|
| Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** |
|
||||||
| MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** |
|
| MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** |
|
||||||
@@ -1261,9 +1261,9 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e
|
|||||||
|
|
||||||
| Feature | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
| Feature | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
||||||
|---------|------------|------------|-----------|----------|
|
|---------|------------|------------|-----------|----------|
|
||||||
| **Agents** | 38 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 |
|
| **Agents** | 39 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 |
|
||||||
| **Commands** | 72 | Shared | Instruction-based | 31 |
|
| **Commands** | 72 | Shared | Instruction-based | 31 |
|
||||||
| **Skills** | 162 | Shared | 10 (native format) | 37 |
|
| **Skills** | 163 | Shared | 10 (native format) | 37 |
|
||||||
| **Hook Events** | 8 types | 15 types | None yet | 11 types |
|
| **Hook Events** | 8 types | 15 types | None yet | 11 types |
|
||||||
| **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks |
|
| **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks |
|
||||||
| **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions |
|
| **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions |
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ cp -r everything-claude-code/rules/perl ~/.claude/rules/
|
|||||||
/plugin list ecc@ecc
|
/plugin list ecc@ecc
|
||||||
```
|
```
|
||||||
|
|
||||||
**完成!** 你现在可以使用 38 个代理、162 个技能和 72 个命令。
|
**完成!** 你现在可以使用 39 个代理、163 个技能和 72 个命令。
|
||||||
|
|
||||||
### multi-* 命令需要额外配置
|
### multi-* 命令需要额外配置
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Public ECC plugin repo for agents, skills, commands, hooks, rules, install surfa
|
|||||||
|
|
||||||
- Default branch: `main`
|
- Default branch: `main`
|
||||||
- Public release surface is aligned at `v1.10.0`
|
- Public release surface is aligned at `v1.10.0`
|
||||||
- Public catalog truth is `38` agents, `72` commands, and `162` skills
|
- Public catalog truth is `39` agents, `72` commands, and `163` skills
|
||||||
- Public plugin slug is now `ecc`; legacy `everything-claude-code` install paths remain supported for compatibility
|
- Public plugin slug is now `ecc`; legacy `everything-claude-code` install paths remain supported for compatibility
|
||||||
- Release discussion: `#1272`
|
- Release discussion: `#1272`
|
||||||
- ECC 2.0 exists in-tree and builds, but it is still alpha rather than GA
|
- ECC 2.0 exists in-tree and builds, but it is still alpha rather than GA
|
||||||
@@ -140,6 +140,7 @@ Keep this file detailed for only the current sprint, blockers, and next actions.
|
|||||||
- 2026-04-05: Fixed the remaining OpenCode npm-publish gap in `db6d52e`. The root package now builds `.opencode/dist` during `prepack`, includes the compiled OpenCode plugin assets in the published tarball, and carries a dedicated regression test (`tests/scripts/build-opencode.test.js`) so the package no longer ships only raw TypeScript source for that surface.
|
- 2026-04-05: Fixed the remaining OpenCode npm-publish gap in `db6d52e`. The root package now builds `.opencode/dist` during `prepack`, includes the compiled OpenCode plugin assets in the published tarball, and carries a dedicated regression test (`tests/scripts/build-opencode.test.js`) so the package no longer ships only raw TypeScript source for that surface.
|
||||||
- 2026-04-05: Added `skills/council`, direct-ported the safe `code-tour` lane from `#1193`, and re-synced the repo to `162` skills. `code-tour` stays self-contained and only produces `.tours/*.tour` artifacts with real file/line anchors; no external runtime or extension install is assumed inside the skill.
|
- 2026-04-05: Added `skills/council`, direct-ported the safe `code-tour` lane from `#1193`, and re-synced the repo to `162` skills. `code-tour` stays self-contained and only produces `.tours/*.tour` artifacts with real file/line anchors; no external runtime or extension install is assumed inside the skill.
|
||||||
- 2026-04-05: Closed the latest auto-generated ECC bundle PR wave (`#1275`-`#1281`) after deploying `ECC-Tools/main` fix `f615905`, which now blocks repo-level issue-comment `/analyze` requests from opening repeated bundle PRs while still allowing PR-thread retry analysis to run against immutable head SHAs.
|
- 2026-04-05: Closed the latest auto-generated ECC bundle PR wave (`#1275`-`#1281`) after deploying `ECC-Tools/main` fix `f615905`, which now blocks repo-level issue-comment `/analyze` requests from opening repeated bundle PRs while still allowing PR-thread retry analysis to run against immutable head SHAs.
|
||||||
|
- 2026-04-05: Filled the SEO gap by direct-porting `agents/seo-specialist.md` and `skills/seo/SKILL.md` into `main`, then wiring `skills/seo` into `business-content`. This resolves the stale `team-builder` reference to an SEO specialist and brings the public catalog to `39` agents and `163` skills without merging the stale PR wholesale.
|
||||||
- 2026-04-05: Fixed the stale-row bug in `.github/workflows/monthly-metrics.yml` with `bf5961e`. The workflow now refreshes the current month row in issue `#1087` instead of early-returning when the month already exists, and the dispatched run updated the April snapshot to the current star/fork/release counts.
|
- 2026-04-05: Fixed the stale-row bug in `.github/workflows/monthly-metrics.yml` with `bf5961e`. The workflow now refreshes the current month row in issue `#1087` instead of early-returning when the month already exists, and the dispatched run updated the April snapshot to the current star/fork/release counts.
|
||||||
- 2026-04-05: Recovered the useful cost-control workflow from the divergent Hermes branch as a small ECC-native operator skill instead of replaying the branch. `skills/ecc-tools-cost-audit/SKILL.md` is now wired into `operator-workflows` and focused on webhook -> queue -> worker tracing, burn containment, quota bypass, premium-model leakage, and retry fanout in the sibling `ECC-Tools` repo.
|
- 2026-04-05: Recovered the useful cost-control workflow from the divergent Hermes branch as a small ECC-native operator skill instead of replaying the branch. `skills/ecc-tools-cost-audit/SKILL.md` is now wired into `operator-workflows` and focused on webhook -> queue -> worker tracing, burn containment, quota bypass, premium-model leakage, and retry fanout in the sibling `ECC-Tools` repo.
|
||||||
- 2026-04-05: Added `skills/council/SKILL.md` in `753da37` as an ECC-native four-voice decision workflow. The useful protocol from PR `#1254` was retained, but the shadow `~/.claude/notes` write path was explicitly removed in favor of `knowledge-ops`, `/save-session`, or direct GitHub/Linear updates when a decision delta matters.
|
- 2026-04-05: Added `skills/council/SKILL.md` in `753da37` as an ECC-native four-voice decision workflow. The useful protocol from PR `#1254` was retained, but the shadow `~/.claude/notes` write path was explicitly removed in favor of `knowledge-ops`, `/save-session`, or direct GitHub/Linear updates when a decision delta matters.
|
||||||
|
|||||||
62
agents/seo-specialist.md
Normal file
62
agents/seo-specialist.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
name: seo-specialist
|
||||||
|
description: SEO specialist for technical SEO audits, on-page optimization, structured data, Core Web Vitals, and content/keyword mapping. Use for site audits, meta tag reviews, schema markup, sitemap and robots issues, and SEO remediation plans.
|
||||||
|
tools: ["Read", "Grep", "Glob", "Bash", "WebSearch", "WebFetch"]
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a senior SEO specialist focused on technical SEO, search visibility, and sustainable ranking improvements.
|
||||||
|
|
||||||
|
When invoked:
|
||||||
|
1. Identify the scope: full-site audit, page-specific issue, schema problem, performance issue, or content planning task.
|
||||||
|
2. Read the relevant source files and deployment-facing assets first.
|
||||||
|
3. Prioritize findings by severity and likely ranking impact.
|
||||||
|
4. Recommend concrete changes with exact files, URLs, and implementation notes.
|
||||||
|
|
||||||
|
## Audit Priorities
|
||||||
|
|
||||||
|
### Critical
|
||||||
|
|
||||||
|
- crawl or index blockers on important pages
|
||||||
|
- `robots.txt` or meta-robots conflicts
|
||||||
|
- canonical loops or broken canonical targets
|
||||||
|
- redirect chains longer than two hops
|
||||||
|
- broken internal links on key paths
|
||||||
|
|
||||||
|
### High
|
||||||
|
|
||||||
|
- missing or duplicate title tags
|
||||||
|
- missing or duplicate meta descriptions
|
||||||
|
- invalid heading hierarchy
|
||||||
|
- malformed or missing JSON-LD on key page types
|
||||||
|
- Core Web Vitals regressions on important pages
|
||||||
|
|
||||||
|
### Medium
|
||||||
|
|
||||||
|
- thin content
|
||||||
|
- missing alt text
|
||||||
|
- weak anchor text
|
||||||
|
- orphan pages
|
||||||
|
- keyword cannibalization
|
||||||
|
|
||||||
|
## Review Output
|
||||||
|
|
||||||
|
Use this format:
|
||||||
|
|
||||||
|
```text
|
||||||
|
[SEVERITY] Issue title
|
||||||
|
Location: path/to/file.tsx:42 or URL
|
||||||
|
Issue: What is wrong and why it matters
|
||||||
|
Fix: Exact change to make
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quality Bar
|
||||||
|
|
||||||
|
- no vague SEO folklore
|
||||||
|
- no manipulative pattern recommendations
|
||||||
|
- no advice detached from the actual site structure
|
||||||
|
- recommendations should be implementable by the receiving engineer or content owner
|
||||||
|
|
||||||
|
## Reference
|
||||||
|
|
||||||
|
Use `skills/seo` for the canonical ECC SEO workflow and implementation guidance.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Everything Claude Code (ECC) — 智能体指令
|
# Everything Claude Code (ECC) — 智能体指令
|
||||||
|
|
||||||
这是一个**生产就绪的 AI 编码插件**,提供 38 个专业代理、162 项技能、72 条命令以及自动化钩子工作流,用于软件开发。
|
这是一个**生产就绪的 AI 编码插件**,提供 39 个专业代理、163 项技能、72 条命令以及自动化钩子工作流,用于软件开发。
|
||||||
|
|
||||||
**版本:** 1.10.0
|
**版本:** 1.10.0
|
||||||
|
|
||||||
@@ -146,8 +146,8 @@
|
|||||||
## 项目结构
|
## 项目结构
|
||||||
|
|
||||||
```
|
```
|
||||||
agents/ — 38 个专业子代理
|
agents/ — 39 个专业子代理
|
||||||
skills/ — 162 个工作流技能和领域知识
|
skills/ — 163 个工作流技能和领域知识
|
||||||
commands/ — 72 个斜杠命令
|
commands/ — 72 个斜杠命令
|
||||||
hooks/ — 基于触发的自动化
|
hooks/ — 基于触发的自动化
|
||||||
rules/ — 始终遵循的指导方针(通用 + 每种语言)
|
rules/ — 始终遵循的指导方针(通用 + 每种语言)
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ npx ecc-install typescript
|
|||||||
/plugin list ecc@ecc
|
/plugin list ecc@ecc
|
||||||
```
|
```
|
||||||
|
|
||||||
**搞定!** 你现在可以使用 38 个智能体、162 项技能和 72 个命令了。
|
**搞定!** 你现在可以使用 39 个智能体、163 项技能和 72 个命令了。
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
@@ -1094,9 +1094,9 @@ opencode
|
|||||||
|
|
||||||
| 功能特性 | Claude Code | OpenCode | 状态 |
|
| 功能特性 | Claude Code | OpenCode | 状态 |
|
||||||
|---------|-------------|----------|--------|
|
|---------|-------------|----------|--------|
|
||||||
| 智能体 | PASS: 38 个 | PASS: 12 个 | **Claude Code 领先** |
|
| 智能体 | PASS: 39 个 | PASS: 12 个 | **Claude Code 领先** |
|
||||||
| 命令 | PASS: 72 个 | PASS: 31 个 | **Claude Code 领先** |
|
| 命令 | PASS: 72 个 | PASS: 31 个 | **Claude Code 领先** |
|
||||||
| 技能 | PASS: 162 项 | PASS: 37 项 | **Claude Code 领先** |
|
| 技能 | PASS: 163 项 | PASS: 37 项 | **Claude Code 领先** |
|
||||||
| 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** |
|
| 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** |
|
||||||
| 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** |
|
| 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** |
|
||||||
| MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** |
|
| MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** |
|
||||||
@@ -1206,9 +1206,9 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以
|
|||||||
|
|
||||||
| 功能特性 | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
| 功能特性 | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
||||||
|---------|------------|------------|-----------|----------|
|
|---------|------------|------------|-----------|----------|
|
||||||
| **智能体** | 38 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 |
|
| **智能体** | 39 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 |
|
||||||
| **命令** | 72 | 共享 | 基于指令 | 31 |
|
| **命令** | 72 | 共享 | 基于指令 | 31 |
|
||||||
| **技能** | 162 | 共享 | 10 (原生格式) | 37 |
|
| **技能** | 163 | 共享 | 10 (原生格式) | 37 |
|
||||||
| **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 |
|
| **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 |
|
||||||
| **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 |
|
| **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 |
|
||||||
| **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 |
|
| **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 |
|
||||||
|
|||||||
@@ -293,6 +293,7 @@
|
|||||||
"skills/investor-outreach",
|
"skills/investor-outreach",
|
||||||
"skills/lead-intelligence",
|
"skills/lead-intelligence",
|
||||||
"skills/social-graph-ranker",
|
"skills/social-graph-ranker",
|
||||||
|
"skills/seo",
|
||||||
"skills/market-research"
|
"skills/market-research"
|
||||||
],
|
],
|
||||||
"targets": [
|
"targets": [
|
||||||
|
|||||||
154
skills/seo/SKILL.md
Normal file
154
skills/seo/SKILL.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
---
|
||||||
|
name: seo
|
||||||
|
description: Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.
|
||||||
|
origin: ECC
|
||||||
|
---
|
||||||
|
|
||||||
|
# SEO
|
||||||
|
|
||||||
|
Improve search visibility through technical correctness, performance, and content relevance, not gimmicks.
|
||||||
|
|
||||||
|
## When to Use
|
||||||
|
|
||||||
|
Use this skill when:
|
||||||
|
- auditing crawlability, indexability, canonicals, or redirects
|
||||||
|
- improving title tags, meta descriptions, and heading structure
|
||||||
|
- adding or validating structured data
|
||||||
|
- improving Core Web Vitals
|
||||||
|
- doing keyword research and mapping keywords to URLs
|
||||||
|
- planning internal linking or sitemap / robots changes
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
### Principles
|
||||||
|
|
||||||
|
1. Fix technical blockers before content optimization.
|
||||||
|
2. One page should have one clear primary search intent.
|
||||||
|
3. Prefer long-term quality signals over manipulative patterns.
|
||||||
|
4. Mobile-first assumptions matter because indexing is mobile-first.
|
||||||
|
5. Recommendations should be page-specific and implementable.
|
||||||
|
|
||||||
|
### Technical SEO checklist
|
||||||
|
|
||||||
|
#### Crawlability
|
||||||
|
|
||||||
|
- `robots.txt` should allow important pages and block low-value surfaces
|
||||||
|
- no important page should be unintentionally `noindex`
|
||||||
|
- important pages should be reachable within a shallow click depth
|
||||||
|
- avoid redirect chains longer than two hops
|
||||||
|
- canonical tags should be self-consistent and non-looping
|
||||||
|
|
||||||
|
#### Indexability
|
||||||
|
|
||||||
|
- preferred URL format should be consistent
|
||||||
|
- multilingual pages need correct hreflang if used
|
||||||
|
- sitemaps should reflect the intended public surface
|
||||||
|
- no duplicate URLs should compete without canonical control
|
||||||
|
|
||||||
|
#### Performance
|
||||||
|
|
||||||
|
- LCP < 2.5s
|
||||||
|
- INP < 200ms
|
||||||
|
- CLS < 0.1
|
||||||
|
- common fixes: preload hero assets, reduce render-blocking work, reserve layout space, trim heavy JS
|
||||||
|
|
||||||
|
#### Structured data
|
||||||
|
|
||||||
|
- homepage: organization or business schema where appropriate
|
||||||
|
- editorial pages: `Article` / `BlogPosting`
|
||||||
|
- product pages: `Product` and `Offer`
|
||||||
|
- interior pages: `BreadcrumbList`
|
||||||
|
- Q&A sections: `FAQPage` only when the content truly matches
|
||||||
|
|
||||||
|
### On-page rules
|
||||||
|
|
||||||
|
#### Title tags
|
||||||
|
|
||||||
|
- aim for roughly 50-60 characters
|
||||||
|
- put the primary keyword or concept near the front
|
||||||
|
- make the title legible to humans, not stuffed for bots
|
||||||
|
|
||||||
|
#### Meta descriptions
|
||||||
|
|
||||||
|
- aim for roughly 120-160 characters
|
||||||
|
- describe the page honestly
|
||||||
|
- include the main topic naturally
|
||||||
|
|
||||||
|
#### Heading structure
|
||||||
|
|
||||||
|
- one clear `H1`
|
||||||
|
- `H2` and `H3` should reflect actual content hierarchy
|
||||||
|
- do not skip structure just for visual styling
|
||||||
|
|
||||||
|
### Keyword mapping
|
||||||
|
|
||||||
|
1. define the search intent
|
||||||
|
2. gather realistic keyword variants
|
||||||
|
3. prioritize by intent match, likely value, and competition
|
||||||
|
4. map one primary keyword/theme to one URL
|
||||||
|
5. detect and avoid cannibalization
|
||||||
|
|
||||||
|
### Internal linking
|
||||||
|
|
||||||
|
- link from strong pages to pages you want to rank
|
||||||
|
- use descriptive anchor text
|
||||||
|
- avoid generic anchors when a more specific one is possible
|
||||||
|
- backfill links from new pages to relevant existing ones
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Title formula
|
||||||
|
|
||||||
|
```text
|
||||||
|
Primary Topic - Specific Modifier | Brand
|
||||||
|
```
|
||||||
|
|
||||||
|
### Meta description formula
|
||||||
|
|
||||||
|
```text
|
||||||
|
Action + topic + value proposition + one supporting detail
|
||||||
|
```
|
||||||
|
|
||||||
|
### JSON-LD example
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "Article",
|
||||||
|
"headline": "Page Title Here",
|
||||||
|
"author": {
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "Author Name"
|
||||||
|
},
|
||||||
|
"publisher": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "Brand Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Audit output shape
|
||||||
|
|
||||||
|
```text
|
||||||
|
[HIGH] Duplicate title tags on product pages
|
||||||
|
Location: src/routes/products/[slug].tsx
|
||||||
|
Issue: Dynamic titles collapse to the same default string, which weakens relevance and creates duplicate signals.
|
||||||
|
Fix: Generate a unique title per product using the product name and primary category.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Anti-Patterns
|
||||||
|
|
||||||
|
| Anti-pattern | Fix |
|
||||||
|
| --- | --- |
|
||||||
|
| keyword stuffing | write for users first |
|
||||||
|
| thin near-duplicate pages | consolidate or differentiate them |
|
||||||
|
| schema for content that is not actually present | match schema to reality |
|
||||||
|
| content advice without checking the actual page | read the real page first |
|
||||||
|
| generic “improve SEO” outputs | tie every recommendation to a page or asset |
|
||||||
|
|
||||||
|
## Related Skills
|
||||||
|
|
||||||
|
- `seo-specialist`
|
||||||
|
- `frontend-patterns`
|
||||||
|
- `brand-voice`
|
||||||
|
- `market-research`
|
||||||
Reference in New Issue
Block a user