Skip to content

Sitemap.xml 配置与使用指南

💡 前置阅读建议

本文档专注于 Sitemap.xml 的配置规范。如需了解 SEO 基础知识、常用工具或完整优化策略,请先阅读 SEO 核心技术与优化实战。提交方法请参考 robots.txt 配置指南

一、核心要点速览

💡 本文件核心考点

  • Sitemap 作用:帮助搜索引擎发现和索引网站所有重要页面
  • 提交渠道:Google Search Console、百度搜索资源平台、Bing Webmaster
  • 格式要求:XML 标准格式,包含 URL、最后修改时间、更新频率、优先级
  • 自动生成:VitePress/Webpack/其他构建工具可自动生成
  • 大小限制:单个文件不超过 50MB 或 50,000 个 URL,超出需拆分
  • 索引 Sitemap:大型网站可使用 Sitemap 索引文件管理多个子 Sitemap

二、什么是 Sitemap?

基本概念

Sitemap(站点地图) 是一个 XML 文件,列出网站上所有重要页面的 URL,以及关于每个 URL 的附加信息,帮助搜索引擎更智能地抓取网站。

工作原理:

搜索引擎爬虫流程:
1. 访问网站 → 发现 robots.txt 中的 Sitemap 引用
2. 或从 Search Console 获取提交的 Sitemap
3. 解析 XML 文件,提取 URL 列表
4. 根据优先级和更新频率安排抓取计划
5. 索引新发现的页面

主要价值:

价值说明适用场景
发现页面帮助搜索引擎找到所有重要页面新网站、内容深的网站
提供元数据告知最后更新时间、更新频率频繁更新的网站
优化抓取预算优先抓取高优先级页面大型网站、电商网站
多媒体内容提交图片、视频等特殊内容媒体丰富型网站
多语言支持标注 hreflang 关系国际化多语言站点

三、Sitemap XML 格式详解

基础结构

xml
<?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-03-31T10:00:00+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2025-03-30T15:30:00+08:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  
</urlset>

元素说明

元素必需/可选说明示例值
<urlset>必需根元素,包含命名空间声明xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
<url>必需每个 URL 的容器-
<loc>必需页面的完整 URLhttps://example.com/page
<lastmod>可选(强烈推荐)最后修改时间(ISO 8601 格式)2025-03-31T10:00:00+08:00
<changefreq>可选更新频率提示always, hourly, daily, weekly, monthly, yearly, never
<priority>可选相对优先级(0.0-1.0)1.0(首页),0.8(重要页),0.5(普通页)

更新频率参考值

含义适用页面
always总是变化实时数据流、股票行情
hourly每小时更新新闻头条、天气
daily每天更新博客首页、新闻分类页
weekly每周更新大部分内容页面
monthly每月更新关于我们、联系方式
yearly每年更新历史档案、旧文章
never从不更新永久链接、版本归档

四、高级 Sitemap 类型

1. 图片 Sitemap

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  
  <url>
    <loc>https://example.com/product-gallery</loc>
    <image:image>
      <image:loc>https://example.com/images/product-1.jpg</image:loc>
      <image:caption>产品主图 - 展示产品正面</image:caption>
      <image:title>产品 A 主视图</image:title>
      <image:geo_location>北京市朝阳区</image:geo_location>
      <image:license>CC BY-SA 4.0</image:license>
    </image:image>
    <image:image>
      <image:loc>https://example.com/images/product-2.jpg</image:loc>
      <image:caption>产品侧面图</image:caption>
    </image:image>
  </url>
  
</urlset>

图片 Sitemap 最佳实践:

✓ 每个 URL 可包含多个图片(建议不超过 1000 个)
✓ 图片 URL 必须可公开访问
✓ 添加描述性 caption 和 title
✓ 地理位置信息对旅游/房地产网站有价值
✓ 版权信息避免侵权风险

❌ 不要包含缩略图(尺寸过小)
❌ 不要包含装饰性图片
❌ 避免重复提交相同图片

