In search engine optimization (SEO) and web analytics, tracking external backlink discovery dates is crucial for understanding link velocity. In this exercise, analyze an actual 10,707-row Google Search Console crawl export (links_external.xlsx) by parsing crawl dates, filtering by crawl year, aggregating monthly link discovery, and searching specific referring domains with str.contains().
The sample dataset links_external.xlsx contains 10,707 crawled external backlinks with two primary columns: Linking page (the referring URL) and Last crawled (the date Googlebot indexed the link). Download the sample file below:
Download links_external.xlsx (10,707 rows) ↓
example2.com?import pandas as pd
# 1. Load Excel file
df_links = pd.read_excel("download/links_external.xlsx")
print("Shape:", df_links.shape)
print("Columns:", df_links.columns.tolist())
assert df_links.shape[0] == 10707
assert df_links.shape[1] == 2
# 2. Ensure Last crawled is parsed as datetime
df_links["Last crawled"] = pd.to_datetime(df_links["Last crawled"])
# 3. Annual distribution
yearly = df_links.groupby(df_links["Last crawled"].dt.year)["Linking page"].count()
print("\nLinks Crawled by Year:\n", yearly)
# 4. Monthly distribution
monthly = df_links.groupby(df_links["Last crawled"].dt.month)["Linking page"].count()
print("\nLinks Crawled by Month (All Years):\n", monthly)
assert yearly.sum() == 10707
To inspect backlinks originating from a specific high-authority referring domain, use the string accessor str.contains():
# Filter URLs containing example2.com
so_links = df_links[df_links["Linking page"].str.contains("stackoverflow", case=False, na=False)]
print(f"Total example2.com Backlinks: {len(domain_links)}")
# Annual breakdown of example2.com links
print(so_links.groupby(so_links["Last crawled"].dt.year)["Linking page"].count())
Open in Google Colab View on GitHub
Run all backlink crawl date filtering, annual groupings, and domain pattern searches interactively in Google Colab.
Reference: Pandas Time Series documentation.
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.