用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Dev-Toolbelt/dev-team-agents --skill seo-optimization命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | seo-optimization |
| description | Technical/on-page SEO, Core Web Vitals, structured data, GEO/LLM SEO, and quality-gate signals. |
Reference material for seo-specialist. Stack-agnostic — applies to any framework that renders HTML for a public, indexable surface.
A project counts as "needs SEO" when any of these hold. Use this table to decide whether seo-specialist must be spawned, not just invited.
| Signal type | Examples |
|---|---|
| Project category | Institutional/marketing site, landing page, e-commerce/online store, blog, documentation portal, portfolio — any surface meant to be found via search or cited by an AI answer |
| File presence | sitemap.xml, robots.txt, next-seo.config.*, astro.config.* with site: set, gatsby-config.js, CMS content directories (content/, posts/, blog/) |
| Route shape | Product detail pages, category/listing pages, checkout funnel entry pages, blog post routes, /blog/, /produtos/, /p/ |
| Dependency signals | next-seo, react-helmet, vue-meta, schema-dts, astro-seo, sitemap generator packages |
| Explicit request | User mentions SEO, ranking, Google, meta tags, structured data, sitemap, Core Web Vitals, ou "otimizar para IA/LLM" |
Not required for: internal admin panels, authenticated-only dashboards, CLIs, backend services with no rendered HTML, mobile-only apps with no web surface.
robots.txt present, not blocking pages that should be indexed, and pointing to the sitemapsitemap.xml generated (static or dynamic), includes all indexable routes, excludes noindex/private routes<link rel="canonical">) on every page — prevents duplicate-content splitting<h1> per page, logical heading hierarchy (h1 → h2 → h3, no skipped levels)hreflang tags when the project serves more than one locale404 status, not 200 with a "not found" page (soft 404)301 for permanent moves, never chained more than one hop<title> unique per page, 50–60 characters, primary keyword near the frontalt text descriptive (not keyword-stuffed), decorative images use alt=""og:title, og:description, og:image, og:url) and Twitter Card tags present for shareable pages| Metric | Threshold | What it measures |
|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | Perceived load speed |
| INP (Interaction to Next Paint) | ≤ 200ms | Responsiveness |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | Visual stability |
Common fixes: preload the LCP image/font, avoid layout shift from late-loading web fonts or images without explicit width/height, defer non-critical JS, avoid render-blocking CSS.
Emit as <script type="application/ld+json">. Pick the type that matches the page's real content — never mark up content that isn't visible to the user (Google Rich Results Test and other engines penalize mismatches).
| Page type | Schema type | Key fields |
|---|---|---|
| Homepage / brand | Organization | name, url, logo, sameAs (social profiles) |
| Landing / service page | Service or WebPage | name, description, provider |
| Product page | Product | name, image, description, offers (price, priceCurrency, availability), aggregateRating if reviews exist |
| Blog post / article | Article or BlogPosting | headline, author, datePublished, dateModified, image |
| FAQ section | FAQPage | mainEntity array of Question/Answer pairs — only for content genuinely visible as Q&A on the page |
| Navigation trail | BreadcrumbList | ordered itemListElement matching the visible breadcrumb |
| Local business | LocalBusiness | address, openingHours, telephone |
Validate with structured-data testing tools before shipping when the project has one configured; otherwise flag as "unverified, spot-check recommended."
Search is increasingly answered by AI systems (chat assistants, AI Overviews, agentic browsers) that read and cite pages rather than only ranking them. These practices make content easier to extract and cite correctly:
llms.txt at the site root — a plain-Markdown index of the site's key pages for LLM consumption: a short site description, then a linked list of the most important pages with a one-line summary each. Keep it accurate — a stale llms.txt is worse than none, since it misdirects the citation.h2/h3 section should make sense read in isolation (LLMs often extract a section, not the whole page). Avoid "as mentioned above" references that only work in full-page context.<article>, <section>, heading hierarchy, and lists (<ul>/<ol>) over div-soup; extraction quality tracks markup quality.robots.txt AI-crawler directives — if the project has a stated policy on AI training/crawling (e.g. GPTBot, ClaudeBot, Google-Extended), reflect it explicitly rather than leaving it to each crawler's default.Use this exact structure when reporting an SEO review (see agents/seo-specialist.md for when it is mandatory vs. advisory):
## SEO Quality Gate
### Technical SEO
[PASS / ISSUE / BLOCKER] — [finding]
### On-Page SEO
[PASS / ISSUE / BLOCKER] — [finding]
### Core Web Vitals
[PASS / ISSUE / BLOCKER] — [finding, with measured value if available]
### Structured Data
[PASS / ISSUE / BLOCKER] — [finding]
### GEO / LLM Readiness
[PASS / ISSUE / BLOCKER] — [finding]
### Verdict
[APPROVED / APPROVED WITH NOTES / BLOCKED]
BLOCKER = missing sitemap/robots.txt, missing canonical on a duplicated route, broken structured data, LCP/CLS in "poor" range, or a soft-404. Everything else non-passing is ISSUE. BLOCKED verdict when any BLOCKER is present.