Site icon Easy2Digital

Python Tutorial 19: Automate Refreshing SEO Google Sheets Dashboard with New and Existing Keywords Performance from Google Search Console

python tutorial

Google SEO keyword query insight currently is only available in the Google search console, unless you pay for a SaaS, such as SEMrush, Moz, etc. Long time ago, Google analytics stopped showing SEO insight and changed it to “not provided”. But the keyword insight is hugely important for content marketing, and website optimization. You and I absolutely know that, which is just like bullshit as I said. But the thing is how to automatically update these keyword queries to your Google Sheets Dashboard you created and customized it as you like.

In this Python Tutorial, I would talk to you about how to leverage Python codes and Google Search Console API with Crontab. It’s for automatically updating the latest keyword queries and refreshing the dashboard. By the end of this article, you can learn the techniques to create your favorite application. Then, you can sit and open the dashboard and enjoy!

Python Tutorial – Required Modules in Python Script

We would use Google APIs, which connect with Google search console and Google Drive. So oauth2 is necessary. Then, it’s necessary to have pandas of course, because we need to use it to frame the fetched data. Last but not least, as it would upload to Google Sheets, so for making it more simple, I recommend using gspread and oauth2client as well.

import pandas as pd
import gspread
from googleapiclient.discovery import build
from google.oauth2 import service_account
from oauth2client.service_account import ServiceAccountCredentials

Google Search Console API

First thing first, we need to go to the Google developer console to enable Google search console API and Google Drive API. Many people would forget to activate Google Drive API though. So please remember to check at your backend of the Google API library.

Then, we need to create a new credential for this project in the Google cloud platform. And we also need to create a new key within this credential and download the JSON file. You would use this file in a moment.

Last but not least, we set the scope in the codings and configure the JSON file with building the service functions.

scope = ['']
api_key = 'yourJSONfilepath.json'
credentials = service_account.Credentials.from_service_account_file(api_key,scopes=scope)
service = build('webmasters', 'v3', credentials=credentials)

We need to add the gspread section codings as well. For more details, please check out the other article I released before.

Python Tutorial 17: Get the Up-to-date Amazon Product Market Value by Amazon Price Tracker Using ASIN, gspread, Oauth2Client, and Google Sheet

Python Tutorial – Available JSON Data Feed

In Google search console API, you can grab the data more than you download the data from the platform report. But also it can be an automatic process and you have more keyword insight.

In terms of the data available via API, you can select startDate, enddate, dimension of query, page, device. What’s more, it’s because Google API restricts the data generation volume. You can set the rowLimit. For example, you can generate 10 keywords, or you fetch 2000 keywords as well.

request = {
'startDate': '2021-07-01',
'endDate': '2021-07-31',
'dimensions': ['query'],
'rowLimit': '2000'

Search Console API Methods and Parameters

Obviously, there are three types of API connection, which are search analytics, sitemap, and site setting. To us, we would utilize search analytics in this Python Script.

Frankly, it doesn’t have many methods to utilize. It’s just the searchanalytics() and query(). In the query, we need to fill in our website URL in the siteUrl parameter. Then the data we aim to fetch is necessary to add to the body parameter.

response = service.searchanalytics().query(siteUrl='', body=request).execute()

After command B, you can see the JSON format data already has come up in front of us. From the JSON data, you can find out what metric data we can fetch. They can be clicks, impressions, ctr, position and so on.

Python Tutorial – Create the Loop to Fetch and Save Data on the Google Sheets

As well as youtube video performance and Shopify product data I talked previously, we need to create a loop to grab all the keyword data we set the amount in rowLimit above.

for row in response['rows']:
seoData = {}

for i in range(len(request['dimensions'])):
seoData[request['dimensions'][i]] = row['keys'][i]

seoData['clicks'] = row['clicks']
seoData['impressions'] = row['impressions']
seoData['ctr'] = round(row['ctr'], 2)
seoData['position'] = round(row['position'], 2)

Like grabbing Amazon product data, we would use pandas to append the fetched data and upload it to Google Sheets using gspread. For more details, please check out Python Tutorial 17.

Automate the update using Crontab

In Python Tutorial 18, I talked about how to use crontab to automate refreshing the Amazon price tracker. Regarding SEO keyword queries and position performance refreshing, it’s the same script by just modifying the schedule and script path.

Then, you can just open your SEO performance tracker and check the up-to-date performance. I would talk about how to create a Google Sheets dashboard if you are interested in. Please comment below and let me know

For more details, please check out Python Tutorial 18

Python Tutorial 18: Crontab Automates Running Amazon Competitor Price Tracker for Updating P&L Calculator and Product Market Value

Full Python Script of Google Search Console API Scraper

If you would like to have the full version of the Python Script of Amazon Product Price Tracker, please subscribe to our newsletter by adding the message Python Tutorial 19. We would send you the script immediately to your mailbox.

Contact us

I hope you enjoy reading Python Tutorial 19: Automate Refreshing SEO Google Sheets Dashboard with New and Existing Keywords Performance from Google Search Console. If you did, please support us by doing one of the things listed below, because it always helps out our channel.

Exit mobile version