Bing のSEO対策

Google のSEO対策の投稿「Google のSEO対策」の続きとして、今回はMicrosoft Bing のSEO対策について整理しようと思います。

WordPress のブログ立ち上げの流れなので、WordPress と絡めた整理になります。

Microsoft Bing

Microsoft 社が提供する検索サービスです。

以前は単に「Bing」という名称でしたが、2020年10月に「Microsoft Bing」に名称が変更されました。
この変更により、Microsoft が提供するWindowsタスクバーやWindows 365など他のサービスが行っている検索サービスを含めた総合的な名称として「Microsoft Bing」を使うことになったようです。
Bing の仕組み自体は変わっていないようです。

Webmaster Tools

ウェブサイトのサイトマップの登録や、インデックス登録の依頼などをすることができるサービスとして、Webmaster Tools というものが用意されています。
Google のSearch Console と同様の機能があり、操作も似ているのでSearch Console を使ったことがあれば、抵抗なく使えるのではないかと思います。

Webmaster Tools – Microsoft Bing
Webmaster Tools help & how-to – Microsoft Bing

Webmaster Tools を始める

1. Webmaster Tools にアクセス

Webmaster Tools のサイトにアクセスして [サインイン] ボタンをクリックします。

Webmaster Tools
Webmaster Tools トップページ

2. サインイン(アカウントの選択)


Microsoft、Google、Facebook のいずれかのアカウントでサインインします。

アカウントの選択
アカウントの選択

今回、Google のアカウントを選択しました
[Google] ボタンをクリックし、Google のアカウントでログインすると下記のページが表示されました。

Google Search Console からのインポートが可能
Google Search Console からのインポートが可能

ログインしたGoogle のアカウントでGoogle Search Console を使ってウェブサイトを登録していると、その登録したウェブサイトの情報をWebmaster Tools にインポートすることができます。
今回は、インポートせずに、右の手動で追加する方法でウェブサイトの情報を登録することにしました

3. ウェブサイトを追加

登録する自サイトのURL を入力して[追加] ボタンをクリックします。

自分のサイトを手動で追加
自分のサイトを手動で追加

4. 所有権の確認

追加したウェブサイトの所有権を確認する方法を選択するページが表示されます。

所有権の確認
所有権の確認 > XMLファイル

所有権の確認は、下記の3つの方法から選択できます。

内容
XMLファイル指定されたXMLファイルを自身のウェブサイトのルートフォルダにアップロードする
HTMLメタタグ指定されたHTMLメタタグを自身のウェブページのHTMLページのheadタグ内に記述する
※<meta name=”msvalidata.01” 〜
CNAME レコードをDNSに追加指定されたCNAMEレコードを自身のウェブサイトのDNSレコードに追加する
所有権の確認方法

今回、”XMLファイル” を選択しました
以下、XMLファイルで所有権の確認をする手順を記載します

  1. XMLファイルの[↓ BingSiteAuth.xml] ボタンをクリックして、XMLファイルを端末上にダウンロードします
  2. FTPツール(FileZillaなど)を使って、ダウンロードしたXMLファイルを自身のウェブサイトのルートフォルダにアップロードします
  3. アップロードしたファイルのパーミッションを読込のみ(404など)に変更します
  4. [確認] ボタンをクリックすると所有権の確認処理が始まり、処理が完了すると下記の”サイトの追加に成功しました” のページが表示されます
所有権の確認が完了
所有権の確認が完了

右下の[完了] ボタンをクリックすると、Webmaster Tools の管理画面が表示されます。

Webmaster Tools の管理画面
Webmaster Tools の管理画面

5. サイトマップの送信

ウェブサイトのサイトマップをBing に送信します。

サイドメニューの[サイトマップ] をクリックすると、下記のページが表示されるので、[サイトマップを送信] ボタンをクリックします。

サイトマップ
サイドメニューの[サイトマップ]

ウェブサイトのサイトマップのURL を入力するフォームが表示されるので、URL を入力して[送信] ボタンをクリックします。

サイトマップを送信(URLを入力)
サイトマップを送信(URLを入力)

送信が完了すると元のページに戻り、今回送信したサイトマップの情報が表示されます。
送信してすぐは状態が”処理中” となっていましたが、少し待つと”成功” に更新されました。

サイトマップ(送信後)
サイトマップ(送信後)

6. URL検査の実行

