# seo-sitemap
> Generate XML sitemap and configure sitemap generation for frameworks.
Handles static sitemaps, dynamic generation, and robots.txt integration.
- Author: Sacha Roussakis-Notter
- Repository: BuunGroup-Packages/claude-code-assets
- Version: 20260128230247
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/BuunGroup-Packages/claude-code-assets
- Web: https://mule.run/skillshub/@@BuunGroup-Packages/claude-code-assets~seo-sitemap:20260128230247
---
---
name: seo-sitemap
description: |
Generate XML sitemap and configure sitemap generation for frameworks.
Handles static sitemaps, dynamic generation, and robots.txt integration.
argument-hint: "[framework] [base_url]"
hooks:
PostToolUse:
- matcher: "Edit|Write|MultiEdit"
hooks:
- type: command
command: "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/seo/post_sitemap_validate.py"
---
# Sitemap Generation
## Arguments
| Position | Name | Values | Default |
|----------|------|--------|---------|
| $1 | framework | astro, nextjs, vite, tanstack | Auto-detect |
| $2 | base_url | Site URL | https://example.com |
## Usage
```bash
/seo-sitemap astro https://mysite.com
/seo-sitemap nextjs
```
## Framework Implementations
### Astro
Install integration:
```bash
npx astro add sitemap
```
Configure `astro.config.mjs`:
```js
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://mysite.com',
integrations: [sitemap()],
});
```
### Next.js (App Router)
Create `app/sitemap.ts`:
```ts
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://mysite.com'
return [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: 'daily',
priority: 1,
},
{
url: `${baseUrl}/about`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.8,
},
]
}
```
### Vite / Static
Create `public/sitemap.xml`:
```xml
https://mysite.com/
2026-01-22
daily
1.0
https://mysite.com/about
2026-01-22
monthly
0.8
```
### TanStack Start
Create `public/sitemap.xml` or use build script:
```ts
// scripts/generate-sitemap.ts
import { writeFileSync } from 'fs'
const baseUrl = 'https://mysite.com'
const pages = ['/', '/about', '/contact']
const sitemap = `
${pages.map(page => `
${baseUrl}${page}
${new Date().toISOString().split('T')[0]}
`).join('\n')}
`
writeFileSync('public/sitemap.xml', sitemap)
```
## robots.txt Integration
Add sitemap reference:
```txt
Sitemap: https://mysite.com/sitemap.xml
```
## Validation
Sitemap must:
- Be valid XML
- Have `` root with proper namespace
- Include `` for each URL
- Use absolute URLs
- Be referenced in robots.txt
## Error Codes
| Code | Severity | Issue |
|------|----------|-------|
| SITEMAP001 | error | Invalid XML syntax |
| SITEMAP002 | error | Missing urlset namespace |
| SITEMAP003 | error | URL not absolute |
| SITEMAP004 | warning | Missing lastmod |
| SITEMAP005 | warning | Not in robots.txt |