[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EXVNT29XA5G7RNDPJPZRDC":3,"skill-same:01M6EXVNT29XA5G7RNDPJPZRDC":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":14,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6EXVNT29XA5G7RNDPJPZRDC","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\".","henriquescastilho\u002Fmy-claude","henriquescastilho","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F153296945?v=4","01M6ESH7EXPXTH9CVQ4K16SRG8","Henrique Scheer","01M6ESH7JHEK2PTNNH4HEH787Z",0,"MIT","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-code-templates\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fseo\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"engine","sitemap","add","tags","ranking","structured","optimize","use","fix","quality","structured data","improve","Meta Tags","Meta","data","Optimization","search","web","2026-11-10 10:12:30",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":15,"metadata":52,"description":7},{"author":53,"version":54},"web-quality-skills","1.0","main","7925716f065257435fdb12e97f7e52842147d5ad",".codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-code-templates\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fseo","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude","https:\u002F\u002Fclaude.com\u002Fclaude-code","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho","Software · Applied AI · Quantitative Modeling · Building with Claude.","2026-06-10 12:24:46",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add henriquescastilho\u002Fmy-claude --skill seo",{"tool":69,"command":70},"bunx","bunx skills add henriquescastilho\u002Fmy-claude --skill seo",{"tool":72,"command":73},"pnpm","pnpm dlx skills add henriquescastilho\u002Fmy-claude --skill seo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-code-templates\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fseo\u002FSKILL.md",true,[],[78,116,125,134,156,184],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":96,"publishedAt":47},"01M6F0B6XPQ65AX2X0DWK8KT3E","markitdown","Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-writer\u002Fskills\u002Fmarkitdown\u002FSKILL.md",[84,87,90,93],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":94,"categoryName":95,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000034","行政与办公人员",[80,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"docx","PDF","pptx","xlsx","documents","csv","ocr","Audio","Bash","markdown","convert","read","write","edit","html","images","files","youtube","with",{"skillNo":117,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":124,"publishedAt":47},"01M6F06SBHR9F0SDWE282Y8075","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-writer\u002Fscientific_writer\u002F.claude\u002Fskills\u002Fmarkitdown\u002FSKILL.md",[120,121,122,123],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":26,"taxonomyTypeDesc":27},[80,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],{"skillNo":126,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"publishedAt":47},"01M6F02D4R14EJAPBWVDF9J9VQ","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-writer\u002F.claude\u002Fskills\u002Fmarkitdown\u002FSKILL.md",[129,130,131,132],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":26,"taxonomyTypeDesc":27},[80,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":47},"01M6F000KS6YB4MKS774G4R8ND","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-skills\u002Fscientific-skills\u002Fzarr-python\u002FSKILL.md",[],[141,142,143,144,145,146,147,148,149,150,151,152,153,154,155],"python","zarr python","storage","integration","s3","gcs","cloud","dask","parallel","pipelines","arrays","numpy","scientific computing","scale","scientific",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":165,"publishedAt":47},"01M6EZZJWFXM1GR78KTW6J0DN8","what-if-oracle","Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like \"what if...\", \"what would happen if...\", \"what are the possibilities\", \"explore scenarios\", \"scenario analysis\", \"possibility space\", \"what could go wrong\", \"best case \u002F worst case\", \"risk analysis\", \"contingency planning\", \"strategic options\", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-skills\u002Fscientific-skills\u002Fwhat-if-oracle\u002FSKILL.md",[162],{"categoryNo":163,"categoryName":164,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[166,167,168,169,170,171,172,173,174,175,176,108,109,177,178,179,180,181,182,183],"oracle","what if oracle","go","run","ux","futures","analysis","explore","decision","branch","question","idea","exploration","options","stress-test","strategies","scenario","stress",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":200,"publishedAt":47},"01M6EZZCXAEB49RXGQCJX5E8GB","venue-templates","Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.","https:\u002F\u002Fgithub.com\u002Fhenriquescastilho\u002Fmy-claude\u002Fblob\u002Fmain\u002F.codex\u002Fvendor_imports\u002Fclaude\u002Fmarketplaces\u002Fclaude-scientific-skills\u002Fscientific-skills\u002Fvenue-templates\u002FSKILL.md",[190,193,196,197],{"categoryNo":191,"categoryName":192,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":194,"categoryName":195,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":163,"categoryName":164,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":198,"categoryName":199,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[201,202,203,204,205,206,207,208,105,209,108,109,110,210,211,212,213,214,155,215],"templates","venue templates","research","guidelines","NeurIPS","ICML","LaTeX","science","access","proposals","Academic","requirements","formatting","journal","chi"]