ブロガーがSEO対策をする上で、必ず使うのがGoogleのサーチコンソールです。
すでに登録し使用されている方がほとんどだと思いますが、
新しい記事がなかなかインデックスされない
という悩みを持つブロガーさんも多いのではないでしょうか。
インデックスの登録状況を確認するため、サーチコンソールのURL検査を何度も見に行った経験があるかと思います。
インデックスされていない記事が複数ある場合、このフォームにURLを入力して、しばらく待って、、、
というのを何度も繰り返す必要があり、ストレスがたまります。
このストレスを削減できるAPI(システム的に問い合わせをすると自動で情報を返してくれる仕組み)が、公開されました。
それが、Search Console URL Inspection APIです。
インデックス状態を確認できるSearch Console URL Inspection API
Search Console URL Inspection APIを使うと、指定された記事URLについて
- インデックスされているか
- クロールされているか
- インデックス可能な状態か
- モバイルフレンドリーか
- robots.txtにブロックされているか
などの情報を、サーチコンソールの画面にアクセスせずに確認することが出来ます。
そして、GoogleスプレッドシートでGoogle Apps Scriptを使うことで、このAPIから情報を取得することが出来ます。
URL Inspection API を使用するための条件
スプレッドシート経由で、URL Inspection APIを使うためには、以下の条件が必要となります。
- 確認対象となるサイトについて、サーチコンソールの「所有者」か「フルユーザー」の権限を持っている
- 上記のGoogleアカウントにログインした状態で Google Developer Consoleにアクセスできる
- Googleスプレッドシートの拡張機能からAppsScriptにアクセスできる
ブログを個人で運営していて、自分でサーチコンソールの登録をしたのであれば、上記は全て満たすことができるはずです。
Google Apps Scriptのコードとレスポンス形式
とりあえず動くコードとレスポンス形式だけ確認したいという方向けに、実際に稼働したコードを記載しておきます。
※GCPのプロジェクト作成、API有効化、OAuth設定、プロジェクトとの紐付けなどの手順が分かる方向け
Apps Script本体
function getIndexStatus() {
let blogDomain= "sc-domain:対象ブログのトップドメインを入れる";
let articleUrl = "ここに検査したい記事URLを入れる";
let requestUrl = "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect";
let requestPayload = {
"inspectionUrl": articleUrl,
"siteUrl": blogDomain,
"languageCode": "ja-JP"
}
let requestOptions = {
'method' : 'post',
'payload' : requestPayload,
'muteHttpExceptions' : true,
'headers' : {"Authorization" : "Bearer " + ScriptApp.getOAuthToken()}
}
let response = UrlFetchApp.fetch(requestUrl, requestOptions);
Logger.log(response);
}
マニフェストファイル
{
"timeZone": "America/New_York",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"dependencies": {},
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/webmasters",
"https://www.googleapis.com/auth/script.external_request"
]
}
実行成功時のレスポンス
{
"inspectionResult": {
"inspectionResultLink": "https://search.google.com/search-console/inspect?resource_id=sc-domain:roi-log.com&id=nuBGaS4Nr5ZqFbiToTbpvA&utm_medium=link&utm_source=api",
"indexStatusResult": {
"verdict": "PASS",
"coverageState": "送信して登録されました",
"robotsTxtState": "ALLOWED",
"indexingState": "INDEXING_ALLOWED",
"lastCrawlTime": "2022-02-03T04:22:10Z",
"pageFetchState": "SUCCESSFUL",
"googleCanonical": "検査対象の記事URL",
"userCanonical": "検査対象の記事URL",
"sitemap": [
"https://roi-log.com/feed/",
"https://roi-log.com/sitemap.xml"
],
"crawledAs": "MOBILE"
},
"mobileUsabilityResult": {
"verdict": "PASS"
},
"richResultsResult": {
"verdict": "PASS",
"detectedItems": [
{
"richResultType": "パンくずリスト",
"items": [
{
"name": "名前のないアイテム"
}
]
}
]
}
}
}
URL Inspection API を使用するまでの手順
Search Console URL Inspection API を使用するまでの手順は、Googleの開発者向けの画面での設定もあり、少し複雑です。
- Google Developer Console で新規プロジェクトを作成する
- Search Console APIを有効化する
- OAuthの認証画面を作成
- スプレッドシート上のApps Scriptの設定を変更する
- スクリプトエディタにApps Scriptのコードを記載する
- スクリプトを実行する
ここから先は、その手順を実際の画面キャプチャを見ながら、1つ1つ解説していきたいと思います。
Google Developer Consoleで新規プロジェクトを作成する
まずは、サーチコンソールを確認できる状態(Googleアカウントにログインした状態)で、Google Developer Consoleにアクセスします。
初めてアクセスする場合は、利用規約などの同意画面が表示されますので、規約内容を確認し同意します。
つづいて、プロジェクトの選択画面が出てきますので、右上の「新しいプロジェクト」を選択します。
好きなプロジェクト名を入力し、「作成」ボタンを押します。
作成が終わると、Google Developer Consoleの画面の右上に、ステータスが表示されますので、「プロジェクトを選択」を押して、プロジェクトの設定画面に移動します。
Search Console APIを有効化する
プロジェクトが作成されたら、Search Console APIを使えるようにします。(APIの有効化)
Search Console APIのページに移動して、「有効にする」ボタンを押します。
OAuthの認証画面を作成
APIを有効化したら、OAuthの認証画面を作成します。(APIを使用するためのセキュリティ認証に必要な作業)
設定画面に行って以下の手順で設定していきます。
「保存して次へ」を押して「②スコープ」の設定です。
ここでは設定変更する箇所はありませんので、そのまま「保存して次へ」を押します。
「③テストユーザー」では、ログインしているGmailアドレスを設定しておきます。
他の人にも同じ機能を使ってもらいたい場合は、その人のGmailアドレスをここに追加します。
「保存して次へ」を押して「④概要」を確認します(設定項目なし)。
画面最下部に「ダッシュボードに戻る」というボタンがあるので、ダッシュボードに戻ります。
ダッシュボードに戻ったら、「プロジェクト番号」の内容を控えておいてください。
(もしくはそのまま、タブを開いたままにしておいてください)
スプレッドシート上でApps Scriptの設定を変更する
ここからはスプレッドシートでの作業となります。
まずは新しいスプレッドシートを作成し、「拡張機能」から「Apps Script」の編集画面を開きます。
Apps Scriptの画面から右側のメニューにある「プロジェクトの設定」を押します。
プロジェクトの設定で、以下の項目にチェックを入れて、画面下部に移ります。
Google Cloud Platform(GCP)プロジェクトの項目から「プロジェクトの変更」ボタンを押し、以下のプロジェクト番号のフォームに、Google Developer Consoleのダッシュボードに表示されていたプロジェクトコードを入力します。
スクリプトエディタにApps Scriptのコードを記載する
まずは、左のメニューのファイルにある「コード.gs」を開いて、以下のコードを記載します。
function getIndexStatus() {
let blogDomain= "sc-domain:対象ブログのトップドメインを入れる";
let articleUrl = "ここに検査したい記事URLを入れる";
let requestUrl = "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect";
let requestPayload = {
"inspectionUrl": articleUrl,
"siteUrl": blogDomain,
"languageCode": "ja-JP"
}
let requestOptions = {
'method' : 'post',
'payload' : requestPayload,
'muteHttpExceptions' : true,
'headers' : {"Authorization" : "Bearer " + ScriptApp.getOAuthToken()}
}
let response = UrlFetchApp.fetch(requestUrl, requestOptions);
Logger.log(response);
}
続いて、「appsscript.json」に以下のコードを記載します。
{
"timeZone": "America/New_York",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"dependencies": {},
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/webmasters",
"https://www.googleapis.com/auth/script.external_request"
]
}
これで実行準備は完了です。
スクリプトを実行する
スクリプトを実行するには、画面上部にある「▷実行」を押してください。
初めて実行をする場合、認証の確認画面が表示されますので、全て許可します。
スクリプトの実行が成功し、Search Console URL Inspection APIから情報が戻されると、スクリプトエディタの下部にその内容が表示されます。
APIから戻されるデータ形式はJSONですので、これを加工するとスプレッドシートへの反映も可能となります。
応用:サーチコンソールAPIを使ったキーワード順位履歴ツール
サーチコンソールAPIでできるのは、インデックス状態の確認だけではありません。
サーチコンソールとWeb画面と同じように、指定期間 x キーワードでの検索数や検索順位を取得できます。
サーチコンソールをより便利に使えるようになるツールの作り方を以下の記事にまとめていますので、御覧ください。
まとめ
GoogleのURL Inspection APIの実装により、SEO担当者やブロガーがインデックス状況を簡単に確認できる環境が整いました。
Google Apps Scriptやスプレッドシートで使って、よりスムーズにSEO対策ができる様になると思います。
その一歩として、この記事がお役に立てるようであれば、幸いです。
Apps Scriptの学習をして自分で改造できるようになると、より高度な分析が出来るようになります。
Apps Scriptを体系的に学べるUdemyの講座を集めてみましたので、深く学びたい方は見てみてください。