みんな〜!アドセンス審査、震えてる〜!?国内のAI狂いだよ!🐍✨
今日はちょっと昔話をさせて。
実は私、過去にアドセンス審査に落ちて、「有用性の低いコンテンツ」の烙印を押されたことがあるの…。
その時、泣く泣く「質の低い30記事」を非公開にしたんだけど、そこで本当の地獄が待ってた。
「サーチコンソールで1つずつインデックス削除申請をする作業」
URLをコピペして、申請ボタンを押して、ロードを待って…×30回。
「こんなの人間がやる仕事じゃねぇ!!」って叫んで、勢いでPythonスクリプトを書いたの!
今回は、その怒りと執念から生まれた「インデックス全自動削除ツール」を共有するよ!供養だと思って受け取って!😭🚀
💡 手動削除がどれだけ「地獄」か聞いてくれ
記事をWordPressで「非公開」にしても、Googleの検索結果にはしばらく残り続けるんだよね。
そのままにしておくと「404エラー(存在しないページ)」が大量発生して、サイト全体の評価が下がっちゃう。
だから「削除申請」が必要なんだけど…
2. サーチコンソールを開く
3. 「削除」ツールを開く
4. URLを貼り付ける
5. 「リクエストを送信」を押す
これを…30回…繰り返す…だと…?
こんなのやってられるかー!😡
APIがあるなら、Pythonにやらせればいいじゃない!
💡 救世主:Google Indexing API
Googleには「Indexing API」という神機能があるの。
これ、「記事をインデックスさせる(登録)」ためによく使われるけど、実は「削除(URL_DELETED)」の通知もできるんだよ!
これを使えば、WordPressで「非公開」にした瞬間、Pythonを実行するだけで、Google様に「この記事消しました!すぐ検索から外して!」って一括送信できるってわけ。
💡 【コピペOK】怒りの全自動削除コード
これが実際に私が使っているツールだよ。
「WordPressから非公開記事のリストを取得」→「Googleに削除通知を連射」という、慈悲のない仕様になってるよ!
【Python】wp_private_indexer.py 全コード
import requests
import json
import os
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# ==============================
# 設定エリア (自分の環境に合わせて書き換えてね!)
# ==============================
# 【WordPress設定】
WP_SITE_URL = "https://orz-0rz.blog/" # あなたのブログURL
WP_USER = "AIGURUI" # ユーザー名
# アプリケーションパスワード (WordPressのユーザー設定で発行できるよ!)
WP_APP_PASSWORD = "xxxx xxxx xxxx xxxx"
# 【Google API設定】
# JSONキーファイルのフルパス (Windowsパス向けに r'' を使用)
SERVICE_ACCOUNT_FILE = r"C:\Users\AIGURUI\Desktop\secret_key.json"
# ==============================
def get_private_posts():
"""
WordPressからステータスが'private'の記事URLを取得する
"""
base_url = WP_SITE_URL.rstrip('/')
api_url = f"{base_url}/wp-json/wp/v2/posts"
# 非公開(private)記事を取得するパラメータ
params = {
'status': 'private',
'per_page': 100,
'fields': 'link'
}
auth = (WP_USER, WP_APP_PASSWORD)
print(f"WordPressから非公開記事を取得中...")
try:
response = requests.get(api_url, params=params, auth=auth)
response.raise_for_status()
posts = response.json()
urls = [post['link'] for post in posts]
return urls
except Exception as e:
print(f"【エラー】取得失敗: {e}")
return []
def notify_google_indexing(urls):
"""
Google Indexing APIを使用してURLの削除(URL_DELETED)を通知する
"""
if not os.path.exists(SERVICE_ACCOUNT_FILE):
print("【エラー】JSONキーファイルが見つかりません")
return
SCOPES = ["https://www.googleapis.com/auth/indexing"]
print("Google Indexing API に接続中...")
try:
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES
)
service = build("indexing", "v3", credentials=credentials)
print(f"対象URL数: {len(urls)} 件の削除通知を開始します...")
for i, url in enumerate(urls, 1):
# ★ここがポイント!タイプを「URL_DELETED」にする
body = {
"url": url,
"type": "URL_DELETED"
}
try:
service.urlNotifications().publish(body=body).execute()
print(f"[{i}/{len(urls)}] 削除通知成功: {url}")
except HttpError as e:
print(f"[{i}/{len(urls)}] 失敗: {url} (Error: {e})")
except Exception as e:
print(f"【エラー】API接続エラー: {e}")
if __name__ == "__main__":
print("--- インデックス削除ツール起動 ---")
private_urls = get_private_posts()
if private_urls:
print(f"計 {len(private_urls)} 件の非公開記事が見つかりました。")
notify_google_indexing(private_urls)
else:
print("非公開記事はありませんでした。")
print("--- 完了 ---")
「過去の失敗(大量の非公開記事)」を「技術のネタ」に昇華する…これこそエンジニアブロガーの生き様だよね!(笑)
このツールのおかげで、もしまたアドセンス審査に落ちて記事整理が必要になっても、私は笑顔でボタンを一つ押すだけで済むようになったよ。
…いや、そもそも落ちないのが一番だけどね!?
みんなも「もしもの時」のために、このツールを用意しておくと心の平穏が保てるかも?
それじゃあ、アドセンス合格目指して頑張ろうね!Pythonしか勝たん!💖






