Creating a Dynamic Sitemap in Next.js: A Step-by-Step Guide

Posted by

How to create a Dynamic Sitemap in Next.js

How to create a Dynamic Sitemap in Next.js

Next.js is a popular React framework that allows for server-side rendering and static site generation, making it perfect for creating dynamic sitemaps.

Step 1: Install the necessary packages

Start by installing the necessary packages for generating a dynamic sitemap in Next.js. You will need the next-sitemap package. You can install it using npm:

    
      npm install next-sitemap
    
  

Step 2: Configure the sitemap

Next, you need to configure the sitemap for your Next.js application. You can do this by creating a next-sitemap.js file in the root of your project. Inside this file, you can define the options for generating the sitemap, such as the pages to include and any additional configuration options:

    
      module.exports = {
        siteUrl: 'https://yourwebsite.com',
        generateRobotsTxt: true,
        changefreq: 'daily',
        priority: 0.7,
      }
    
  

Step 3: Generate the sitemap

Once you have configured the sitemap, you can generate it by running the following command:

    
      npm run build && next-sitemap
    
  

This will generate a sitemap.xml file in the root of your project, containing all of the pages you specified in the configuration file.

Step 4: Submit the sitemap to search engines

Finally, you can submit the generated sitemap to search engines such as Google and Bing to help them index your website. You can do this by adding the sitemap URL to the search engine’s webmaster tools, or by including it in your robots.txt file:

    
      Sitemap: https://yourwebsite.com/sitemap.xml
    
  

And that’s it! You’ve now successfully created a dynamic sitemap for your Next.js application.

0 0 votes
Article Rating
10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Skies Dev
11 months ago

Next.js 13 adds first class support for dynamic sitemaps inside the app directory.

Check out Lee's post: https://twitter.com/leeerob/status/1639639575843729409

DarkKnight9990
11 months ago

I used your method and also created a sitemap on next 12 with many small sitemaps such as:

/post-sitemap.xml

/page-sitemap.xml

/page-sitemap2.xml

/page-sitemap3.xml

However, next13 version cannot create sitemaps in this way. I also looked at the documentation and how to create a sitemap.js in the app folder, but it cannot create a sitemap in this divided style. This will not be optimal if the website has a link system of more than 50k, because Google only Allow up to 50k links on 1 sitemap record, so it is imperative to split as above I do with nextjs12. So is there a way to call

res.setHeader(),res.write(),res.end() in nextjs 13?

Ricardo
11 months ago

Hey this works locally, but on Netlify for example it returns error codes.

Akarshan Mishra
11 months ago

does this work for next 13.4 app directory ?

HollyTale
11 months ago

Hi. What is a blogPosts function? I don't understand what does this function do. Can u show me screen of this function please?

Yusril Ihsanul Alim
11 months ago

Headache

James Trenda
11 months ago

This was very helpful. Now, how about setting up dynamic redirects? I know how to set up static redirects in next.js with either the config, getStaticProps, and useRouter, but how might we go about building out all of our redirects from slug changes from a headless CMS? Let's say I've got a CMS with a Redirects content type and I can query those and get the from, to, and permanent fields, but where do I call that query on the front end to dynamically create the redirects for my site?

Kim
Kim
11 months ago

thanks a lot. this helped me

Sathony Nakamoto
11 months ago

Can you show us your blogposts function, i don't have idea how to create it.

FarhadAlam Kawser
11 months ago

Bro,,How I can add sitemap in my Next js 13 project?? Is there any option to do it??Can u please make a video for it??😢😢..