From mblode-agent-skills
Optimises SEO and technical foundations for Next.js App Router apps: sitemaps, robots, meta tags, structured data, canonicals, redirects, hreflang, Core Web Vitals, programmatic SEO, security headers, and error pages.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mblode-agent-skills:optimise-seoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **IS:** crawlability, metadata, structured data, canonicals, redirects, hreflang, Core Web Vitals, programmatic SEO, security/privacy headers, and error-page status behaviour for Next.js App Router apps.
ui-design), or page-level UI quality review (use ui-audit). Making a site readable by AI agents (llms.txt, MCP discovery, WebMCP) is out of scope; research current specs rather than relying on static SEO guidance.Allowed surface: metadata, structured data, semantic HTML, internal links, alt text, app/sitemap.ts, app/robots.ts, next.config.ts redirects and headers, error pages, performance tuning. Never touch component styling or layout.
Copy and track this checklist:
SEO progress:
- [ ] Step 1: Inventory routes and decide index intent per route
- [ ] Step 2: Fix crawl/index foundations (sitemap, robots, canonicals, redirects, status codes)
- [ ] Step 3: Implement metadata + structured data
- [ ] Step 4: Improve semantics, internal links, and Core Web Vitals
- [ ] Step 5: Validate with references/seo-checklist.md and report evidence
Before writing code for steps 2-4, read references/nextjs-implementation.md: App Router patterns (Metadata API, generateMetadata, sitemap index, JSON-LD component, OG image generation, headers()/redirects() config).
app/sitemap.ts lists all public URLs; app/robots.ts links to itmetadata or generateMetadata@graph with a stable @id (/#person, /#website, /#organization); reference by @id, don't duplicate. On articles keep Person as author, use an Organization (with a logo) as publishernoindex the long tail and monitor indexation and cannibalisation in Search Consolenoindex a thin page and omit it from the sitemap until it carries unique content, then add an internal link and index itnoindex, canonicals, redirect chains, soft 404snoindex thin pagesnoindex and drop from the sitemapindex, follow; staging, admin, thin, or private routes get metadata.robots noindex (HTML) or X-Robots-Tag (non-HTML, whole environments).One URL pattern for all locales; reciprocal hreflang with self-reference plus x-default; translate metadata, not just body; never auto-redirect by IP or Accept-Language. Full rules and the generateMetadata pattern: references/internationalisation.md.
Security headers (HSTS, CSP, nosniff, frame-ancestors, Referrer-Policy, Permissions-Policy), SRI, cookie flags, security.txt, privacy policy and opt-in consent, correct 404/500/503 behaviour, web app manifest. Read references/technical-hardening.md for header, cookie, consent, or error-page tasks.
robots.txt, noindex, or auth walls on routes meant to rank; check before shipping, not after traffic drops.hreflang that isn't reciprocal across every alternate; search engines ignore non-mutual sets.Retry-After so the site isn't deindexed.Strict-Transport-Security with preload/includeSubDomains before every subdomain is HTTPS; it's effectively irreversible.Person as publisher on articles: rich results expect an Organization publisher with a logo. Keep Person as author.endDate, offers, image, eventStatus, eventAttendanceMode, address, organizer.url). Clear warnings, not just errors.lastModified: it goes stale and signals dead content. Derive it from the most recent content date.ui-design: visual direction, palettes, typography, landing-page CROui-audit: page-level UI quality and rendered i18n behavior (locale formatting, plurals, RTL); optimise-seo owns hreflang and localized metadataCopy references/seo-checklist.md, mark every item pass/fail, then attach command evidence:
| Check | Command/source | Expected result |
|---|---|---|
| Production build | npm run build or repo equivalent | exits 0 |
| Response headers | curl -sI <url> | correct status, redirects, canonical host |
| Served HTML metadata | curl -s <url> | rg "canonical|og:|twitter:|application/ld\+json" | tags present in source |
| Robots | curl -s <origin>/robots.txt | expected allow/disallow and sitemap |
| Sitemap | curl -s <origin>/sitemap.xml | indexed routes, absolute URLs, fresh lastmod when used |
| Lighthouse | npx lighthouse <url> --only-categories=seo,performance --output=json --output-path=.lighthouse-seo.json | SEO and Performance >= 90, or blockers listed |
| JSON-LD | Google Rich Results Test URL/result | valid or documented unsupported schema |
| Search Console after deploy | Pages/Coverage and enhancement reports | no new warnings; indexed/excluded changes explained |
Report remaining blockers with exact URLs and owner/action.
npx claudepluginhub mblode/agent-skillsOptimizes and audits SEO for Next.js App Router apps: metadata, Open Graph, sitemap, robots.txt, JSON-LD, Core Web Vitals, and Google indexing diagnostics.
Provides SEO audit and coding patterns for web apps including meta tags, structured data, Core Web Vitals, sitemaps, and Open Graph. Run audit mode with /seo-best-practices.
Optimizes websites for search engines via technical SEO: robots.txt, meta robots, canonical URLs, XML sitemaps, URL structures, per Lighthouse audits and Google guidelines.