Metadata Files
File-based metadata can be defined by adding special metadata files to route segments.
Once a file is defined, Next.js will automatically serve the file (with hashes in production for caching)
and update the relevant head elements with the correct metadata, such as the asset's URL, file type, and image size.
favicon
Add a favicon.ico image file to the root /app route segment. The favicon image can only be located in the top level
of app/.
Output(head):
<link rel="icon" href="/favicon.ico" sizes="any"/>
opengraph-image
Add an opengraph-image.(jpg|jpeg|png|gif) image file to any route segment.
Output(head):
<meta property="og:image" content="<generated>"/>
<meta property="og:image:type" content="<generated>"/>
<meta property="og:image:width" content="<generated>"/>
<meta property="og:image:height" content="<generated>"/>
robots.txt
Add or generate a robots.txt file that matches the Robots Exclusion Standard in the root of app directory to tell
search engine crawlers which URLs they can access on your site.
Static robots.txt
User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://acme.com/sitemap.xml
Generate a Robots file
Add a robots.js or robots.ts file that returns a Robots object.
export default function robots() {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: '/private/',
    },
    sitemap: 'https://acme.com/sitemap.xml',
  }
}
Output:
User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://acme.com/sitemap.xml
sitemap.xml
Add or generate a sitemap.xml file that matches the Sitemaps XML format in the root of app directory to help search
engine crawlers crawl your site more efficiently.
Static sitemap.xml
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://acme.com</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
    <url>
        <loc>https://acme.com/about</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
    <url>
        <loc>https://acme.com/blog</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
</urlset>
Generate a Sitemap
Add a sitemap.js or sitemap.ts file that returns Sitemap.
export default function sitemap() {
  return [
    {
      url: 'https://acme.com',
      lastModified: new Date(),
    },
    {
      url: 'https://acme.com/about',
      lastModified: new Date(),
    },
    {
      url: 'https://acme.com/blog',
      lastModified: new Date(),
    },
  ]
}
Output:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://acme.com</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
    <url>
        <loc>https://acme.com/about</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
    <url>
        <loc>https://acme.com/blog</loc>
        <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    </url>
</urlset>