サイドメニューの[URL検査] をクリックすると、URL の入力を求められるので、自身のウェブサイトのURLを入力して[検査] ボタンをクリックします。
今回、「https://madoverload.com」を入力しました。

URL検査(URL入力)
サイドメニューの[URL検査]

URL検査の処理が開始され、検査結果として下記のメッセージが表示されました。

URL検査(検査結果)
検査結果(URL検査)

検査の結果、指定したURL のインデックスが登録されたようです。

URL検査を実行する前に、Bingの検索結果に既に表示されていたので、検査結果が登録されたなのは、既に登録されていたからなのかもしれないです。

改めて送信後に検索すると、下記のように検索結果に表示されました。
※ インデックス登録を確認するコマンドは、Googleはsite:、Bingはurl:と異なります

Bing検索結果
Bing 検索結果(インデックス登録の確認)

7. URL送信(インデックス登録)

サイトの特定のページにインデックスを付ける場合は、URL 送信 ツールを使用してページにURLを送信します。

サイドメニューの[URL送信] をクリックすると、下記のページが表示されるので、[URLの送信] ボタンをクリックします。

URL送信
サイドメニューの[URL送信]

ウェブサイトのURL を入力するフォームが表示されるので、URL を入力して[送信] ボタンをクリックします。

URLの送信(URLを入力)
URLの送信(URLを入力)

送信が完了すると元のページに戻り、今回送信したURLが一覧上に表示されます。

URL送信(送信後)
URL送信(送信後)

ウェブサイトからの更新の通知

ウェブサイトに新しいページや更新されたページがある場合に、ウェブサイト側からBing に通知をして、Bing のクローラが通知されたページのURL にアクセスしてページを検出する仕組みがあります。
調べてみると、Bing には下記の2つの仕組みがありました。

前者は従来からあったもので、後者は最近できたようです。

WordPress には、それぞれ対応するプラグインがあったので、以下プラグインについて記載します。
なお、プラグインの開発者は同じbingwebmastertools でした。
Webmaster Tools のウェブサイトからプラグインを紹介するリンクがあったので、Webmaster Tools の開発チームが作成したものなのではないかと思われます。

Bing URL Submission

Bing URL Submissions Plugin

WordPress のサイトに新しいページの作成やページが更新されると、ページのURLをBingインデックスに自動送信するプラグインです。

プラグインをインストールし有効にした後に、Webmaster Tools で入手したAPI key を設定することで通知が行われるようになります。

IndexNow

IndexNow Plugin

Microsoft Bing とロシアの検索エンジンの Yandex が共同開発した、サイトの更新を検索エンジンに通知して素早くインデックス登録する仕組みです。

プラグインをインストールして有効にした後に、サイドメニューの[設定] > [IndexNow] をクリックすると下記のページが表示されます。

サイドメニューの[設定] > [IndexNow]
サイドメニューの[設定] > [IndexNow]

[Let’s Get Started!] ボタンをクリックすると下記のページが表示され、サイトを更新すると自動でBing に通知されるようになります。

IndexNowプラグインの設定ページ
IndexNowプラグインの設定ページ

また、”Manual URL submission” の[Submit URL] ボタンをクリックすると、URLを入力するウィンドウが開き、手動で送信することもできるようになっています。

今回、当ブログでは、Index Now プラグインを使うことにしました。
Index Now は更新が早くインデックスに反映されると強調されていたのと、Bing URL Submissions プラグインは半年くらいアップデートが行われていなかったので、とりあえず新しい仕組みを期待してみることにしました。

その他

モバイルフレンドリーテスト

ウェブサイトの特定のURL に対して、モバイルデバイスでのページの使いやすさをチェックすることができます。

Robots.txt テスター

Webmaster Tools のサイドメニューの[ツールと機能強化] > [Robots.txt テスター] で、robots.txt に対して、以下のチェックをすることができます。

  • robots.txt の構文とロジック上の問題がないかのチェック
  • ウェブサイト上の特定のURLに対して、Bing のクローラをブロックできているかのチェック

あとがき

Google のSEO対策に続けて、Microsoft Bing のSEO対策について簡単に整理してみました。
他にも、DuckDuckGo やQwant、Startpage、Baidu など色々な検索サービスがありますが、検索エンジン自体はGoogle を使っているというように、独自の検索エンジンでサービスを提供している訳ではなかったりするので、機会があればその辺の整理をしてみたいと思います。

参考

Google のSEO対策

