원클릭으로
seo
SEO for web apps — metadata, structured data, sitemaps, robots.txt, Core Web Vitals, E-E-A-T. Auto-loads framework-specific references.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
SEO for web apps — metadata, structured data, sitemaps, robots.txt, Core Web Vitals, E-E-A-T. Auto-loads framework-specific references.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Unified design foundations — design system architecture, tokens, component specs, visual principles, creative vision, figma integration, plus brand design system loader (66 real brands via DESIGN.md). Absorbs design, design-system, design-systems, design-principles, design-router, creative-vision, figma, design-md.
Render, summarize, and present markdown documents and structured content in multiple output modes
Ultra UI skill - combines Google's DESIGN.md spec (machine-readable design tokens) with the ui-ux-pro-max knowledge base (91 styles, 161 palettes, 73 font pairings, 161 products, 104 UX guidelines, 25 chart types). Generates lint-clean DESIGN.md files, validates token references and WCAG contrast, exports Tailwind/DTCG tokens, and diffs design systems version-over-version.
Initialize UltraThink capabilities in the current project directory
Org-Bench Google-bipartite winning mechanism — the 4-section design-doc gate that every non-trivial change passes through. Use when the Director defines new work, when an Integrator reviews a lane (code/quality/devops), when the Director approves, or when a Worker is about to start coding and needs the spec. Tools live in the `design-doc` MCP server. Triggers on phrases like "design doc", "design review", "approve revision", "lane verdict", "what does this issue require", "is this approved yet".
Web scraping with anti-bot bypass (Cloudflare Turnstile etc.), stealth headless browsing, adaptive selectors, and concurrent crawls. Use when the user asks to scrape, crawl, or extract data from websites; the built-in WebFetch fails; the target has anti-bot protections; or the work needs JavaScript rendering. Prefers the registered MCP tools (mcp__scrapling__*) over raw Python so token cost stays low.
| name | seo |
| description | SEO for web apps — metadata, structured data, sitemaps, robots.txt, Core Web Vitals, E-E-A-T. Auto-loads framework-specific references. |
| layer | domain |
| category | frontend |
| triggers | ["seo","meta tags","opengraph","og tags","structured data","json-ld","schema.org","sitemap","robots.txt","core web vitals","lcp","inp","cls","search engine","google ranking","rich snippets","e-e-a-t"] |
| inputs | ["Page or route to optimize","Target keywords + content type (article / product / service / local-biz / org / event)","Framework (Next.js, Remix, Astro, plain HTML)"] |
| outputs | ["Metadata config (title, description, OG, Twitter cards, canonical)","JSON-LD blocks for the right schema.org type","sitemap.xml + robots.txt","Core Web Vitals fixes prioritised by impact","E-E-A-T audit findings + remediation list"] |
| linksTo | ["nextjs","performance-profiler","vercel"] |
| linkedFrom | ["ship","optimize","ui-ux-pro"] |
| preferredNextSkills | ["performance-profiler","nextjs"] |
| fallbackSkills | ["react"] |
| riskLevel | low |
| memoryReadPolicy | selective |
| memoryWritePolicy | none |
| sideEffects | [] |
| references | ["nextjs-metadata.md","jsonld.md","sitemap-robots.md","core-web-vitals.md","eeat.md"] |
| templates | ["assets/templates/article-jsonld.json","assets/templates/product-jsonld.json","assets/templates/organization-jsonld.json","assets/templates/local-business-jsonld.json"] |
| scripts | ["scripts/audit.sh"] |
Comprehensive SEO for web apps. The bulk of the implementation lives in references/ — load the one(s) relevant to the user's task. Templates in assets/templates/ are ready-to-paste JSON-LD blocks parameterised on common fields.
| Task | Reference |
|---|---|
| Per-page metadata, OG tags, Twitter cards in Next.js | references/nextjs-metadata.md |
| Pick the right schema.org type + paste JSON-LD | references/jsonld.md (+ a template from assets/templates/) |
| Generate sitemap.xml or robots.txt | references/sitemap-robots.md |
| Fix LCP/INP/CLS regressions | references/core-web-vitals.md |
| Audit content quality (Experience/Expertise/Authoritativeness/Trust) | references/eeat.md |
Is the page user-facing?
├── No → robots noindex; skip the rest
└── Yes → Continue
│
├── What schema.org type fits?
│ blog post → Article → article-jsonld.json
│ product → Product (+ Offer) → product-jsonld.json
│ service → Service / LocalBusiness
│ org/about → Organization → organization-jsonld.json
│ local biz → LocalBusiness → local-business-jsonld.json
│ event → Event
│ person → Person
│
├── Framework?
│ Next.js App Router → nextjs-metadata.md (Metadata API)
│ Remix → meta() functions
│ Astro → <head> with `Astro.url`
│ Plain HTML → static `<meta>` + `<script type="application/ld+json">`
│
└── Performance?
→ core-web-vitals.md (LCP/INP/CLS playbook)
.claude/skills/seo/scripts/audit.sh https://example.com
The script:
<title>, <meta description>, OG tags, canonical| Gate | Why |
|---|---|
metadataBase set on root layout | Without it, OG image URLs resolve relative — broken on social shares |
| Canonical URL on every page | Prevents duplicate-content penalties |
description 50–160 chars | Outside this range Google often rewrites your snippet |
og:image 1200×630 + ≤300KB | Large/wrong-aspect images don't render in feeds |
alt on every content image | a11y + image search ranking |
| LCP < 2.5s on mobile 4G | Below this is a Web Vitals fail and a CrUX field-data drag |
| Unique title per page | Duplicate titles get clustered in SERPs |
<Head>. Pick one; Metadata API wins for App Router.</script> inside JSON-LD strings. Use dangerouslySetInnerHTML with sanitised input.robots.txt blocking /_next/static/. Don't — Google needs your CSS/JS to render correctly.noindex and then linking to the page from elsewhere. Either commit to noindex or remove the inbound links; mixed signals hurt.next/script with strategy="lazyOnload" for analytics.