Agent SkillsDanielPodolsky/ownyourcode › seo-fundamentals

seo-fundamentals

GitHub

用于审查前端页面SEO基础,涵盖标题、元描述、语义HTML及Open Graph标签。适用于构建公开页面或优化搜索引擎可见性时,提供检查清单与常见错误纠正指南。

.claude/skills/fundamentals/seo/SKILL.md DanielPodolsky/ownyourcode

Trigger Scenarios

审查HTML head部分 查看代码中的meta标签 处理Next.js/Remix页面组件 优化页面结构以利于索引

Install

npx skills add DanielPodolsky/ownyourcode --skill seo-fundamentals -g -y
More Options

Non-standard path

npx skills add https://github.com/DanielPodolsky/ownyourcode/tree/main/.claude/skills/fundamentals/seo -g -y

Use without installing

npx skills use DanielPodolsky/ownyourcode@seo-fundamentals

指定 Agent (Claude Code)

npx skills add DanielPodolsky/ownyourcode --skill seo-fundamentals -a claude-code -g -y

安装 repo 全部 skill

npx skills add DanielPodolsky/ownyourcode --all -g -y

预览 repo 内 skill

npx skills add DanielPodolsky/ownyourcode --list

SKILL.md

Frontmatter
{
    "name": "seo-fundamentals",
    "description": "Reviews SEO including meta tags, semantic HTML, and Open Graph. Use when building public-facing pages, adding title\/description tags, or optimizing for search engines."
}

SEO Fundamentals Review

"Good SEO is good UX. If search engines can't understand your page, users might not find it."

When to Apply

Activate this skill when:

  • Reviewing HTML <head> sections
  • Seeing meta tags in code
  • Next.js/Remix page components
  • HTML structure with headings
  • Any page that should be indexed

The SEO Checklist

Must Have (Every Page)

  • Title tag — 50-60 characters, unique per page
  • Meta description — 150-160 characters, compelling
  • Single H1 — One per page, describes main content
  • Logical heading hierarchy — H1 → H2 → H3 (no skipping)
  • Semantic HTML<header>, <main>, <nav>, <article>, <footer>
  • Image alt text — Descriptive, not "image1.jpg"

Should Have (Marketing Pages)

  • Open Graph tags — og:title, og:description, og:image
  • Twitter Card — twitter:card, twitter:title
  • Canonical URL — Prevent duplicate content issues
  • Structured data — JSON-LD for rich snippets

Performance (Affects SEO)

  • Core Web Vitals awareness
    • LCP (Largest Contentful Paint) < 2.5s
    • FID (First Input Delay) < 100ms
    • CLS (Cumulative Layout Shift) < 0.1

Common Mistakes (Anti-Patterns)

1. Multiple H1 Tags

<!-- ❌ BAD: Multiple H1s confuse search engines -->
<h1>Welcome</h1>
<h1>Our Products</h1>
<h1>Contact Us</h1>

<!-- ✅ GOOD: One H1, logical hierarchy -->
<h1>Welcome to Our Store</h1>
<h2>Our Products</h2>
<h2>Contact Us</h2>

2. Missing Alt Text

<!-- ❌ BAD: Empty or useless alt -->
<img src="hero.jpg" alt="">
<img src="team.jpg" alt="image">

<!-- ✅ GOOD: Descriptive alt text -->
<img src="hero.jpg" alt="Software engineer working at laptop">
<img src="team.jpg" alt="Our founding team of 5 engineers">

3. Div Soup (No Semantic HTML)

<!-- ❌ BAD: No semantic meaning -->
<div class="header">
  <div class="nav">...</div>
</div>
<div class="content">...</div>
<div class="footer">...</div>

<!-- ✅ GOOD: Semantic HTML -->
<header>
  <nav>...</nav>
</header>
<main>...</main>
<footer>...</footer>

4. Skipping Heading Levels

<!-- ❌ BAD: Jumps from H1 to H4 -->
<h1>Page Title</h1>
<h4>Some Section</h4>