Google の検索結果に自身のウェブサイトが表示されるようになりましたが、SEO対策については行きあたりばったりでやっていたので、一度立ち止まってGoogle のSEO についての基本的なことを整理しておこうと思います。
WordPress のブログ立ち上げの流れなので、WordPress と絡めた整理になります。

1. はじめに

Google の検索結果に自身のウェブサイトが表示されるようにするためには、Google にインデックス登録してもらう必要があります。
クローラ等によりウェブサイトのページが検出されますが、検出されたページは内容を分析された上でGoogleインデックスに登録されます。

インデックスとは

ウェブサイトのURLを登録するGoogleの大規模なデータベースのことをインデックスと呼びます。インデックスに登録されると検索結果に表示されるようになります。

ちなみに、インデックスという用語は、Google検索セントラルというGoogle のSEO関連のサポート用のページで下記のような使い方をされていました。

  • (Googleは)定期的にウェブを探索し、見つかったサイトを Google のインデックスに登録しています
  • Google はインデックスに追加するサイトを自動で探しています

また、インデックスを使った以下のような表現もあります。

  • Googleインデックス
    • Googleのインデックスのこと
  • インデックス登録
    • クローラが検出したページの内容を把握しようとするプロセスのこと
    • インデックス登録をリクエスト:ウェブサイトの運営者がGoogleにインデックスの登録を依頼すること

2. Google がウェブサイトを検出する方法

Google がウェブサイトのページを検出する方法は、いろいろな方法があるようですが、ここでは下記の3つのパターンに分けて整理してみようと思います。

  • Googleのクローラによるウェブサイトの検出
  • ウェブサイトの運営者からのインデックス登録の依頼
  • ウェブサイトからの更新の通知

それぞれ、章を分けて説明します。

3. Google のクローラによるウェブサイトの検出

Googleのクローラは、既知のウェブサイトのリンクをたどる等により新しいページや更新されたページを検出します。

クローラとは

正式には「ウェブクローラ」。
定期的にウェブを探索して、新しいページや更新されたページを検出するプログラムのことをクローラと呼びます。
また、クローラに関連する用語に以下のようなものがあります。

  • クローリング
    • クローラがウェブを探索すること
  • クロール
    • 「クローリング」と同じ意義
  • クローラビリティ
    • ウェブサイトのページが クローラからアクセス可能なこと、および正しく認識されること
  • Googlebot
    • Google のクローラの総称

クローラによるページの検出は以下の方法で行われます。

  • 既知のページのリンクをたどって検出
  • ウェブサイトの運営者から提出されたサイトマップのURLを元に検出

既知のページのリンクをたどって検出

ウェブサイトが他のブログやウェブサイトでリンク付きで紹介されていると、そのリンクのURLをたどってクローラがページを検出します。

ウェブサイトの運営者から提出されたサイトマップのURLを元に検出

Google Search Console を使ってウェブサイトのサイトマップのURL をGoogle に送信すると、クローラがサイトマップに記述されているページのURL にアクセスしてページを検出します。

4. ウェブサイトの運営者からのインデックス登録の依頼

Google Search Console を使ってインデックス登録したいページのURL をGoogle に送信すると、クローラがそのURL にアクセスしてページを検出します。

5. ウェブサイトからの更新の通知

外部のウェブホストなどからの、新しいページや更新されたページがあることの通知を受けて、クローラがそのページのURL にアクセスしてページを検出します。

調べてみると、この方法がインデックス登録に有効に働くのか良くわからないですが、仕組み自体がなくなっている訳ではないので記載しておきます。

更新情報サービス(XML-RPC ping)

WordPress は標準で、投稿の新規作成や更新をすると、更新情報サービスの設定で登録したURL に向けてXML-RPC ping を送信して、投稿の新規作成や更新があったことを通知する機能があります。
※ XML-RPC ping は、リクエストボディをXML で記述したPOST のHTTP リクエスト

更新情報サービスは、サイドメニューの[設定] > [投稿設定] で登録することができます。

サイドメニューの[設定] > [投稿設定] > 更新情報サービス

デフォルトで”Ping-o-Matic” というWordPress Foundation が運営している更新情報サービスのURLが登録されています。

ここに、他の更新情報サービスのURL を追加すれば、追加したURL にもping が送信されるようになります。

