Initial commit with translated description

This commit is contained in:
2026-03-29 10:14:30 +08:00
commit 82d07894d8
11 changed files with 653 additions and 0 deletions

130
SKILL.md Normal file
View File

@@ -0,0 +1,130 @@
---
name: SEO (Site Audit + Content Writer + Competitor Analysis)
slug: seo
version: 1.0.3
homepage: https://clawic.com/skills/seo
changelog: "Improved name clarity with key capabilities"
description: "SEO专家代理具有网站审计、内容写作、关键词研究、技术修复、链接建设和排名策略。"
metadata: {"clawdbot":{"emoji":"🔍","requires":{"bins":[]},"os":["linux","darwin","win32"]}}
---
## Setup
On first use, read `setup.md` for workspace integration.
## When to Use
Agent needs to handle SEO: site audits, content optimization, keyword research, technical fixes, link strategies, local SEO, schema markup, or ranking improvements.
## Architecture
SEO workspace at `~/seo/`. See `memory-template.md` for setup.
```
~/seo/
├── memory.md # Site profiles, audit history, keyword tracking
├── audits/ # Site audit reports
└── content/ # SEO content drafts
```
## Quick Reference
| Topic | File |
|-------|------|
| Title tags, meta descriptions, headers, keyword placement | `on-page.md` |
| Core Web Vitals, crawlability, mobile, indexing | `technical.md` |
| Search intent, E-E-A-T, content writing | `content.md` |
| Google Business, NAP consistency, local keywords | `local.md` |
| JSON-LD, Article, LocalBusiness, FAQ, Product schema | `schema.md` |
| Internal linking, anchor text, backlink strategies | `links.md` |
| Keyword research and competitive analysis | `keywords.md` |
## Core Rules
### 1. Audit Before Action
Run complete site audit before recommendations. Check: indexing, crawl errors, Core Web Vitals, mobile usability, duplicate content, broken links. No guessing.
### 2. Search Intent First
Match content format to query intent. Informational → guides. Transactional → product pages. Commercial → comparisons. Wrong format = no ranking.
### 3. Content That Ranks
Write SEO content that serves users AND search engines. Answer the query in first 100 words. Cover topic comprehensively. Include LSI keywords naturally. Add FAQ section for People Also Ask.
### 4. Technical Foundation
Core Web Vitals: LCP < 2.5s, INP < 200ms, CLS < 0.1. Mobile-first. HTTPS. Canonical URLs. Clean sitemap. No blocked resources. Technical issues kill rankings.
### 5. E-E-A-T Signals
Experience, Expertise, Authoritativeness, Trustworthiness. Author bios with credentials. About page. External citations. Especially critical for YMYL topics.
### 6. Link Strategy
Internal linking builds topical authority. Anchor text matters. External links to authoritative sources help. Never buy links or participate in schemes.
### 7. Measure Everything
Track rankings, organic traffic, CTR, conversions. Use Search Console data. Iterate based on results, not assumptions.
## SEO Audit Checklist
**Indexing:**
- [ ] Site indexed in Google (site:domain.com)
- [ ] No important pages blocked in robots.txt
- [ ] XML sitemap submitted to Search Console
- [ ] No noindex on pages that should rank
**Technical:**
- [ ] Core Web Vitals passing
- [ ] Mobile-friendly
- [ ] HTTPS with no mixed content
- [ ] No crawl errors in Search Console
- [ ] Clean URL structure
**On-Page:**
- [ ] Unique title tags (50-60 chars)
- [ ] Meta descriptions (150-160 chars)
- [ ] One H1 per page with keyword
- [ ] Proper heading hierarchy
- [ ] Images with alt text
- [ ] Internal links
**Content:**
- [ ] Search intent matched
- [ ] Comprehensive coverage
- [ ] No thin content
- [ ] No duplicate content
- [ ] Fresh and updated
**Off-Page:**
- [ ] Google Business Profile (local)
- [ ] Quality backlink profile
- [ ] No toxic links
## Content Writing Process
1. **Keyword research** — Find target keyword, search volume, difficulty
2. **Intent analysis** — What format ranks? What do users want?
3. **Outline** — Cover all subtopics competitors cover + more
4. **Write** — Answer query fast, be comprehensive, natural keywords
5. **Optimize** — Title, meta, headers, internal links, schema
6. **Publish** — Submit to Search Console, monitor rankings
## Common Traps
- Writing content without checking search intent → won't rank
- Ignoring Core Web Vitals → rankings tank
- Keyword stuffing → penalties
- Duplicate title tags → wasted crawl budget
- No internal linking → poor topical authority
- Buying links → manual action risk
## Related Skills
Install with `clawhub install <slug>` if user confirms:
- `content-marketing` — Content strategy
- `analytics` — Traffic analysis
- `market-research` — Competitive analysis
- `html` — HTML optimization
- `web` — Web development
## Feedback
- If useful: `clawhub star seo`
- Stay updated: `clawhub sync`

