Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 3.64 KB

File metadata and controls

110 lines (74 loc) · 3.64 KB
sidebar_position 10
slug /api/plugins/@docusaurus/plugin-sitemap

📦 plugin-sitemap

import APITable from '@site/src/components/APITable';

This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately.

:::warning production only

This plugin is always inactive in development and only active in production because it works on the build output.

:::

Installation {#installation}

npm install --save @docusaurus/plugin-sitemap

:::tip

If you use the preset @docusaurus/preset-classic, you don't need to install this plugin as a dependency.

You can configure this plugin through the preset options.

:::

Configuration {#configuration}

Accepted fields:

<APITable>
Name Type Default Description
lastmod 'date' | 'datetime' | null null date is YYYY-MM-DD. datetime is a ISO 8601 datetime. null is disabled. See sitemap docs.
changefreq string | null 'weekly' See sitemap docs
priority number | null 0.5 See sitemap docs
ignorePatterns string[] [] A list of glob patterns; matching route paths will be filtered from the sitemap. Note that you may need to include the base URL in here.
filename string sitemap.xml The path to the created sitemap file, relative to the output directory. Useful if you have two plugin instances outputting two files.
createSitemapItems CreateSitemapItemsFn | undefined undefined An optional function which can be used to transform and / or filter the items in the sitemap.
</APITable>

Types {#types}

CreateSitemapItemsFn {#CreateSitemapItemsFn}

type CreateSitemapItemsFn = (params: {
  siteConfig: DocusaurusConfig;
  routes: RouteConfig[];
  defaultCreateSitemapItems: CreateSitemapItemsFn;
}) => Promise<SitemapItem[]>;

:::info

This plugin also respects some site config:

  • noIndex: results in no sitemap generated
  • trailingSlash: determines if the URLs in the sitemap have trailing slashes

:::

:::note About lastmod

The lastmod option will only output a sitemap <lastmod> tag if plugins provide route metadata attributes sourceFilePath and/or lastUpdatedAt.

All the official content plugins provide the metadata for routes backed by a content file (Markdown, MDX or React page components), but it is possible third-party plugin authors do not provide this information, and the plugin will not be able to output a <lastmod> tag for their routes.

:::

Example configuration {#ex-config}

You can configure this plugin through preset options or plugin options.

:::tip

Most Docusaurus users configure this plugin through the preset options.

:::

// Preset Options: sitemap
// Plugin Options: @docusaurus/plugin-sitemap

const config = {
  lastmod: 'date',
  changefreq: 'weekly',
  priority: 0.5,
  ignorePatterns: ['/tags/**'],
  filename: 'sitemap.xml',
  createSitemapItems: async (params) => {
    const {defaultCreateSitemapItems, ...rest} = params;
    const items = await defaultCreateSitemapItems(rest);
    return items.filter((item) => !item.url.includes('/page/'));
  },
};

You can find your sitemap at /sitemap.xml.