WordPress.org の「更新通知サービス」のページに、例として更新情報サービスのURLがたくさん掲載されていますが、”停止しているものもあるかもしれませんのでご注意下さい” と注意書きがあるので、単純に全てコピペすればOKという訳ではなさそうです。

試しにいくつかのURLにアクセスしてみると、301エラー(Moved Permanently)や404エラー(Not Found)が返ったり、ドメインの名前解決ができないものがありました。現在ではあまり活用されていない仕組みなのでしょうか。

ちなみに、Google は2014年頃にブログ検索というサービスが終了した時点でpingを受けなくなっているようです。

個人的には、意味のない通信を送出するのはあまり気持ちの良いことではないので、当ブログには元々登録されていたPing-o-Matic だけ登録した状態にしておくことにしました。

WebSub(旧名:PubSubHubbub)

WordPress の標準機能ではないですが、プラグインを追加することで前述の「更新情報サービス(XML-RPC)」と同じような、投稿の新規作成や更新をすると、投稿の新規作成や更新があったことを通知するWebSub(旧名:PubSubHubbub)という仕組みを使うことができます。

WebSub のことを簡単に記載しておきます。

  • WebSub はPublisher、Subscriber、Hub の三者で構成される
  • ブログの場合、Publisher(ブログ)、Subscriber(Google)、Hub(Hubサービス) という位置づけになる
  • Publisher が投稿を追加するとHub に通知され、通知を受けたHub はSubscriber にPublisher の投稿が追加されたことを通知する

WordPress のプラグインは下記の2つがよさそうでした。

  • WebSub (FKA. PubSubHubbub)
    • PubSubHubbub Team が開発している
    • WordPress 5.9 リリースの翌日に5.9の対応版がリリースされた(最終更新日:2022/1/27)ので、継続してメンテナンスされていることが期待できる
    • デフォルトの通知先:Google PubSubHubbub Hub、SuperFeedr、WebSubHub
  • PuSHPress
    • Automattic 社がプラグインの開発に関わっている
    • プラグインにHub が組み込まれているので、WordPress からの通知はSubscriber に直接送られる(他のプラグインは、WordPress →Hub →Subscriber の経路で送られる)

当ブログでは、WebSub (FKA. PubSubHubbub) プラグインを使うことにしました。
通知先のHub は、サイドメニューの[設定] > [WebSub] で登録することができます。

WordPressの管理画面 サイドメニューの[設定] > [WebSub]

デフォルトで3つのHub のURL が登録されていました。
一番上の”https://pubsubhubbub.appspot.com” は”google” という文字がないですが、Google のHub のようです。

6. Google Search Console について

過去の投稿でGoogle Search Console を使ってサイトマップの送信とインデックス登録について記載しているので、ここではGoogle Search Console の便利なツールについて簡単に記載します。

サイトマップの登録

サイトマップのURL をGoogle に登録することができます。
登録しておくと、Google はサイトマップに更新がないかを定期的に確認するようになります。

URL検査(インデックス登録)

ウェブサイトの特定のURL に対して、Google にインデックス登録を依頼することができます。
インデックスに登録するかどうかは、Google がページを分析して決定するので、依頼すれば必ず登録される訳ではないです。

robots.txt テスター

robots.txt に対して、以下のチェックをすることができます。

  • robots.txt の構文とロジック上の問題がないかのチェック
  • ウェブサイト上の特定のURLに対して、Google のクローラをブロックできているかのチェック

後者は、例えばGoogle画像検索で表示されたくない画像のURLに対して、Googlebot-Image クローラをブロックできているかのテストができます。

モバイルフレンドリーテスト

ウェブサイトの特定のURL に対して、以下のチェックをすることができます。

  • モバイルデバイスでのページの使いやすさのテスト
  • クローラがページにアクセス可能で、コンテンツを正しく認識できるかのテスト

7. あとがき

SEO の基本を整理しよう、ということでGoogle のSEO対策についてざっと整理してみました。なんとなく要点はつかめたような気がしています。

これまでSEO ということでGoogle のことを取り上げていましたが、今後はMicrosoft のBing のSEO対策など、横に展開することもしていきたいと思います。

参考

Google Search Console(その2)

前々回の投稿「WordPressのサイトマップ」でサイトマップをGoogleに送信しましたが、その後なかなかGoogleの検索結果に表示されないのでGoogleの「初心者向けSEO」というページを調べてみると、Search Console の[URL検査] というツールでインデックス登録の依頼ができることが分かりました。
以下、その作業記録を記載します。