2. 视频 Sitemap

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  
  <url>
    <loc>https://example.com/vue-tutorial-ep1</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbnails/vue-ep1.jpg</video:thumbnail_loc>
      <video:title>Vue.js 入门教程 - 第一集</video:title>
      <video:description>系统学习 Vue.js 的第一课,涵盖安装、第一个应用、数据绑定等基础知识</video:description>
      <video:content_loc>https://example.com/videos/vue-ep1.mp4</video:content_loc>
      <video:player_loc>https://example.com/player/vue-ep1</video:player_loc>
      <video:duration>PT15M30S</video:duration>
      <video:expiration_date>2026-12-31T23:59:59+08:00</video:expiration_date>
      <video:rating>4.8</video:rating>
      <video:view_count>125000</video:view_count>
      <video:publication_date>2025-01-15T10:00:00+08:00</video:publication_date>
      <video:tag>Vue.js</video:tag>
      <video:tag>前端教程</video:tag>
      <video:category>教育</video:category>
      <video:family_friendly>yes</family_friendly>
      <video:restriction relationship="allow">CN US</video:restriction>
      <video:price currency="CNY">0.00</video:price>
      <video:requires_subscription>no</requires_subscription>
      <video:uploader>张三老师</video:uploader>
      <video:live>no</live>
    </video:video>
  </url>
  
</urlset>

视频 Sitemap 关键要素:

元素重要性说明
thumbnail_loc⭐⭐⭐⭐⭐视频缩略图(必须符合 Google 要求)
title⭐⭐⭐⭐⭐视频标题(清晰描述内容)
description⭐⭐⭐⭐⭐详细描述(前 2-3 句最关键)
content_loc / player_loc⭐⭐⭐⭐⭐至少提供一个(二选一)
duration⭐⭐⭐⭐ISO 8601 格式(PT15M30S = 15 分 30 秒)

3. 多语言 Sitemap(带 hreflang)

xml
<?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/zh/</loc>
    <lastmod>2025-03-31T10:00:00+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/"/>
    <xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/"/>
  </url>
  
  <!-- 英文首页 -->
  <url>
    <loc>https://example.com/en/</loc>
    <lastmod>2025-03-31T10:00:00+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="zh" href="https://example.com/zh/"/>
    <xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/"/>
  </url>
  
  <!-- 日文首页 -->
  <url>
    <loc>https://example.com/ja/</loc>
    <lastmod>2025-03-31T10:00:00+09:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="zh" href="https://example.com/zh/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/"/>
  </url>
  
</urlset>

hreflang 规则:

✓ 每个页面必须包含所有语言版本的链接(包括自己)
✓ 双向对应(A 指向 B,B 也必须指向 A)
✓ x-default 指定默认语言(当用户语言不匹配时)
✓ 语言代码使用 ISO 639-1(zh, en, ja)
✓ 地区代码使用 ISO 3166-1(zh-CN, zh-TW, en-US)

4. Sitemap 索引文件(大型网站)

当网站 URL 超过 50,000 个或文件超过 50MB 时,需要拆分为多个 Sitemap 并使用索引文件:

xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  
  <!-- 产品 Sitemap -->
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2025-03-31T10:00:00+08:00</lastmod>
  </sitemap>
  
  <!-- 博客文章 Sitemap -->
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2025-03-30T15:30:00+08:00</lastmod>
  </sitemap>
  
  <!-- 分类页面 Sitemap -->
  <sitemap>
    <loc>https://example.com/sitemap-categories.xml</loc>
    <lastmod>2025-03-29T09:00:00+08:00</lastmod>
  </sitemap>
  
  <!-- 静态页面 Sitemap -->
  <sitemap>
    <loc>https://example.com/sitemap-pages.xml</loc>
    <lastmod>2025-03-28T12:00:00+08:00</lastmod>
  </sitemap>
  
  <!-- 图片 Sitemap -->
  <sitemap>
    <loc>https://example.com/sitemap-images.xml</loc>
    <lastmod>2025-03-31T08:00:00+08:00</lastmod>
  </sitemap>
  
