Initial commit with translated description
This commit is contained in:
130
SKILL.md
Normal file
130
SKILL.md
Normal 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
6
_meta.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"ownerId": "kn73vp5rarc3b14rc7wjcw8f8580t5d1",
|
||||
"slug": "seo",
|
||||
"version": "1.0.3",
|
||||
"publishedAt": 1772021873390
|
||||
}
|
||||
45
content.md
Normal file
45
content.md
Normal 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
87
keywords.md
Normal 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
48
links.md
Normal 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
43
local.md
Normal 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
84
memory-template.md
Normal 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
43
on-page.md
Normal 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
81
schema.md
Normal 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
43
setup.md
Normal 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
43
technical.md
Normal 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
|
||||
Reference in New Issue
Block a user