As an SEO professional or developer, keeping track of how Google replica watches UK indexes your website is crucial. The Google Search Console provides a wealth of data, but manually inspecting URLs one by one can be tedious. Thankfully, the best replica watches Search Console API offers a programmatic way to retrieve this information. In this blog post, I’ll walk you through a Python script I built to automate URL inspections using the cheap replica rolex watches Search Console API, complete with error handling and CSV output. Whether you’re auditing a site or monitoring crawl status, this script can save you time and effort.
What Does the Script Do?
This Python script:
- Uploads a CSV file containing a list of URLs you want to inspect.
- Authenticates with the Google Search Console API using a service account.
- Queries the API to retrieve indexing details for each URL (e.g., coverage state, crawl time, mobile usability).
- Saves the results in a new CSV file for easy analysis.
By the end, you’ll have a downloadable report with key insights about how Google sees your pages.
Prerequisites
Before diving into the code, here’s what you’ll need:
- Google Cloud Project: Set up a project in the Google Cloud Console and enable the Search Console API.
- Service Account: Create a service account, download its JSON key file (e.g., api_key.json), and store it in Google Drive.
- Search Console Access: Add the service account email (e.g., your-service-account@your-project.iam.gserviceaccount.com) as a user in Search Console for the property you’re inspecting.
- Python Environment: This script is designed for Google Colab, but it can be adapted for other environments. You’ll need libraries like google-auth, google-api-python-client, and pandas.
The Code
Here’s the full script with explanations:
from google.oauth2 import service_account from googleapiclient.discovery import build import pandas as pd from pandas import DataFrame from google.colab import files import io from google.colab import drive uploaded = files.upload() # Get the url list from the upload so we can read it into a CSV. for key in uploaded.keys(): filename = key df = pd.read_csv(io.BytesIO(uploaded[filename])) url_list = df.values.tolist() number_of_elements = len(url_list) item_number = 1 #Mount Google Drive First creds = "/content/drive/api_key.json" #replace with location of script in Google Drive scopes = [ 'https://www.googleapis.com/auth/webmasters', 'https://www.googleapis.com/auth/webmasters.readonly' ] credentials = service_account.Credentials.from_service_account_file(creds, scopes=scopes) service = build('searchconsole','v1',credentials=credentials) results = [] for i in url_list: url = i[0] request = { 'inspectionUrl': url, 'siteUrl': 'https://example.com/' # Replace with your Search Console property URL } try: response = service.urlInspection().index().inspect(body=request).execute() API_result_status = "Success" inspectionResult = response['inspectionResult'] coverageState = inspectionResult['indexStatusResult']['coverageState'].replace("n", " ") robotsTxtState = inspectionResult['indexStatusResult']['robotsTxtState'] indexingState = inspectionResult['indexStatusResult']['indexingState'] try: lastCrawlTime = inspectionResult['indexStatusResult']['lastCrawlTime'] except: lastCrawlTime = "n/a" pageFetchState = inspectionResult['indexStatusResult']['pageFetchState'] try: googleCanonical = inspectionResult['indexStatusResult']['googleCanonical'] except: googleCanonical = "n/a" try: userCanonical = inspectionResult['indexStatusResult']['userCanonical'] except: userCanonical = "n/a" try: crawledAs = inspectionResult['indexStatusResult']['crawledAs'] except: crawledAs = "n/a" try: mobileUsabilityResult = inspectionResult['mobileUsabilityResult']['verdict'] except: mobileUsabilityResult = "n/a" except: print("Failed to read " + str(url) + ". Skipping to next page.") API_result_status = "Fail" inspectionResult = "n/a" coverageState = "n/a" robotsTxtState = "n/a" indexingState = "n/a" lastCrawlTime = "n/a" pageFetchState = "n/a" googleCanonical = "n/a" userCanonical = "n/a" crawledAs = "n/a" mobileUsabilityResult = "n/a" result_url = [url,API_result_status,coverageState,robotsTxtState,indexingState,lastCrawlTime,pageFetchState,googleCanonical,userCanonical,crawledAs,mobileUsabilityResult] print(url + ' complete. ' + str(item_number) + ' of ' + str(number_of_elements)) results.append(result_url) item_number = item_number + 1 Feature_Labels = ['url','API_result_status','coverageState','robotsTxtState','indexingState','lastCrawlTime','pageFetchState','googleCanonical','userCanonical','crawledAs','mobileUsabilityResult'] print(result_url) #Convert to dataframe and download results_csv = DataFrame (data=results,columns=Feature_Labels) results_csv.to_csv('Inspect-URL-Results.csv') files.download('Inspect-URL-Results.csv')
How It Works
- Setup: The script mounts Google Drive, uploads a CSV file (with a single column of URLs), and reads it into a list.
- Authentication: It uses a service account JSON key to authenticate with the Search Console API, specifying the necessary scopes.
- Inspection Loop: For each URL, it sends an inspection request and extracts fields like coverageState (e.g., “Submitted and indexed”) and lastCrawlTime. If a field is missing or the request fails, it defaults to “n/a”.
- Output: Results are stored in a list, converted to a Pandas DataFrame, and downloaded as a CSV.
Example Usage
- Prepare a CSV file (e.g., urls.csv) with a column of URLs:
- Upload it when prompted in Colab.
- Replace ‘https://example.com/’ with your Search Console property URL.
- Run the script and download Inspect-URL-Results.csv.
The output might look like this:
url | API_result_status | coverageState | indexingState | lastCrawlTime |
https://example.com/page1 | Success | Submitted and indexed | INDEXED | 2025-03-20T10:00:00Z |
https://example.com/page2 | Fail | n/a | n/a | n/a |
Why Use This Script?
Manually checking URLs in Search Console is fine for a handful of pages, but for larger sites, automation is a game-changer. This script lets you:
- Audit indexing status across hundreds of pages.
- Identify crawl issues or canonical mismatches.
- Export data for deeper analysis in tools like Excel or Google Sheets.
Conclusion
The Google Search Console API is a powerful tool, and with a little Python, you can unlock its full potential. This script is a starting point—feel free to adapt it to your needs, whether that’s adding more fields, integrating with other APIs, or building a full SEO dashboard.