Documentation

Sitemaps

Generate XML sitemaps dynamically.

Sitemaps

Set up nextjs-seo-manager to serve dynamic sitemaps managed from your dashboard.

Pages Router

  1. Create a sitemaps folder inside pages.
  2. Create pages/sitemaps/[pid].js.
  3. Export the SitemapHelper component:
// pages/sitemaps/[pid].js
import SEOInit from "nextjs-seo-manager/init";
import SitemapHelper from "nextjs-seo-manager/sitemapshelper";

SEOInit({
  projectId: process.env.SEO_MANAGER_PROJECT_ID,
  secretKey: process.env.SEO_MANAGER_SECRET_KEY,
});

export default SitemapHelper;

App Router

For the App Router, use the helper functions from nextjs-seo-manager/sitemapbasichelper to create a route handler.

  1. Create app/sitemap.xml/route.ts (or app/sitemaps/[pid]/route.ts if you need multiple sitemaps).
  2. Export a GET handler:
// app/sitemap.xml/route.ts
import { NextRequest, NextResponse } from "next/server";
import SEOInit from "nextjs-seo-manager/init";
import {
  generateSitemapXml,
  createFallbackSitemapXml,
  extractRequestDataFromRequest,
} from "nextjs-seo-manager/sitemapbasichelper";

SEOInit({
  projectId: process.env.SEO_MANAGER_PROJECT_ID,
  secretKey: process.env.SEO_MANAGER_SECRET_KEY,
});

export async function GET(request: NextRequest) {
  try {
    const requestData = extractRequestDataFromRequest(request);
    const sitemapXml = await generateSitemapXml(requestData);
    return new NextResponse(sitemapXml, {
      headers: { "Content-Type": "text/xml" },
    });
  } catch (error) {
    const origin = new URL(request.url).origin;
    const fallback = createFallbackSitemapXml(origin);
    return new NextResponse(fallback, {
      headers: { "Content-Type": "text/xml" },
    });
  }
}

Helper Functions

  • generateSitemapXml(requestData) — calls the SEO Manager API and returns sitemap XML as a string.
  • createFallbackSitemapXml(origin) — returns a minimal sitemap XML with just the homepage, useful as an error fallback.
  • extractRequestDataFromRequest(request) — extracts the pathname and headers from the Next.js request object.

To configure sitemap settings (max size, folder path), visit your dashboard.

Explore

More documentation

Getting Started

Set up nextjs-seo-manager for your Next.js project.