数千ページを管理している場合(プログラマティックSEOプロジェクトのように)、または膨大なデータセットを分析している場合、Excelは最終的にクラッシュします。Pythonは、これらの限界を克服するための業界標準です。反復的なタスクを自動化し、APIに接続し、数百万行のデータを数秒で分析できます。
SEOにPythonを使用するためにソフトウェアエンジニアである必要はありません。数時間の作業を1つのスクリプトに置き換えるには、いくつか特定のライブラリを知っているだけで十分です。
1. SEO Pythonスタック
Pythonには数千のライブラリがありますが、SEOの専門家は主に次の4つを使用します。
- Pandas: 「Excelキラー」。数百万行のデータテーブル(DataFrame)を即座に操作できます。
- Requests: スクリプトがブラウザのようにWebページにアクセスして、ステータスコードを確認したり、HTMLをダウンロードしたりできるようにします。
- BeautifulSoup: HTMLコードを読み取り、特定の要素(H1タグ、メタディスクリプション、価格など)を抽出できるパーサーです。
- Advertools: SERPの分析、サイトのクロール、GSCデータの管理のために作成された専門的なSEOライブラリです。
2. 実用的なユースケース:「一括ステータスチェッカー」
10,000個のURLのリストがあり、どれが壊れているか(404)を知る必要があると想像してください。手動で確認することは不可能です。
これは、requestsライブラリを使用してこれを自動化する簡単なスクリプトです。
import requests
import pandas as pd
# 1. 確認するURLのリスト
urls = [
"https://example.com",
"https://example.com/broken-page",
"https://example.com/about"
]
results = []
# 2. 各URLをループする
for url in urls:
try:
response = requests.get(url, timeout=5)
# データを保存する
results.append({
"URL": url,
"Status Code": response.status_code,
"Redirect": response.url if response.history else "No Redirect"
})
except:
results.append({"URL": url, "Status Code": "Error", "Redirect": "-"})
# 3. 読み取り可能なテーブル(DataFrame)に保存する
df = pd.DataFrame(results)
print(df)
# 出力例:
# URL Status Code Redirect
# 0 https://example.com 200 No Redirect
# 1 https://example.com/broken 404 No Redirect3. 実用的なユースケース:メタデータの抽出(スクレイピング)
競合他社の上位100ページのタイトルタグを分析してパターンを見つける必要がある場合は、BeautifulSoupを使用できます。
from bs4 import BeautifulSoup
import requests
url = "https://example.com/blog-post"
response = requests.get(url)
# HTMLコンテンツを解析する
soup = BeautifulSoup(response.content, 'html.parser')
# 特定の要素を抽出する
title = soup.title.string
h1 = soup.find('h1').text
meta_desc = soup.find('meta', attrs={'name': 'description'})['content']
print(f"Title: {title}")
print(f"H1: {h1}")
print(f"Description: {meta_desc}")4. 実用的なユースケース:APIの操作(GSC)
毎日Google Search Console(GSC)で「エクスポート」をクリックする代わりに、Pythonを使用してデータを自動的に取得できます。GSCは16か月分の履歴しか保存しないため、これはデータのバックアップに不可欠です。
ワークフロー:
- Google Cloud PlatformでGoogle Search Console APIを有効にします。
credentials.jsonファイルをダウンロードします。- 認証を簡素化するために、
git+https://github.com/joshcarty/google-searchconsoleのようなラッパーライブラリを使用します。
import searchconsole
# 認証
account = searchconsole.authenticate(client_config='credentials.json')
webproperty = account['https://www.example.com/']
# データをリクエストする
report = webproperty.query.range('today', days=-30).dimension('query').get()
# 上位5つのクエリを出力する
for row in report[:5]:
print(row.query, row.clicks, row.impressions)5. Pandasによるデータ分析
pSEOでは、多くの場合、データセットをマージする必要があります(例:「都市」のリストと「人口データ」のリストをマージする)。Excelでは、これには遅いVLOOKUPが必要です。Pythonでは、これは瞬時に行われます。
import pandas as pd
# 2つのCSVファイルを読み込む
df_cities = pd.read_csv("cities.csv") # 列:[City, State]
df_stats = pd.read_csv("population.csv") # 列:[City, Population]
# それらをマージする(VLOOKUP)
df_merged = pd.merge(df_cities, df_stats, on="City", how="left")
# フィルタリング:人口が10万人以上の都市のみを表示する
df_big_cities = df_merged[df_merged['Population'] > 100000]
# pSEOツール用に新しいCSVにエクスポートする
df_big_cities.to_csv("pseo_ready_data.csv", index=False)結論
Pythonは、あなたをSEOスペシャリストからSEOエンジニアに変えます。Excelをクラッシュさせるようなデータセットを処理し、そうでなければ数時間かかる毎日のチェックを自動化できます。プログラマティックSEOに興味があるため、データクリーニングのためのpandasを習得することは、あなたが学ぶことができる最もレバレッジの高い唯一のスキルです。