</sitemapindex>

Sitemap 索引结构示例:

网站架构:
└─ sitemap.xml (索引文件)
   ├─ sitemap-products.xml (产品 1-50000)
   ├─ sitemap-products-2.xml (产品 50001-100000)
   ├─ sitemap-blog.xml (博客文章)
   ├─ sitemap-categories.xml (分类页)
   ├─ sitemap-pages.xml (静态页)
   └─ sitemap-images.xml (图片)

五、VitePress 自动生成 Sitemap

方案一:使用 vitepress-plugin-sitemap(推荐)

安装依赖:

bash
pnpm add -D vitepress-plugin-sitemap

配置文件:

typescript
// .vitepress/config.ts
import { defineConfig } from 'vitepress'
import { sitemapPlugin } from 'vitepress-plugin-sitemap'

export default defineConfig({
  // ... 其他配置
  
  // 启用插件
  vitepressPlugin: [
    sitemapPlugin({
      hostname: 'https://vue-docs.cn',
      outFile: 'sitemap.xml',
      exclude: ['/migration/', '/private/'],
      changefreq: 'daily',
      priority: 0.8,
      lastmod: true,
    })
  ],
  
  // 构建配置
  build: {
    // 确保生成后处理
    postBuild: async () => {
      console.log('✅ Sitemap 生成完成')
    }
  }
})

插件选项说明:

选项类型默认值说明
hostnamestring必需网站域名(如 https://example.com
outFilestring'sitemap.xml'输出文件名
excludestring[][]排除的路径(支持通配符)
changefreqstring'monthly'默认更新频率
prioritynumber0.5默认优先级
lastmodbooleantrue是否包含最后修改时间

方案二:自定义脚本生成

对于有特殊需求的场景,可以编写自定义脚本:

typescript
// scripts/generate-sitemap.ts
import fs from 'fs'
import path from 'path'
import { fileURLToPath } from 'url'

const __dirname = path.dirname(fileURLToPath(import.meta.url))
const DOCS_DIR = path.resolve(__dirname, '../docs')
const OUTPUT_FILE = path.resolve(__dirname, '../dist/sitemap.xml')

interface Page {
  url: string
  lastmod: Date
  changefreq: string
  priority: number
}

async function getAllPages(): Promise<Page[]> {
  const pages: Page[] = []
  const hostname = 'https://vue-docs.cn'
  
  // 递归扫描 docs 目录
  function scanDir(dir: string, basePath: string = '') {
    const files = fs.readdirSync(dir)
    
    for (const file of files) {
      if (file.startsWith('.')) continue
      
      const filePath = path.join(dir, file)
      const stat = fs.statSync(filePath)
      
      if (stat.isDirectory()) {
        scanDir(filePath, path.join(basePath, file))
      } else if (file.endsWith('.md')) {
        const fileName = file.replace('.md', '')
        const urlPath = path.join(basePath, fileName === 'index' ? '' : fileName)
          .replace(/\\/g, '/')
        
        // 跳过排除路径
        if (['migration', 'private'].some(ex => urlPath.includes(ex))) {
          continue
        }
        
        const content = fs.readFileSync(filePath, 'utf-8')
        const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/)
        let lastmod = stat.mtime
        
        if (frontmatterMatch) {
          const frontmatter = frontmatterMatch[1]
          const dateMatch = frontmatter.match(/date:\s*(\d{4}-\d{2}-\d{2})/)
          if (dateMatch) {
            lastmod = new Date(dateMatch[1])
          }
        }
        
        // 确定优先级和更新频率
        let priority = 0.5
        let changefreq = 'monthly'
        
        if (urlPath === '') {
          // 首页
          priority = 1.0
          changefreq = 'daily'
        } else if (urlPath.startsWith('guide/')) {
          // 指南类内容
          priority = 0.8
          changefreq = 'weekly'
        } else if (urlPath.startsWith('api/')) {
          // API 文档
          priority = 0.7
          changefreq = 'monthly'
        }
        
        pages.push({
          url: `${hostname}/${urlPath}`,
          lastmod,
          changefreq,
          priority
        })
      }
    }
  }
  
  scanDir(DOCS_DIR)
  return pages
}