Googleにインデックス登録を依頼する

1. Search Console のページを開く

Google Search Console のページを開き、左上のプロパティが対象のウェブサイトのURL が選択されていることを確認します。

Search Console

2. URL検査 の実行

サイドメニューの[URL検査] ボタンをクリックすると、検索窓へのURLの入力を求められるので、自身のウェブサイトのURLを入力します。
今回、「https://madoverload.com」を入力しました。

すると、URL検査の処理が開始され、しばらくすると検査結果として下記のメッセージが表示されました。

URLがGoogleに登録されていません
検査結果(インデックスの登録)
検出-インデックス未登録
検査結果(カバレッジ)

どうやらエラーはないけれども、まだインデックスに登録されていないようです。

3. 公開URLをテスト

URL検査の検査結果が表示されたページの右上の[公開URLをテスト] ボタンをクリックします。
この[公開URLをテスト]は、指定したURL がGoogle でインデックス登録ができるかどうかを確認する機能のようです。

公開URLをテストしています
公開URLをテスト実行中

公開URLのテストが完了すると、検査結果の文言が更新されました。
・更新前:URLがGoogleに登録されていません
・更新後:URLはGoogleに登録できます

URLはGoogleに登録できます
検査結果(公開URLのテスト後)
検査結果(登録の可否の詳細)

登録の可否に記載されているメッセージ「特定の条件が満たされている場合にのみ、URLはインデックスに登録されます」の特定の条件のリンク先を見てみると、インデックスの登録が上手く行かない時に役立ちそうな情報が記載されていたので、リンク先を記載しておきます。

4. インデックス登録をリクエスト

URL検査の検査結果の”インデックス登録をリクエスト” がリンクになっているのでクリックすると、下記のメッセージが表示されました。

インデックス登録をリクエスト済み

ウィンドウ右下のOKをクリックして検査結果のページに戻ると、リンクになっていた箇所の文言が更新されました。
・更新前:インデックス登録をリクエスト
・更新後:インデックス登録をリクエスト済み

検索結果(インデックス登録をリクエスト後)

5. インデックスの登録完了

翌日、URL検査を再度実行してみると、検査結果がインデックスに登録さたという内容に更新されていました。

検査結果(インデックス登録をリクエストの翌日)

Googleでsite:クエリにドメイン名を指定して検索してみると、検索結果に表示されるようになっていました。

Google検索結果「site:madoverload.com」

あとがき

ブログを開設してから1ヶ月過ぎていますが、ようやくGoogleの検査結果に表示されるようになりました。

今回、ブログを開設してからGoogleの検索結果に表示されるようになるまで、ざっくり表現すると、下記の流れでやりました。

  1. WordPress のブログ開設
  2. サイトマップの作成
  3. Googleにサイトマップ送信
  4. Googleにインデックスの登録を申請
  5. Googleのインデックスに登録(検索結果に表示される)

SEO対策について詳しくないので、行きあたりばったりなところがありましたが、正直なんとかなったという感じです。

SEO対策に力を入れるつもりがなくても、SEOの基本的なことの理解が不十分であることが分かったので、この機会にいろいろ調べて整理しようと思います。(その投稿がいつできるかは整理の進み具合により時間がかかる可能性があるので未定)

参照

Google Search Console(その1)

直前の投稿「WordPressのサイトマップ」で、ブログのサイトマップをGoogle Search Console を使ってGoogle に送信しましたが、このSearch Console を使い始める際の手順を記載していなかったので記載しておきます。

Search Console についての解説は最低限に留め、あくまでも今回の作業記録を記載します。

Google Search Console とは

Google が提供する無料のサービス(ツール郡)で、自身のウェブサイトのコンテンツをGoogle に送信したり、Google での検索の状況を確認することができます。

Google Search Console を始める

1. Search Console にアクセス

Google検索セントラルのサイトにアクセスして[ご利用開始] ボタンをクリックして表示されるページで、[Search Console に移動] ボタンをクリックします。

2. プロパティタイプを選択

登録するウェブサイトをドメインまたはURL のどちらで指定するのかを選択します。

プロパティタイプの選択

ドメインとURLプレフィックスの違いを簡単に記載しておきます。

