diff --git a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts index fb29688d32..8f75ac8fad 100644 --- a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts +++ b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts @@ -30,7 +30,22 @@ describe('createSitemap', () => { expect(() => { createSitemap({} as any, [], {} as any); }).toThrowErrorMatchingInlineSnapshot( - `"Url in docusaurus.config.js cannot be empty/undefined"`, + `"url in docusaurus.config.js cannot be empty/undefined"`, ); }); + + test('exclusion of 404 page', () => { + const sitemap = createSitemap( + { + url: 'https://example.com', + } as DocusaurusConfig, + ['/', '/404.html', '/mypage'], + { + cacheTime: 600, + changefreq: 'daily', + priority: 0.7, + }, + ); + expect(sitemap.toString()).not.toContain('404'); + }); }); diff --git a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts index 4f817dbf9c..3d22bb6ea9 100644 --- a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts +++ b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts @@ -16,17 +16,19 @@ export default function createSitemap( ) { const {url: hostname} = siteConfig; if (!hostname) { - throw new Error('Url in docusaurus.config.js cannot be empty/undefined'); + throw new Error('url in docusaurus.config.js cannot be empty/undefined'); } - const urls = routesPaths.map( - (routesPath) => - ({ - url: routesPath, - changefreq: options.changefreq, - priority: options.priority, - } as SitemapItemOptions), - ); + const urls = routesPaths + .filter((route: string) => !route.endsWith('404.html')) + .map( + (routesPath) => + ({ + url: routesPath, + changefreq: options.changefreq, + priority: options.priority, + } as SitemapItemOptions), + ); return sitemap.createSitemap({ hostname,