6
_meta.json Normal file
View File

@@ -0,0 +1,6 @@
{
"ownerId": "kn73vp5rarc3b14rc7wjcw8f8580t5d1",
"slug": "seo",
"version": "1.0.3",
"publishedAt": 1772021873390
}

45
content.md Normal file
View File

@@ -0,0 +1,45 @@
# Content SEO
## Search Intent
Match content type to query intent — mismatch = no ranking:
- **Informational**: "how to", "what is" → guides, tutorials, explanations
- **Navigational**: brand + product → homepage, product page
- **Transactional**: "buy", "price", "discount" → product/service pages with CTAs
- **Commercial investigation**: "best", "vs", "review" → comparison, reviews
Check intent by searching: what's ranking on page 1? Match that format.
## E-E-A-T
For YMYL (Your Money Your Life) topics — health, finance, legal, safety:
- **Experience**: First-hand experience with topic (reviews, case studies)
- **Expertise**: Author credentials, byline with bio
- **Authoritativeness**: Site reputation, citations from authoritative sources
- **Trustworthiness**: Contact info, privacy policy, secure site, accurate content
E-E-A-T signals:
- Author bio with credentials and photo
- About page with company history
- External links to authoritative sources
- Updated date on content
- Cite sources for claims
## Content Quality
- Thin content penalty: <300 words with no unique value → noindex or expand
- Duplicate content: Google picks one version, others filtered — use canonical
- Content depth: cover topic comprehensively, answer related questions
- Unique value: what does YOUR content offer that competitors don't?
- User engagement: low time-on-page and high bounce signals poor content
## Freshness
- Query Deserves Freshness (QDF): time-sensitive topics need recent content
- "Best X 2025" queries: dated content ranks, but must be actually updated
- Update dates: changing date without updating content = spam
- Evergreen content: no dates in URL, update content periodically
- News: requires fast indexing, use Google News sitemap for news sites
## Content Structure
- Answer the query in first 100 words — featured snippet potential
- Table of contents for long content — improves UX and may show as sitelinks
- FAQ section at bottom — captures "People Also Ask" queries
- Bullet points and numbered lists — preferred for featured snippets
- Short paragraphs (2-3 sentences) — easier to read, especially mobile

87
keywords.md Normal file
View File

