[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BY8SSJN9CGHPHT9Z8HCFKF":3,"skill-same:01M6BY8SSJN9CGHPHT9Z8HCFKF":70},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6BY8SSJN9CGHPHT9Z8HCFKF","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\".","wolfstar-project\u002Fwolfstar.rocks","wolfstar-project","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F109528280?v=4","01M6BXZW9J3Y1DWPNSBBWC2BVY","wolfstar","01M6BXZWDRD3C71GVE58BWXW1D",0,"MIT","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\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],"structured data","web","search","Optimization","data","Meta","Meta Tags","improve","engine","quality","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## AI search visibility (emerging)\n\nA class of AI search engines (ChatGPT search, Perplexity, Gemini Overviews) cite web pages from their training and retrieval pipelines, not from the classic ranked results. As of 2026 this is an unstable area — there are no confirmed ranking signals — but a few things are low-cost and won't hurt:\n\n- **Don't block AI crawlers wholesale.** `OAI-SearchBot`, `PerplexityBot`, `GoogleOther`, `Google-Extended`, `ClaudeBot`, etc. each have separate `robots.txt` user-agents. Decide per-bot rather than blanket-blocking — a `Disallow` removes you from that bot's citations.\n- **Lean on schema.org `Article`\u002F`Product`\u002F`FAQPage`.** AI summarizers parse structured data more reliably than they parse prose layouts. The structured-data examples above are the same ones that help here.\n- **Make first-paragraph answers self-contained.** Both featured snippets and AI summaries pull short, coherent passages. A definition or direct answer in the first 1-2 sentences is more extractable than the same content buried under marketing prose.\n\n### `llms.txt` — emerging, unproven\n\n[`llms.txt`](https:\u002F\u002Fllmstxt.org\u002F) is a proposed convention (a Markdown index of your site's important pages, served at `\u002Fllms.txt`) for LLMs to consume. As of mid-2026 adoption is ~0.015% of sites and **no major AI vendor has confirmed they read it**. Treat it as a 5-minute speculative add for content sites — not a meaningful ranking or citation factor — and don't reorganize content around it.\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## AI search visibility (emerging)\n\nA class of AI search engines (ChatGPT search, Perplexity, Gemini Overviews) cite web pages from their training and retrieval pipelines, not from the classic ranked results. As of 2026 this is an unstable area — there are no confirmed ranking signals — but a few things are low-cost and won't hurt:\n\n- **Don't block AI crawlers wholesale.** `OAI-SearchBot`, `PerplexityBot`, `GoogleOther`, `Google-Extended`, `ClaudeBot`, etc. each have separate `robots.txt` user-agents. Decide per-bot rather than blanket-blocking — a `Disallow` removes you from that bot's citations.\n- **Lean on schema.org `Article`\u002F`Product`\u002F`FAQPage`.** AI summarizers parse structured data more reliably than they parse prose layouts. The structured-data examples above are the same ones that help here.\n- **Make first-paragraph answers self-contained.** Both featured snippets and AI summaries pull short, coherent passages. A definition or direct answer in the first 1-2 sentences is more extractable than the same content buried under marketing prose.\n\n### `llms.txt` — emerging, unproven\n\n[`llms.txt`](https:\u002F\u002Fllmstxt.org\u002F) is a proposed convention (a Markdown index of your site's important pages, served at `\u002Fllms.txt`) for LLMs to consume. As of mid-2026 adoption is ~0.015% of sites and **no major AI vendor has confirmed they read it**. Treat it as a 5-minute speculative add for content sites — not a meaningful ranking or citation factor — and don't reorganize content around it.\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":44,"description":7},{"author":45,"version":46},"web-quality-skills","1.0","main","218944972a37a59fccc9ee1474e524ddc83048aa",".skills\u002Fseo","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks","https:\u002F\u002Fwolfstar.rocks","https:\u002F\u002Fgithub.com\u002Fwolfstar-project","https:\u002F\u002Fwww.wolfstar.rocks","All projects for bot WolfStar","2026-11-12 03:33:55",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add wolfstar-project\u002Fwolfstar.rocks --skill seo",{"tool":62,"command":63},"bunx","bunx skills add wolfstar-project\u002Fwolfstar.rocks --skill seo",{"tool":65,"command":66},"pnpm","pnpm dlx skills add wolfstar-project\u002Fwolfstar.rocks --skill seo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Fseo\u002FSKILL.md",true,[],[71,89,109,129,143,154],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":84,"publishedAt":39},"01M6BY9H7CDDKSGQ7G6SG7H7VW","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Fwriting-plans\u002FSKILL.md",[78,81],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":82,"categoryName":83,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[85,86,87,88],"writing","writing plans","code","spec",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":97,"publishedAt":39},"01M6BY9C1NMAWJYQV2AG9Z50JD","web-quality-audit","Comprehensive web quality audit covering performance, accessibility, SEO, and best practices. Use when asked to \"audit my site\", \"review web quality\", \"run lighthouse audit\", \"check page quality\", or \"optimize my website\".","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Fweb-quality-audit\u002FSKILL.md",[95,96],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[98,99,30,38,100,101,102,103,104,105,5,106,107,108],"audit","web quality audit","performance","accessibility","run","review","best practices","website","Lighthouse","site","page",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":121,"publishedAt":39},"01M6BY99BPGY7PGAJNJBSA43VC","web-design-guidelines","Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Fweb-design-guidelines\u002FSKILL.md",[115,118],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":119,"categoryName":120,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师",[122,30,123,124,103,107,101,87,104,125,126,98,127,128],"guidelines","design","web design guidelines","ux","file","ui","compliance",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":139,"publishedAt":39},"01M6BY96B8TTMXB77QSZ4RG44C","test-driven-development","Use when implementing any feature or bugfix, before writing implementation code","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Ftest-driven-development\u002FSKILL.md",[135,138],{"categoryNo":136,"categoryName":137,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},[140,141,142,85,87],"development","test driven development","test",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":39},"01M6BY9415MPKFMGTNR996N2YX","tdd","Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions \"red-green-refactor\", or wants integration tests.","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Ftdd\u002FSKILL.md",[],[145,142,150,140,151,152,153],"integration tests","integration","refactor","first",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":161,"publishedAt":39},"01M6BY91BK1ER9EV193FCVHY88","systematic-debugging","Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes","https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fwolfstar.rocks\u002Fblob\u002Fmain\u002F.skills\u002Fsystematic-debugging\u002FSKILL.md",[160],{"categoryNo":136,"categoryName":137,"taxonomyType":21,"taxonomyTypeDesc":22},[162,163,142],"systematic debugging","debugging"]