Search Console APIで自動診断|クリック9割が非開示クエリの罠と無料SEO監査術
Google Search Console の管理画面を開き、「クエリ(検索語句)」タブの上位に並んでいる 2〜3 語のキーワードだけに合わせて記事タイトルをスッキリ短く書き換えたら、翌週から検索流入がガクッと落ちてしまった——そんな経験はありませんか。
当ブログ(公開 555 記事)で公式 Search Console API(searchanalytics.query および urlInspection.index:inspect)を使い、全ページ・全クエリの生データを抜き出して突き合わせたところ、驚くべき数字が浮かび上がりました。直近 28 日間のページ別クリック合計(211 回)のうち、なんと 89.6%(189 回) はクエリ一覧に 1 文字も表示されない 『匿名化クエリ(非開示の長文ロングテール検索)』 から発生していたのです。
さらに API の生データには、①目次サイトリンク(/#見出し)による表示回数の最大 7 倍水増し、②URL 移転後の 301 リダイレクト分裂、③謎の『site:無料サーバー』ボット検索の写り込み という 3 つの罠が潜んでいました。本記事では、これらのノイズを綺麗に除去しつつ、高額な月額 SEO ツールを一切使わず Node.js × SQLite × macOS launchd で毎朝 8 時 15 分に自動診断を回し、週間検索クリックを 3.4 倍(+237.5%)に伸ばした全手順 を実測データとともに公開します。
-
Google AdSenseは表示されるだけで収益になる?CPM移行と「面積50%・1秒以上」視認性の壁 : インプレッション課金(CPM)移行後に重要となったActive View(面積50%以上・連続1秒以上)の視認性基準と配置戦略を解説しています。
-
Search Console「生成AI機能」ベータ版実測|検索3ページ目抜擢の法則と公式ZIP突合・API制限 : AI Overviews への引用が 3 か月で 179 倍増した実測値と、API にはまだない「生成 AI 分離枠」を公式 ZIP で補完する手順です。
-
Search Consoleの更新が1週間〜10日止まる原因と「GoogleOther(29%)」の正体 : 管理画面の集計バッチが止まった際、URL 検査 API で新着記事の即時インデックス登録を裏取りした検証録です。
-
Search Console「未登録」が多い時の見方|送信済み絞り込みとAstroサイトマップ改善 : 「未登録 1,449 件」のノイズを剥がして真の登録率を見抜く方法と、日本語 URL 除外の罠を防ぐサイトマップ設定です。
-
Googlebot巡回診断・サーバー生ログ解析・URL検査|クローラーのサイト評価を見抜く4つの公式手法 : エックスサーバーの生アクセスログ解析と、2 種類の「インデックス未登録」の具体的な打ち分け方を解説しています。
-
SQLiteはなぜMySQLより速い?WAL・FTS5とNode.jsで500記事探索をミリ秒化した実装録 : 本記事の自動 SEO 監査で「内部リンク数」や「見出しテキスト」との突合基盤になっているローカル知識 DB の設計図です。
-
Search Console の画面を見ながらリライトしているのに、なぜかクリック数が伸び悩んだり逆に減ったりして困っている方
-
Web 管理画面の 「1,000 行上限」や「ページ一覧とクエリ一覧が別シートに分断される制限」 を API で一気に解消したい方
-
Ahrefs や Rank Tracker などの有料 SEO ツール(月数千円〜数万円)を契約せず、公式無料 API だけで 500 記事規模の死活監視とお宝キーワード発掘を自動化したい方
-
「表示 0 回」の記事が 『未登録だから出ないのか、登録済みなのに検索語がズレているのか』 を一括で仕分けたい方
Search Console の管理画面からエクセル(CSV)をダウンロードすれば十分じゃと思っていたんじゃが、わざわざ API を使うとそんなに違うものが見えるんかのう?
実は「まったく別世界」と言っていいほど情報量が変わります!管理画面のエクスポートは 『ページ一覧』と『検索ワード一覧』がバラバラの表に分かれてしまう うえ、上位 1,000 件までしか出せません。API で両方を掛け合わせた生データを引いてみると、普段の画面では隠れていた「衝撃の氷山構造」が一目でわかるんですよ。
クリックの9割が見えない『匿名化クエリ』の衝撃
まず最初に、当サイト(sc-domain:lab.chihouzakki.com)で Search Console API の searchanalytics.query を呼び出し、①日付別(date)、②ページ単体(page)、③ページ×検索語句(page + query) の 3 種類のディメンションを同じ期間で取得して突き合わせた実測表をご覧ください。
| 集計期間・取得方法 | 日付別合計 (date) | ページ別合計 (page) | 検索語開示分 (page×query) | 非開示(匿名化クエリ)の比率 |
|---|---|---|---|---|
| 直近 28 日間のクリック数 | 208 回 | 211 回 | 22 回 | 89.6%(189 回が非開示) |
| 直近 28 日間の表示回数 | 3,974 回 | 5,411 回 | 721 回(※重複除外後) | 86.7%(4,690 回が非開示) |
| 過去 90 日間のクリック数 | 423 回 | 426 回 | 100 回 | 76.5%(326 回が非開示) |
| 過去 90 日間の表示回数 | 6,631 回 | 10,274 回 | 1,312 回(※重複除外後) | 87.2%(8,962 回が非開示) |
※ date(サイト全体集計)より page(ページ別延べ集計)の数値が少し大きいのは、1 回の検索結果画面に当サイトの関連 2 記事が同時に並んだ場合、date では「サイトとして 1 表示」と数えるのに対し、page では「それぞれの記事に 1 表示(計 2 表示)」と数える Google 公式の集計仕様によるものです。
クエリ一覧を全部足しても全体の1割しかない理由
上の表を見て、多くの方が二度見されるのではないでしょうか。直近 28 日間で記事ページが合計 211 回 クリックされているにもかかわらず、「どの検索ワードでクリックされたか(page × query)」の行をすべて足し合わせても わずか 22 回(10.4%) しかありません。残りの 89.6%(90 日間でも 76.5%) のクリックは、検索ワード欄から完全に消えているのです。
これはバグではなく、Google が検索ユーザーのプライバシー保護のために設けている 『匿名化されたクエリ(Anonymized queries)』 という公式仕様です。
-
個人情報や固有状況を含む検索の保護 : 誰が検索したか推測されかねない固有の組み合わせや、数か月間で数回〜数十回未満しか検索されない珍しい語句は、統計上の合計値(
dateやpage)には加算しつつ、個別クエリ表からは自動で伏せられます。 -
AI検索・音声入力による「長文・会話型検索」の急増 : 近年は「〇〇 使い方」のような短い単語検索よりも、「Mac で PDF を印刷すると白紙になる 文字だけ抜ける」や「アイドリングストップ バッテリー 交換 ディーラー 言われたけどまだ使える?」のように、自分の悩みをそのまま 4〜7 語で打ち込む 1 人 1 通りのロングテール検索 が主流になっています。
-
技術・実機レビュー記事ほど長文の一本釣りが多い : 型番・エラー症状・利用環境が具体的に書かれた実体験記事ほど、毎月何百通りもの「1 回限りの切実な長文検索」にピンポイントで刺さるため、結果として匿名化クエリ経由のクリック比率が 8〜9 割に達します。
見える検索語だけでタイトルを削ると流入が崩壊する
この「氷山の水面下に 9 割のクリックがある」という事実を知らないまま SEO 対策を行うと、取り返しのつかないリライト事故を起こしてしまいます。
-
クエリ表に見える上位 1〜2 語だけを残し、「スッキリ短い 28 文字タイトル」へ大幅に削ってしまう
-
水面下で 200 表示・20 クリックを稼いでいた 長文ロングテール語(症状・副題・比較機種名)が消滅
-
結果:狙ったビッグワードでは大手に勝てず、既存の安定流入まで失う二重苦に陥る
-
page合計とpage×query合計の差分から、水面下の匿名化流入ボリュームを記事ごとに可視化 -
すでにクリックを生んでいる 既存タイトルの主要キーワード骨格は 1 文字も削らず温存 する
-
スマホ先頭 28 文字の語順整理と、本当に欠けていた検索語(モード名や型番揺れ)の自然な追記 だけを行う
たとえば当サイトの主力記事である CTEK充電器の長期検証レビュー は、28 日間で 251 表示 / 10 クリック を獲得していますが、そのうち開示クエリ分はわずか 2 クリック / 49 表示で、残りの 8 クリック / 202 表示はすべて匿名化ロングテール検索 です。
ここで既存の「使い方・RECOND・SUPPLY・成層化解消」という骨格を削ってしまえば 202 表示の土台が壊れます。逆に骨格を守ったまま、API のクエリ表で「記事内には書いてあるのに title にだけ入っていなかった 『モード』(ctek リコンディション モード で 11.4 位・16 表示)」を補うことで、既存の流入を 1 ミリも減らさず 1 ページ目上位へ引き上げることができるのです。
API生データの取得で判明した3つの集計トラップ
さらに公式 googleapis パッケージ(searchconsole v1、1 リクエスト最大 25,000 行ページング対応)を使って生データを自動集計するスクリプトを組んだところ、「API の返り値をそのまま単純合算すると数字が大きく狂う 3 つの罠」 があることが実測で判明しました。
目次サイトリンクで表示回数が最大7倍に水増しされる
1 つ目の罠は、記事内に目次(TOC)を置いているブログ特有の 『/#見出し(フラグメント付き URL)の重複計上』 です。
dimensions: ["page", "query"] を指定して API を叩くと、通常の記事 URL だけでなく、検索結果の下に小さなジャンプ先リンク(サイトリンク)として同時表示された目次アンカー URL まで別々の行として返ってきます。実際に当サイトの生 CSV に記録されていた実例がこちらです。
- 親記事行:
/blog/ctek/(クエリ:ctek mxs7 0 使い方→ 3 表示 / 8.0 位) - 目次行①:
/blog/ctek/#論旨(同クエリ → 3 表示 / 8.0 位) - 目次行②:
/blog/ctek/#対象となる方(同クエリ → 3 表示 / 8.0 位) - 目次行③〜⑥:
#アイドリングストップ...他 4 見出し(同クエリ → 各 3 表示 / 8.0 位)
なんと たった 3 回検索されただけなのに、親 URL と 6 個の目次リンクの計 7 行すべてに「3 表示」が付与され、単純に足し算すると「21 表示(7 倍の水増し)」に化けてしまう のです。当サイトの 28 日データ全体でも、この # 付き重複行が 32 行(計 102 表示分の水増し) 含まれていました。
これを放置すると「表示回数ばかり多くてクリック率(CTR)が異常に低い記事」と誤診してしまうため、集計スクリプトでは必ず以下の正規化ルールを入れる必要があります。
-
クリック数(
clicks)は全行を合算する : 読者が親タイトルをクリックしても、下の目次ジャンプ先リンクを直接クリックしても、実際に記事へ訪れた貴重な 1 クリックであることに変わりはありません。 -
表示回数(
impressions)は同一クエリに#無しの親行があれば加算しない : 同じ検索結果画面に親 URL と目次リンクが同時表示されているだけなので、親行のimpressionsだけを採用し、#付き行の重複分は捨てます(※まれに#付き行しか返らないクエリがある場合のみ、その最大 1 行分の表示回数を採用します)。
移転後301リダイレクト74件の評価分裂と名寄せ合算
2 つ目の罠は、WordPress などから Astro へ移行したりディレクトリ構造を整理したりしたサイトで起きる 新旧 URL のデータ分裂 です。
.htaccess で完璧に 301 リダイレクト(恒久転送)を設定していても、Search Console の過去 28 日〜90 日の集計期間内には「移転前の旧 URL で表示・クリックされた履歴」と「移転後の新 URL で表示・クリックされた履歴」の両方が残ります。当サイトの 28 日データでも、生の URL 数は 527 件 あったのに対し、.htaccess の転送ルールを読み込んで正規パスへ自動名寄せしたところ 395 記事(旧 URL 履歴 74 件を統合) に集約されました。
名寄せを行わないと「本当は合計 30 クリック稼いでいる首位のエース記事」が「旧 URL 18 クリック・新 URL 12 クリック」のように半分ずつに割れて見え、内部リンクの発射台選びを誤ってしまいます。詳しくは Xserver×Astroの500エラー解決と.htaccess設計録 でも解説している通り、ローカルの .htaccess をそのまま名寄せ辞書として使うのが最も確実です。
謎の『site:無料サーバー』検索19件の混入と除外
そして 3 つ目の罠は、API で全クエリを吸い上げて初めて気づいた 奇妙な検索コマンド群の写り込み です。当サイトの Amazonマーケットプレイス返金体験記 の生クエリを確認したところ、人間が普通に入力するはずのない以下のような長文クエリが 計 19 行(平均 3.0〜10.0 位) も並んでいました。
site:vercel.app "amazon" "返金可能" -site:amazon.co.jp -site:amazon.com -site:amazonaws.com -site:aboutamazon.jp -site:primevideo.com
site:pages.dev "amazon" "返金可能" -site:amazon.co.jp ...
site:github.io "amazon" "返金可能" -site:amazon.co.jp ...
site:fly.dev "amazon" "返金可能" -site:amazon.co.jp ...
site:netlify.app / render.com / firebase.com / herokuapp.com / blogspot.com / wixsite.com / jimdo.com / livedoor.jp / hatena.ne.jp / lolipop.jp / sakura.ne.jp ...(計18ドメイン)
ちょっと待って!site:vercel.app とか site:github.io って「その無料サーバーの中だけを検索しろ」という指定よね?なんで全然関係ない独自ドメインのこのブログが 3 位〜7 位に表示されてカウントされているの!?気持ち悪いわ!
本当に不思議ですよね!サイトが乗っ取られたわけでは一切ないので安心してください。これには 「誰が検索しているのか」 と 「Google 検索側の挙動」 の 2 つの裏事情があるんです。
まず誰がこんな検索を回しているのかという点ですが、推論 として最も可能性が高いのは フィッシング詐欺サイトを自動パトロールしているセキュリティ調査ボット(または攻撃側の偵察スクリプト) です。近年、「Amazon の欠品・返金を PayPay 等で行う」と騙る詐欺サイトが Vercel や Cloudflare Pages(pages.dev)、GitHub Pages などの無料ホスティングや無料ブログに大量に使い捨て設置されるため、公式ドメイン(-site:amazon.co.jp 等)を除外した特殊検索コマンド(Google Dork)で定期スキャンが行われています。
そして、指定された無料サーバー内に "amazon" "返金可能" に一致するページが 0 件(または極少)だった際、Google 検索が「条件に完全一致する結果がないため、関連語句を含む他サイトの結果を表示」とソフトフォールバック展開した結果、たまたま「Amazon」「返金」の実体験を詳しく書いていた当サイトの記事が検索結果画面の下部に並び、インプレッションが記録されたというカラクリです。
もしこうした site: や -site: 付きのボット検索をそのままキーワード欠落診断にかけてしまうと、「あなたの記事タイトルには site:vercel.app という重要語が足りません!」というとんでもない誤判定が起きてしまいます。自動診断スクリプトでは、検索演算子(site:・-site:・inurl:・filetype: 等)を含むクエリを最初に入口で弾くフィルタが必須です。
URL検査API×SQLiteで未露出154件を仕分ける
searchanalytics.query が「すでに検索結果に出ている記事の伸ばし方」を教えてくれる API だとすれば、もう 1 つの公式 API である urlInspection.index:inspect(URL 検査 API) は、「公開したのに過去 90 日間 1 回も表示されていない記事(表示ゼロ記事)の真因」を教えてくれる聴診器です。
URL 検査 API には 1 プロパティあたり 1 日 2,000 件(1 分あたり 600 件)まで完全無料 という十分な枠があります。そこで当サイトの過去 90 日間で表示 0 回だった公開記事 154 件 を並列数 5 で一括検査し、手元の SQLite 知識 DB に記録されている「サイト内の被リンク数(inbound_links)」と結合してみたところ、思い込みを覆す内訳が出ました。
| 診断バケット分類 | 件数(比率) | Google 側の実際の状態 | 最優先で打つべき対策 |
|---|---|---|---|
| 🟢 登録済・検索語不一致 | 87 件(56.5%) | すでにインデックス登録完了済(エラーなし) | クロール待ち不要!title 先頭 28 文字と description を直球の検索語へ改善 |
| 🟡 クロール済・評価保留 | 20 件(13.0%) | Googlebot が本文を読んだ上で登録を見送り中 | 主力エース記事からの内部リンク注入 + 導入結論・独自実測データの強化 |
| 🔴 検出・未クロール | 47 件(30.5%) | URL の存在は認知されたがボットがまだ未訪問 | 章ハブや関連人気記事からの双方向リンク結線 で巡回優先度を引き上げる |
| 🚨 取得エラー・noindex事故 | 0 件(0.0%) | 404 / 5xx / 誤ブロック / 正規 URL 競合 | HTTP 応答コード・.htaccess・メタタグの即時修正 |
※ なお API 仕様上の注意点として、まだ一度もクロールされていない記事(検出 - インデックス未登録 や URL が Google に認識されていません)を検査すると、indexingState フィールドが INDEXING_STATE_UNSPECIFIED で返ってきます。これをプログラム側で「異常エラー」と誤判定せず、正しく「未クロール(内部リンク強化対象)」へ振り分けるのがコツです。
表示ゼロ記事の過半数は登録済みの『検索語ズレ』だった
一番の発見は、「90 日間まったく検索に表示されていない 154 記事のうち、過半数の 87 件(56.5%)は、とっくの昔に Google のインデックスに登録されていた」 という事実でした。
管理画面で検索流入がない記事を見ると、つい「まだ Google にインデックスされていないのかな?手動でインデックス登録リクエストを送ろうかな?」と考えてしまいがちです。しかし実際には半分以上の記事がすでに検索台帳に載っており、ただ 「書き手が付けた抽象的なタイトル(例:『雇用破壊のアルゴリズム』や『愛用品のメンテナンス録』)」と「読者が実際に打ち込む検索ワード」が噛み合っていないために 100 位圏外に沈んでいただけ だったのです。
被リンク数と掛け合わせた3バケット別の最短改善ルート
原因が 3 つに割れている以上、すべての記事に同じ対策をしても時間の無駄になります。URL 検査 API の結果と SQLite の被リンク数を組み合わせると、迷いゼロで最短の手が打てます。
-
🟢 登録済(87 件)への処方箋 : すでに Googlebot は中身を認めて台帳に載せているため、内部リンクを増やすよりも
titleの先頭 25〜28 文字に「製品名・型番」や「直球の悩み検索語」を配置する改善 が数日単位で最も早く効きます。 -
🟡 クロール済未登録(20 件)& 🔴 未クロール(47 件)への処方箋 : こちらはタイトルだけをいじってもクローラーが再訪してくれません。先ほどの
searchanalytics.queryで特定した 「直近 28 日間の主力エース記事トップ 25(Googlebot が頻繁に巡回している人気ページ)」の冒頭『合わせて読みたい深まる関連情報』枠からルート相対リンクを繋ぐ のが特効薬になります。
月額0円!毎朝8時15分の無人SEO監査と改善実測
一度きりの手動分析で終わらせず、「寝ている間にサイトの健康診断と改善候補のリストアップが終わっている状態」を作るため、当サイトでは macOS 標準の launchd(毎日 08:15 + ログイン時起動)に定期自動診断スクリプトを組み込みました。
date・page・page×queryと未露出記事のURL検査を取得し、#見出し重複と演算子ノイズを除去。
ローカル知識DBの被リンク網・見出し・定数展開結果と突き合わせ、孤立記事や未知URL・急落がないか検査。
直近14日以内に改修した記事は「効果測定中」として除外し、未着手の1ページ目お宝記事だけを提案.txtへ追記。
launchdと起動フックでお宝記事を自動起票する
GCP(Google Cloud)で発行したサービスアカウントのメールアドレス(client_email)を、Search Console の「設定 > ユーザーと権限」に 『制限付き(読み取り専用)』 で登録しておけば、ブラウザのログイン画面を開くことなく Node.js から半永久的に無人実行できます(※秘密鍵 JSON と取得生データは .gitignore 管理下の _local_db/ に隔離し、Git への誤コミットを二重ロックで防いでいます)。
毎朝の自動ルーチンでは、以下の 「守りの 5 大不具合監視」 と 「攻めのお宝記事ピックアップ」 を同時に実行します。
-
URL_INSPECTION_ERROR(重大) : 公開記事に404・サーバーエラー・誤noindex・ブロック事故が発生していないか(新着記事発生時および月・木の 72 時間周期で自動検査)。 -
UNMATCHED_GSC_URL(高) : Search Console 上に表示された URL のうち、現在のローカル記事にも.htaccessの301転送ルールにも対応先がない「迷子 URL」がないか。 -
LINK_GRAPH_DEFECT(高) : どの記事からもリンクされていない「孤立記事(被リンク 0)」や、他記事への誘導がない「行き止まり記事(発リンク 0)」が再発していないか。 -
METADATA_DEFECT(高) : 記事タイトルやdescriptionに未展開のプログラム変数露出や極端な文字数不足がないか。 -
TRAFFIC_DROP_WARNING(注意) : 速報値のブレを除いた確定 7 日間のクリック数が、前週比で-55%以上急落していないか。
クールダウン14日ルールと週間クリック3.4倍の成果
自動起票を作るときに一番大切な工夫が 『改修後 14 日間のクールダウン(効果測定待ち)フィルタ』 です。
今日タイトルを改善した記事は、Google が再クロールして検索順位や CTR に変化が出るまで最低でも 1〜2 週間かかります。それなのに過去 28 日間の累計データだけを見て毎日「この記事は CTR が低いです!」と通知し続けたら、オオカミ少年になってしまいます。そこでファイルの更新日時から 14 日未満の記事は自動的に『⏳ GSC 効果測定中』の別枠へ退避させ、まだ手を付けていない新しいお宝記事(平均 12.5 位以内・20 表示以上で重要検索語がタイトルから漏れている記事)だけを起票する設計 にしました。
この仕組みで「旧 URL の 301 正規化 → 匿名化骨格を守った 1 ページ目記事の欠落語統合 → エース記事からの双方向リンク注入」を回した結果、直近の実測パフォーマンスは以下のように推移しています。
- 直近 7 日間の検索クリック数 : 108 回(前 7 日間の 32 回から +237.5% = 約 3.4 倍)
- 直近 28 日間の検索クリック数 : 208 回(前 28 日間の 101 回から +105.9% = 約 2.1 倍)
- 直近 28 日間の検索表示回数 : 3,974 回(前 28 日間の 1,291 回から +207.8% = 約 3.1 倍)
- 要対応の SEO 不具合件数 : 全 555 記事で 0 件 を継続維持
毎月 1 万 5,000 円もするような海外製 SEO ツールを契約せんでも、公式の無料 API と手元の Mac だけでここまで正確に「次に直すべき記事」が毎朝出てくるんじゃな!年間で 18 万円以上の節約になるし、何より自分のサイトの一次データじゃから嘘がないのう。
そうなんです!外部の推定ツールは個人・中小規模サイトのロングテール検索をほとんど捕捉できませんが、Search Console API なら Google 自身の本物の台帳データ を 1 円もかけずに直接扱えますからね。
まとめ:生データの癖を知りAIに毎朝の点検を任せる
今回の Search Console API 実測検証で得られた要点をまとめます。
-
クリックの 8〜9 割は「匿名化クエリ」にあると心得る : クエリ表に見える数個の短い単語だけに合わせて既存タイトルの骨格を削るのは厳禁です。
page合計とpage × query合計の差を見て、水面下のロングテール資産を守りながら欠落語だけを補いましょう。 -
API 生データの「3 大ノイズ」を必ずクレンジングする : 目次サイトリンク(
/#見出し)の表示重複、移転前の旧 URL 分裂、site:等のボット検索演算子を入口で正規化・除外して初めて、正確な CTR と改善優先度が見えてきます。 -
表示ゼロ記事は「URL 検査 API × 被リンク数」で 3 分類する : 「登録済みの検索語ズレ(過半数)」にはタイトル改善を、「クロール済保留・未クロール」には主力エース記事からの内部リンク結線を当てることで無駄打ちがなくなります。
-
毎日の点検と 14 日間の効果測定管理は機械に任せる : サービスアカウント(読み取り専用)と定期バッチを組めば、人間は「書くこと」と「本当に効く数行の改善」だけに時間を使えるようになります。
もしご自身の Astro ブログや個人サイトでも、今回ご紹介したような 「匿名化クエリ比率の算出・#見出し 重複除外・URL 検査 API 仕分け・定期自動診断スクリプト」 を構築したい場合は、認証鍵の保護設定や API 集計ロジックの読み飛ばしを防ぐため、軽量モデルではなく 必ず『Gemini 4 Argon』または同等以上の最上位推論モデル を選び、以下のプロンプトを貼り付けて事前調査から進めてみてください。
以下の参考記事の仕様(Search Console APIでのdate / page / page×query一括取得、匿名化クエリ比率の算出、目次サイトリンク #anchor の重複インプレッション除外、リダイレクト名寄せ、site:演算子ノイズ除外、およびurlInspection.index:inspect APIによる未露出記事の3分類診断)を踏まえて、私のサイト環境向けのSEO自動診断CLIスクリプトを設計してください。
参考記事URL: https://lab.chihouzakki.com/blog/review/search-console-api-anonymized-queries-auto-audit/
【重要ルール】
1. いきなりコードを書き始めず、まず私のプロジェクトの記事ディレクトリ構造、フロントマター形式、リダイレクト設定ファイル、.gitignore の状態を調査してください。
2. GCPサービスアカウントJSON鍵や出力データは必ず .gitignore で保護されたローカル専用フォルダに配置し、既存記事ファイルを勝手に書き換えない「読み取り・レポート出力専用」として設計案を提示し、私の合意を得てから実装してください。 
▲ 毎朝の細かい数字チェックは自動スクリプトに任せて、人間も猫もゆったり朝を迎えましょう