function generateSitemapXML(pages: Page[]): string {
  let xml = '<?xml version="1.0" encoding="UTF-8"?>\n'
  xml += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
  
  for (const page of pages) {
    xml += '  <url>\n'
    xml += `    <loc>${page.url}</loc>\n`
    xml += `    <lastmod>${page.lastmod.toISOString()}</lastmod>\n`
    xml += `    <changefreq>${page.changefreq}</changefreq>\n`
    xml += `    <priority>${page.priority.toFixed(1)}</priority>\n`
    xml += '  </url>\n'
  }
  
  xml += '</urlset>'
  return xml
}

async function main() {
  console.log('🚀 开始生成 Sitemap...')
  
  const pages = await getAllPages()
  console.log(`📄 共发现 ${pages.length} 个页面`)
  
  const xml = generateSitemapXML(pages)
  
  // 确保 dist 目录存在
  const distDir = path.dirname(OUTPUT_FILE)
  if (!fs.existsSync(distDir)) {
    fs.mkdirSync(distDir, { recursive: true })
  }
  
  // 写入文件
  fs.writeFileSync(OUTPUT_FILE, xml, 'utf-8')
  console.log(`✅ Sitemap 已生成:${OUTPUT_FILE}`)
  
  // 验证文件大小
  const stats = fs.statSync(OUTPUT_FILE)
  console.log(`📊 文件大小:${(stats.size / 1024).toFixed(2)} KB`)
}

main().catch(console.error)

在 package.json 中添加脚本:

json
{
  "scripts": {
    "docs:build": "vitepress build docs",
    "postbuild": "tsx scripts/generate-sitemap.ts"
  }
}

执行流程:

bash
# 构建完成后自动生成
pnpm docs:build


# 输出:

# 🚀 开始生成 Sitemap...
# 📄 共发现 156 个页面
# ✅ Sitemap 已生成:e:/vue/interview-guide/dist/sitemap.xml
# 📊 文件大小:28.45 KB

方案三:Webpack/Vite 插件

如果使用其他构建工具,可使用现成插件:

Webpack 方案:

bash
pnpm add -D sitemap-webpack-plugin
javascript
// webpack.config.js
const SitemapPlugin = require('sitemap-webpack-plugin').default

module.exports = {
  plugins: [
    new SitemapPlugin({
      base: 'https://example.com',
      paths: [
        '/',
        '/about',
        '/products',
        { path: '/products/:id', pages: [1, 2, 3] },
        '/blog',
      ],
      options: {
        changefreq: 'daily',
        priority: 0.8,
        lastmod: new Date(),
      },
    }),
  ],
}

Vite 方案:

bash
pnpm add -D vite-plugin-sitemap
typescript
// vite.config.ts
import { defineConfig } from 'vite'
import Sitemap from 'vite-plugin-sitemap'

export default defineConfig({
  plugins: [
    Sitemap({
      hostname: 'https://example.com',
      dynamicRoutes: ['posts', 'products'],
      exclude: ['/admin', '/private'],
    }),
  ],
})

六、提交到搜索引擎

Google Search Console

步骤 1:验证网站所有权

txt
方法一:HTML 文件上传
1. 下载验证文件(googlexxxxxxxxxxxx.html)
2. 上传到网站根目录
3. 点击"验证"

方法二:HTML 标签
1. 复制 meta 标签
2. 添加到网站首页 <head>
3. 点击"验证"

方法三:DNS 记录
1. 添加 TXT 记录到域名 DNS
2. 等待生效(几分钟到几小时)
3. 点击"验证"

步骤 2:提交 Sitemap

txt
1. 登录 Search Console
2. 选择对应属性
3. 左侧菜单 → 站点地图
4. 输入 sitemap.xml
5. 点击"提交"

