xml-sitemap

安装量: 151
排名: #5702

安装

npx skills add https://github.com/kostja94/marketing-skills --skill xml-sitemap
SEO Technical: Sitemap
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.
Scope (Technical SEO)
Sitemap
Create XML sitemap; submit to Google Search Console
URL discovery
Help search engines find pages; especially important for large sites or poor internal linking
Task
Generate an XML Sitemap that complies with the sitemaps.org protocol from the project's page list, and declare it in robots.txt.
Initial Assessment
Check for product marketing context first:
If
.claude/product-marketing-context.md
or
.cursor/product-marketing-context.md
exists, read it for site URL and page structure.
Identify:
Site URL
Base domain (e.g.,
https://example.com
)
URL count
Total indexable pages (single sitemap vs. sitemap index)
Data source
Static config, CMS, file system, or hybrid
1. Protocol Essentials
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
Optional tags
,
,
2. Field Requirements
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
lastmod (Critical)
Must be accurate
Reflect actual page modification time, not sitemap generation time. Google requires verifiability; Bing reports ~18% of sitemaps ignored due to lastmod errors.
Format
W3C Datetime (
YYYY-MM-DD
or
YYYY-MM-DDTHH:MM:SS+TZD
), e.g.
2025-01-15
,
2025-01-15T14:30:00+08:00
.
Avoid
Using
new Date()
for lastmod—causes all URLs to share the same timestamp; search engines may ignore.
Apply when
Content updates, structured data changes, or important link changes.
changefreq / priority
changefreq
Hints only; does not directly determine crawl frequency. Values:
always
,
hourly
,
daily
,
weekly
,
monthly
,
yearly
,
never
.
priority
0.0–1.0; does not affect ranking ; set higher for important pages; avoid identical values for all. 3. Architecture & Split Single Sitemap When URLs >50,000, generate /sitemap.xml directly. Sitemap Index (Multiple Sub-sitemaps) When exceeding limit, split by type or language; main index references sub-sitemaps. Example splits: /sitemap/posts.xml , /sitemap/pages.xml , /sitemap/zh.xml , /sitemap/en.xml . Main index outputs /sitemap.xml or /sitemap-index.xml , each entry as ... . Multilingual Sites Split by locale: /sitemap/zh.xml , /sitemap/en.xml . Or by content type + language: /sitemap/zh-posts.xml , /sitemap/en-posts.xml . Multi-Language Sitemap (hreflang in Sitemap) For multilingual sites, add xhtml:link hreflang alternates inside each entry. Recommended for large sites (100+ multilingual pages); centralizes hreflang management. Rules : Every language version must link to ALL others, including itself (self-reference). Include x-default pointing to default locale. Use xmlns:xhtml="http://www.w3.org/1999/xhtml" namespace. typically uses default-locale (clean) URL; x-default points there too.
<
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.
4. Implementation
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
Route Exclusion
If the project has i18n / middleware redirects, exclude sitemap paths to avoid redirect.
Example (Next.js matcher):
'/((?!api|_next|sitemap|sitemap-index|.\..).*)'
.
5. Page Scope
Include
Home:
/
Locale/region home pages (e.g.
/zh
,
/en
)
All indexable content pages, list pages, category pages
Exclude
/api/*
,
/admin/*
,
/_next/*
Static assets (images, JS, CSS, etc.). For image discovery, use
image sitemap
extension—see
image-optimization
Login, admin, drafts, and other pages not intended for indexing
6. Data Source & Maintenance (Single Source of Truth)
Single source of truth
Read URL list from config, CMS, or metadata; avoid hardcoding in sitemap.
Multiple page types
Tools, blog, marketing pages can be merged into one array for unified generation.
New pages
Add only to data source; sitemap updates automatically; avoid maintaining multiple places.
Central Config (Recommended)
Create a config (e.g.,
site-pages-config.ts
) that exports:
Page slugs/paths by section (tools, blog, marketing, etc.)
Optional:
modifiedDate
per page for accurate lastmod
Function:
getAllPageUrls(baseUrl)
for sitemap and IndexNow
Why
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. 7. robots.txt Add to robots.txt: Sitemap: https://example.com/sitemap.xml With multiple sitemaps, only declare the main index. 8. Output Format Single Sitemap Example

< 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

Sitemap Index Example

< 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

  1. Common Issues 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 References sitemaps.org Google Sitemap
返回排行榜