Build and submit a sitemap
This page describes how to build a sitemap and make it available to Google. If you're new to sitemaps, read our introduction first.
Google supports the sitemap formats defined by the sitemaps protocol. Each sitemap has its own benefits and shortcomings; choose the one that is the most appropriate for your site and setup (Google doesn't have a preference). The following table compares the different sitemap formats:
XML sitemaps are the most versatile of the sitemaps formats. It's easily extensible and can be used to supply additional data about images, video, and news content, as well as the localized versions of your pages.
|RSS, mRSS, and Atom 1.0||
RSS, mRSS, and Atom 1.0 sitemaps are similar in structure to XML sitemaps, however they are often the easiest to provide because CMSes automatically create them.
The simplest of sitemap formats, it can only list URLs to HTML and other indexable pages.
Sitemap best practices
The best practices for sitemaps are defined by the sitemaps protocol. The most overlooked best practices are related to the size limits, sitemap location, and the URLs included in the sitemaps.
Sitemap size limits: All formats limit a single sitemap to 50MB (uncompressed) or 50,000 URLs. If you have a larger file or more URLs, you must break your sitemap into multiple sitemaps. You can optionally create a sitemap index file and submit that single index file to Google. You can submit multiple sitemaps and sitemap index files to Google. This may be useful if you want to track the search performance of each individual sitemap in Search Console.
Sitemap file encoding and location: The sitemap file must be UTF-8 encoded. You can host your sitemaps anywhere on your site, but a sitemap affects only descendants of the parent directory. Therefore, a sitemap posted at the site root can affect all files on the site, which is where we recommend posting your sitemaps.
Referenced URLs' properties:
Use fully-qualified, absolute URLs in your sitemaps. Google will crawl your URLs exactly as
listed. For example, if your site is at
https://www.example.com/, don't specify a
URL such as
/mypage.html (a relative URL), use the complete, absolute URL:
Include the URLs in your sitemap that you want to see in Google's search results. Google generally shows the canonical URLs in its search results, which you can influence with sitemaps. If you have different URLs for mobile and desktop versions of a page, we recommend pointing to only one version in a sitemap. However, if you want to point to both URLs, annotate your URLs to indicate the desktop and mobile versions.
For a complete list of best practices, check out the sitemaps protocol.
The XML sitemap format is the most versatile of the supported formats. Using the Google supported sitemap extensions, you can also provide additional information about your images, video, and news content, as well as the localized versions of your pages.
Here is a very basic XML sitemap that includes the location of a single URL:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://www.example.com/foo.html</loc> <lastmod>2022-06-04</lastmod> </url> </urlset>
You can find more complex examples and full documentation at sitemaps.org.
Additional notes about XML sitemaps
- As with all XML files, all tag values must be entity escaped.
Google uses the
<lastmod>value if it's consistently and verifiably (for example by comparing to the last modification of the page) accurate.
RSS, mRSS, and Atom 1.0
If you have a blog with an RSS or Atom feed, you can submit the feed's URL as a sitemap. Most blog software is able to create a feed for you, but recognize that this feed only provides information on recent URLs.
Additional notes about RSS, mRSS, and Atom 1.0
- Google accepts RSS 2.0 and Atom 1.0 feeds.
- You can use an mRSS (media RSS) feed to provide Google details about video content on your site.
- As with all XML files, all tag values must be entity escaped.
If your sitemap includes only web page URLs, you can provide Google with a simple text file that contains one URL per line. For example:
Additional notes for text file sitemaps
- Don't put anything other than URLs in the sitemap file.
You can name the text file anything you wish, provided it has a
.txtextension (for instance, sitemap.txt).
How to create a sitemap
When creating a sitemap, you're telling search engines about which URLs you prefer to show in search results. These are the canonical URLs. If you have the same content accessible under different URLs, choose the URL you prefer and include that in the sitemap instead of all URLs that lead to the same content.
Once you've decided which URLs to include in the sitemap, pick one of the following ways to create a sitemap, depending on your site architecture and size:
- Let your CMS generate a sitemap for you.
- For sitemaps with less than a few dozen URLs, you can manually create a sitemap.
- For sitemaps with more than a few dozen URLs, automatically generate a sitemap.
Let your CMS generate a sitemap for you
If you're using a CMS such as WordPress, Wix, or Blogger, it's likely that your CMS has already made a sitemap available to search engines. Try searching for information about how your CMS generates sitemaps, or how to create a sitemap if your CMS doesn't generate a sitemap automatically. For example, in case of Wix, search for "wix sitemap", or in case of Blogger, search for "Blogger RSS".
Manually create a sitemap
For sitemaps with less than a few dozen URLs, you may be able to manually create a sitemap. For this, open a text editor such as Windows Notepad or Nano (Linux, MacOS), and follow a syntax described in the Sitemap Formats section. You can name the file anything you like as long as the characters are allowed in a URL.
You can manually create larger sitemaps, but it's a tedious process and hard to maintain long term.
Automatically generate a sitemap with tools
For sitemaps with more than a few dozen URLs, you will need to generate the sitemap. There are various tools that can generate a sitemap. However, the best way is to have your website software generate it for you. For example, you can extract your site's URLs from your website's database and then export the URLs to either the screen or actual file on your web server. Talk to your developers or server manager about this solution. If you need inspiration for the code, check out our old, unmaintained collection of third-party sitemap generators.
You don't have to worry about the order of the URLs in your sitemap, it doesn't matter to Google. Keep in mind the size requirements for sitemaps; if the sitemap becomes too large, you must split it into smaller sitemaps. Learn more about managing large sitemaps.
Submit your sitemap to Google
Keep in mind that submitting a sitemap is merely a hint: it doesn't guarantee that Google will download the sitemap or use the sitemap for crawling URLs on the site. There are a few different ways to make your sitemap available to Google.
- Submit a sitemap in Search Console using the Sitemaps report. This will allow you to see when Googlebot accessed the sitemap and also potential processing errors.
- Use the Search Console API to programmatically submit a sitemap.
Use the ping tool. Send a
GETrequest in your browser or the command line to this address, specifying the full URL of the sitemap. Be sure that the sitemap file is accessible to Googlebot:
Insert the following line anywhere in your robots.txt file, specifying the path to
your sitemap. We will find it the next time we crawl your robots.txt file:
- If you use Atom or RSS, you can use WebSub to broadcast your changes to search engines, including Google.
How to cross-submit sitemaps for multiple sites
If you have multiple websites, you can simplify the submission process by creating one or more sitemaps that include URLs for all your verified sites, and saving the sitemaps to a single location. You can choose to use:
A single sitemap that includes URLs for multiple websites, including sites from different
domains. For example, the sitemap located at
https://host1.example.com/sitemap.xmlcan include the following URLs.
Individual sitemaps (one for each site) that all reside in a single location.
To submit cross-site sitemaps that are hosted in a single location, you can either use Search Console or robots.txt.
Sitemap cross-submission with Search Console
- Make sure that you have verified ownership of all the sites that you will add in the sitemap.
- Create a sitemap (or more if you prefer) that includes URLs from all the sites that you want to cover. You can include the sitemaps in a sitemap index file if you prefer and work with that sitemap index from here on.
- Using Google Search Console, submit your sitemaps or sitemap index file.
Sitemap cross-submission with robots.txt
- Create one or more sitemaps for each individual site. For each individual sitemap file, make sure you include only URLs from that particular site.
Upload all sitemaps to a single site you have control over, for example
For each individual site, make sure that the robots.txt file references the sitemap for that
individual site. For example, if you created a sitemap for
https://example.com/and you're hosting the sitemap at
https://sitemaps.example.com/sitemap-example-com.xml, reference the sitemap in the robots.txt file at
# robots.txt file of https://example.com/ sitemap: https://sitemaps.example.com/sitemap-example-com.xml
You can troubleshoot sitemaps with Google Search Console. See the sitemaps troubleshooting guide for help.