You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用next-sitemap在Next.js应用中添加动态server-sitemap.xml

借助next-sitemap在Next.js中实现动态站点地图配置

前置准备

  • 首先安装next-sitemap依赖:
npm install next-sitemap
# 或
yarn add next-sitemap

动态站点地图页面编写

你需要在pages目录下新建server-sitemap.xml.tsx文件,你的现有代码存在两处语法错误,修正后的完整代码如下:

import { GetServerSideProps } from "next"
import { getServerSideSitemap, ISitemapField } from "next-sitemap"
const { all_product_get }  = require("../../src/api/guest")

// 修正了GetServerSideProps类型的声明位置
export const getServerSideProps: GetServerSideProps = async (ctx) => {
  let data = [] 
  await all_product_get().then(res => {
    // 修正了变量赋值语法,将:改为=
    data = res.data.data
  })
  const fields: ISitemapField[] = data.map(item => ({
    loc: `https://sivanland.com/product/detail/${item._id}`,
    lastmod: new Date().toISOString(),
    // 可选配置:更新频率、权重
    changefreq: 'daily',
    priority: 0.8
  }))
  return getServerSideSitemap(ctx, fields);
};

// 此处不需要导出实际组件内容
export default function Site(){}

基础配置补充

在项目根目录新建next-sitemap.config.js配置文件,用来统一管理站点地图相关配置:

/** @type {import('next-sitemap').IConfig} */
module.exports = {
  // 替换为你的站点域名
  siteUrl: 'https://sivanland.com',
  // 自动生成robots.txt
  generateRobotsTxt: true,
  // 将动态生成的server-sitemap加入总站点地图索引和robots.txt
  additionalPaths: async (config) => {
    return [
      {
        loc: `${config.siteUrl}/server-sitemap.xml`,
        lastmod: new Date().toISOString(),
      }
    ]
  },
  // 排除自动生成静态sitemap时收录server-sitemap页面本身
  exclude: ['/server-sitemap.xml'],
  // 可选:配置robots.txt规则
  robotsTxtOptions: {
    policies: [
      {
        userAgent: '*',
        allow: '/',
      },
    ],
    // 显式加入动态sitemap地址
    additionalSitemaps: [
      'https://sivanland.com/server-sitemap.xml',
    ],
  },
}

命令配置

在package.json的scripts中添加自动生成命令,会在项目build完成后自动执行静态站点地图生成:

{
  "scripts": {
    "postbuild": "next-sitemap"
  }
}

效果验证

项目启动后访问/server-sitemap.xml路径即可看到动态生成的产品站点地图,build后生成的根目录sitemap.xml会同时包含静态页面和动态站点地图的索引,搜索引擎抓取时会自动读取所有站点地图内容。

注意:如果你使用的是Next.js 13+ App Router架构,需要替换为Route Handler写法实现动态sitemap,以上配置仅适用于Pages Router架构。

内容的提问来源于stack exchange,提问作者Ali raz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:00