2025 SEO best practices for Next.js including Core Web Vitals (INP replaces FID), E-E-A-T signals, Schema markup, AI content guidelines, and technical SEO. Use when optimizing pages for search engines, implementing metadata, adding structured data, or improving page speed.
View on GitHubvanman2024/ai-dev-marketplace
nextjs-frontend
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/vanman2024/ai-dev-marketplace/blob/main/plugins/nextjs-frontend/skills/seo-2025-patterns/SKILL.md -a claude-code --skill seo-2025-patternsInstallation paths:
.claude/skills/seo-2025-patterns/# SEO 2025 Patterns
**Purpose:** Implement 2025 SEO best practices for Next.js applications to maximize search visibility and organic traffic.
**Activation Triggers:**
- Optimizing pages for search engines
- Implementing metadata and Open Graph
- Adding Schema.org structured data
- Improving Core Web Vitals
- E-E-A-T signal implementation
- Sitemap and robots.txt setup
- Meta description optimization
**Key Resources:**
- `scripts/seo-audit.sh` - Comprehensive SEO audit script
- `scripts/validate-schema.sh` - Validate JSON-LD structured data
- `templates/metadata-patterns.tsx` - Next.js Metadata API patterns
- `templates/schema-components.tsx` - JSON-LD schema components
- `examples/complete-seo-setup.md` - Full SEO implementation example
## 2025 SEO Landscape
### Key Changes from 2024
1. **INP Replaces FID** - Interaction to Next Paint is now a Core Web Vital
2. **AI Content Guidelines** - Google rewards helpful AI content with human oversight
3. **E-E-A-T Enhanced** - "Experience" added as first factor
4. **Passage Ranking** - Google indexes specific passages
5. **Video SEO** - Video snippets dominate SERPs
6. **Zero-Click Optimization** - Featured snippets and AI Overviews
### Core Web Vitals Targets (2025)
| Metric | Target | What It Measures |
|--------|--------|------------------|
| LCP | < 2.5s | Largest Contentful Paint |
| INP | < 200ms | Interaction to Next Paint |
| CLS | < 0.1 | Cumulative Layout Shift |
## Next.js Metadata API
### Basic Metadata Configuration
```typescript
// app/layout.tsx
import type { Metadata } from 'next'
export const metadata: Metadata = {
metadataBase: new URL('https://example.com'),
title: {
default: 'Site Name - Main Tagline',
template: '%s | Site Name',
},
description: 'Your site description for search engines (150-160 characters)',
keywords: ['keyword1', 'keyword2', 'keyword3'],
authors: [{ name: 'Author Name', url: 'https://author.com' }],
creator: 'Creator Name',
publisher: 'Publisher Name