Creator · mblode
Last updated · Sep 7, 2026
Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use se
Creator · mblode
Last updated · Sep 7, 2026
Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use se
Creator · mblode
Last updated · Sep 7, 2026
Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use se
Creator · mblode
Last updated · Sep 7, 2026
Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use se
Sandbox only
Install targets
Codex install prompt
Install the "optimise-seo" agent skill from https://github.com/mblode/agent-skills/tree/main/skills/optimise-seo. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"mblode-optimise-seo","task":"Install optimise-seo","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add mblode/agent-skills --skill optimise-seo
Maintenance
fresh
1d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
104
67/100 Quality · 73/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
104 GitHub stars
Repo activity
104 stars, 10 forks
Maintenance
1d since push
License
MIT
Install
npx skills add mblode/agent-skills --skill optimise-seo
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add mblode/agent-skills --skill optimise-seoDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
This skill should not be selected by an agent without explicit human security review.
Do not auto-install. Inspect the source, dependencies, and permission surface first.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/mblode-optimise-seo/install
Agent should check
Copy prompt
Task: Use optimise-seo in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/mblode-optimise-seo/install
Install command: npx skills add mblode/agent-skills --skill optimise-seo
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/mblode-optimise-seo/install
LLM text format
/api/skills/mblode-optimise-seo/install?format=text
Find alternatives
/api/skills/search?q=optimise-seo&limit=3
Agent prompt
Use optimise-seo for this task. Review https://www.openagentskill.com/api/skills/mblode-optimise-seo/install, then install with: npx skills add mblode/agent-skills --skill optimise-seoRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/mblode-optimise-seo
LLM text
/api/registry/manifest/mblode-optimise-seo?format=text
Install alias
/api/registry/install/mblode-optimise-seo
Recommend
/api/registry/recommend?task=Use%20optimise-seo%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Local desktop
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO104 GitHub stars
Stars/forks activity
CHECK104 stars, 10 forks; issue activity unavailable in current metadata
Recent maintenance
PASS1d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Collect structured data
I need my agent to scrape websites and extract structured data from pages.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: optimise-seo description: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. ---
# Optimise SEO
- **IS:** crawlability, metadata, structured data, canonicals, redirects, status codes, hreflang, AI-crawler policy and extractable page structure, Core Web Vitals, programmatic SEO, security and privacy headers, and error-page behaviour, implemented in a Next.js App Router codebase. - **IS NOT:** visual redesign, layout, or page-level UI quality (`ui-design` Direction, Build, and Audit modes), demand research, briefs, question maps, or Search Console monitoring (`seo-program`), tenant routing for `robots.txt` and `sitemap.xml` (`multi-tenant-architecture`), or writing the article (external `ghostwriter`).
Allowed surface: `metadata` and `generateMetadata`, JSON-LD, semantic HTML, internal links, alt text, `app/sitemap.ts`, `app/robots.ts`, `app/feed.xml/route.ts`, `app/llms.txt/route.ts`, `proxy.ts`, `next.config.ts` redirects and headers, error pages, and performance work. Component styling and layout stay as they are; when a fix needs a layout change, name it as a handoff to `ui-design`.
Before writing code, read the matching guide in `node_modules/next/dist/docs/` (resolved from the app directory; in a monorepo the `next` package is not visible from the repo root). The bundled docs match the installed version; the notes in `references/nextjs-implementation.md` were checked against 16.3 and say where behaviour changed.
## References
| File | Read when | |---|---| | [references/indexing-policy.md](references/indexing-policy.md) | Redirects, duplicate URLs, index decisions, or pages generated at scale | | [references/nextjs-implementation.md](references/nextjs-implementation.md) | Before writing code in steps 2-4: metadata, sitemap and robots, redirects, indexing, streaming 404s, JSON-LD, OG images, CSP | | [references/answer-engines.md](references/answer-engines.md) | The task touches AI crawlers, `robots.ts` rules for GPTBot or ClaudeBot, `llms.txt`, Content-Signal, or "why are we not cited" | | [references/internationalisation.md](references/internationalisation.md) | The site has more than one locale | | [references/technical-hardening.md](references/technical-hardening.md) | Headers, cookies, consent, GPC, `security.txt`, or maintenance and error-status tasks | | [references/validation-evidence.md](references/validation-evidence.md) | Step 5: served-page commands and evidence expectations | | [references/seo-checklist.md](references/seo-checklist.md) | Step 5: copy into the report and mark each line with evidence |
## Workflow
Copy and track this checklist:
```text 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 and structured data - [ ] Step 4: Improve semantics, extractable answers, internal links, and Core Web Vitals - [ ] Step 5: Validate with references/seo-checklist.md and report evidence ```
Step 1 is a table: route, index or noindex, canonical, reason. Every later step reads from it, and a route with no row gets no work.
## Must-have on every site
- `app/sitemap.ts` lists every indexable URL with `lastModified` derived from content; `app/robots.ts` names it - One canonical per page, one host, one casing, one trailing-slash policy, set through `alternates.canonical` with `metadataBase` in the root layout. Next.js enforces the slash policy itself: by default it 308s `/about/` to `/about`, and `trailingSlash: true` inverts that (files with extensions and `.well-known/` paths are exempt either way) - Preserve the property's existing ownership verification. Use `metadata.verification` only for a supplied token and the chosen verification method; DNS verification needs no duplicate meta tag - Root layout `robots` lifts Google's default preview caps: `googleBot: { 'max-snippet': -1, 'max-image-preview': 'large', 'max-video-preview': -1 }`. Without them Google truncates the snippet and the image preview, and the snippet cap is what AI surfaces read against when deciding how much of a page they may quote - `authors` and `creator` set explicitly in the root layout, so person-level attribution does not live only in footer HTML and JSON-LD - Unique title and description per page; title and H1 lead with the non-brand primary keyword and agree in intent (a brand-led title on a category page competes only for navigational queries the site already wins) - Every page opens with a short, plain-text answer to the question it exists to answer; the h2s are the questions people actually ask - Open Graph and Twitter Card tags with a 1200x630 image - JSON-LD: Organization and WebSite once in a root `@graph` with stable `@id`s, BreadcrumbList on inner pages, then Article, Product, ProfilePage, or LocalBusiness where the content type matches. Define an entity once and reference it by `@id` - One h1, logical h2-h6, descriptive alt text, internal links between related pages - Core Web Vitals in target at the p75 of CrUX field data: LCP 2.5 s, INP 200 ms, CLS 0.1 (INP replaced FID in March 2024; a guide still naming FID is stale)
## Redirects and indexing policy
Load `references/indexing-policy.md` when routes move, duplicates need consolidation, or page indexing policy changes. Verify behavior against the installed Next.js version and served responses.
## AI crawlers and answer engines
Google needs no special files: AI Overviews and AI Mode run on Googlebot and core ranking, and `nosnippet` or `max-snippet:0` is the only opt-out (it removes the normal snippet too). Everything else is a robots decision per crawler class: search and citation bots (`OAI-SearchBot`, `Claude-SearchBot`, `PerplexityBot`) put a site in answers; training bots (`GPTBot`, `ClaudeBot`, `CCBot`) do not; `Google-Extended` and `Applebot-Extended` are usage tokens with no crawler behind them. `llms.txt` costs one route and earns almost nothing measurable. The full table, `robots.ts` rules, Content-Signal, and the Markdown-alternate patterns are in `references/answer-engines.md`.
## Programmatic SEO
For pages generated at scale, load `references/indexing-policy.md`. Require demand evidence and unique page value before indexing a new pattern.
## Audit triage order
1. Crawl and index: robots, sitemap, stray `noindex`, canonicals, redirect chains, soft 404s 2. Technical: HTTPS, Core Web Vitals field data, mobile and desktop parity, AI-crawler access through the CDN 3. On-page: title and H1 uniqueness and non-brand lead, extractable answer, internal links, thin pages 4. Orphans: indexable pages with no internal link or sitemap entry; give them a crawl path or `noindex` and drop them. A sitewide footer link is not a crawl path on a low-authority domain: Google discounts footer boilerplate, and a section linked only from the footer can sit at "URL is unknown to Google" for months while nav-linked pages beside it are crawled daily
Report in the same order: what blocks indexation first, then on-page and schema gaps, then the single next fix. Twenty equal-weight findings get none of them done. Report length follows what was found, not the section list. Treat third-party audit tools as leads, not findings: several flag Next.js output falsely (a missing `<meta name="title">` when `<title>` is present, "duplicate" `theme-color` tags that are light and dark variants, repeated `article:tag`), and at least one agent-skill auditor silently skips modules unless given an explicit module list and passes a `FAQPage` whose answers never render. Verify each lead against the served HTML before it goes in the report.
## Gotchas
- Under `cacheComponents: true` (the `scaffold-nextjs` default) the `dynamic`, `dynamicParams`, `revalidate`, and `fetchCache` segment configs are build errors: `export const revalidate` on `app/sitemap.ts`, `dynamic = 'force-static'` on a `robots.txt/route.ts` handler, `fetchCache` anywhere (`runtime`, `maxDuration`, `instant`, and `prefetch` remain valid). Move the content fetch into a separate `'use cache'` helper with `cacheLife('hours')` and `cacheTag`, called from the page or `GET` (the directive cannot sit on the `GET` export itself), and `revalidateTag(tag, 'max')` from the publish webhook. Revalidation does not purge a CDN in front of the app; purge it in the same webhook. - `generateSitemaps()` writes `/product/sitemap/0.xml`, `/product/sitemap/1.xml`, and no index file. List each generated file in `robots.ts` (`sitemap` takes an array) or hand-write the index at `app/sitemap.xml/route.ts`; otherwise Google sees only the ones it stumbles on. - `lastModified: new Date()` on every sitemap row marks the whole site as changed on every deploy; Google then ignores `lastmod` sitewide. `priority` and `changeFrequency` are ignored outright, so emitting them buys nothing and clutters the diff. - No `Host:` line in `robots.txt`. Yandex dropped the directive in 2018 in favour of a 301 to the preferred host, which `next.config.ts` already serves, and auditors flag the leftover line as an unknown directive. Leave `host` out of the `robots.ts` return value. - Next.js replaces object-valued metadata (`openGraph`, `twitter`, `robots`, `alternates`) wholesale when a child segment declares the key; it does not deep-merge. A page that adds `openGraph: { title }` loses the inherited `siteName`, `images`, and `locale`, and `images: undefined` counts as a declaration. When you add one of these blocks to a route, every field the parent supplied becomes yours to restate. Scalars (`title`, `description`, `authors`, `creator`) merge normally. - `title.template` applies to `<title>` only. `og:title` resolves against `openGraph.title.template`, a separate mechanism, so stripping a hand-rolled suffix from a page title silently strips the product name from the share card. Set both templates in the layout, or neither. A bare string `title` in a nested layout also resets the parent template to null for that subtree; return `{ default, template }` instead. - Never set `openGraph.url` in a root layout. It is not per-page, every route inherits it, and every share collapses onto the home URL. A child cannot fix it without declaring `openGraph` and losing the rest of the block. Absent beats wrong: consumers fall back to the URL they fetched, and `alternates.canonical` is already per-page. - `middleware.ts` is deprecated in Next.js 16. New request-time logic (slug checks, CSP nonces, `Accept` negotiation) goes in `proxy.ts` with an exported `proxy` function; `npx @next/codemod@canary middleware-to-proxy .` moves an existing file. Proxy is Node.js only; `runtime` is not a valid export there. - `next.config.ts` redirects match in array order and `:path*` swallows everything beneath it, so a specific source placed after a catch-all is dead code, and a bare `/old` must sit above `/old/:path*` or it lands on `/new/`. Vercel caps the list at 1,024 rules; past that, move the map into `proxy.ts`. - Next owns the `Vary` header on App Router HTML responses and replaces it with its RSC list (`rsc, next-router-state-tree, ...`). A `Vary: Accept` set in `proxy.ts` on `NextResponse.next()`, or in `headers()`, never reaches the client. It survives only on a `Response` you construct yourself, so content-negotiated Markdown must be returned directly, not rewritten to. - `notFound()` after a Suspense boundary or `loading.tsx` has flushed returns 200 with a `noindex` meta, not 404. Without Cache Components, call it before the first suspending `await`; with Cache Components the docs are explicit that every dynamic route streams a static shell first, so the existence check moves to `proxy.ts`. Analytics and uptime monitors otherwise see a health
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for optimise-seo, ready for a manual X post.
optimise-seo: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and c... 104 stars https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x
Listing + install path for optimise-seo: https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x Install: npx skills add mblode/agent-skills --skill optimise-seo
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to mblode but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo/audit)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)mblode
@mblode
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "optimise-seo" agent skill from https://github.com/mblode/agent-skills/tree/main/skills/optimise-seo. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"mblode-optimise-seo","task":"Install optimise-seo","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add mblode/agent-skills --skill optimise-seo
Maintenance
fresh
1d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
104
67/100 Quality · 73/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
104 GitHub stars
Repo activity
104 stars, 10 forks
Maintenance
1d since push
License
MIT
Install
npx skills add mblode/agent-skills --skill optimise-seo
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add mblode/agent-skills --skill optimise-seoDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
This skill should not be selected by an agent without explicit human security review.
Do not auto-install. Inspect the source, dependencies, and permission surface first.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/mblode-optimise-seo/install
Agent should check
Copy prompt
Task: Use optimise-seo in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/mblode-optimise-seo/install
Install command: npx skills add mblode/agent-skills --skill optimise-seo
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/mblode-optimise-seo/install
LLM text format
/api/skills/mblode-optimise-seo/install?format=text
Find alternatives
/api/skills/search?q=optimise-seo&limit=3
Agent prompt
Use optimise-seo for this task. Review https://www.openagentskill.com/api/skills/mblode-optimise-seo/install, then install with: npx skills add mblode/agent-skills --skill optimise-seoRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/mblode-optimise-seo
LLM text
/api/registry/manifest/mblode-optimise-seo?format=text
Install alias
/api/registry/install/mblode-optimise-seo
Recommend
/api/registry/recommend?task=Use%20optimise-seo%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Local desktop
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO104 GitHub stars
Stars/forks activity
CHECK104 stars, 10 forks; issue activity unavailable in current metadata
Recent maintenance
PASS1d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Collect structured data
I need my agent to scrape websites and extract structured data from pages.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: optimise-seo description: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. ---
# Optimise SEO
- **IS:** crawlability, metadata, structured data, canonicals, redirects, status codes, hreflang, AI-crawler policy and extractable page structure, Core Web Vitals, programmatic SEO, security and privacy headers, and error-page behaviour, implemented in a Next.js App Router codebase. - **IS NOT:** visual redesign, layout, or page-level UI quality (`ui-design` Direction, Build, and Audit modes), demand research, briefs, question maps, or Search Console monitoring (`seo-program`), tenant routing for `robots.txt` and `sitemap.xml` (`multi-tenant-architecture`), or writing the article (external `ghostwriter`).
Allowed surface: `metadata` and `generateMetadata`, JSON-LD, semantic HTML, internal links, alt text, `app/sitemap.ts`, `app/robots.ts`, `app/feed.xml/route.ts`, `app/llms.txt/route.ts`, `proxy.ts`, `next.config.ts` redirects and headers, error pages, and performance work. Component styling and layout stay as they are; when a fix needs a layout change, name it as a handoff to `ui-design`.
Before writing code, read the matching guide in `node_modules/next/dist/docs/` (resolved from the app directory; in a monorepo the `next` package is not visible from the repo root). The bundled docs match the installed version; the notes in `references/nextjs-implementation.md` were checked against 16.3 and say where behaviour changed.
## References
| File | Read when | |---|---| | [references/indexing-policy.md](references/indexing-policy.md) | Redirects, duplicate URLs, index decisions, or pages generated at scale | | [references/nextjs-implementation.md](references/nextjs-implementation.md) | Before writing code in steps 2-4: metadata, sitemap and robots, redirects, indexing, streaming 404s, JSON-LD, OG images, CSP | | [references/answer-engines.md](references/answer-engines.md) | The task touches AI crawlers, `robots.ts` rules for GPTBot or ClaudeBot, `llms.txt`, Content-Signal, or "why are we not cited" | | [references/internationalisation.md](references/internationalisation.md) | The site has more than one locale | | [references/technical-hardening.md](references/technical-hardening.md) | Headers, cookies, consent, GPC, `security.txt`, or maintenance and error-status tasks | | [references/validation-evidence.md](references/validation-evidence.md) | Step 5: served-page commands and evidence expectations | | [references/seo-checklist.md](references/seo-checklist.md) | Step 5: copy into the report and mark each line with evidence |
## Workflow
Copy and track this checklist:
```text 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 and structured data - [ ] Step 4: Improve semantics, extractable answers, internal links, and Core Web Vitals - [ ] Step 5: Validate with references/seo-checklist.md and report evidence ```
Step 1 is a table: route, index or noindex, canonical, reason. Every later step reads from it, and a route with no row gets no work.
## Must-have on every site
- `app/sitemap.ts` lists every indexable URL with `lastModified` derived from content; `app/robots.ts` names it - One canonical per page, one host, one casing, one trailing-slash policy, set through `alternates.canonical` with `metadataBase` in the root layout. Next.js enforces the slash policy itself: by default it 308s `/about/` to `/about`, and `trailingSlash: true` inverts that (files with extensions and `.well-known/` paths are exempt either way) - Preserve the property's existing ownership verification. Use `metadata.verification` only for a supplied token and the chosen verification method; DNS verification needs no duplicate meta tag - Root layout `robots` lifts Google's default preview caps: `googleBot: { 'max-snippet': -1, 'max-image-preview': 'large', 'max-video-preview': -1 }`. Without them Google truncates the snippet and the image preview, and the snippet cap is what AI surfaces read against when deciding how much of a page they may quote - `authors` and `creator` set explicitly in the root layout, so person-level attribution does not live only in footer HTML and JSON-LD - Unique title and description per page; title and H1 lead with the non-brand primary keyword and agree in intent (a brand-led title on a category page competes only for navigational queries the site already wins) - Every page opens with a short, plain-text answer to the question it exists to answer; the h2s are the questions people actually ask - Open Graph and Twitter Card tags with a 1200x630 image - JSON-LD: Organization and WebSite once in a root `@graph` with stable `@id`s, BreadcrumbList on inner pages, then Article, Product, ProfilePage, or LocalBusiness where the content type matches. Define an entity once and reference it by `@id` - One h1, logical h2-h6, descriptive alt text, internal links between related pages - Core Web Vitals in target at the p75 of CrUX field data: LCP 2.5 s, INP 200 ms, CLS 0.1 (INP replaced FID in March 2024; a guide still naming FID is stale)
## Redirects and indexing policy
Load `references/indexing-policy.md` when routes move, duplicates need consolidation, or page indexing policy changes. Verify behavior against the installed Next.js version and served responses.
## AI crawlers and answer engines
Google needs no special files: AI Overviews and AI Mode run on Googlebot and core ranking, and `nosnippet` or `max-snippet:0` is the only opt-out (it removes the normal snippet too). Everything else is a robots decision per crawler class: search and citation bots (`OAI-SearchBot`, `Claude-SearchBot`, `PerplexityBot`) put a site in answers; training bots (`GPTBot`, `ClaudeBot`, `CCBot`) do not; `Google-Extended` and `Applebot-Extended` are usage tokens with no crawler behind them. `llms.txt` costs one route and earns almost nothing measurable. The full table, `robots.ts` rules, Content-Signal, and the Markdown-alternate patterns are in `references/answer-engines.md`.
## Programmatic SEO
For pages generated at scale, load `references/indexing-policy.md`. Require demand evidence and unique page value before indexing a new pattern.
## Audit triage order
1. Crawl and index: robots, sitemap, stray `noindex`, canonicals, redirect chains, soft 404s 2. Technical: HTTPS, Core Web Vitals field data, mobile and desktop parity, AI-crawler access through the CDN 3. On-page: title and H1 uniqueness and non-brand lead, extractable answer, internal links, thin pages 4. Orphans: indexable pages with no internal link or sitemap entry; give them a crawl path or `noindex` and drop them. A sitewide footer link is not a crawl path on a low-authority domain: Google discounts footer boilerplate, and a section linked only from the footer can sit at "URL is unknown to Google" for months while nav-linked pages beside it are crawled daily
Report in the same order: what blocks indexation first, then on-page and schema gaps, then the single next fix. Twenty equal-weight findings get none of them done. Report length follows what was found, not the section list. Treat third-party audit tools as leads, not findings: several flag Next.js output falsely (a missing `<meta name="title">` when `<title>` is present, "duplicate" `theme-color` tags that are light and dark variants, repeated `article:tag`), and at least one agent-skill auditor silently skips modules unless given an explicit module list and passes a `FAQPage` whose answers never render. Verify each lead against the served HTML before it goes in the report.
## Gotchas
- Under `cacheComponents: true` (the `scaffold-nextjs` default) the `dynamic`, `dynamicParams`, `revalidate`, and `fetchCache` segment configs are build errors: `export const revalidate` on `app/sitemap.ts`, `dynamic = 'force-static'` on a `robots.txt/route.ts` handler, `fetchCache` anywhere (`runtime`, `maxDuration`, `instant`, and `prefetch` remain valid). Move the content fetch into a separate `'use cache'` helper with `cacheLife('hours')` and `cacheTag`, called from the page or `GET` (the directive cannot sit on the `GET` export itself), and `revalidateTag(tag, 'max')` from the publish webhook. Revalidation does not purge a CDN in front of the app; purge it in the same webhook. - `generateSitemaps()` writes `/product/sitemap/0.xml`, `/product/sitemap/1.xml`, and no index file. List each generated file in `robots.ts` (`sitemap` takes an array) or hand-write the index at `app/sitemap.xml/route.ts`; otherwise Google sees only the ones it stumbles on. - `lastModified: new Date()` on every sitemap row marks the whole site as changed on every deploy; Google then ignores `lastmod` sitewide. `priority` and `changeFrequency` are ignored outright, so emitting them buys nothing and clutters the diff. - No `Host:` line in `robots.txt`. Yandex dropped the directive in 2018 in favour of a 301 to the preferred host, which `next.config.ts` already serves, and auditors flag the leftover line as an unknown directive. Leave `host` out of the `robots.ts` return value. - Next.js replaces object-valued metadata (`openGraph`, `twitter`, `robots`, `alternates`) wholesale when a child segment declares the key; it does not deep-merge. A page that adds `openGraph: { title }` loses the inherited `siteName`, `images`, and `locale`, and `images: undefined` counts as a declaration. When you add one of these blocks to a route, every field the parent supplied becomes yours to restate. Scalars (`title`, `description`, `authors`, `creator`) merge normally. - `title.template` applies to `<title>` only. `og:title` resolves against `openGraph.title.template`, a separate mechanism, so stripping a hand-rolled suffix from a page title silently strips the product name from the share card. Set both templates in the layout, or neither. A bare string `title` in a nested layout also resets the parent template to null for that subtree; return `{ default, template }` instead. - Never set `openGraph.url` in a root layout. It is not per-page, every route inherits it, and every share collapses onto the home URL. A child cannot fix it without declaring `openGraph` and losing the rest of the block. Absent beats wrong: consumers fall back to the URL they fetched, and `alternates.canonical` is already per-page. - `middleware.ts` is deprecated in Next.js 16. New request-time logic (slug checks, CSP nonces, `Accept` negotiation) goes in `proxy.ts` with an exported `proxy` function; `npx @next/codemod@canary middleware-to-proxy .` moves an existing file. Proxy is Node.js only; `runtime` is not a valid export there. - `next.config.ts` redirects match in array order and `:path*` swallows everything beneath it, so a specific source placed after a catch-all is dead code, and a bare `/old` must sit above `/old/:path*` or it lands on `/new/`. Vercel caps the list at 1,024 rules; past that, move the map into `proxy.ts`. - Next owns the `Vary` header on App Router HTML responses and replaces it with its RSC list (`rsc, next-router-state-tree, ...`). A `Vary: Accept` set in `proxy.ts` on `NextResponse.next()`, or in `headers()`, never reaches the client. It survives only on a `Response` you construct yourself, so content-negotiated Markdown must be returned directly, not rewritten to. - `notFound()` after a Suspense boundary or `loading.tsx` has flushed returns 200 with a `noindex` meta, not 404. Without Cache Components, call it before the first suspending `await`; with Cache Components the docs are explicit that every dynamic route streams a static shell first, so the existence check moves to `proxy.ts`. Analytics and uptime monitors otherwise see a health
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for optimise-seo, ready for a manual X post.
optimise-seo: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and c... 104 stars https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x
Listing + install path for optimise-seo: https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x Install: npx skills add mblode/agent-skills --skill optimise-seo
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to mblode but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo/audit)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)mblode
@mblode
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "optimise-seo" agent skill from https://github.com/mblode/agent-skills/tree/main/skills/optimise-seo. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"mblode-optimise-seo","task":"Install optimise-seo","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add mblode/agent-skills --skill optimise-seo
Maintenance
fresh
1d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
104
67/100 Quality · 73/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
104 GitHub stars
Repo activity
104 stars, 10 forks
Maintenance
1d since push
License
MIT
Install
npx skills add mblode/agent-skills --skill optimise-seo
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add mblode/agent-skills --skill optimise-seoDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
This skill should not be selected by an agent without explicit human security review.
Do not auto-install. Inspect the source, dependencies, and permission surface first.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/mblode-optimise-seo/install
Agent should check
Copy prompt
Task: Use optimise-seo in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/mblode-optimise-seo/install
Install command: npx skills add mblode/agent-skills --skill optimise-seo
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/mblode-optimise-seo/install
LLM text format
/api/skills/mblode-optimise-seo/install?format=text
Find alternatives
/api/skills/search?q=optimise-seo&limit=3
Agent prompt
Use optimise-seo for this task. Review https://www.openagentskill.com/api/skills/mblode-optimise-seo/install, then install with: npx skills add mblode/agent-skills --skill optimise-seoRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/mblode-optimise-seo
LLM text
/api/registry/manifest/mblode-optimise-seo?format=text
Install alias
/api/registry/install/mblode-optimise-seo
Recommend
/api/registry/recommend?task=Use%20optimise-seo%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Local desktop
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO104 GitHub stars
Stars/forks activity
CHECK104 stars, 10 forks; issue activity unavailable in current metadata
Recent maintenance
PASS1d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Collect structured data
I need my agent to scrape websites and extract structured data from pages.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: optimise-seo description: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. ---
# Optimise SEO
- **IS:** crawlability, metadata, structured data, canonicals, redirects, status codes, hreflang, AI-crawler policy and extractable page structure, Core Web Vitals, programmatic SEO, security and privacy headers, and error-page behaviour, implemented in a Next.js App Router codebase. - **IS NOT:** visual redesign, layout, or page-level UI quality (`ui-design` Direction, Build, and Audit modes), demand research, briefs, question maps, or Search Console monitoring (`seo-program`), tenant routing for `robots.txt` and `sitemap.xml` (`multi-tenant-architecture`), or writing the article (external `ghostwriter`).
Allowed surface: `metadata` and `generateMetadata`, JSON-LD, semantic HTML, internal links, alt text, `app/sitemap.ts`, `app/robots.ts`, `app/feed.xml/route.ts`, `app/llms.txt/route.ts`, `proxy.ts`, `next.config.ts` redirects and headers, error pages, and performance work. Component styling and layout stay as they are; when a fix needs a layout change, name it as a handoff to `ui-design`.
Before writing code, read the matching guide in `node_modules/next/dist/docs/` (resolved from the app directory; in a monorepo the `next` package is not visible from the repo root). The bundled docs match the installed version; the notes in `references/nextjs-implementation.md` were checked against 16.3 and say where behaviour changed.
## References
| File | Read when | |---|---| | [references/indexing-policy.md](references/indexing-policy.md) | Redirects, duplicate URLs, index decisions, or pages generated at scale | | [references/nextjs-implementation.md](references/nextjs-implementation.md) | Before writing code in steps 2-4: metadata, sitemap and robots, redirects, indexing, streaming 404s, JSON-LD, OG images, CSP | | [references/answer-engines.md](references/answer-engines.md) | The task touches AI crawlers, `robots.ts` rules for GPTBot or ClaudeBot, `llms.txt`, Content-Signal, or "why are we not cited" | | [references/internationalisation.md](references/internationalisation.md) | The site has more than one locale | | [references/technical-hardening.md](references/technical-hardening.md) | Headers, cookies, consent, GPC, `security.txt`, or maintenance and error-status tasks | | [references/validation-evidence.md](references/validation-evidence.md) | Step 5: served-page commands and evidence expectations | | [references/seo-checklist.md](references/seo-checklist.md) | Step 5: copy into the report and mark each line with evidence |
## Workflow
Copy and track this checklist:
```text 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 and structured data - [ ] Step 4: Improve semantics, extractable answers, internal links, and Core Web Vitals - [ ] Step 5: Validate with references/seo-checklist.md and report evidence ```
Step 1 is a table: route, index or noindex, canonical, reason. Every later step reads from it, and a route with no row gets no work.
## Must-have on every site
- `app/sitemap.ts` lists every indexable URL with `lastModified` derived from content; `app/robots.ts` names it - One canonical per page, one host, one casing, one trailing-slash policy, set through `alternates.canonical` with `metadataBase` in the root layout. Next.js enforces the slash policy itself: by default it 308s `/about/` to `/about`, and `trailingSlash: true` inverts that (files with extensions and `.well-known/` paths are exempt either way) - Preserve the property's existing ownership verification. Use `metadata.verification` only for a supplied token and the chosen verification method; DNS verification needs no duplicate meta tag - Root layout `robots` lifts Google's default preview caps: `googleBot: { 'max-snippet': -1, 'max-image-preview': 'large', 'max-video-preview': -1 }`. Without them Google truncates the snippet and the image preview, and the snippet cap is what AI surfaces read against when deciding how much of a page they may quote - `authors` and `creator` set explicitly in the root layout, so person-level attribution does not live only in footer HTML and JSON-LD - Unique title and description per page; title and H1 lead with the non-brand primary keyword and agree in intent (a brand-led title on a category page competes only for navigational queries the site already wins) - Every page opens with a short, plain-text answer to the question it exists to answer; the h2s are the questions people actually ask - Open Graph and Twitter Card tags with a 1200x630 image - JSON-LD: Organization and WebSite once in a root `@graph` with stable `@id`s, BreadcrumbList on inner pages, then Article, Product, ProfilePage, or LocalBusiness where the content type matches. Define an entity once and reference it by `@id` - One h1, logical h2-h6, descriptive alt text, internal links between related pages - Core Web Vitals in target at the p75 of CrUX field data: LCP 2.5 s, INP 200 ms, CLS 0.1 (INP replaced FID in March 2024; a guide still naming FID is stale)
## Redirects and indexing policy
Load `references/indexing-policy.md` when routes move, duplicates need consolidation, or page indexing policy changes. Verify behavior against the installed Next.js version and served responses.
## AI crawlers and answer engines
Google needs no special files: AI Overviews and AI Mode run on Googlebot and core ranking, and `nosnippet` or `max-snippet:0` is the only opt-out (it removes the normal snippet too). Everything else is a robots decision per crawler class: search and citation bots (`OAI-SearchBot`, `Claude-SearchBot`, `PerplexityBot`) put a site in answers; training bots (`GPTBot`, `ClaudeBot`, `CCBot`) do not; `Google-Extended` and `Applebot-Extended` are usage tokens with no crawler behind them. `llms.txt` costs one route and earns almost nothing measurable. The full table, `robots.ts` rules, Content-Signal, and the Markdown-alternate patterns are in `references/answer-engines.md`.
## Programmatic SEO
For pages generated at scale, load `references/indexing-policy.md`. Require demand evidence and unique page value before indexing a new pattern.
## Audit triage order
1. Crawl and index: robots, sitemap, stray `noindex`, canonicals, redirect chains, soft 404s 2. Technical: HTTPS, Core Web Vitals field data, mobile and desktop parity, AI-crawler access through the CDN 3. On-page: title and H1 uniqueness and non-brand lead, extractable answer, internal links, thin pages 4. Orphans: indexable pages with no internal link or sitemap entry; give them a crawl path or `noindex` and drop them. A sitewide footer link is not a crawl path on a low-authority domain: Google discounts footer boilerplate, and a section linked only from the footer can sit at "URL is unknown to Google" for months while nav-linked pages beside it are crawled daily
Report in the same order: what blocks indexation first, then on-page and schema gaps, then the single next fix. Twenty equal-weight findings get none of them done. Report length follows what was found, not the section list. Treat third-party audit tools as leads, not findings: several flag Next.js output falsely (a missing `<meta name="title">` when `<title>` is present, "duplicate" `theme-color` tags that are light and dark variants, repeated `article:tag`), and at least one agent-skill auditor silently skips modules unless given an explicit module list and passes a `FAQPage` whose answers never render. Verify each lead against the served HTML before it goes in the report.
## Gotchas
- Under `cacheComponents: true` (the `scaffold-nextjs` default) the `dynamic`, `dynamicParams`, `revalidate`, and `fetchCache` segment configs are build errors: `export const revalidate` on `app/sitemap.ts`, `dynamic = 'force-static'` on a `robots.txt/route.ts` handler, `fetchCache` anywhere (`runtime`, `maxDuration`, `instant`, and `prefetch` remain valid). Move the content fetch into a separate `'use cache'` helper with `cacheLife('hours')` and `cacheTag`, called from the page or `GET` (the directive cannot sit on the `GET` export itself), and `revalidateTag(tag, 'max')` from the publish webhook. Revalidation does not purge a CDN in front of the app; purge it in the same webhook. - `generateSitemaps()` writes `/product/sitemap/0.xml`, `/product/sitemap/1.xml`, and no index file. List each generated file in `robots.ts` (`sitemap` takes an array) or hand-write the index at `app/sitemap.xml/route.ts`; otherwise Google sees only the ones it stumbles on. - `lastModified: new Date()` on every sitemap row marks the whole site as changed on every deploy; Google then ignores `lastmod` sitewide. `priority` and `changeFrequency` are ignored outright, so emitting them buys nothing and clutters the diff. - No `Host:` line in `robots.txt`. Yandex dropped the directive in 2018 in favour of a 301 to the preferred host, which `next.config.ts` already serves, and auditors flag the leftover line as an unknown directive. Leave `host` out of the `robots.ts` return value. - Next.js replaces object-valued metadata (`openGraph`, `twitter`, `robots`, `alternates`) wholesale when a child segment declares the key; it does not deep-merge. A page that adds `openGraph: { title }` loses the inherited `siteName`, `images`, and `locale`, and `images: undefined` counts as a declaration. When you add one of these blocks to a route, every field the parent supplied becomes yours to restate. Scalars (`title`, `description`, `authors`, `creator`) merge normally. - `title.template` applies to `<title>` only. `og:title` resolves against `openGraph.title.template`, a separate mechanism, so stripping a hand-rolled suffix from a page title silently strips the product name from the share card. Set both templates in the layout, or neither. A bare string `title` in a nested layout also resets the parent template to null for that subtree; return `{ default, template }` instead. - Never set `openGraph.url` in a root layout. It is not per-page, every route inherits it, and every share collapses onto the home URL. A child cannot fix it without declaring `openGraph` and losing the rest of the block. Absent beats wrong: consumers fall back to the URL they fetched, and `alternates.canonical` is already per-page. - `middleware.ts` is deprecated in Next.js 16. New request-time logic (slug checks, CSP nonces, `Accept` negotiation) goes in `proxy.ts` with an exported `proxy` function; `npx @next/codemod@canary middleware-to-proxy .` moves an existing file. Proxy is Node.js only; `runtime` is not a valid export there. - `next.config.ts` redirects match in array order and `:path*` swallows everything beneath it, so a specific source placed after a catch-all is dead code, and a bare `/old` must sit above `/old/:path*` or it lands on `/new/`. Vercel caps the list at 1,024 rules; past that, move the map into `proxy.ts`. - Next owns the `Vary` header on App Router HTML responses and replaces it with its RSC list (`rsc, next-router-state-tree, ...`). A `Vary: Accept` set in `proxy.ts` on `NextResponse.next()`, or in `headers()`, never reaches the client. It survives only on a `Response` you construct yourself, so content-negotiated Markdown must be returned directly, not rewritten to. - `notFound()` after a Suspense boundary or `loading.tsx` has flushed returns 200 with a `noindex` meta, not 404. Without Cache Components, call it before the first suspending `await`; with Cache Components the docs are explicit that every dynamic route streams a static shell first, so the existence check moves to `proxy.ts`. Analytics and uptime monitors otherwise see a health
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for optimise-seo, ready for a manual X post.
optimise-seo: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and c... 104 stars https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x
Listing + install path for optimise-seo: https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x Install: npx skills add mblode/agent-skills --skill optimise-seo
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to mblode but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo/audit)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)mblode
@mblode
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "optimise-seo" agent skill from https://github.com/mblode/agent-skills/tree/main/skills/optimise-seo. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"mblode-optimise-seo","task":"Install optimise-seo","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add mblode/agent-skills --skill optimise-seo
Maintenance
fresh
1d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
104
67/100 Quality · 73/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
104 GitHub stars
Repo activity
104 stars, 10 forks
Maintenance
1d since push
License
MIT
Install
npx skills add mblode/agent-skills --skill optimise-seo
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add mblode/agent-skills --skill optimise-seoDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
This skill should not be selected by an agent without explicit human security review.
Do not auto-install. Inspect the source, dependencies, and permission surface first.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/mblode-optimise-seo/install
Agent should check
Copy prompt
Task: Use optimise-seo in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20optimise-seo%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/mblode-optimise-seo/install
Install command: npx skills add mblode/agent-skills --skill optimise-seo
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/mblode-optimise-seo/install
LLM text format
/api/skills/mblode-optimise-seo/install?format=text
Find alternatives
/api/skills/search?q=optimise-seo&limit=3
Agent prompt
Use optimise-seo for this task. Review https://www.openagentskill.com/api/skills/mblode-optimise-seo/install, then install with: npx skills add mblode/agent-skills --skill optimise-seoRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/mblode-optimise-seo
LLM text
/api/registry/manifest/mblode-optimise-seo?format=text
Install alias
/api/registry/install/mblode-optimise-seo
Recommend
/api/registry/recommend?task=Use%20optimise-seo%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Local desktop
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO104 GitHub stars
Stars/forks activity
CHECK104 stars, 10 forks; issue activity unavailable in current metadata
Recent maintenance
PASS1d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Collect structured data
I need my agent to scrape websites and extract structured data from pages.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: optimise-seo description: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and crawler policy with served-page evidence. Use when asked to "fix SEO", "add a sitemap", "fix soft 404s", or "add llms.txt". For demand research, briefs, or Search Console monitoring use seo-program. ---
# Optimise SEO
- **IS:** crawlability, metadata, structured data, canonicals, redirects, status codes, hreflang, AI-crawler policy and extractable page structure, Core Web Vitals, programmatic SEO, security and privacy headers, and error-page behaviour, implemented in a Next.js App Router codebase. - **IS NOT:** visual redesign, layout, or page-level UI quality (`ui-design` Direction, Build, and Audit modes), demand research, briefs, question maps, or Search Console monitoring (`seo-program`), tenant routing for `robots.txt` and `sitemap.xml` (`multi-tenant-architecture`), or writing the article (external `ghostwriter`).
Allowed surface: `metadata` and `generateMetadata`, JSON-LD, semantic HTML, internal links, alt text, `app/sitemap.ts`, `app/robots.ts`, `app/feed.xml/route.ts`, `app/llms.txt/route.ts`, `proxy.ts`, `next.config.ts` redirects and headers, error pages, and performance work. Component styling and layout stay as they are; when a fix needs a layout change, name it as a handoff to `ui-design`.
Before writing code, read the matching guide in `node_modules/next/dist/docs/` (resolved from the app directory; in a monorepo the `next` package is not visible from the repo root). The bundled docs match the installed version; the notes in `references/nextjs-implementation.md` were checked against 16.3 and say where behaviour changed.
## References
| File | Read when | |---|---| | [references/indexing-policy.md](references/indexing-policy.md) | Redirects, duplicate URLs, index decisions, or pages generated at scale | | [references/nextjs-implementation.md](references/nextjs-implementation.md) | Before writing code in steps 2-4: metadata, sitemap and robots, redirects, indexing, streaming 404s, JSON-LD, OG images, CSP | | [references/answer-engines.md](references/answer-engines.md) | The task touches AI crawlers, `robots.ts` rules for GPTBot or ClaudeBot, `llms.txt`, Content-Signal, or "why are we not cited" | | [references/internationalisation.md](references/internationalisation.md) | The site has more than one locale | | [references/technical-hardening.md](references/technical-hardening.md) | Headers, cookies, consent, GPC, `security.txt`, or maintenance and error-status tasks | | [references/validation-evidence.md](references/validation-evidence.md) | Step 5: served-page commands and evidence expectations | | [references/seo-checklist.md](references/seo-checklist.md) | Step 5: copy into the report and mark each line with evidence |
## Workflow
Copy and track this checklist:
```text 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 and structured data - [ ] Step 4: Improve semantics, extractable answers, internal links, and Core Web Vitals - [ ] Step 5: Validate with references/seo-checklist.md and report evidence ```
Step 1 is a table: route, index or noindex, canonical, reason. Every later step reads from it, and a route with no row gets no work.
## Must-have on every site
- `app/sitemap.ts` lists every indexable URL with `lastModified` derived from content; `app/robots.ts` names it - One canonical per page, one host, one casing, one trailing-slash policy, set through `alternates.canonical` with `metadataBase` in the root layout. Next.js enforces the slash policy itself: by default it 308s `/about/` to `/about`, and `trailingSlash: true` inverts that (files with extensions and `.well-known/` paths are exempt either way) - Preserve the property's existing ownership verification. Use `metadata.verification` only for a supplied token and the chosen verification method; DNS verification needs no duplicate meta tag - Root layout `robots` lifts Google's default preview caps: `googleBot: { 'max-snippet': -1, 'max-image-preview': 'large', 'max-video-preview': -1 }`. Without them Google truncates the snippet and the image preview, and the snippet cap is what AI surfaces read against when deciding how much of a page they may quote - `authors` and `creator` set explicitly in the root layout, so person-level attribution does not live only in footer HTML and JSON-LD - Unique title and description per page; title and H1 lead with the non-brand primary keyword and agree in intent (a brand-led title on a category page competes only for navigational queries the site already wins) - Every page opens with a short, plain-text answer to the question it exists to answer; the h2s are the questions people actually ask - Open Graph and Twitter Card tags with a 1200x630 image - JSON-LD: Organization and WebSite once in a root `@graph` with stable `@id`s, BreadcrumbList on inner pages, then Article, Product, ProfilePage, or LocalBusiness where the content type matches. Define an entity once and reference it by `@id` - One h1, logical h2-h6, descriptive alt text, internal links between related pages - Core Web Vitals in target at the p75 of CrUX field data: LCP 2.5 s, INP 200 ms, CLS 0.1 (INP replaced FID in March 2024; a guide still naming FID is stale)
## Redirects and indexing policy
Load `references/indexing-policy.md` when routes move, duplicates need consolidation, or page indexing policy changes. Verify behavior against the installed Next.js version and served responses.
## AI crawlers and answer engines
Google needs no special files: AI Overviews and AI Mode run on Googlebot and core ranking, and `nosnippet` or `max-snippet:0` is the only opt-out (it removes the normal snippet too). Everything else is a robots decision per crawler class: search and citation bots (`OAI-SearchBot`, `Claude-SearchBot`, `PerplexityBot`) put a site in answers; training bots (`GPTBot`, `ClaudeBot`, `CCBot`) do not; `Google-Extended` and `Applebot-Extended` are usage tokens with no crawler behind them. `llms.txt` costs one route and earns almost nothing measurable. The full table, `robots.ts` rules, Content-Signal, and the Markdown-alternate patterns are in `references/answer-engines.md`.
## Programmatic SEO
For pages generated at scale, load `references/indexing-policy.md`. Require demand evidence and unique page value before indexing a new pattern.
## Audit triage order
1. Crawl and index: robots, sitemap, stray `noindex`, canonicals, redirect chains, soft 404s 2. Technical: HTTPS, Core Web Vitals field data, mobile and desktop parity, AI-crawler access through the CDN 3. On-page: title and H1 uniqueness and non-brand lead, extractable answer, internal links, thin pages 4. Orphans: indexable pages with no internal link or sitemap entry; give them a crawl path or `noindex` and drop them. A sitewide footer link is not a crawl path on a low-authority domain: Google discounts footer boilerplate, and a section linked only from the footer can sit at "URL is unknown to Google" for months while nav-linked pages beside it are crawled daily
Report in the same order: what blocks indexation first, then on-page and schema gaps, then the single next fix. Twenty equal-weight findings get none of them done. Report length follows what was found, not the section list. Treat third-party audit tools as leads, not findings: several flag Next.js output falsely (a missing `<meta name="title">` when `<title>` is present, "duplicate" `theme-color` tags that are light and dark variants, repeated `article:tag`), and at least one agent-skill auditor silently skips modules unless given an explicit module list and passes a `FAQPage` whose answers never render. Verify each lead against the served HTML before it goes in the report.
## Gotchas
- Under `cacheComponents: true` (the `scaffold-nextjs` default) the `dynamic`, `dynamicParams`, `revalidate`, and `fetchCache` segment configs are build errors: `export const revalidate` on `app/sitemap.ts`, `dynamic = 'force-static'` on a `robots.txt/route.ts` handler, `fetchCache` anywhere (`runtime`, `maxDuration`, `instant`, and `prefetch` remain valid). Move the content fetch into a separate `'use cache'` helper with `cacheLife('hours')` and `cacheTag`, called from the page or `GET` (the directive cannot sit on the `GET` export itself), and `revalidateTag(tag, 'max')` from the publish webhook. Revalidation does not purge a CDN in front of the app; purge it in the same webhook. - `generateSitemaps()` writes `/product/sitemap/0.xml`, `/product/sitemap/1.xml`, and no index file. List each generated file in `robots.ts` (`sitemap` takes an array) or hand-write the index at `app/sitemap.xml/route.ts`; otherwise Google sees only the ones it stumbles on. - `lastModified: new Date()` on every sitemap row marks the whole site as changed on every deploy; Google then ignores `lastmod` sitewide. `priority` and `changeFrequency` are ignored outright, so emitting them buys nothing and clutters the diff. - No `Host:` line in `robots.txt`. Yandex dropped the directive in 2018 in favour of a 301 to the preferred host, which `next.config.ts` already serves, and auditors flag the leftover line as an unknown directive. Leave `host` out of the `robots.ts` return value. - Next.js replaces object-valued metadata (`openGraph`, `twitter`, `robots`, `alternates`) wholesale when a child segment declares the key; it does not deep-merge. A page that adds `openGraph: { title }` loses the inherited `siteName`, `images`, and `locale`, and `images: undefined` counts as a declaration. When you add one of these blocks to a route, every field the parent supplied becomes yours to restate. Scalars (`title`, `description`, `authors`, `creator`) merge normally. - `title.template` applies to `<title>` only. `og:title` resolves against `openGraph.title.template`, a separate mechanism, so stripping a hand-rolled suffix from a page title silently strips the product name from the share card. Set both templates in the layout, or neither. A bare string `title` in a nested layout also resets the parent template to null for that subtree; return `{ default, template }` instead. - Never set `openGraph.url` in a root layout. It is not per-page, every route inherits it, and every share collapses onto the home URL. A child cannot fix it without declaring `openGraph` and losing the rest of the block. Absent beats wrong: consumers fall back to the URL they fetched, and `alternates.canonical` is already per-page. - `middleware.ts` is deprecated in Next.js 16. New request-time logic (slug checks, CSP nonces, `Accept` negotiation) goes in `proxy.ts` with an exported `proxy` function; `npx @next/codemod@canary middleware-to-proxy .` moves an existing file. Proxy is Node.js only; `runtime` is not a valid export there. - `next.config.ts` redirects match in array order and `:path*` swallows everything beneath it, so a specific source placed after a catch-all is dead code, and a bare `/old` must sit above `/old/:path*` or it lands on `/new/`. Vercel caps the list at 1,024 rules; past that, move the map into `proxy.ts`. - Next owns the `Vary` header on App Router HTML responses and replaces it with its RSC list (`rsc, next-router-state-tree, ...`). A `Vary: Accept` set in `proxy.ts` on `NextResponse.next()`, or in `headers()`, never reaches the client. It survives only on a `Response` you construct yourself, so content-negotiated Markdown must be returned directly, not rewritten to. - `notFound()` after a Suspense boundary or `loading.tsx` has flushed returns 200 with a `noindex` meta, not 404. Without Cache Components, call it before the first suspending `await`; with Cache Components the docs are explicit that every dynamic route streams a static shell first, so the existence check moves to `proxy.ts`. Analytics and uptime monitors otherwise see a health
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for optimise-seo, ready for a manual X post.
optimise-seo: Implements Next.js crawlability, metadata, canonicals, status codes, JSON-LD, hreflang, and c... 104 stars https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x
Listing + install path for optimise-seo: https://www.openagentskill.com/skills/mblode-optimise-seo?ref=x Install: npx skills add mblode/agent-skills --skill optimise-seo
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to mblode but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/mblode-optimise-seo/audit)
[](https://www.openagentskill.com/skills/mblode-optimise-seo?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)mblode
@mblode
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsPermission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness