indexing API を使ってNext.jsで作ってるブログの全ページをGoogleの indexに登録する
この記事は最終更新日から2年以上が経過しています。
概要
Next.jsで作ってるブログの記事がGoogleにindexされてないので困っている。 ひとつづつ Search Console からクロールリクエストをあげても、らちが開かないのでまとめて index に登録されるように処理する。
手順
indexing API を使用するための前準備
基本的に Indexing API を使用する前提条件 の通り設定する
- 前提としてGCPにアカウントを持っている必要がある
- 持ってなければ作る
- セットアップ ツール でプロジェクトの作成と有効化を行う
- サービスアカウントを作って、サイト所有者として追加する
indexing API を使ってリクエストする
node用のクライアントライブラリをインストール
node用のクライアントライブラリ をインストールしておく
yarn add -D googleapis
リクエスト用のツールを作る
こんな感じで作っておく
// tools/indexing.js
var { google } = require('googleapis')
var axios = require('axios')
var key = require('./service_account.json')
const jwtClient = new google.auth.JWT(
key.client_email,
null, key.private_key,
['https://www.googleapis.com/auth/indexing'],
null)
jwtClient.authorize(async function (err, tokens) {
if (err) {
console.log(err)
return
}
const urls = [
// TODO: ここにindexに追加したいURLをいれる
''
]
await Promise.all(
urls.map(url => {
const options = {
url: 'https://indexing.googleapis.com/v3/urlNotifications:publish',
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${tokens.access_token}`
},
data: {
url,
type: 'URL_UPDATED'
}
}
return axios.request(options).then(res => console.log(res))
})
)
})
リクエストする
node tools/indexing.js
こんな感じで実行する
Search Console で結果を確認する
実行前
トップページなど何ページかしかindexされてない残念な状態
実行後
反映に何日かかかるので数日後に確認する(今回は2020/05/07 20:30 ごろ実行した)
大半は登録されたのでOK(登録されてない奴は処理から漏れてたっぽいので後日対応した)