@@ -0,0 +1,87 @@
# Keyword Research & Competitive Analysis
## Keyword Research Process
1. **Seed keywords** — Start with obvious terms for the topic
2. **Expand** — Find related terms, questions, long-tail variations
3. **Analyze** — Check search volume, difficulty, intent
4. **Prioritize** — Balance volume, difficulty, and business value
5. **Map** — Assign keywords to pages (one primary per page)
## Keyword Metrics
| Metric | What It Means | Action |
|--------|---------------|--------|
| Search volume | Monthly searches | Higher = more potential traffic |
| Keyword difficulty | Competition level | Higher = harder to rank |
| CPC | Ad cost per click | Higher = more commercial value |
| SERP features | Snippets, maps, images | Affects CTR potential |
## Keyword Types
**By intent:**
- Informational: "how to", "what is", "guide"
- Navigational: brand names, specific sites
- Transactional: "buy", "price", "discount", "best"
- Commercial: "vs", "review", "alternative"
**By length:**
- Head terms: 1-2 words, high volume, high competition
- Long-tail: 3+ words, lower volume, easier to rank, higher conversion
## Competitive Analysis
### What to Analyze
1. **Who ranks** — Top 10 for target keywords
2. **What they cover** — Topics, subtopics, depth
3. **How they structure** — Format, headings, media
4. **Where they link** — Internal and external links
5. **Why they rank** — Authority, content quality, technical
### Gap Analysis
Find opportunities competitors miss:
- Topics they don't cover
- Questions they don't answer
- Formats they don't use (video, tools, calculators)
- Depth they lack
### Content Comparison
| Factor | Competitor A | Competitor B | Your Content |
|--------|--------------|--------------|--------------|
| Word count | | | |
| Subtopics covered | | | |
| Media (images, video) | | | |
| Freshness | | | |
| E-E-A-T signals | | | |
## Keyword Mapping
One primary keyword per page. Related keywords support the primary.
```
/page-url/
├── Primary: main target keyword
├── Secondary: related keyword 1, related keyword 2
└── LSI: semantically related terms
```
## Tracking
Track rankings over time:
- Weekly for competitive terms
- Monthly for long-tail
- Note algorithm updates that affect rankings
## Tools
Free options:
- Google Search Console — actual queries driving traffic
- Google Trends — relative search interest
- Google autocomplete — real user queries
- People Also Ask — question-based keywords
- Related searches — bottom of SERP
The skill does keyword research without external tools by analyzing SERPs and using public Google data.

48
links.md Normal file
View File

@@ -0,0 +1,48 @@
# Links & Authority
## Internal Linking
- Every page should be reachable within 3 clicks from homepage
- Use descriptive anchor text — "SEO guide" not "click here"
- Link from high-authority pages to important pages — passes PageRank
- Contextual links (in content) more valuable than nav/footer links
- Fix broken internal links — 404s waste crawl budget
- Don't overdo it — 100+ links per page dilutes value
## Anchor Text
- Exact match: "SEO tips" linking to SEO tips page — powerful but risky if overdone
- Partial match: "learn about SEO strategies" — safer, still relevant
- Branded: "Google's guide" — natural, builds brand
- Naked URL: "https://example.com" — looks natural in some contexts
- Generic: "click here", "read more" — wastes link opportunity
Mix of anchor text types looks natural. All exact match = penalty risk.
## Backlinks
- Quality > quantity — one link from NYT > 100 from random blogs
- Relevance matters — link from SEO blog > link from cooking blog (for SEO site)
- Domain authority (DA/DR) — higher = more valuable, but not everything
- Follow vs nofollow — follow passes PageRank, nofollow doesn't (but still has value)
- Link placement — in-content links > sidebar > footer
## Link Building (White Hat)
- Create linkable assets — tools, research, original data, infographics
- Guest posting — write for relevant blogs, include contextual link
- HARO (Help a Reporter Out) — journalist queries, get press links
- Broken link building — find broken links, offer your content as replacement
- Resource page outreach — get listed on "best resources" pages
- Digital PR — newsworthy content that journalists want to cover
## Link Penalties
- Buying links — Google detects payment patterns, manual actions
- Link exchanges — "I'll link you if you link me" at scale
- PBNs (Private Blog Networks) — footprints get detected
- Excessive reciprocal links — some OK, pattern-based penalized
- Low-quality directories — mass directory submission is outdated
- Comment/forum spam — nofollow anyway, plus looks desperate
## Disavow
- Use only when you can't remove bad links manually
- Upload disavow file in Search Console
- Disavow at domain level for spammy sites: `domain:spamsite.com`
- Don't disavow links you didn't build — Google ignores most bad links automatically
- Takes weeks to months to see effect