成功标志:
✓ 状态显示"成功"
✓ 显示发现的 URL 数量
✓ 无错误警告

监控指标:

指标含义健康值
已发现网址数Sitemap 中包含的 URL 总数与实际页面数一致
已编入索引被 Google 收录的页面数>80%
错误数无法抓取的 URL0
警告数有问题但不影响索引越少越好

百度搜索资源平台

步骤 1:站长验证

txt
1. 访问 ziyan.baidu.com
2. 添加网站(输入域名)
3. 选择验证方式:
   - HTML 文件验证(推荐)
   - CNAME 验证(需要 DNS 权限)
   - HTML 标签验证
4. 完成验证

步骤 2:提交 Sitemap

txt
方式一:普通提交
1. 进入"数据提交" → "网站提交"
2. 选择"Sitemap 提交"
3. 输入完整 URL:https://example.com/sitemap.xml
4. 点击"提交"

方式二:API 主动推送(推荐)
优点:实时推送,收录更快
实现:调用百度 API 批量推送 URL

curl -H 'Content-Type:text/plain' --data-binary @urls.txt \
"http://data.zz.baidu.com/urls?site=example.com&token=你的 token"

API 推送脚本示例:

txt
#!/bin/bash
# baidu-push.sh

SITE="example.com"
TOKEN="your_token_here"
SITEMAP="sitemap.xml"

# 从 Sitemap 提取 URL
grep -oP '(?<=<loc>)[^<]+' "$SITEMAP" > urls.txt

# 推送给百度
curl -H 'Content-Type:text/plain' \
     --data-binary @urls.txt \
     "http://data.zz.baidu.com/urls?site=$SITE&token=$TOKEN"

echo "✅ 推送完成!"
cat urls.txt | wc -l
echo "个 URL 已提交"

Bing Webmaster Tools

提交流程:

txt
1. 登录 www.bing.com/webmasters
2. 添加并验证网站
3. 左侧菜单 → Sitemaps
4. 点击"Add Sitemap"
5. 输入 URL 并提交

特色功能:

功能说明价值
IndexNow实时推送新 URL加速 Bing 收录
SEO 报告自动检测 SEO 问题免费审计工具
关键词研究Bing 搜索数据补充 Google 数据

七、最佳实践与常见问题

✅ 最佳实践清单

txt
【内容质量】
□ 只包含规范 URL(canonical)
□ 排除 noindex 页面
□ 排除 4xx/5xx 错误页面
□ 定期更新(建议每周)
□ 保持 URL 一致性(HTTP/HTTPS、WWW/非 WWW)

【技术细节】
□ 使用绝对 URL(包含域名)
□ UTF-8 编码
□ 正确的 XML 格式(通过验证)
□ robots.txt 中声明位置
□ 压缩为 .gz 格式(大文件)

【提交策略】
□ 同时提交到三大搜索引擎
□ 使用 IndexNow 实时推送
□ 监控收录率
□ 及时处理错误
□ 定期清理无效 URL

❌ 常见错误

错误后果解决方案
包含重复 URL浪费抓取预算使用 canonical 去重
包含 noindex 页面搜索引擎困惑排除这些页面
URL 格式不一致被视为不同页面统一协议和子域
文件过大未拆分超出限制被忽略使用索引文件拆分
长期不更新失去信任设置定时任务更新
包含死链降低质量评分定期检查 404

常见问题解答

Q1: Sitemap 提交后多久能被收录?

txt
正常情况:
• Google: 几小时到几天
• 百度:1-7 天
• Bing: 1-3 天

影响因素:
✓ 网站权威性(高权威更快)
✓ 更新频率(经常更新更快)
✓ 服务器速度(快速响应更好)
✓ 内容质量(原创内容优先)

加速技巧:
• 使用 API 主动推送
• 社交媒体分享新内容
• 获取外部链接
• 保持规律更新节奏

Q2: Sitemap 和 robots.txt 哪个更重要?

