サイトマップ送信してもクロールが遅く登録されない問題やなぜか登録されないことが多くあったのでGoogle Indexing APIを使ってクロールさせました。phpではなくnode.jsで使いたかったのでサンプルを探すのも一苦労だった。
gatsbyを使用してブログを作成しているが、google search consoleのサイトマップ登録だけではインデックス未登録が多発している。今回Indexing APIを使用すると解決するのでは?ということで
効果がありそうなIndexing APIを使ってgoogleボットさんにクロールを促せました。
HTTP POST実行ですぐにクロールしてくれるので試してみました。
まずIndexing APIを使うには
2.サービスアカウントを作成します。 サービスアカウントの画面が見当たらない場合はここから
3.サービスアカウントに必要な項目を記入してください。
4.サービスアカウントの鍵の作成
5.鍵のダウンロード(json)
作成ボタンで自動的にダウンロードされます。 とても大事な情報になっているため絶対に公開、配布等を行わないでください。
上の検索欄から「Indexing API」を検索して有効化します。
以上でGCPでの作業が終わりました。
権限はオーナーで登録します。
e-mail名はGCPで鍵(json)をダウンロードしたファイルに記載されています。
client_email"の部分 indexser..........comです。
これでgoogle search console全ての作業が終わりました。あとはgoogleさんにクロールしてくれと命令を出すだけです(HTTP POST)
nodejsでのサンプルソースを探しましたがあまりヒットしませんでした。PHPができる方はそちらの方がいいと思います。
nodejsソースが見つかったのでそちらからダウンロードして使用しました。
gitからダウンロードしてください。
GCPで鍵ファイル(json)を同じフォルダーに持って来ます。
npm install
成功すると「node_modules」フォルダーが追加されます。
//4行目を鍵(json)ファイル名に変更
//GOP設定でjson形式でダウンロードしたファイルの事です。
var key = require('./service_account.json');//<--ダウンロードしたjsonファイルを指定します。
//私の場合はvar key = require('./blogindex-360303-1daa248347e7.json');です
//14行目
const batch = fs
.readFileSync('urls.txt')
.toString()
//.split('\n'); //<--ここを
.split('\r\n'');//<--に変更する
https://yumeno-me.com/web/aws_s3/
https://yumeno-me.com/web/gitaction/
https://yumeno-me.com/web/gatsby_2/
node index.jsで実行するとこのような結果になるはず
--batch_sdIKj05-fzhsyCOsPYBFFJ4usKQdnzIf
Content-Type: application/http
Content-ID: response-
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{
"urlNotificationMetadata": {
"url": "https://yumeno-me.com/category/3d/",
"latestUpdate": {
"url": "https://yumeno-me.com/category/3d/",
"type": "URL_UPDATED",
"notifyTime": "2022-22-22T05:16:41.652104915Z"
}
}
}
HTTP/1.1 200 OKが出たら成功しています。 403等が出た時はちゃんとログを読んでみましょう。 もしかするとGCPのIndexing APIが有効になっていなかったり、サービスアカウント鍵(json)が間違ってたりしているかもしれません。
正常に動作している場合は早くて5分後にはgoogle search consoleでクロールが実行された事が確認できました。 1日かかる場合もありました。
google search consoleで反映されていないときはキャッシュ等を削除したら表示されるかも、または、URLを検査してみると登録されていることになっている。 google search consoleはグラフ等結果の反映が時間がかかるよう。なのでだいたい一週間ぐらい気長に待つ必要がある。
他の確認方法としては実際にグーグルで検索してみます。
「site:DomainName」で結果が分かります。
SEOに効果がありそうなIndexing APIを使ってgoogleボットさんにクロールを促せました。
結果から言うとクロールはすぐに実行され、URLを検査で登録を確認することができた。
このapiはペナルティーがないと言われているが、乱用は禁物。どうしても登録できない場合や、急ぎの場合使うのが良さそうです。
本来の目的は、頻繁に更新が入る求人サイトのようなところで使うことを想定されているようです。
nodejsでのプログラムで動くものができたので今後別のサイトでも簡単に使用ができるようにできた。
sitemapだけではどうしても反映が遅い、Indexing APIはすぐクロールを実行してくれるのでサイト運営には必要だと感じる。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください