How To Use Python For Programmatic SEO – Step By Step Guide

Updated on June 15, 2024

In today’s data-driven digital marketing landscape, mastering Python for programmatic SEO is essential. Python’s power lies in its ability to automate tasks, analyze large datasets, and derive actionable insights. In this concise guide, we’ll explore how Python can revolutionize your SEO strategy, enabling you to automate repetitive tasks, analyze SEO data at scale, and drive organic growth. Whether you’re an SEO specialist, marketer, or developer, Python’s capabilities can take your website’s search engine performance to new heights.

What is Programmatic SEO

Programmatic SEO involves using code to automate and optimize various aspects of search engine optimization processes. For example

Why Python

Python is a preferred choice for SEO due to its robust libraries like BeautifulSoup and Scrapy, enabling efficient web scraping and data extraction. Its simplicity and readability make it accessible for SEO specialists with varying programming skills, allowing them to develop custom tools and scripts. Python’s versatility empowers it to collect and analyze valuable data from websites, gaining insights into search engine rankings and user behavior. With an active community and a strong ecosystem, Python has become an essential tool for SEO, streamlining data-driven decision-making processes.

As we have found out why we are going to use Python now let’s discuss a little about what we are going to build.

In local SEO, we all know a location page is the most important page of a website. Most of the keywords being searched in Google are local keywords for example SEO services in Dunedin, FL. Now we can replicate these pages as we only need to change the location name in page content and the remaining content is the same for all other pages of the website.

How To Use Programmatic SEO Demo Video:

How To Use Programmatic SEO:

The primary objective is to establish an automated workflow that seamlessly generates and publishes localized content while dynamically replacing specific keywords, such as city names, within the article. This not only saves time but also ensures accuracy and consistency across various locations.

So let’s get into step by step-by-step process that you can follow to achieve this goal.

Step 1:

First, we need to design a local page on a website so I am going to design a page for the best SEO services in Dunedin FL. While designing the page make sure you are using an editor that can give you HTML code as we are going to use that code later.

The front end of the page

The backend code of the page

Step 2:

Once the page is ready we will copy the HTML content and put that into the input.txt file. So create a folder and create a file inside called input.txt in that folder and copy the HTML code of the page that we designed.

Step 3:

The next step is to collect and save data into a CSV file which our Python program will read and generate pages for that data.

I have simply listed all the cities in the data.csv file. These are the cities that I want to publish the pages on my website.

Step 4:

Now we have all the required files in the folder let’s start with the code.

Let’s break down the script into parts and explain each section and at the end, you can find the full code GitHub link.

First, we are going the load the libraries that we are going to use in the code

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost

Client, WordPressPost, and NewPost from python-wordpress-xmlrpc: For interacting with the WordPress XML-RPC API.

This API is going to help us publish our pages on the WordPress website.

def read_csv(file_path):
    city_list = []
    with open(file_path, ‘r’) as file:
        next(file# Skip the header
        for line in file:
            city_name = line.strip()
    return city_list

This function reads a CSV file and extracts the city names from the first column (assuming there is a header “city”). It skips the header line using next(file) and returns a list of city names.

def replace_city_in_article(article_content, city_name):
    return article_content.replace(“Dunedin”, city_name)

This function takes the article content and a city name as arguments. It replaces occurrences of the word “Dunedin” in the article with the provided city name.

def publish_to_wordpress(title, content):
    site_url = ‘http://your-wordpress-site.com/xmlrpc.php’
    username = ‘your_username’
    password = ‘your_password’

    client = Client(site_url, username, password)

    post = WordPressPost()
    post.title = title
    post.content = content
    post.post_status = ‘publish’

    post_id = client.call(NewPost(post))
    print(f“Post published with ID: {post_id}”)

This function is responsible for publishing a post to WordPress. It uses the provided title and content, connects to the WordPress site using the XML-RPC API, creates a new post object, sets the title and content, and publishes the post.

def main():
    input_article_path = ‘path/to/input.txt’
    with open(input_article_path, ‘r’) as input_file:
        article_content = input_file.read()

    csv_file_path = ‘path/to/data.csv’
    city_list = read_csv(csv_file_path)

    for city_name in city_list:
        modified_content = replace_city_in_article(article_content, city_name)

        post_title = f”Best SEO Services In {city_name} FL”

        publish_to_wordpress(post_title, modified_content)

if __name__ == “__main__”:

The main function is the entry point of the script. It reads the input article content from input.txt, retrieves the list of cities from data.csv, iterates through each city, replaces “Dunedin” with the current city name, and publishes individual posts for each city on WordPress.

Just make sure to replace the placeholder paths and credentials with your actual values before running the script. You can download the full code from Git Hub.

Now all you need to do is execute the task and your pages will be published automatically on your website. You can play with the code and add your modifications.

Once you run the script you can see your command line 

And on your WordPress website, you will see pages like this.


This script enables the automation of localized content generation and publication for SEO purposes. It leverages Python to interact with the WordPress API, allowing for the dynamic creation of pages tailored to different locations. Users can customize the code to suit their specific needs and integrate additional functionalities. The guide emphasizes the importance of Python’s versatility and community support in enhancing SEO strategies in the data-driven digital marketing landscape. The full code is provided on GitHub for further exploration and customization.

Leave a Comment