txt
两者互补,缺一不可:

robots.txt:
• 告诉爬虫"什么不能抓"
• 控制爬虫行为
• 节省抓取预算

Sitemap:
• 告诉爬虫"有什么可抓的"
• 帮助发现所有页面
• 提供元数据信息

正确做法:
1. robots.txt 禁止低价值页面
2. Sitemap 包含所有重要页面
3. 两者配合优化索引质量

Q3: 动态生成的页面如何加入 Sitemap?

txt
方案一:数据库驱动
// Node.js 示例
async function generateSitemap() {
  const products = await db.query('SELECT id, updated_at FROM products')
  const urls = products.map(p => ({
    url: `https://example.com/product/${p.id}`,
    lastmod: p.updated_at
  }))
  return generateXML(urls)
}

方案二:CMS 集成
• WordPress: Yoast SEO 插件自动生成
• Strapi: 自定义 endpoint 输出 XML
• Contentful: 使用第三方服务

方案三:定时任务
• 每天凌晨 2 点重新生成
• 删除已下架商品
• 添加新发布文章

Q4: 如何处理分页内容?

txt
错误做法:
❌ 将所有分页都加入 Sitemap
  /articles?page=1
  /articles?page=2
  /articles?page=3
  ...会导致大量重复内容

正确做法:
✓ 仅包含"查看所有"页面
  /articles/all (显示完整列表)

✓ 或使用 rel=next/prev
  <link rel="next" href="/articles?page=2">
  <link rel="prev" href="/articles?page=1">

✓ 或 Canonical 指向第一页
  <link rel="canonical" href="/articles">

八、性能优化

压缩 Sitemap

txt
# 压缩为 Gzip(可减少 70-80% 体积)
gzip -k sitemap.xml
# 生成 sitemap.xml.gz

# 在 robots.txt 中引用压缩版
Sitemap: https://example.com/sitemap.xml.gz

Nginx 配置:

nginx
location ~ \.xml\.gz$ {
    gzip off;
    add_header Content-Encoding gzip;
    add_header Content-Type text/xml;
}

CDN 加速

txt
部署策略:
1. 将 Sitemap 放到 CDN
2. 设置长缓存时间(7 天)
3. 更新时清除缓存

Cloudflare 示例:
✓ 自动缓存静态文件
✓ 全球节点加速
✓ 免费额度够用

增量更新

对于大型网站,全量生成耗时过长,可实现增量更新:

typescript
// 只更新变化的部分
async function updateSitemapIncrementally() {
  const existingSitemap = await loadSitemap()
  const newPages = await getNewPagesSinceLastUpdate()
  const modifiedPages = await getModifiedPagesSinceLastUpdate()
  
  // 添加新页面
  for (const page of newPages) {
    existingSitemap.addUrl(page)
  }
  
  // 更新修改的页面
  for (const page of modifiedPages) {
    existingSitemap.updateUrl(page)
  }
  
  // 保存更新
  await saveSitemap(existingSitemap)
}

九、总结

记忆口诀

txt
Sitemap 使用歌诀:

XML 格式要标准,
UTF-8 编码别忘记。
Loc 元素是必须,
Lastmod 时间加上好!

Changefreq 设频率,
Priority 定优先。
图片视频特殊待,
多语言站 hreflang!

VitePress 用插件,
自动生成省力气。
Search Console 提交,
百度平台也推送!

Robots 里面指路径,
CDN 上加速访问。
定期更新保新鲜,
错误监控及时修!

总结一句话

  • 核心价值: Sitemap = 搜索引擎的地图导航 🗺️
  • 格式规范: XML 标准 + 必填元素 + 可选元数据 = 完整信息 📝
  • 生成方式: 插件自动 + 脚本定制 + 构建集成 = 灵活选择 🛠️
  • 提交渠道: Google + 百度 + Bing = 全覆盖 🌍
  • 维护要点: 定期更新 + 错误监控 + 性能优化 = 持续有效
最近更新