# 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 |