How To Create XML Sitemap With Python Code

How To Create XML Sitemap With Python Code

A sitemap.xml is an XML file that lists the pages on your website that you want search engines to index. It also provides information about the pages, such as when they were last updated and how important they are. This information helps search engines crawl and index your website more efficiently.

Sitemaps.xml files are a valuable tool for SEO (search engine optimization). By submitting a sitemap to Google Search Console, you can help ensure that all of your website’s pages are crawled and indexed. This can help improve your website’s ranking in search results.

To create a sitemap.xml file, you can use a variety of tools, including online generators and software applications. Once you have created your sitemap, you can upload it to your website’s root directory. You can then submit the sitemap to Google Search Console.

What’s the Purpose of an XML Sitemap?

The purpose of an XML sitemap is to provide search engines with a structured list of URLs (Uniform Resource Locators) within a website. It serves as a roadmap that helps search engine crawlers navigate and understand the organization and structure of a website’s content.

Here are the main purposes of an XML sitemap:

Improved crawling and indexing: By providing a comprehensive list of URLs, including important pages and content, an XML sitemap helps search engine crawlers discover and access all relevant pages on a website. This ensures that the search engines can effectively crawl and index the website’s content.

Faster indexing of new or updated content: When new pages or updates are made to a website, an XML sitemap can notify search engines about these changes. This helps search engines understand the freshness and relevance of the content, potentially leading to faster indexing and visibility in search results.

Priority and importance indication: XML sitemaps can include additional information such as the priority of specific pages or the frequency of content changes. This allows website owners to indicate the relative importance or significance of different pages, helping search engines prioritize crawling and indexing accordingly.

Supporting rich media and non-text content: XML sitemaps can include URLs of various types of content, such as images, videos, or PDF files, providing search engines with a comprehensive view of the website’s multimedia assets. This can aid in their discovery and inclusion in search engine results.

Enhanced website structure and hierarchy: XML sitemaps help search engines understand the structure and hierarchy of a website’s content. This can be particularly beneficial for large or complex websites with multiple levels of navigation, making it easier for search engines to index and rank pages accurately.

Create an XML Sitemap Using Python

Here’s a step-by-step guide to using the script:

Step 1: Prepare your CSV file

Make sure you have a CSV file containing the URLs for which you want to generate a sitemap. The CSV file should have a single column with the URLs, and it can include a header row if needed.

Step 2: Set up your development environment

Ensure that you have Python installed on your computer. You can download Python from the official website ( and follow the installation instructions specific to your operating system.

Step 3: Create a new Python file

Open a text editor or an Integrated Development Environment (IDE) of your choice and create a new Python file. You can name it or choose any other suitable name.

Step 4: Copy and paste the code

Copy the provided script and paste it into the newly created Python file.

Step 5: Customize the script

Open the Python file in the text editor or IDE and locate the line: generate_sitemap(‘your_csv_file.csv’).
Replace ‘your_csv_file.csv’ with the actual path to your CSV file. For example, if your CSV file is located in the same directory as the Python script and named urls.csv, the line should be generate_sitemap(‘urls.csv’).

Step 6: Save the Python file

Save the Python file after making the necessary changes.

Step 7: Run the script

Open a command prompt or terminal window and navigate to the directory where you saved the Python file.
Run the script by executing the command python (assuming you named the Python file Press Enter to execute the command.

You can download the full code in my Github Repository.

import csv
import datetime

def generate_sitemap(csv_file):
    # Set the desired values for the sitemap
    last_modification_date =, 5, 21)
    change_frequency = "daily"
    priority = "1.0"

    # Initialize the sitemap XML content
    sitemap_xml = '<?xml version="1.0" encoding="UTF-8"?>\n'
    sitemap_xml += '<urlset xmlns="">\n'

    # Read the CSV file
    with open(csv_file, 'r') as file:
        reader = csv.reader(file)

        # Skip the header row if present

        # Iterate over the rows in the CSV file
        for row in reader:
            # Get the URL from the CSV row
            url = row[0]

            # Add the URL to the sitemap XML content with the desired values
            sitemap_xml += f'\t<url>\n'
            sitemap_xml += f'\t\t<loc>{url}</loc>\n'
            sitemap_xml += f'\t\t<lastmod>{last_modification_date.strftime("%Y-%m-%d")}</lastmod>\n'
            sitemap_xml += f'\t\t<changefreq>{change_frequency}</changefreq>\n'
            sitemap_xml += f'\t\t<priority>{priority}</priority>\n'
            sitemap_xml += f'\t</url>\n'

    # Close the sitemap XML content
    sitemap_xml += '</urlset>'

    # Save the sitemap XML to a file named sitemap.xml
    with open('sitemap.xml', 'w') as file:

    print("Sitemap generated successfully.")

# Call the function and pass the path to the CSV file

Leave a Comment

Your email address will not be published. Required fields are marked *