<!-- ✅ GOOD: Sequential hierarchy -->
<h1>Page Title</h1>
<h2>Main Section</h2>
<h3>Subsection</h3>

5. Generic Title Tags

<!-- ❌ BAD: Not descriptive -->
<title>Home</title>
<title>Page</title>

<!-- ✅ GOOD: Descriptive with keywords -->
<title>Daniel Lamb - Full Stack Developer Portfolio</title>
<title>Contact Us | Acme Software Solutions</title>

Socratic Questions

Ask these instead of giving answers:

  1. Title: "If someone sees this title in Google results, would they click it?"
  2. H1: "How many H1 tags does this page have? What happens if there are multiple?"
  3. Alt Text: "If the image doesn't load, what information is lost?"
  4. Semantic HTML: "Can a screen reader understand the structure of this page?"
  5. Meta Description: "Does this description make you want to click?"

Stack-Specific Guidance

Next.js (App Router)

// Pattern: Metadata export
export const metadata = {
  title: 'Page Title',
  description: 'Page description',
  // Your implementation will differ
};

Next.js (Pages Router)

// Pattern: Next Head
import Head from 'next/head';

<Head>
  <title>Your title here</title>
  <meta name="description" content="Your description" />
</Head>

Plain HTML/React

<!-- In index.html or via react-helmet -->
<head>
  <title>Title here</title>
  <meta name="description" content="Description here">
</head>

Red Flags to Call Out

Flag Question
Missing title tag "What will this page show in search results?"
Multiple H1s "Which heading is the main topic? Search engines are confused."
No meta description "How will Google summarize this page?"
Empty alt text "What if the image doesn't load? What info is lost?"
All divs, no semantics "Can a screen reader navigate this page?"
Title over 60 chars "This will be cut off in search results. Can you shorten it?"

Open Graph Template

<!-- Minimum viable Open Graph -->
<meta property="og:title" content="Your Page Title">
<meta property="og:description" content="Your page description">
<meta property="og:image" content="https://yoursite.com/og-image.jpg">
<meta property="og:url" content="https://yoursite.com/page">
<meta property="og:type" content="website">

Interview Connection

"I implemented SEO best practices including semantic HTML, proper heading hierarchy, and meta tags, improving our page's discoverability."

When reviewing their code:

  • "What's your SEO strategy for this page?"
  • "How would Google understand what this page is about?"
  • "Show me your heading structure"

MCP Usage

Context7 - Framework Docs

Fetch: Next.js metadata documentation
Fetch: Semantic HTML best practices

Octocode - Real Examples

Search: "metadata" + "title" + "description" in Next.js repos
Search: Open Graph implementation patterns

Version History

  • bd1f17c Current 2026-07-11 17:35

Same Skill Collection

.claude/skills/career/resume-bullets/SKILL.md
.claude/skills/career/star-stories/SKILL.md
.claude/skills/fundamentals/accessibility/SKILL.md
.claude/skills/fundamentals/backend/SKILL.md
.claude/skills/fundamentals/database/SKILL.md
.claude/skills/fundamentals/debugging/SKILL.md
.claude/skills/fundamentals/documentation/SKILL.md
.claude/skills/fundamentals/engineering/SKILL.md
.claude/skills/fundamentals/error-handling/SKILL.md
.claude/skills/fundamentals/frontend/SKILL.md
.claude/skills/fundamentals/performance/SKILL.md
.claude/skills/fundamentals/resistance/SKILL.md
.claude/skills/fundamentals/security/SKILL.md
.claude/skills/fundamentals/testing/SKILL.md
.claude/skills/gates/error/SKILL.md
.claude/skills/gates/fundamentals/SKILL.md
.claude/skills/gates/ownership/SKILL.md
.claude/skills/gates/performance/SKILL.md
.claude/skills/gates/security/SKILL.md
.claude/skills/gates/testing/SKILL.md

Metadata

Files
0
Version
bd1f17c
Hash
216a3c9e
Indexed
2026-07-11 17:35

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-14 09:26
浙ICP备14020137号-1 $Map of visitor$