こんにちは、現役沖縄フリーランスエンジニアのmahです。
このブログでは、
僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、
ノウハウなどを書いていきます。
今回は、
- 【sitemap_generator】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> not working【Ruby gem】
についてです。
この記事の結論3行まとめ
- 原因はBing側のping API endpoint (`bing.com/webmaster/ping.aspx`)が2021年12月に廃止されたこと
- 解決策はSitemapGenerator::Sitemap.createの`search_engines`オプションで送信先URLを`webmasters/submiturl?siteUrl=%s`に変更
- 変更後`rake sitemap:refresh`でGoogleとBingの両方のping送信が成功する
【sitemap_generator】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> not working【Ruby gem】
sitemap_generator gemのBing pingエラー(410 Gone)は、送信先URLをwebmasters/submiturl?siteUrl=%sに変更すれば解決します(2026年5月時点)。
- この記事の結論3行まとめ
- 【sitemap_generator】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> not working【Ruby gem】
- よくある質問
エラーの概要は何が起きている?
gem sitemap_generator でサイトマップを作成していましたが、
ping送信時に Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> というエラーになっていることに気づきました。
$ be rake sitemap:refresh In '/Users/xxx/workspace/ccc/vvv/': + sitemaps/sitemap.xml.gz 15 links / 561 Bytes Sitemap stats: 15 links / 1 sitemaps / 0m01s Pinging with URL 'https://s3-ap-northeast-1.amazonaws.com/sitemaps/sitemap.xml.gz': Successful ping of Google Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> (URL http://www.bing.com/webmaster/ping.aspx?sitemap=https%3A%2F%2Fs3-ap-northeast-1.amazonaws.com%2Fsitemaps%2Fsitemap.xml.gz)
エラーになっているのはBingだけで、
googleの方は正常に送信できている様子。
Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone>
で調べているとIssueやPRが出ていました。
- 【Issue】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> #391
- 【PR】Strobilomyces/update bing #386
PRを見た感じ修正されているようですが動いていません。
もう少し見ていると、
2021年の12月にBingのping送信が廃止された?というような情報もありました。
Sometime between December 14th and 22nd, Bing stopped accepting new ping submissions to its XML Sitemap Ping service. The API endpoint at bing.com/ping now returns an HTTP 410 Gone error message.
引用元 => Bing 410 Gone [#3255714] | Drupal.org
これは現在のBingのping送信先URLを確認した方が早そうなので、
Bingウェブマスターツールを見にいきました。
URL送信のタブを選択してアドレスバーを見ると、
http://www.bing.com/webmasters/submiturl?siteUrl=
というようなURLが出ていますが、
現在SitemapGeneratorのインスタンスのパラメータに指定されているURLとは相違しているため、
おそらくこれがエラーの原因です。

# SitemapGeneratorで設定されている、検索エンジン毎のping送信先URL
[4] pry(main)> SitemapGenerator::Sitemap.search_engines
=> {
:google=>"http://www.google.com/webmasters/tools/ping?sitemap=%s",
:bing=>"http://www.bing.com/webmaster/ping.aspx?sitemap=%s" <===== 先ほど見たウェブマスターツールのURLとは違う
}
解決策はどう書き換える?
SitemapGeneratorのインスタンスのBingのping送信先URLを、
「http://www.bing.com/webmasters/submiturl?siteUrl=」 に変更すれば上手くいきそうです。
確認
gem sitemap_generatorのソースを見ていると、
SitemapGenerator::Utilitiesというクラスをオプションにしてping送信先を指定できるようなので、
試しにSitemapGenerator::Sitemapのインスタンスを作る際の引数に当ててみます。
SitemapGenerator::Sitemap.create({ search_engines: { google: "http://www.google.com/webmasters/tools/ping?sitemap=%s", bing: "http://www.bing.com/webmasters/submiturl?siteUrl=%s" } }) do
add 'ページのURL'
end
- sitemap_generator
この状態で再度 rake sitemap:refresh を実行すると、
GoogleもBingでもping送信できました。
$ be rake sitemap:refresh In '/Users/xxx/workspace/ccc/vvv/': + sitemaps/sitemap.xml.gz 15 links / 561 Bytes Sitemap stats: 15 links / 1 sitemaps / 0m01s Pinging with URL 'https://s3-ap-northeast-1.amazonaws.com/sitemaps/sitemap.xml.gz': Successful ping of Google Successful ping of Bing
以上です。
よくある質問
- `sitemap_generator` gemのバージョン依存性はある?
- `search_engines`オプションはLinkSet#initializeで受け取れるため、バージョンに依存しません。GitHubのlib/sitemap_generator/link_set.rb L123-L134で実装確認できます。
- Google側のping URLも変更が必要?
- Google側は従来通り`www.google.com/webmasters/tools/ping?sitemap=%s`で問題ありません。本記事の解決策ではGoogleの送信先URLはデフォルト値を引き続き指定しています。
- PR #386が出ているのに動かないのはなぜ?
- PR修正後もBing側のAPI endpoint廃止(410 Gone)はgem側で対処できず、利用者がインスタンス生成時に新しい送信先URLを上書き指定する必要があります。