Claude
Cursor
opencode
Skill
seo-fundamentals
SEO fundamentals, E-E-A-T, Core Web Vitals, and Google algorithm principles.
Virus-scanned
Reviewed automatically before listing.
Download
vodailocz-kilo-kit-mcp-skills_ai-media_seo-fundamentals-0448e6c.zip · 3 KB
Install
skills CLI
npx skills add https://github.com/VoDaiLocz/kilo-kit-mcp/tree/main/skills/ai-media/seo-fundamentals
Claude Code
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vodailocz-kilo-kit-mcp@llmmart
Git
git clone https://github.com/VoDaiLocz/kilo-kit-mcp.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole vodailocz/kilo-kit-mcp collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
SEO Fundamentals
Principles for search engine visibility.
1. E-E-A-T Framework
| Principle | Signals |
|---|---|
| Experience | First-hand knowledge, real examples |
| Expertise | Credentials, depth of knowledge |
| Authoritativeness | Backlinks, mentions, industry recognition |
| Trustworthiness | HTTPS, transparency, accurate info |
2. Core Web Vitals
| Metric | Target | Measures |
|---|---|---|
| LCP | < 2.5s | Loading performance |
| INP | < 200ms | Interactivity |
| CLS | < 0.1 | Visual stability |
3. Technical SEO Principles
Site Structure
| Element | Purpose |
|---|---|
| XML sitemap | Help crawling |
| robots.txt | Control access |
| Canonical tags | Prevent duplicates |
| HTTPS | Security signal |
Performance
| Factor | Impact |
|---|---|
| Page speed | Core Web Vital |
| Mobile-friendly | Ranking factor |
| Clean URLs | Crawlability |
4. Content SEO Principles
Page Elements
| Element | Best Practice |
|---|---|
| Title tag | 50-60 chars, keyword front |
| Meta description | 150-160 chars, compelling |
| H1 | One per page, main keyword |
| H2-H6 | Logical hierarchy |
| Alt text | Descriptive, not stuffed |
Content Quality
| Factor | Importance |
|---|---|
| Depth | Comprehensive coverage |
| Freshness | Regular updates |
| Uniqueness | Original value |
| Readability | Clear writing |
5. Schema Markup Types
| Type | Use |
|---|---|
| Article | Blog posts, news |
| Organization | Company info |
| Person | Author profiles |
| FAQPage | Q&A content |
| Product | E-commerce |
| Review | Ratings |
| BreadcrumbList | Navigation |
6. AI Content Guidelines
What Google Looks For
| ✅ Do | ❌ Don't |
|---|---|
| AI draft + human edit | Publish raw AI content |
| Add original insights | Copy without value |
| Expert review | Skip fact-checking |
| Follow E-E-A-T | Keyword stuffing |
7. Ranking Factors (Prioritized)
| Priority | Factor |
|---|---|
| 1 | Quality, relevant content |
| 2 | Backlinks from authority sites |
| 3 | Page experience (Core Web Vitals) |
| 4 | Mobile optimization |
| 5 | Technical SEO fundamentals |
8. Measurement
| Metric | Tool |
|---|---|
| Rankings | Search Console, Ahrefs |
| Traffic | Analytics |
| Core Web Vitals | PageSpeed Insights |
| Indexing | Search Console |
| Backlinks | Ahrefs, Semrush |
Remember: SEO is a long-term game. Quality content + technical excellence + patience = results.
Files (kilo-kit-mcp)
-
scripts
-
seo_checker.py 6.4 KB
#!/usr/bin/env python3 """ SEO Checker - Search Engine Optimization Audit Checks HTML/JSX/TSX pages for SEO best practices. PURPOSE: - Verify meta tags, titles, descriptions - Check Open Graph tags for social sharing - Validate heading hierarchy - Check image accessibility (alt attributes) WHAT IT CHECKS: - HTML files (actual web pages) - JSX/TSX files (React page components) - Only files that are likely PUBLIC pages Usage: python seo_checker.py <project_path> """ import sys import json import re from pathlib import Path from datetime import datetime # Fix Windows console encoding try: sys.stdout.reconfigure(encoding='utf-8', errors='replace') except: pass # Directories to skip SKIP_DIRS = { 'node_modules', '.next', 'dist', 'build', '.git', '.github', '__pycache__', '.vscode', '.idea', 'coverage', 'test', 'tests', '__tests__', 'spec', 'docs', 'documentation', 'examples' } # Files to skip (not pages) SKIP_PATTERNS = [ 'config', 'setup', 'util', 'helper', 'hook', 'context', 'store', 'service', 'api', 'lib', 'constant', 'type', 'interface', 'mock', '.test.', '.spec.', '_test.', '_spec.' ] def is_page_file(file_path: Path) -> bool: """Check if this file is likely a public-facing page.""" name = file_path.name.lower() stem = file_path.stem.lower() # Skip utility/config files if any(skip in name for skip in SKIP_PATTERNS): return False # Check path - pages in specific directories are likely pages parts = [p.lower() for p in file_path.parts] page_dirs = ['pages', 'app', 'routes', 'views', 'screens'] if any(d in parts for d in page_dirs): return True # Filename indicators for pages page_names = ['page', 'index', 'home', 'about', 'contact', 'blog', 'post', 'article', 'product', 'landing', 'layout'] if any(p in stem for p in page_names): return True # HTML files are usually pages if file_path.suffix.lower() in ['.html', '.htm']: return True return False def find_pages(project_path: Path) -> list: """Find page files to check.""" patterns = ['**/*.html', '**/*.htm', '**/*.jsx', '**/*.tsx'] files = [] for pattern in patterns: for f in project_path.glob(pattern): # Skip excluded directories if any(skip in f.parts for skip in SKIP_DIRS): continue # Check if it's likely a page if is_page_file(f): files.append(f) return files[:50] # Limit to 50 files def check_page(file_path: Path) -> dict: """Check a single page for SEO issues.""" issues = [] try: content = file_path.read_text(encoding='utf-8', errors='ignore') except Exception as e: return {"file": str(file_path.name), "issues": [f"Error: {e}"]} # Detect if this is a layout/template file (has Head component) is_layout = 'Head>' in content or '<head' in content.lower() # 1. Title tag has_title = '<title' in content.lower() or 'title=' in content or 'Head>' in content if not has_title and is_layout: issues.append("Missing <title> tag") # 2. Meta description has_description = 'name="description"' in content.lower() or 'name=\'description\'' in content.lower() if not has_description and is_layout: issues.append("Missing meta description") # 3. Open Graph tags has_og = 'og:' in content or 'property="og:' in content.lower() if not has_og and is_layout: issues.append("Missing Open Graph tags") # 4. Heading hierarchy - multiple H1s h1_matches = re.findall(r'<h1[^>]*>', content, re.I) if len(h1_matches) > 1: issues.append(f"Multiple H1 tags ({len(h1_matches)})") # 5. Images without alt img_pattern = r'<img[^>]+>' imgs = re.findall(img_pattern, content, re.I) for img in imgs: if 'alt=' not in img.lower(): issues.append("Image missing alt attribute") break if 'alt=""' in img or "alt=''" in img: issues.append("Image has empty alt attribute") break # 6. Check for canonical link (nice to have) # has_canonical = 'rel="canonical"' in content.lower() return { "file": str(file_path.name), "issues": issues } def main(): project_path = Path(sys.argv[1] if len(sys.argv) > 1 else ".").resolve() print(f"\n{'='*60}") print(f" SEO CHECKER - Search Engine Optimization Audit") print(f"{'='*60}") print(f"Project: {project_path}") print(f"Time: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print("-"*60) # Find pages pages = find_pages(project_path) if not pages: print("\n[!] No page files found.") print(" Looking for: HTML, JSX, TSX in pages/app/routes directories") output = {"script": "seo_checker", "files_checked": 0, "passed": True} print("\n" + json.dumps(output, indent=2)) sys.exit(0) print(f"Found {len(pages)} page files to analyze\n") # Check each page all_issues = [] for f in pages: result = check_page(f) if result["issues"]: all_issues.append(result) # Summary print("=" * 60) print("SEO ANALYSIS RESULTS") print("=" * 60) if all_issues: # Group by issue type issue_counts = {} for item in all_issues: for issue in item["issues"]: issue_counts[issue] = issue_counts.get(issue, 0) + 1 print("\nIssue Summary:") for issue, count in sorted(issue_counts.items(), key=lambda x: -x[1]): print(f" [{count}] {issue}") print(f"\nAffected files ({len(all_issues)}):") for item in all_issues[:5]: print(f" - {item['file']}") if len(all_issues) > 5: print(f" ... and {len(all_issues) - 5} more") else: print("\n[OK] No SEO issues found!") total_issues = sum(len(item["issues"]) for item in all_issues) passed = total_issues == 0 output = { "script": "seo_checker", "project": str(project_path), "files_checked": len(pages), "files_with_issues": len(all_issues), "issues_found": total_issues, "passed": passed } print("\n" + json.dumps(output, indent=2)) sys.exit(0 if passed else 1) if __name__ == "__main__": main()
-
-
SKILL.md 2.7 KB
--- name: seo-fundamentals description: SEO fundamentals, E-E-A-T, Core Web Vitals, and Google algorithm principles. allowed-tools: Read, Glob, Grep --- # SEO Fundamentals > Principles for search engine visibility. --- ## 1. E-E-A-T Framework | Principle | Signals | |-----------|---------| | **Experience** | First-hand knowledge, real examples | | **Expertise** | Credentials, depth of knowledge | | **Authoritativeness** | Backlinks, mentions, industry recognition | | **Trustworthiness** | HTTPS, transparency, accurate info | --- ## 2. Core Web Vitals | Metric | Target | Measures | |--------|--------|----------| | **LCP** | < 2.5s | Loading performance | | **INP** | < 200ms | Interactivity | | **CLS** | < 0.1 | Visual stability | --- ## 3. Technical SEO Principles ### Site Structure | Element | Purpose | |---------|---------| | XML sitemap | Help crawling | | robots.txt | Control access | | Canonical tags | Prevent duplicates | | HTTPS | Security signal | ### Performance | Factor | Impact | |--------|--------| | Page speed | Core Web Vital | | Mobile-friendly | Ranking factor | | Clean URLs | Crawlability | --- ## 4. Content SEO Principles ### Page Elements | Element | Best Practice | |---------|---------------| | Title tag | 50-60 chars, keyword front | | Meta description | 150-160 chars, compelling | | H1 | One per page, main keyword | | H2-H6 | Logical hierarchy | | Alt text | Descriptive, not stuffed | ### Content Quality | Factor | Importance | |--------|------------| | Depth | Comprehensive coverage | | Freshness | Regular updates | | Uniqueness | Original value | | Readability | Clear writing | --- ## 5. Schema Markup Types | Type | Use | |------|-----| | Article | Blog posts, news | | Organization | Company info | | Person | Author profiles | | FAQPage | Q&A content | | Product | E-commerce | | Review | Ratings | | BreadcrumbList | Navigation | --- ## 6. AI Content Guidelines ### What Google Looks For | ✅ Do | ❌ Don't | |-------|----------| | AI draft + human edit | Publish raw AI content | | Add original insights | Copy without value | | Expert review | Skip fact-checking | | Follow E-E-A-T | Keyword stuffing | --- ## 7. Ranking Factors (Prioritized) | Priority | Factor | |----------|--------| | 1 | Quality, relevant content | | 2 | Backlinks from authority sites | | 3 | Page experience (Core Web Vitals) | | 4 | Mobile optimization | | 5 | Technical SEO fundamentals | --- ## 8. Measurement | Metric | Tool | |--------|------| | Rankings | Search Console, Ahrefs | | Traffic | Analytics | | Core Web Vitals | PageSpeed Insights | | Indexing | Search Console | | Backlinks | Ahrefs, Semrush | --- > **Remember:** SEO is a long-term game. Quality content + technical excellence + patience = results.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.