SEOスクールレベル3:上級マスターレッスン 8
レベル3:上級マスター
レッスン 8/10
20 分で読めます
2026-01-06

SEOのためのPython:退屈なタスクの自動化

SEOの自動化にPythonを使用する方法を学びます。Pandas、Requests、BeautifulSoupなどの専門的なライブラリを使用して、膨大なデータセットを処理し、反復的なタスクを自動化します。

数千ページを管理している場合(プログラマティック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 Redirect

3. 実用的なユースケース:メタデータの抽出(スクレイピング)

競合他社の上位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か月分の履歴しか保存しないため、これはデータのバックアップに不可欠です。

ワークフロー:

  1. Google Cloud PlatformでGoogle Search Console APIを有効にします。
  2. credentials.jsonファイルをダウンロードします。
  3. 認証を簡素化するために、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を習得することは、あなたが学ぶことができる最もレバレッジの高い唯一のスキルです。

学んだことを実践する準備はできましたか?

pSEO Wizardで知識を実践し、数千のSEO最適化ページを生成しましょう。

今すぐ構築を開始