From 97262213daa7dce1a1d88fdcd090be6b9140a88b Mon Sep 17 00:00:00 2001 From: Zachary Proser Date: Mon, 12 Feb 2024 17:34:41 -0500 Subject: [PATCH] Add post: how to build a Next.js sitemap --- src/app/blog/how-to-next-js-sitemap/page.mdx | 129 +++++++++++++++++++ src/images/next-js-sitemap.webp | Bin 0 -> 33714 bytes src/images/sitemap-google-search.webp | Bin 0 -> 9610 bytes 3 files changed, 129 insertions(+) create mode 100644 src/app/blog/how-to-next-js-sitemap/page.mdx create mode 100644 src/images/next-js-sitemap.webp create mode 100644 src/images/sitemap-google-search.webp diff --git a/src/app/blog/how-to-next-js-sitemap/page.mdx b/src/app/blog/how-to-next-js-sitemap/page.mdx new file mode 100644 index 00000000..62d6b7c2 --- /dev/null +++ b/src/app/blog/how-to-next-js-sitemap/page.mdx @@ -0,0 +1,129 @@ +import { ArticleLayout } from '@/components/ArticleLayout' +import { Button } from '@/components/Button' +import Image from 'next/image' +import Link from 'next/link' +import nextJsSitemap from '@/images/next-js-sitemap.webp' +import googleSearchConsole from '@/images/sitemap-google-search.webp' + +import { createMetadata } from '@/utils/createMetadata' + +export const metadata = createMetadata({ + author: "Zachary Proser", + date: "2024-2-12", + title: "How to build a dynamic sitemap for your Next.js project", + description: "Steal my implementation to save yourself some time and headaches", + image: nextJsSitemap +}) + +export default (props) => + +--- + +How to build a dynamic sitemap for Next.js + +At the time of this writing, there **are** [official docs on building a sitemap for your Next.js +project](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap) that uses the newer app router pattern. + +However, they're on the sparse side, and there's more than a little confusion going around about +how to pull this off based on the npm packages and GitHub issues I encountered when doing +my own research. + +When you're finished this post, you'll have the knowledge and code you need to build a dynamic sitemap +for your Next.js project that includes both 'static' routes such as `/about` or `/home` +and dynamic routes such as `/blog/[id]/page.tsx` or `/posts/[slug]/page.js`. + +You can also feel free to skip ahead to the implementation below. This is what I used to get a working sitemap that +included all the routes I cared about and, more importantly, was accepted by Google Search's console / robots: + +Google Search Console says our sitemap is valid! + +## Key things to understand + +Here's the things I needed to know upfront when I wanted to build my own sitemap: + +### The Next.js file to route convention is supported + +You can use the file-convention approach, meaning that a file that lives at `src/app/sitemap.(js|ts)` + +Your file should export a default function - conventionally named `sitemap`. I've demonstrated this in the +implementation example below. + +### You can test your sitemap locally +To test your sitemap, you can use curl like `curl http://localhost:3000/sitemap.xml > /tmp/sitemap.xml` and I recommend redirecting +the output to a file as shown so that you can examine it more closely. + +At a minimum, all of the URLs you want search engines and other readers of sitemaps to be aware of need to be present in this file +and wrapped in `` or location tags. + +If your sitemap is missing key URLs you're looking to get indexed, there's something wrong in your logic causing your routes to be excluded. + +You can do print debugging and add logging statments throughout you sitemap file so that when you're running `npm run dev` and you curl +your sitemap, you can see the output in your terminal to help you diagnose what's going on. + +## Next.js dynamic and static sitemap.xml example + +The following implementation creates a sitemap out of [my portfolio project](https://github.com/zackproser/portfolio). + +It works by defining the root directory of the project (`src/app`), and then reading all the directories it finds there, applying the following rules: + +1. If the sub-directory is named `blog` or `videos`, it is a dynamic route, which needs to be recursively read for individual posts +2. If the sub-directory is not named `blog` or `videos`, it is a static or top-level route, and processing can stop after obtaining the entry name. This will be the case +for any top-level pages such as `/photos` or `/subscribe`, for example. + +Note that if you're copy-pasting this into your own file, you need to update: +1. your `baseUrl` variable, since it's currently pointing to my domain +2. the names of your dynamic directories. For my current site version, I only have `/blog` and `/videos` set up as dynamic routes +3. Your excludeDirs. I added this because I didn't want my API routes that support backend functionality in my sitemap + +```javascript +import fs from 'fs'; +import path from 'path'; + +const baseUrl = process.env.SITE_URL || 'https://zackproser.com'; +const baseDir = 'src/app'; +const dynamicDirs = ['blog', 'videos'] +const excludeDirs = ['api']; + +function getRoutes() { + const fullPath = path.join(process.cwd(), baseDir); + const entries = fs.readdirSync(fullPath, { withFileTypes: true }); + let routes = []; + + entries.forEach(entry => { + if (entry.isDirectory() && !excludeDirs.includes(entry.name)) { + // Handle 'static' routes at the baseDir + routes.push(`/${entry.name}`); + + // Handle dynamic routes + if (dynamicDirs.includes(entry.name)) { + const subDir = path.join(fullPath, entry.name); + const subEntries = fs.readdirSync(subDir, { withFileTypes: true }); + + subEntries.forEach(subEntry => { + if (subEntry.isDirectory()) { + routes.push(`/${entry.name}/${subEntry.name}`); + } + }); + } + } + }); + + return routes.map(route => ({ + url: `${baseUrl}${route}`, + lastModified: new Date(), + changeFrequency: 'weekly', + priority: 1.0, + })); +} + +function sitemap() { + return getRoutes(); +} + +export default sitemap; +``` + +That's it! Save this code to your `src/app/sitemap.js` file and test it as described above. + +I hope this was helpful, and if it was, please consider +subscribing to my newsletter below! 🙇 diff --git a/src/images/next-js-sitemap.webp b/src/images/next-js-sitemap.webp new file mode 100644 index 0000000000000000000000000000000000000000..fe503156a8f5cbc684a6226d48a1860e923f3bac GIT binary patch literal 33714 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 literal 0 HcmV?d00001 diff --git a/src/images/sitemap-google-search.webp b/src/images/sitemap-google-search.webp new file mode 100644 index 0000000000000000000000000000000000000000..8734f865b847a98e050085304890a6e2e09a7f7f GIT binary patch literal 9610 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