43
local.md Normal file
View File

@@ -0,0 +1,43 @@
# Local SEO
## Google Business Profile
- Claim and verify your listing — unverified profiles don't rank
- Complete ALL fields: hours, services, attributes, products
- Primary category: choose the most specific match (not generic "Business")
- Photos: businesses with photos get 42% more direction requests
- Posts: weekly updates show activity, appear in Knowledge Panel
- Q&A: seed with common questions, monitor for spam
## NAP Consistency
- NAP = Name, Address, Phone — must be IDENTICAL everywhere
- Format matters: "Street" vs "St." is a mismatch to Google
- Check major directories: Yelp, Yellow Pages, Facebook, Apple Maps, Bing Places
- Use local phone number — toll-free looks non-local
- Update NAP when moving — inconsistency tanks rankings for months
## Local Keywords
- "[Service] + [City]" pages for each location served
- "near me" queries: proximity + relevance + prominence
- Neighborhood/district names for dense metros
- Location in title tag: "Plumber in Austin, TX | Company Name"
- Service area pages: one per city, unique content each
## Reviews
- Quantity + recency + rating: all three matter for local pack
- Respond to ALL reviews — especially negative, shows engagement
- Never buy fake reviews — Google detects patterns, leads to suspension
- Review velocity: steady flow better than sudden burst
- Ask at point of transaction — "leave a review" links in receipts/emails
## Citations
- Structured citations: business directories with NAP
- Unstructured citations: mentions in articles, blogs, news
- Industry-specific directories: lawyers on Avvo, restaurants on TripAdvisor
- Chamber of commerce and local business associations
- Data aggregators (Factual, Localeze) push to multiple directories
## Local Content
- Location pages with unique content — not just NAP + map
- Local news/events coverage — shows community involvement
- Case studies with local clients — builds local relevance signals
- Embed Google Maps — helps Google verify location

84
memory-template.md Normal file
View File

@@ -0,0 +1,84 @@
# Memory Template — SEO
## ~/seo/memory.md
```markdown
# SEO Memory
## Status
- Last audit: [date]
- Active sites: [count]
- Keywords tracked: [count]
## Sites
### [site-name]
- Domain: example.com
- Type: e-commerce / blog / saas / local
- Last audit: [date]
- Priority issues: [list]
- Notes: [context]
## Keyword Tracking
| Keyword | Site | Current | Target | Trend | Last Checked |
|---------|------|---------|--------|-------|--------------|
| [keyword] | [site] | [rank] | [goal] | ↑/↓/→ | [date] |
## Audit History
### [date] — [site]
- Issues found: [count]
- Critical: [list]
- Fixed: [list]
- Pending: [list]
## Content Pipeline
| Title | Target Keyword | Status | Published |
|-------|----------------|--------|-----------|
| [title] | [keyword] | draft/review/live | [date/url] |
## Backlink Opportunities
| Site | DA | Status | Notes |
|------|----|---------| ------|
| [domain] | [score] | contacted/pending/secured | [context] |
## Notes
[Learnings, patterns, site-specific context]
```
## Audit Report Template
Save audit reports to `~/seo/audits/[site]-[date].md`:
```markdown
# SEO Audit — [site] — [date]
## Summary
- Overall health: [score]/100
- Critical issues: [count]
- Warnings: [count]
- Passed: [count]
## Critical Issues
1. [Issue] — [impact] — [fix]
## Warnings
1. [Issue] — [recommendation]
## Recommendations
1. [Priority action]
2. [Next action]
## Technical Details
- Core Web Vitals: LCP [x]s, INP [x]ms, CLS [x]
- Mobile: [pass/fail]
- Indexing: [x] pages indexed
- Crawl errors: [count]
## Next Steps
1. [Action item with deadline]
```