ドメインURLプレフィックス
ウェブサイトの入力
(例)
example.com
sub1.example.com
https://example.com
https://www.example.com
https://sub1.example.com
所有権の確認方法ドメイン名プロバイダ以下のいずれか
・HTMLファイル
・HTMLタグ
・Google Analytics
・Googleタグマネージャー
・ドメイン名プロバイダ
比較(ドメイン⇔URLプレフィックス)

今回、”URLプレフィックス” を選択したので、下記のように自サイトのURLを入力して[続行] ボタンをクリックしました。

URLプレフィックスを選択

3. 所有権の確認(URLプレフィックス)

プロパティタイプ:”URLプレフィックス” を選択すると、所有権の確認方法を選択するページが表示されます。

所有権の確認 > HTMLファイル

所有権の確認は、下記の5つの方法から選択できます。

内容
HTMLファイル指定されたHTMLファイルを自身のウェブサイトのルートフォルダにアップロードする
HTMLタグ指定されたHTMLメタタグを自身のウェブページのHTMLページのheadタグ内に記述する
※<meta name=”google-site-verification” 〜
Google AnalyticsGoogle Analytics のアカウントを使用する
(自身のウェブページのHTMLページのheadタグ内に以下を記述する)
・Google アナリティクス タグ
・トラッキング コード
GoogleタグマネージャーGoogleタグマネージャーのアカウントを使用する
(自身のウェブページのHTMLページのbodyタグ内に以下を記述する)
・タグ マネージャー コード
ドメイン名プロバイダ指定されたTXTレコードを自身のウェブサイトのDNSレコードに追加する
所有者の確認方法

今回、”HTMLファイル” を選択しました。
以下、HTMLファイルで所有権の確認をする手順を記載します。

  1. 「1. ファイルをダウンロード」の「↓ xxxx〜xxx.html」ボタンをクリックして、HTMLファイルを端末上にダウンロードする
  2. FTPツール(FileZilla など)を使って、ダウンロードしたHTMLファイルを自身のウェブサイトのルートフォルダにアップロードする
  3. アップロードしたファイルのパーミッションを読込のみ(404など)に変更する
  4. 所有権の確認の[確認] ボタンをクリックすると所有権の確認処理が始まり、下記の”所有権を証明しました” のページが表示された
所有権を証明しました

4. 所有権を証明した後の作業

この後、直前の投稿「WordPressのサイトマップ」の「サイトマップをGoogle に送信する」に記載した作業を行いました。

あとがき

今回、プロパティタイプは”URLプレフィックス”、所有権の確認は”HTMLファイル”を選択した理由を記載しておきます。

  • プロパティタイプ:”URLプレフィックス” を選択した理由
    • 所有権の確認を”HTMLファイル”にしたかったため
  • 所有権の確認方法:”HTMLファイル” を選択した理由
    • ブログのウェブページとDNSサーバの設定に影響がない
    • 他の確認方法と比べて、第三者が確認方法を特定しづらい
    • 静的HTMLファイルをサーバーに配置するのみで容易
    • Google Analytics と Googleタグマネージャーを使っていない

今後、以下のようなことがあれば、変更を検討することになりそうです。

  • Google Analytics を使うことになった場合、”Google Analytics”
  • Googleタグマネージャーを使うことになった場合、”Googleタグマネージャー”
  • サブドメインを使うことになった場合、サブドメイン向けの”HTMLファイル”を追加するか、プロパティタイプを”ドメイン”に変更する
  • 所有権の確認が2つ以上の方法で行われるようにしたくなった場合、HTMLファイル+HTMLタグ+ドメイン名プロバイダ

参照

WordPressのサイトマップ

WordPress のサイトマップについて調べてみました。

サイトマップとは

サイトマップは、ウェブサイトの投稿やページ、その他のファイルの情報を記述したファイルで、Google などの検索エンジンがこのファイルを読み込むことで、ウェブサイトの情報を効率的に収集することができるようになります。

サイトマップにはオプションとして、コンテンツがいつ更新されたのかや、ウェブサイトがどれぐらいの頻度で更新されているのか等の検索エンジンにとって有益な情報を記述することもできます。

サイトマップの記述ルール等の仕様は、大手検索エンジンのGoogle、Yahoo、Microsoft で標準化を行っています。

  • Sitemaps.org − Sitemap.org (スポンサー:Google、Yahoo、Microsoft)

WordPress 標準のサイトマップ

WordPress は標準でサイトマップが出力されるようになっています。
以前はプラグインが必要でしたが、どうやらWordPress 5.5 で出力されるようになったみたいです。

