[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71VA779W2BHBWQAK36TGCFF":3,"skill-same:01M71VA779W2BHBWQAK36TGCFF":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":13,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M71VA779W2BHBWQAK36TGCFF","seo",null,"Optimize for search engine visibility and ranking. Use when asked to \"improve SEO\", \"optimize for search\", \"fix meta tags\", \"add structured data\", \"sitemap optimization\", or \"search engine optimization\".","Ab0umar\u002Fselrs.cc","Ab0umar","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F250633394?v=4","01M71V4PCQ79M2BC5JWBD2RJSH","01M71V4PDRFXBJKEZM3B7S9MBF",0,"MIT","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fseo\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[5,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"quality","search engine","when","for","add","tags","ranking","optimize","use","fix","structured data","engine","improve","Meta Tags","Meta","data","Optimization","search","web","2026-11-10 13:02:02",false,"---\nname: seo\ndescription: Optimize for search engine visibility and ranking. Use when asked to \"improve SEO\", \"optimize for search\", \"fix meta tags\", \"add structured data\", \"sitemap optimization\", or \"search engine optimization\".\nlicense: MIT\nmetadata:\n  author: web-quality-skills\n  version: \"1.0\"\n---\n\n# SEO optimization\n\nSearch engine optimization based on Lighthouse SEO audits and Google Search guidelines. Focus on technical SEO, on-page optimization, and structured data.\n\n## SEO fundamentals\n\nSearch ranking factors (approximate influence):\n\n| Factor | Influence | This Skill |\n|--------|-----------|------------|\n| Content quality & relevance | ~40% | Partial (structure) |\n| Backlinks & authority | ~25% | ✗ |\n| Technical SEO | ~15% | ✓ |\n| Page experience (Core Web Vitals) | ~10% | See [Core Web Vitals](..\u002Fcore-web-vitals\u002FSKILL.md) |\n| On-page SEO | ~10% | ✓ |\n\n---\n\n## Technical SEO\n\n### Crawlability\n\n**robots.txt:**\n```text\n# \u002Frobots.txt\nUser-agent: *\nAllow: \u002F\n\n# Block admin\u002Fprivate areas\nDisallow: \u002Fadmin\u002F\nDisallow: \u002Fapi\u002F\nDisallow: \u002Fprivate\u002F\n\n# Don't block resources needed for rendering\n# ❌ Disallow: \u002Fstatic\u002F\n\nSitemap: https:\u002F\u002Fexample.com\u002Fsitemap.xml\n```\n\n**Meta robots:**\n```html\n\u003C!-- Default: indexable, followable -->\n\u003Cmeta name=\"robots\" content=\"index, follow\">\n\n\u003C!-- Noindex specific pages -->\n\u003Cmeta name=\"robots\" content=\"noindex, nofollow\">\n\n\u003C!-- Indexable but don't follow links -->\n\u003Cmeta name=\"robots\" content=\"index, nofollow\">\n\n\u003C!-- Control snippets -->\n\u003Cmeta name=\"robots\" content=\"max-snippet:150, max-image-preview:large\">\n```\n\n**Canonical URLs:**\n```html\n\u003C!-- Prevent duplicate content issues -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n\n\u003C!-- Self-referencing canonical (recommended) -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fcurrent-page\">\n\n\u003C!-- For paginated content -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fproducts\">\n\u003C!-- Or use rel=\"prev\" \u002F rel=\"next\" for explicit pagination -->\n```\n\n### XML sitemap\n\n```xml\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003Curlset xmlns=\"http:\u002F\u002Fwww.sitemaps.org\u002Fschemas\u002Fsitemap\u002F0.9\">\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002F\u003C\u002Floc>\n    \u003Clastmod>2024-01-15\u003C\u002Flastmod>\n    \u003Cchangefreq>daily\u003C\u002Fchangefreq>\n    \u003Cpriority>1.0\u003C\u002Fpriority>\n  \u003C\u002Furl>\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Fproducts\u003C\u002Floc>\n    \u003Clastmod>2024-01-14\u003C\u002Flastmod>\n    \u003Cchangefreq>weekly\u003C\u002Fchangefreq>\n    \u003Cpriority>0.8\u003C\u002Fpriority>\n  \u003C\u002Furl>\n\u003C\u002Furlset>\n```\n\n**Sitemap best practices:**\n- Maximum 50,000 URLs or 50MB per sitemap\n- Use sitemap index for larger sites\n- Include only canonical, indexable URLs\n- Update `lastmod` when content changes\n- Submit to Google Search Console\n\n### URL structure\n\n```\n✅ Good URLs:\nhttps:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widget\nhttps:\u002F\u002Fexample.com\u002Fblog\u002Fhow-to-use-widgets\n\n❌ Poor URLs:\nhttps:\u002F\u002Fexample.com\u002Fp?id=12345\nhttps:\u002F\u002Fexample.com\u002Fproducts\u002Fitem\u002Fcategory\u002Fsubcategory\u002Fblue-widget-2024-sale-discount\n```\n\n**URL guidelines:**\n- Use hyphens, not underscores\n- Lowercase only\n- Keep short (\u003C 75 characters)\n- Include target keywords naturally\n- Avoid parameters when possible\n- Use HTTPS always\n\n### HTTPS & security\n\n```html\n\u003C!-- Ensure all resources use HTTPS -->\n\u003Cimg src=\"https:\u002F\u002Fexample.com\u002Fimage.jpg\">\n\n\u003C!-- Not: -->\n\u003Cimg src=\"http:\u002F\u002Fexample.com\u002Fimage.jpg\">\n```\n\n**Security headers for SEO trust signals:**\n```\nStrict-Transport-Security: max-age=31536000; includeSubDomains\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\n```\n\n---\n\n## On-page SEO\n\n### Title tags\n\n```html\n\u003C!-- ❌ Missing or generic -->\n\u003Ctitle>Page\u003C\u002Ftitle>\n\u003Ctitle>Home\u003C\u002Ftitle>\n\n\u003C!-- ✅ Descriptive with primary keyword -->\n\u003Ctitle>Blue Widgets for Sale | Premium Quality | Example Store\u003C\u002Ftitle>\n```\n\n**Title tag guidelines:**\n- 50-60 characters (Google truncates ~60)\n- Primary keyword near the beginning\n- Unique for every page\n- Brand name at end (unless homepage)\n- Action-oriented when appropriate\n\n### Meta descriptions\n\n```html\n\u003C!-- ❌ Missing or duplicate -->\n\u003Cmeta name=\"description\" content=\"\">\n\n\u003C!-- ✅ Compelling and unique -->\n\u003Cmeta name=\"description\" content=\"Shop premium blue widgets with free shipping. 30-day returns. Rated 4.9\u002F5 by 10,000+ customers. Order today and save 20%.\">\n```\n\n**Meta description guidelines:**\n- 150-160 characters\n- Include primary keyword naturally\n- Compelling call-to-action\n- Unique for every page\n- Matches page content\n\n### Heading structure\n\n```html\n\u003C!-- ❌ Poor structure -->\n\u003Ch2>Welcome to Our Store\u003C\u002Fh2>\n\u003Ch4>Products\u003C\u002Fh4>\n\u003Ch1>Contact Us\u003C\u002Fh1>\n\n\u003C!-- ✅ Proper hierarchy -->\n\u003Ch1>Blue Widgets - Premium Quality\u003C\u002Fh1>\n  \u003Ch2>Product Features\u003C\u002Fh2>\n    \u003Ch3>Durability\u003C\u002Fh3>\n    \u003Ch3>Design\u003C\u002Fh3>\n  \u003Ch2>Customer Reviews\u003C\u002Fh2>\n  \u003Ch2>Pricing\u003C\u002Fh2>\n```\n\n**Heading guidelines:**\n- Single `\u003Ch1>` per page (the main topic)\n- Logical hierarchy (don't skip levels)\n- Include keywords naturally\n- Descriptive, not generic\n\n### Image SEO\n\n```html\n\u003C!-- ❌ Poor image SEO -->\n\u003Cimg src=\"IMG_12345.jpg\">\n\n\u003C!-- ✅ Optimized image -->\n\u003Cimg src=\"blue-widget-product-photo.webp\"\n     alt=\"Blue widget with chrome finish, side view showing control panel\"\n     width=\"800\"\n     height=\"600\"\n     loading=\"lazy\">\n```\n\n**Image guidelines:**\n- Descriptive filenames with keywords\n- Alt text describes the image content\n- Compressed and properly sized\n- WebP\u002FAVIF with fallbacks\n- Lazy load below-fold images\n\n### Internal linking\n\n```html\n\u003C!-- ❌ Non-descriptive -->\n\u003Ca href=\"\u002Fproducts\">Click here\u003C\u002Fa>\n\u003Ca href=\"\u002Fwidgets\">Read more\u003C\u002Fa>\n\n\u003C!-- ✅ Descriptive anchor text -->\n\u003Ca href=\"\u002Fproducts\u002Fblue-widgets\">Browse our blue widget collection\u003C\u002Fa>\n\u003Ca href=\"\u002Fguides\u002Fwidget-maintenance\">Learn how to maintain your widgets\u003C\u002Fa>\n```\n\n**Linking guidelines:**\n- Descriptive anchor text with keywords\n- Link to relevant internal pages\n- Reasonable number of links per page\n- Fix broken links promptly\n- Use breadcrumbs for hierarchy\n\n---\n\n## Structured data (JSON-LD)\n\n### Organization\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Organization\",\n  \"name\": \"Example Company\",\n  \"url\": \"https:\u002F\u002Fexample.com\",\n  \"logo\": \"https:\u002F\u002Fexample.com\u002Flogo.png\",\n  \"sameAs\": [\n    \"https:\u002F\u002Ftwitter.com\u002Fexample\",\n    \"https:\u002F\u002Flinkedin.com\u002Fcompany\u002Fexample\"\n  ],\n  \"contactPoint\": {\n    \"@type\": \"ContactPoint\",\n    \"telephone\": \"+1-555-123-4567\",\n    \"contactType\": \"customer service\"\n  }\n}\n\u003C\u002Fscript>\n```\n\n### Article\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"How to Choose the Right Widget\",\n  \"description\": \"Complete guide to selecting widgets for your needs.\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Farticle-image.jpg\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jane Smith\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fauthors\u002Fjane-smith\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Example Blog\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\u002F\u002Fexample.com\u002Flogo.png\"\n    }\n  },\n  \"datePublished\": \"2024-01-15\",\n  \"dateModified\": \"2024-01-20\"\n}\n\u003C\u002Fscript>\n```\n\n### Product\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Product\",\n  \"name\": \"Blue Widget Pro\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Fblue-widget.jpg\",\n  \"description\": \"Premium blue widget with advanced features.\",\n  \"brand\": {\n    \"@type\": \"Brand\",\n    \"name\": \"WidgetCo\"\n  },\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"price\": \"49.99\",\n    \"priceCurrency\": \"USD\",\n    \"availability\": \"https:\u002F\u002Fschema.org\u002FInStock\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widget\"\n  },\n  \"aggregateRating\": {\n    \"@type\": \"AggregateRating\",\n    \"ratingValue\": \"4.8\",\n    \"reviewCount\": \"1250\"\n  }\n}\n\u003C\u002Fscript>\n```\n\n### FAQ\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What colors are available?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Our widgets come in blue, red, and green.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the warranty?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"All widgets include a 2-year warranty.\"\n      }\n    }\n  ]\n}\n\u003C\u002Fscript>\n```\n\n### Breadcrumbs\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"Home\",\n      \"item\": \"https:\u002F\u002Fexample.com\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"Products\",\n      \"item\": \"https:\u002F\u002Fexample.com\u002Fproducts\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"Blue Widgets\",\n      \"item\": \"https:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widgets\"\n    }\n  ]\n}\n\u003C\u002Fscript>\n```\n\n### Validation\n\nTest structured data at:\n- [Google Rich Results Test](https:\u002F\u002Fsearch.google.com\u002Ftest\u002Frich-results)\n- [Schema.org Validator](https:\u002F\u002Fvalidator.schema.org\u002F)\n\n---\n\n## Mobile SEO\n\n### Responsive design\n\n```html\n\u003C!-- ❌ Not mobile-friendly -->\n\u003Cmeta name=\"viewport\" content=\"width=1024\">\n\n\u003C!-- ✅ Responsive viewport -->\n\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n```\n\n### Tap targets\n\n```css\n\u002F* ❌ Too small for mobile *\u002F\n.small-link {\n  padding: 4px;\n  font-size: 12px;\n}\n\n\u002F* ✅ Adequate tap target *\u002F\n.mobile-friendly-link {\n  padding: 12px;\n  font-size: 16px;\n  min-height: 48px;\n  min-width: 48px;\n}\n```\n\n### Font sizes\n\n```css\n\u002F* ❌ Too small on mobile *\u002F\nbody {\n  font-size: 10px;\n}\n\n\u002F* ✅ Readable without zooming *\u002F\nbody {\n  font-size: 16px;\n  line-height: 1.5;\n}\n```\n\n---\n\n## International SEO\n\n### Hreflang tags\n\n```html\n\u003C!-- For multi-language sites -->\n\u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"es\" href=\"https:\u002F\u002Fexample.com\u002Fes\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n```\n\n### Language declaration\n\n```html\n\u003Chtml lang=\"en\">\n\u003C!-- or -->\n\u003Chtml lang=\"es-MX\">\n```\n\n---\n\n## SEO audit checklist\n\n### Critical\n- [ ] HTTPS enabled\n- [ ] robots.txt allows crawling\n- [ ] No `noindex` on important pages\n- [ ] Title tags present and unique\n- [ ] Single `\u003Ch1>` per page\n\n### High priority\n- [ ] Meta descriptions present\n- [ ] Sitemap submitted\n- [ ] Canonical URLs set\n- [ ] Mobile-responsive\n- [ ] Core Web Vitals passing\n\n### Medium priority\n- [ ] Structured data implemented\n- [ ] Internal linking strategy\n- [ ] Image alt text\n- [ ] Descriptive URLs\n- [ ] Breadcrumb navigation\n\n### Ongoing\n- [ ] Fix crawl errors in Search Console\n- [ ] Update sitemap when content changes\n- [ ] Monitor ranking changes\n- [ ] Check for broken links\n- [ ] Review Search Console insights\n\n---\n\n## Tools\n\n| Tool | Use |\n|------|-----|\n| Google Search Console | Monitor indexing, fix issues |\n| Google PageSpeed Insights | Performance + Core Web Vitals |\n| Rich Results Test | Validate structured data |\n| Lighthouse | Full SEO audit |\n| Screaming Frog | Crawl analysis |\n\n## References\n\n- [Google Search Central](https:\u002F\u002Fdevelopers.google.com\u002Fsearch)\n- [Schema.org](https:\u002F\u002Fschema.org\u002F)\n- [Core Web Vitals](..\u002Fcore-web-vitals\u002FSKILL.md)\n- [Web Quality Audit](..\u002Fweb-quality-audit\u002FSKILL.md)\n","# SEO optimization\n\nSearch engine optimization based on Lighthouse SEO audits and Google Search guidelines. Focus on technical SEO, on-page optimization, and structured data.\n\n## SEO fundamentals\n\nSearch ranking factors (approximate influence):\n\n| Factor | Influence | This Skill |\n|--------|-----------|------------|\n| Content quality & relevance | ~40% | Partial (structure) |\n| Backlinks & authority | ~25% | ✗ |\n| Technical SEO | ~15% | ✓ |\n| Page experience (Core Web Vitals) | ~10% | See [Core Web Vitals](..\u002Fcore-web-vitals\u002FSKILL.md) |\n| On-page SEO | ~10% | ✓ |\n\n---\n\n## Technical SEO\n\n### Crawlability\n\n**robots.txt:**\n```text\n# \u002Frobots.txt\nUser-agent: *\nAllow: \u002F\n\n# Block admin\u002Fprivate areas\nDisallow: \u002Fadmin\u002F\nDisallow: \u002Fapi\u002F\nDisallow: \u002Fprivate\u002F\n\n# Don't block resources needed for rendering\n# ❌ Disallow: \u002Fstatic\u002F\n\nSitemap: https:\u002F\u002Fexample.com\u002Fsitemap.xml\n```\n\n**Meta robots:**\n```html\n\u003C!-- Default: indexable, followable -->\n\u003Cmeta name=\"robots\" content=\"index, follow\">\n\n\u003C!-- Noindex specific pages -->\n\u003Cmeta name=\"robots\" content=\"noindex, nofollow\">\n\n\u003C!-- Indexable but don't follow links -->\n\u003Cmeta name=\"robots\" content=\"index, nofollow\">\n\n\u003C!-- Control snippets -->\n\u003Cmeta name=\"robots\" content=\"max-snippet:150, max-image-preview:large\">\n```\n\n**Canonical URLs:**\n```html\n\u003C!-- Prevent duplicate content issues -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n\n\u003C!-- Self-referencing canonical (recommended) -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fcurrent-page\">\n\n\u003C!-- For paginated content -->\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Fproducts\">\n\u003C!-- Or use rel=\"prev\" \u002F rel=\"next\" for explicit pagination -->\n```\n\n### XML sitemap\n\n```xml\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003Curlset xmlns=\"http:\u002F\u002Fwww.sitemaps.org\u002Fschemas\u002Fsitemap\u002F0.9\">\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002F\u003C\u002Floc>\n    \u003Clastmod>2024-01-15\u003C\u002Flastmod>\n    \u003Cchangefreq>daily\u003C\u002Fchangefreq>\n    \u003Cpriority>1.0\u003C\u002Fpriority>\n  \u003C\u002Furl>\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Fproducts\u003C\u002Floc>\n    \u003Clastmod>2024-01-14\u003C\u002Flastmod>\n    \u003Cchangefreq>weekly\u003C\u002Fchangefreq>\n    \u003Cpriority>0.8\u003C\u002Fpriority>\n  \u003C\u002Furl>\n\u003C\u002Furlset>\n```\n\n**Sitemap best practices:**\n- Maximum 50,000 URLs or 50MB per sitemap\n- Use sitemap index for larger sites\n- Include only canonical, indexable URLs\n- Update `lastmod` when content changes\n- Submit to Google Search Console\n\n### URL structure\n\n```\n✅ Good URLs:\nhttps:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widget\nhttps:\u002F\u002Fexample.com\u002Fblog\u002Fhow-to-use-widgets\n\n❌ Poor URLs:\nhttps:\u002F\u002Fexample.com\u002Fp?id=12345\nhttps:\u002F\u002Fexample.com\u002Fproducts\u002Fitem\u002Fcategory\u002Fsubcategory\u002Fblue-widget-2024-sale-discount\n```\n\n**URL guidelines:**\n- Use hyphens, not underscores\n- Lowercase only\n- Keep short (\u003C 75 characters)\n- Include target keywords naturally\n- Avoid parameters when possible\n- Use HTTPS always\n\n### HTTPS & security\n\n```html\n\u003C!-- Ensure all resources use HTTPS -->\n\u003Cimg src=\"https:\u002F\u002Fexample.com\u002Fimage.jpg\">\n\n\u003C!-- Not: -->\n\u003Cimg src=\"http:\u002F\u002Fexample.com\u002Fimage.jpg\">\n```\n\n**Security headers for SEO trust signals:**\n```\nStrict-Transport-Security: max-age=31536000; includeSubDomains\nX-Content-Type-Options: nosniff\nX-Frame-Options: DENY\n```\n\n---\n\n## On-page SEO\n\n### Title tags\n\n```html\n\u003C!-- ❌ Missing or generic -->\n\u003Ctitle>Page\u003C\u002Ftitle>\n\u003Ctitle>Home\u003C\u002Ftitle>\n\n\u003C!-- ✅ Descriptive with primary keyword -->\n\u003Ctitle>Blue Widgets for Sale | Premium Quality | Example Store\u003C\u002Ftitle>\n```\n\n**Title tag guidelines:**\n- 50-60 characters (Google truncates ~60)\n- Primary keyword near the beginning\n- Unique for every page\n- Brand name at end (unless homepage)\n- Action-oriented when appropriate\n\n### Meta descriptions\n\n```html\n\u003C!-- ❌ Missing or duplicate -->\n\u003Cmeta name=\"description\" content=\"\">\n\n\u003C!-- ✅ Compelling and unique -->\n\u003Cmeta name=\"description\" content=\"Shop premium blue widgets with free shipping. 30-day returns. Rated 4.9\u002F5 by 10,000+ customers. Order today and save 20%.\">\n```\n\n**Meta description guidelines:**\n- 150-160 characters\n- Include primary keyword naturally\n- Compelling call-to-action\n- Unique for every page\n- Matches page content\n\n### Heading structure\n\n```html\n\u003C!-- ❌ Poor structure -->\n\u003Ch2>Welcome to Our Store\u003C\u002Fh2>\n\u003Ch4>Products\u003C\u002Fh4>\n\u003Ch1>Contact Us\u003C\u002Fh1>\n\n\u003C!-- ✅ Proper hierarchy -->\n\u003Ch1>Blue Widgets - Premium Quality\u003C\u002Fh1>\n  \u003Ch2>Product Features\u003C\u002Fh2>\n    \u003Ch3>Durability\u003C\u002Fh3>\n    \u003Ch3>Design\u003C\u002Fh3>\n  \u003Ch2>Customer Reviews\u003C\u002Fh2>\n  \u003Ch2>Pricing\u003C\u002Fh2>\n```\n\n**Heading guidelines:**\n- Single `\u003Ch1>` per page (the main topic)\n- Logical hierarchy (don't skip levels)\n- Include keywords naturally\n- Descriptive, not generic\n\n### Image SEO\n\n```html\n\u003C!-- ❌ Poor image SEO -->\n\u003Cimg src=\"IMG_12345.jpg\">\n\n\u003C!-- ✅ Optimized image -->\n\u003Cimg src=\"blue-widget-product-photo.webp\"\n     alt=\"Blue widget with chrome finish, side view showing control panel\"\n     width=\"800\"\n     height=\"600\"\n     loading=\"lazy\">\n```\n\n**Image guidelines:**\n- Descriptive filenames with keywords\n- Alt text describes the image content\n- Compressed and properly sized\n- WebP\u002FAVIF with fallbacks\n- Lazy load below-fold images\n\n### Internal linking\n\n```html\n\u003C!-- ❌ Non-descriptive -->\n\u003Ca href=\"\u002Fproducts\">Click here\u003C\u002Fa>\n\u003Ca href=\"\u002Fwidgets\">Read more\u003C\u002Fa>\n\n\u003C!-- ✅ Descriptive anchor text -->\n\u003Ca href=\"\u002Fproducts\u002Fblue-widgets\">Browse our blue widget collection\u003C\u002Fa>\n\u003Ca href=\"\u002Fguides\u002Fwidget-maintenance\">Learn how to maintain your widgets\u003C\u002Fa>\n```\n\n**Linking guidelines:**\n- Descriptive anchor text with keywords\n- Link to relevant internal pages\n- Reasonable number of links per page\n- Fix broken links promptly\n- Use breadcrumbs for hierarchy\n\n---\n\n## Structured data (JSON-LD)\n\n### Organization\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Organization\",\n  \"name\": \"Example Company\",\n  \"url\": \"https:\u002F\u002Fexample.com\",\n  \"logo\": \"https:\u002F\u002Fexample.com\u002Flogo.png\",\n  \"sameAs\": [\n    \"https:\u002F\u002Ftwitter.com\u002Fexample\",\n    \"https:\u002F\u002Flinkedin.com\u002Fcompany\u002Fexample\"\n  ],\n  \"contactPoint\": {\n    \"@type\": \"ContactPoint\",\n    \"telephone\": \"+1-555-123-4567\",\n    \"contactType\": \"customer service\"\n  }\n}\n\u003C\u002Fscript>\n```\n\n### Article\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"How to Choose the Right Widget\",\n  \"description\": \"Complete guide to selecting widgets for your needs.\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Farticle-image.jpg\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jane Smith\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fauthors\u002Fjane-smith\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Example Blog\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\u002F\u002Fexample.com\u002Flogo.png\"\n    }\n  },\n  \"datePublished\": \"2024-01-15\",\n  \"dateModified\": \"2024-01-20\"\n}\n\u003C\u002Fscript>\n```\n\n### Product\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Product\",\n  \"name\": \"Blue Widget Pro\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Fblue-widget.jpg\",\n  \"description\": \"Premium blue widget with advanced features.\",\n  \"brand\": {\n    \"@type\": \"Brand\",\n    \"name\": \"WidgetCo\"\n  },\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"price\": \"49.99\",\n    \"priceCurrency\": \"USD\",\n    \"availability\": \"https:\u002F\u002Fschema.org\u002FInStock\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widget\"\n  },\n  \"aggregateRating\": {\n    \"@type\": \"AggregateRating\",\n    \"ratingValue\": \"4.8\",\n    \"reviewCount\": \"1250\"\n  }\n}\n\u003C\u002Fscript>\n```\n\n### FAQ\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What colors are available?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Our widgets come in blue, red, and green.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the warranty?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"All widgets include a 2-year warranty.\"\n      }\n    }\n  ]\n}\n\u003C\u002Fscript>\n```\n\n### Breadcrumbs\n\n```html\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"Home\",\n      \"item\": \"https:\u002F\u002Fexample.com\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"Products\",\n      \"item\": \"https:\u002F\u002Fexample.com\u002Fproducts\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"Blue Widgets\",\n      \"item\": \"https:\u002F\u002Fexample.com\u002Fproducts\u002Fblue-widgets\"\n    }\n  ]\n}\n\u003C\u002Fscript>\n```\n\n### Validation\n\nTest structured data at:\n- [Google Rich Results Test](https:\u002F\u002Fsearch.google.com\u002Ftest\u002Frich-results)\n- [Schema.org Validator](https:\u002F\u002Fvalidator.schema.org\u002F)\n\n---\n\n## Mobile SEO\n\n### Responsive design\n\n```html\n\u003C!-- ❌ Not mobile-friendly -->\n\u003Cmeta name=\"viewport\" content=\"width=1024\">\n\n\u003C!-- ✅ Responsive viewport -->\n\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n```\n\n### Tap targets\n\n```css\n\u002F* ❌ Too small for mobile *\u002F\n.small-link {\n  padding: 4px;\n  font-size: 12px;\n}\n\n\u002F* ✅ Adequate tap target *\u002F\n.mobile-friendly-link {\n  padding: 12px;\n  font-size: 16px;\n  min-height: 48px;\n  min-width: 48px;\n}\n```\n\n### Font sizes\n\n```css\n\u002F* ❌ Too small on mobile *\u002F\nbody {\n  font-size: 10px;\n}\n\n\u002F* ✅ Readable without zooming *\u002F\nbody {\n  font-size: 16px;\n  line-height: 1.5;\n}\n```\n\n---\n\n## International SEO\n\n### Hreflang tags\n\n```html\n\u003C!-- For multi-language sites -->\n\u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"es\" href=\"https:\u002F\u002Fexample.com\u002Fes\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\">\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\">\n```\n\n### Language declaration\n\n```html\n\u003Chtml lang=\"en\">\n\u003C!-- or -->\n\u003Chtml lang=\"es-MX\">\n```\n\n---\n\n## SEO audit checklist\n\n### Critical\n- [ ] HTTPS enabled\n- [ ] robots.txt allows crawling\n- [ ] No `noindex` on important pages\n- [ ] Title tags present and unique\n- [ ] Single `\u003Ch1>` per page\n\n### High priority\n- [ ] Meta descriptions present\n- [ ] Sitemap submitted\n- [ ] Canonical URLs set\n- [ ] Mobile-responsive\n- [ ] Core Web Vitals passing\n\n### Medium priority\n- [ ] Structured data implemented\n- [ ] Internal linking strategy\n- [ ] Image alt text\n- [ ] Descriptive URLs\n- [ ] Breadcrumb navigation\n\n### Ongoing\n- [ ] Fix crawl errors in Search Console\n- [ ] Update sitemap when content changes\n- [ ] Monitor ranking changes\n- [ ] Check for broken links\n- [ ] Review Search Console insights\n\n---\n\n## Tools\n\n| Tool | Use |\n|------|-----|\n| Google Search Console | Monitor indexing, fix issues |\n| Google PageSpeed Insights | Performance + Core Web Vitals |\n| Rich Results Test | Validate structured data |\n| Lighthouse | Full SEO audit |\n| Screaming Frog | Crawl analysis |\n\n## References\n\n- [Google Search Central](https:\u002F\u002Fdevelopers.google.com\u002Fsearch)\n- [Schema.org](https:\u002F\u002Fschema.org\u002F)\n- [Core Web Vitals](..\u002Fcore-web-vitals\u002FSKILL.md)\n- [Web Quality Audit](..\u002Fweb-quality-audit\u002FSKILL.md)\n",{"name":5,"license":14,"metadata":52,"description":7},{"author":53,"version":54},"web-quality-skills","1.0","main","e3402c2b06ca43d3934b72e7feee0cecac251337",".agents\u002Fskills\u002Fseo","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc","https:\u002F\u002Fgithub.com\u002FAb0umar","2026-11-08 19:10:17",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add Ab0umar\u002Fselrs.cc --skill seo",{"tool":67,"command":68},"bunx","bunx skills add Ab0umar\u002Fselrs.cc --skill seo",{"tool":70,"command":71},"pnpm","pnpm dlx skills add Ab0umar\u002Fselrs.cc --skill seo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fseo\u002FSKILL.md",true,[],[76,103,134,155,161,195],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":85,"publishedAt":47},"01M71VCQPJ7Z990MBT1FPHDV50","vercel-react-best-practices","React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React\u002FNext.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvercel-react-best-practices\u002FSKILL.md",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[86,87,88,89,90,91,92,30,93,94,95,96,97,98,99,43,100,44,101,102],"react","react best practices","vercel react best practices","vercel","best practices","performance","writing","code","tasks","components","data fetching","react components","next","refactoring","patterns","guidelines","triggers",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":107,"sourceHtmlUrl":108,"categories":109,"keywords":116,"publishedAt":47},"01M71VCDZS7YQ1FPEP29X0YKFJ","ui-styling","Create beautiful, accessible user interfaces with shadcn\u002Fui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs. Use when building user interfaces, implementing design systems, creating responsive layouts, adding accessible components (dialogs, dropdowns, forms, tables), customizing themes and colors, implementing dark mode, generating visual designs and posters, or establishing consistent styling patterns across applications.","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fui-styling\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fui-styling\u002FSKILL.md",[110,113],{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":114,"categoryName":115,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000032","设计师",[117,118,119,120,121,122,123,124,125,126,127,128,30,95,129,130,131,132,133,100],"ui styling","styling","ui","css","Tailwind","mode","canvas","implementing","design","themes","utility","design systems","across","create","component","layout","forms",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":47},"01M71VBTXHH9ZJVE0JKVEP309P","tailwind-v4-shadcn","| Production-tested setup for Tailwind CSS v4 with shadcn\u002Fui, Vite, and React. Use when: initializing React projects with Tailwind v4, setting up shadcn\u002Fui, implementing dark mode, debugging CSS variable issues, fixing theme switching, migrating from Tailwind v3, or encountering color\u002Ftheming problems. Covers: @theme inline pattern, CSS variable architecture, dark mode with ThemeProvider, component composition, vite.config setup, common v4 gotchas, and production-tested patterns.","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftailwind-v4-shadcn\u002FSKILL.md",[140,141,142],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":114,"categoryName":115,"taxonomyType":25,"taxonomyTypeDesc":26},[121,144,145,146,147,148,120,149,150,122,124,151,95,152,86,153,131,154,133,119],"tailwind v4","shadcn","tailwind v4 shadcn","projects","Composition","css variables","tailwindcss","Variables","architecture","inline","config",{"skillNo":156,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":47},"01M71V9JR7F79SVZY1MRM3XSJY","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freact-best-practices\u002FSKILL.md",[159],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},[86,87,88,89,90,91,92,30,93,94,95,96,97,98,99,43,100,44,101,102],{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":180,"publishedAt":47},"01M71V99JRRWABQGJ853ZCRB5N","playwright-best-practices","Use when writing Playwright tests, fixing flaky tests, debugging failures, implementing Page Object Model, configuring CI\u002FCD, optimizing performance, mocking APIs, handling authentication or OAuth, testing accessibility (axe-core), file uploads\u002Fdownloads, date\u002Ftime mocking, WebSockets, geolocation, permissions, multi-tab\u002Fpopup flows, mobile\u002Fresponsive layouts, touch gestures, GraphQL, error handling, offline mode, multi-user collaboration, third-party services (payments, email verification), console error monitoring, global setup\u002Fteardown, test annotations (skip, fixme, slow), test tags (@smoke, @fast, @critical, filtering with --grep), project dependencies, security testing (XSS, CSRF, auth), performance budgets (Web Vitals, Lighthouse), iframes, component testing, canvas\u002FWebGL, service workers\u002FPWA, test coverage, i18n\u002Flocalization, Electron apps, or browser extension testing. Covers E2E, component, API, visual, accessibility, security, Electron, and extension testing.","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fplaywright-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fplaywright-best-practices\u002FSKILL.md",[168,171,174,177],{"categoryNo":169,"categoryName":170,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":172,"categoryName":173,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":175,"categoryName":176,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":178,"categoryName":179,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者",[90,181,182,183,184,185,186,122,123,187,188,124,189,190,92,191,192,193,194,131],"playwright best practices","playwright","project","teardown","time","authentication","testing","ci","csrf","global setup","apps","monitoring","permissions","i18n",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":199,"licenseFileUrl":200,"sourceHtmlUrl":201,"categories":202,"keywords":206,"publishedAt":47},"01M71V7V2A1853Y7BWDEDYAWRK","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FAb0umar\u002Fselrs.cc\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[203,204,205],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":114,"categoryName":115,"taxonomyType":25,"taxonomyTypeDesc":26},[207,125,208,120,209,210,211,212,213,214,36,30,215,93,95,216,86,97,217,218],"frontend","frontend design","ui design","generic","aesthetics","applications","landing","pages","artifacts","web ui","examples","with"]