43
on-page.md Normal file
View File

@@ -0,0 +1,43 @@
# On-Page SEO Traps
## Title Tag
- 50-60 chars MAX — Google truncates at ~60, shows "..." which hurts CTR
- Primary keyword in first 30 chars — attention drops after that
- NEVER repeat same keyword twice in title — looks spammy
- Brand name at END, not start — unless brand is the search term
- Pipe `|` or dash `-` as separator — avoid colons, look like error messages
## Meta Description
- 150-160 chars — longer gets truncated, shorter wastes space
- Google often rewrites it — but well-written ones used ~70% of time
- Include primary keyword — gets bolded in search results
- Call-to-action works: "Learn how...", "Discover...", "Get started..."
- NEVER duplicate across pages — Google may show "no description available"
## Headers
- ONE H1 per page — multiple H1s confuse hierarchy
- H1 ≠ Title tag — related but different, doubles keyword opportunities
- H2s for main sections, H3s for subsections — hierarchy matters for featured snippets
- Keyword variations in H2s — don't repeat exact primary keyword
- NEVER use H1 for logo or nav — semantic misuse
## Keywords
- Primary keyword in: title, H1, first 100 words, URL, meta description
- Density under 3% — modern Google detects stuffing patterns
- LSI keywords (related terms) — signals topic depth, not just single keyword
- Long-tail in H2/H3 — captures "how to..." and question queries
## Images
- Alt text describes image — "Golden retriever playing fetch" not "dog"
- Keyword in alt only if natural — forced keywords get penalized
- File names with hyphens: `email-marketing-tips.jpg` not `IMG_4532.jpg`
- Compress under 100KB — larger images kill page speed
- WebP format: 25-35% smaller than JPEG at same quality
- Lazy loading for below-fold images — improves LCP
## URLs
- Short, descriptive, lowercase: `/seo-guide/` not `/page?id=123`
- Hyphens between words: `/email-marketing/` not `/emailmarketing/`
- No dates unless content is time-sensitive — allows evergreen updates
- No stop words unless needed for clarity — "how-to-seo" not "how-to-do-seo"
- NEVER change URLs without 301 redirect — breaks links, loses authority

81
schema.md Normal file
View File

@@ -0,0 +1,81 @@
# Structured Data (Schema Markup)
## Basics
- JSON-LD format preferred — script tag in head, cleanest implementation
- Test with Rich Results Test — not all schema triggers rich results
- Test with Schema Validator (schema.org) — catches syntax errors
- Required vs recommended properties — missing required = invalid
- One schema type per thing — don't mark same content as Article AND BlogPosting
## Common Schema Types
### Article / BlogPosting
```json
{
"@type": "Article",
"headline": "...",
"author": {"@type": "Person", "name": "..."},
"datePublished": "2025-01-15",
"dateModified": "2025-01-20",
"image": "..."
}
```
- `datePublished` required — omitting it loses rich result eligibility
- `dateModified` shows in search when different from published
- `image` recommended for better visual in search results
### LocalBusiness
```json
{
"@type": "LocalBusiness",
"name": "...",
"address": {"@type": "PostalAddress", ...},
"telephone": "...",
"openingHoursSpecification": [...]
}
```
- Use specific subtype: `Restaurant`, `Dentist`, `LegalService`
- `geo` coordinates help Google verify location
- `priceRange` shows in Knowledge Panel
### FAQ
```json
{
"@type": "FAQPage",
"mainEntity": [
{"@type": "Question", "name": "...", "acceptedAnswer": {...}}
]
}
```
- FAQ schema shows expandable Q&A in search results — HUGE CTR boost
- Content must be visible on page — hidden FAQ = spam
- Max ~10 questions typically shown
### Product
```json
{
"@type": "Product",
"name": "...",
"offers": {"@type": "Offer", "price": "...", "priceCurrency": "USD"},
"aggregateRating": {...}
}
```
- `offers` required for price in search results
- `aggregateRating` shows stars — needs actual review data
- `availability` (InStock, OutOfStock) shows availability badge
### HowTo
- Step-by-step instructions with images
- Can show as rich result with step previews
- Each step needs `text`, optionally `image`
### Review
- Individual review with `reviewRating`
- Self-serving reviews (reviewing own business) = spam
## Traps
- Marking invisible content — schema must match visible page content
- Fake reviews/ratings — Google detects and penalizes
- Schema for content that doesn't exist — "Product" on info page
- Mixing incompatible types — Article + Product on same page
- Not updating `dateModified` when content changes

