nextjs-seo by laguagu/claude-code-nextjs-skills
npx skills add https://github.com/laguagu/claude-code-nextjs-skills --skill nextjs-seo适用于使用 App Router 的 Next.js 16+ 应用程序的全面 SEO 指南。
版本: 已更新至 Next.js 16.1.3(2026年1月)
对任何 Next.js 项目运行此检查清单:
curl https://your-site.com/robots.txtcurl https://your-site.com/sitemap.xml<title> 和 <meta name="description">application/ld+json广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
import type { Metadata, Viewport } from 'next';
// Viewport (Next.js 14+ 需要单独导出)
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
maximumScale: 5,
userScalable: true,
themeColor: [
{ media: '(prefers-color-scheme: light)', color: '#ffffff' },
{ media: '(prefers-color-scheme: dark)', color: '#0a0a0a' },
],
};
export const metadata: Metadata = {
metadataBase: new URL('https://your-site.com'),
title: {
default: '网站标题 - 主要关键词',
template: '%s | 网站名称',
},
description: '包含关键词的引人注目的描述(150-160 字符)',
keywords: ['keyword1', 'keyword2', 'keyword3'],
openGraph: {
type: 'website',
locale: 'en_US',
url: 'https://your-site.com',
siteName: '网站名称',
title: '网站标题',
description: '用于社交分享的描述',
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: '网站预览' }],
},
twitter: {
card: 'summary_large_image',
title: '网站标题',
description: '用于 Twitter 的描述',
images: ['/og-image.png'],
},
alternates: {
canonical: '/',
},
robots: {
index: true,
follow: true,
},
};
import type { MetadataRoute } from 'next';
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://your-site.com';
return [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 1,
images: [`${baseUrl}/og-image.png`], // Next.js 16 图片站点地图
},
{
url: `${baseUrl}/about`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.8,
},
];
}
import type { MetadataRoute } from 'next';
export default function robots(): MetadataRoute.Robots {
const baseUrl = 'https://your-site.com';
return {
rules: [
{
userAgent: '*',
allow: '/',
disallow: ['/api/', '/_next/', '/admin/'],
},
],
sitemap: `${baseUrl}/sitemap.xml`,
host: baseUrl,
};
}
| 策略 | 适用场景 | SEO 影响 |
|---|---|---|
| SSG (静态生成) | 内容很少变化 | 最佳 - 预渲染 HTML |
| SSR (服务器端渲染) | 每次请求的动态内容 | 很好 - 服务器端渲染 |
| ISR (增量静态再生) | 大型网站,定期更新 | 很好 - 缓存 + 新鲜 |
| CSR (客户端渲染) | 仪表板,认证区域 | 差 - 避免用于 SEO 页面 |
| 指标 | 目标 | 影响 |
|---|---|---|
| LCP (最大内容绘制) | < 2.5秒 | 加载速度 |
| INP (下次绘制交互) | < 200毫秒 | 交互性 |
| CLS (累积布局偏移) | < 0.1 | 视觉稳定性 |
alternates.canonicalexport const metadata: Metadata = {
robots: {
index: false,
follow: false,
},
};
export async function generateMetadata({ params }): Promise<Metadata> {
const product = await getProduct(params.id);
return {
title: product.name,
description: product.description,
};
}
export async function generateMetadata({ params }): Promise<Metadata> {
return {
alternates: {
canonical: `/products/${params.slug}`,
},
};
}
每周安装量
524
代码仓库
GitHub 星标数
15
首次出现
2026年1月26日
安全审计
安装于
opencode489
codex486
gemini-cli479
github-copilot468
cursor449
kimi-cli431
Comprehensive SEO guide for Next.js 16+ applications using App Router.
Version: Updated for Next.js 16.1.3 (January 2026)
Run this checklist for any Next.js project:
curl https://your-site.com/robots.txtcurl https://your-site.com/sitemap.xml<title> and <meta name="description">application/ld+jsonimport type { Metadata, Viewport } from 'next';
// Viewport (separate export required in Next.js 14+)
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
maximumScale: 5,
userScalable: true,
themeColor: [
{ media: '(prefers-color-scheme: light)', color: '#ffffff' },
{ media: '(prefers-color-scheme: dark)', color: '#0a0a0a' },
],
};
export const metadata: Metadata = {
metadataBase: new URL('https://your-site.com'),
title: {
default: 'Site Title - Main Keyword',
template: '%s | Site Name',
},
description: 'Compelling description with keywords (150-160 chars)',
keywords: ['keyword1', 'keyword2', 'keyword3'],
openGraph: {
type: 'website',
locale: 'en_US',
url: 'https://your-site.com',
siteName: 'Site Name',
title: 'Site Title',
description: 'Description for social sharing',
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: 'Site preview' }],
},
twitter: {
card: 'summary_large_image',
title: 'Site Title',
description: 'Description for Twitter',
images: ['/og-image.png'],
},
alternates: {
canonical: '/',
},
robots: {
index: true,
follow: true,
},
};
import type { MetadataRoute } from 'next';
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://your-site.com';
return [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 1,
images: [`${baseUrl}/og-image.png`], // Next.js 16 Image Sitemap
},
{
url: `${baseUrl}/about`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.8,
},
];
}
import type { MetadataRoute } from 'next';
export default function robots(): MetadataRoute.Robots {
const baseUrl = 'https://your-site.com';
return {
rules: [
{
userAgent: '*',
allow: '/',
disallow: ['/api/', '/_next/', '/admin/'],
},
],
sitemap: `${baseUrl}/sitemap.xml`,
host: baseUrl,
};
}
| Strategy | Use When | SEO Impact |
|---|---|---|
| SSG (Static) | Content rarely changes | Best - pre-rendered HTML |
| SSR | Dynamic content per request | Great - server-rendered |
| ISR | Large sites, periodic updates | Great - cached + fresh |
| CSR | Dashboards, authenticated areas | Poor - avoid for SEO pages |
| Metric | Target | Impact |
|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | Loading speed |
| INP (Interaction to Next Paint) | < 200ms | Interactivity |
| CLS (Cumulative Layout Shift) | < 0.1 | Visual stability |
alternates.canonicalexport const metadata: Metadata = {
robots: {
index: false,
follow: false,
},
};
export async function generateMetadata({ params }): Promise<Metadata> {
const product = await getProduct(params.id);
return {
title: product.name,
description: product.description,
};
}
export async function generateMetadata({ params }): Promise<Metadata> {
return {
alternates: {
canonical: `/products/${params.slug}`,
},
};
}
Weekly Installs
524
Repository
GitHub Stars
15
First Seen
Jan 26, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode489
codex486
gemini-cli479
github-copilot468
cursor449
kimi-cli431
Schema标记专家指南:结构化数据实现与SEO优化,提升富媒体搜索结果
27,700 周安装