サイトマップの場所は、ルートの”wp-sitemap.xml” です。
当ブログのサイトマップは下記のURLになります。
※ “sitemap.xml” にアクセスすると”wp-sitemap.xml” にリダイレクトされるようになっていました。

ブラウザからアクセスすると、下記のように表示されます。

WordPress標準のサイトマップ

なお、デフォルトのままでは問題や改善すべき点があったので、以下その対応について記載します。

ユーザ名を非表示にする

デフォルトでは”wp-sitemap-users-1.xml” というサイトマップにWordPress に登録しているユーザのユーザ名が表示されてしまうので、function.php を更新してこのサイトマップを非表示にします。
※ ユーザ名が漏洩すると、攻撃者に管理画面でユーザ名を固定したパスワードのブルートフォース攻撃の機会を与えてしまうので、ユーザ名の漏洩はセキュリティの観点であまり望ましくないことと考えています。

function.php に下記を追記します。(末尾に追記しました)

/**
 * Removing Certain Sitemaps
 * users
 */
add_filter(
    'wp_sitemaps_add_provider',
    function( $provider, $name ) {
        if ( 'users' === $name ) {
            return false;
        }
        return $provider;
    },
    10,
    2
);

これで、“wp-sitemap-users-1.xml” が出力されなくなりました。

“wp-sitemap-users-1.xml” が表示されなくなった

最終更新日を表示する

デフォルトでは最終更新日が出力されないので、function.php を更新して出力されるようにします。
※ 最終更新日がないと、検索エンジンのクローラがコンテンツがいつ更新されたのかや、ウェブサイトがどれぐらいの頻度で更新されているのか等が判断できないので、表示した方がよいみたいです。

function.php に下記を追記します。(末尾に追記しました)

/**
 * Adding Additional Tags to Sitemap Entries
 * lastmod
 */
add_filter(
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = date('c', strtotime($post->post_modified_gmt));
        return $entry;
    },
    10,
    2
);

これで、下記のように最終更新日が表示されるようになりました。

最終更新日が表示されていない
最終更新日が表示されるようになった

なお、後述「サイトマップのカスタマイズについて」で案内しているリンク先に最終更新日を追加するサンプルコードが記載されていますが、そのままだと日付の書式がW3C Datetime フォーマットになっていなかったので、W3C Datetime フォーマットで出力されるようにしました。
(Google Search Console でサイトマップのステータスが、”無効な日付” でエラーになっているのがこれで解消されました)

サイトマップのカスタマイズについて

他にも、カスタムサイトマップの追加や、特定の投稿やページの除去、サイトマップ自体を完全に表示しないようにするなど色々できるみたいです。
詳しくは、以下のサイトをご参照ください。

サイトマップまわりの仕組み

robots.txt

robots.txt は、検索エンジンのクローラに対して、サイトのどの URL にアクセスしてよいかを伝えるものです。
robots.txt の場所は、ルートの”robots.txt ” です。
当ブログのrobots.txt は下記のURLになります。

WordPress 標準のサイトマップが出力される状態でrobots.txt を見てみると、下記のようにサイトマップのURLが記述されていました。
この記述により、クローラがサイトマップファイルを見つけることができるようになります。

Sitemap: https://madoverload.com/wp-sitemap.xml

robots メタタグ

robots メタタグは、HTMLページのheadタグ内に「<meta name=’robots’ 〜」と記述するもので、ページ単位で検索エンジンに対して、登録の是非や、ユーザに対して検索結果をどのように表示してもらいたいのかを指定するものです。
当ブログのHTMLページのrobots メタタグは下記の記述になっていました。

<meta name='robots' content='max-image-preview:large' />

WordPress の設定

WordPress の設定画面で、検索エンジンのクローラにサイトマップやページを読み込んでもらいたいかどうかを設定することができます。
管理画面の[設定] > [表示設定] の”検索エンジンでの表示” で行います。

管理画面の[設定] > [表示設定]

“検索エンジンがサイトをインデックスしないようにする” のチェックをOFFにしていると、サイトマップ、robots.txt、robots メタタグはこれまで説明した状態になっていました。

試しにチェックをONにすると、下記の状態になりました。

  • サイトマップのURLにアクセスすると、”お探しのページが見つかりません”というWordPressのページが表示される
  • robots.txt から「Sitemap: https://madoverload.com/wp-sitemap.xml」が消える
  • robots メタタグが下記の記述になる(noindexはページをインデックスに登録してもらいたくない、nofollowはページのリンクを辿ってもらいたくない)
