From kostja94-marketing-skills-5
Generates compliant XML sitemaps from project pages, audits lastmod accuracy, optimizes changefreq/priority, handles indexes, and integrates with robots.txt for SEO URL discovery.
npx claudepluginhub joshuarweaver/cascade-data-analytics --plugin kostja94-marketing-skills-5This skill uses the workspace's default tool permissions.
Guides sitemap creation, auditing, and optimization for search engine discovery.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
Guides sitemap creation, auditing, and optimization for search engine discovery.
When invoking: On first use, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On subsequent use or when the user asks to skip, go directly to the main output.
Generate an XML Sitemap that complies with the sitemaps.org protocol from the project's page list, and declare it in robots.txt.
Check for project context first: If .claude/project-context.md or .cursor/project-context.md exists, read it for site URL and page structure.
Identify:
https://example.com)| Item | Spec |
|---|---|
| Single sitemap limit | 50,000 URLs, 50MB (uncompressed) |
| Sitemap index | When exceeding limit, split and have main index reference sub-sitemaps |
| Encoding | UTF-8 |
| URL format | Full URL, same host, include https:// |
| Required tags | <loc> |
| Optional tags | <lastmod>, <changefreq>, <priority> |
| Field | Description | Recommendation |
|---|---|---|
| url | Full URL | https://example.com/path |
| lastModified | Page last modified time | Use page metadata, ISO 8601; use YYYY-MM-DD or omit when no data |
| changeFrequency | Update frequency | Home daily, list pages weekly, content pages monthly |
| priority | Relative importance | Home 1.0, aggregate pages 0.9, content pages 0.7–0.8, others 0.5–0.6 |
YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS+TZD), e.g. 2025-01-15, 2025-01-15T14:30:00+08:00.new Date() for lastmod—causes all URLs to share the same timestamp; search engines may ignore.always, hourly, daily, weekly, monthly, yearly, never./sitemap.xml directly./sitemap/posts.xml, /sitemap/pages.xml, /sitemap/zh.xml, /sitemap/en.xml./sitemap.xml or /sitemap-index.xml, each entry as <sitemap><loc>...</loc></sitemap>./sitemap/zh.xml, /sitemap/en.xml./sitemap/zh-posts.xml, /sitemap/en-posts.xml.For multilingual sites, add xhtml:link hreflang alternates inside each <url> entry. Recommended for large sites (100+ multilingual pages); centralizes hreflang management.
Rules:
x-default pointing to default locale.xmlns:xhtml="http://www.w3.org/1999/xhtml" namespace.<loc> typically uses default-locale (clean) URL; x-default points there too.<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/page</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/page" />
<xhtml:link rel="alternate" hreflang="zh" href="https://example.com/zh/page" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</url>
</urlset>
List all language sitemaps in sitemap index; include in robots.txt.
| Tech Stack | Implementation |
|---|---|
| Next.js App Router | app/sitemap.ts export MetadataRoute.Sitemap or generateSitemaps |
| Next.js Pages Router | pages/sitemap.xml.ts or getServerSideProps return XML |
| Astro | src/pages/sitemap-index.xml.ts or @astrojs/sitemap |
| Vite / Static build | Build script generates public/sitemap.xml |
| Other | Generate static /sitemap.xml or return dynamically via API |
'/((?!api|_next|sitemap|sitemap-index|.*\\..*).*)'.//zh, /en)/api/*, /admin/*, /_next/*Create a config (e.g., site-pages-config.ts) that exports:
modifiedDate per page for accurate lastmodgetAllPageUrls(baseUrl) for sitemap and IndexNowWhy: Sitemap, IndexNow, and feed can all import from the same config—no duplicate URL maintenance. IndexNow should use the same URL list; avoid separate hardcoded lists.
Add to robots.txt:
Sitemap: https://example.com/sitemap.xml
With multiple sitemaps, only declare the main index.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2025-01-15</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/page</loc>
<lastmod>2025-01-10</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap/pages.xml</loc>
<lastmod>2025-01-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap/posts.xml</loc>
<lastmod>2025-01-14</lastmod>
</sitemap>
</sitemapindex>
| Issue | Cause / Fix |
|---|---|
| Sitemap 404 | Build failure, wrong path, incorrect export; check routes and deployment |
| Missing pages | URLs not in data source, filtered or excluded |
| lastmod anomaly | Avoid new Date(); use modifiedDate from page metadata |
| Google not indexing | Submit sitemap in GSC; check Coverage (google-search-console) and robots |
| EN/ZH URL mismatch | Use unified data source; share same list when generating by locale |