43
setup.md Normal file
View File

@@ -0,0 +1,43 @@
# Setup — SEO
## First Use
This skill works immediately with no setup required.
## Workspace Integration
For persistent tracking across sessions, create workspace:
```
mkdir -p ~/seo/audits ~/seo/content
```
Register in your main memory file:
```markdown
## SEO Workspace
Location: ~/seo/
- Audit reports: ~/seo/audits/
- Content drafts: ~/seo/content/
```
## Optional Configuration
Track specific sites in `~/seo/memory.md`:
```markdown
# SEO Memory
## Sites
- example.com — Main project, e-commerce
- blog.example.com — Content hub
## Keyword Tracking
| Keyword | Current Rank | Target | Last Checked |
|---------|--------------|--------|--------------|
| best widgets | 12 | 3 | 2025-01-15 |
```
## No Setup Required
The skill provides complete SEO guidance without any configuration. Workspace setup is optional for users who want to track multiple sites or audit history.

43
technical.md Normal file
View File

@@ -0,0 +1,43 @@
# Technical SEO
## Core Web Vitals
- **LCP** (Largest Contentful Paint): < 2.5s — largest visible element load time
- **INP** (Interaction to Next Paint): < 200ms — response to user interaction
- **CLS** (Cumulative Layout Shift): < 0.1 — visual stability, no jumping content
- Test with PageSpeed Insights — field data from real users matters more than lab
- Poor CWV = ranking demotion in competitive queries
## Crawlability
- robots.txt: `Disallow: /admin/` blocks crawlers — check with `robots.txt Tester` in GSC
- NEVER block CSS/JS in robots.txt — Google needs them to render JavaScript
- Crawl budget: large sites (>10K pages) must prioritize important pages
- Orphan pages (no internal links) won't get crawled regularly
- XML sitemap: max 50K URLs or 50MB per file, link in robots.txt
## Indexing
- `noindex` meta tag: prevents indexing but wastes crawl budget
- `canonical` URL: self-referencing on all pages, cross-domain for syndicated content
- Parameter URLs (`?sort=price`) need canonical to main version
- Pagination: use rel="next"/"prev" or canonical to page 1, depending on content
- Check indexing in GSC: URL Inspection tool shows render and index status
## Mobile
- Mobile-first indexing: Google indexes mobile version, desktop secondary
- Viewport meta tag required: `<meta name="viewport" content="width=device-width, initial-scale=1">`
- Touch targets minimum 48x48px — failing this hurts mobile usability score
- No intrusive interstitials — popups that block content get demoted
- Test with Mobile-Friendly Test — failing blocks ranking in mobile search
## HTTPS
- Required for rankings — HTTP sites show "Not Secure" warning
- Mixed content (HTTP resources on HTTPS page) breaks padlock
- HSTS header: tells browsers to always use HTTPS
- After migration: 301 redirect all HTTP to HTTPS, update canonical URLs
## Speed
- TTFB < 200ms — server response time, hosting matters
- Render-blocking CSS: inline critical CSS, defer rest
- JavaScript: async/defer attributes, avoid blocking main thread
- Images: lazy load, responsive srcset, modern formats (WebP/AVIF)
- Fonts: font-display: swap prevents invisible text during load
- CDN for static assets — reduces latency globally