<meta name='robots' content='noindex, nofollow' />

当ブログはもう初期設定も終え、投稿もいくつかしているのでチェックをOFFにして検索エンジンのクローラを受け入れる状態にしておきますが、ブログの開設中はチェックをONにしておいた方がよかったのかもしれません。
(とはいえブログを開設して1ヶ月経ちますが、ドメイン名をググってもヒットしませんでした)

サイトマップをGoogle に送信する

当ブログは開設して1ヶ月になりますが、誰も存在を知らない状態です。Twitter への自動投稿でブログのURLを貼るようにしましたが、アクセス数が0という日も普通にあります。

せっかくサイトマップが出力されるようになっているので、Google にサイトマップの存在を知らせてインデックスに登録してもらうよう働きかけてみたいと思います。

調べてみると、Google Search Console にサイトマップを送信することで、それができるようです。
以下、その手順を記載します。

1. Search Console にブログを登録する

サイトマップをGoogle Search Console に送信する為には、Search Console に自身のウェブサイトのドメインまたはURLを登録して、そのウェブサイトが自身に所有権があることを証明する必要があります。
具体的な手順は省略しますが、今回は下記で行いました。

  • プロパティタイプの選択:URLプレフィックス
  • 所有権の確認:指定されたHTMLファイルをダウンロードして自サイトにアップロード

2. Search Console にサイトマップを送信する

Search Console にウェブサイトを登録すると、Search Console の管理画面が表示されます。
サイドメニューの[インデックス] > [サイトマップ] をクリックすると、”新しいサイトマップの追加” というサイトマップのファイル名を入力するフォームが表示されるので、ファイル名を入力して[送信] ボタンをクリックします。

サイドメニューの[インデックス] > [サイトマップ]

サイトマップの送信が完了すると、下記のメッセージが表示されます。

[OK] ボタンをクリックすると元の画面に戻り、送信する前は何も表示されていなかった”送信されたサイトマップ” に、今回送信したサイトマップが表示されます。
送信してすぐはステータスが”取得できませんでした” となっていましたが、1〜2分待つと”成功しました” に更新されました。

サイドメニューの[インデックス] > [サイトマップ]

ここで、送信したサイトマップをクリックすると、読み込まれたサイトマップの処理結果を確認することができます。

読み込まれたサイトマップ(エラーあり)

ステータスがエラーになっているサイトマップがあるので、エラーになっているサイトマップをクリックすると詳細情報が表示されます。

サイトマップの詳細情報(エラー)

サイトマップの読み込みはできるようですが、「親タグ:url、タグ:lastmod」の日付の値に問題があるということです。

このエラーは、前述「最終更新日を表示する」に記載した最終更新日の日付の書式がW3C Datetime フォーマットになっていなかったことが原因によるもので、W3C Datetime フォーマットで出力されるようにすることで解消することができました。

読み込まれたサイトマップ(エラーなし)

エラーが解消されたサイトマップをクリックすると、詳細画面も”サイトマップは正常に処理されました” となっていました。

サイトマップの詳細情報(正常)

なお、エラーの原因を解消しても直ぐにはステータスが更新されず、24時間経ってから見てみるとステータスが”成功しました” に更新されていました。
試しに、送信した日にSearch Console に登録したサイトマップを削除し、再度”新しいサイトマップの追加” をしてみたのですが、エラーのままだったので、この登録はキャッシュに登録されて定期的に処理されているのかもしれません。

サイトマップの再送について調べてみると、Search Console のヘルプに「サイトマップを変更した場合でも、Google がすでに認識しているサイトマップを再送信する必要はありません。Google は、次にサイトをクロールしたときに、変更を検出します」という記載がありました。
これは、再送は即時に反映される訳ではないということの裏返しの表現なのかもしれません。

あとがき

サイトマップを表示させるためにはプラグインの導入が必要と思っていましたが、調べてみるとプラグインがなくてもなんとかなりました。
ただ、プラグインを入れたからこそできることというのがあるかもしれないので、もし必要にかられたら導入を検討したいと思います。

サイトマップのGoogle への登録が成功し、エラーもなくなりましたが、今回の作業が完了した後にドメイン名をググってもヒットしませんでした。
はたして、いつになったら検索結果に表示されるのでしょうか。。

参考