ヤマムギ

growing hard days.

*

sitemap.xml(sitemap-misc.xml)とrobots.txtを設置する

   


起きたら結構な雨でしたので、とりあえずサーバのエラーログを眺めていると、googlebot.comがsitemap-misc.xmlを探しに来ていて、yahoo.netがrobots.txtを探しに来て、それぞれ「No such file or directory」になっていました。
ApacheからNginxに移行した際にこのへんの対応を何もしていなかったからですね。
なんだかgooglebotさんにもyahooさんにも申し訳ないので、それぞれちゃんとやりなおしておこうと思います。

sitemap

Nginxのエラーログを確認する。

下記はデフォルトの設定です。[Ctrl]-[C]で停止できます。

sitemap.xml対応

WordPressなんでプラグインでやってしまいます。

Google XML Sitemapsをインストールする。

  • プラグインの追加で「Google XML Sitemaps」を検索して追加します。

  • XML Sitemap Generator for WordPress 4.0.8

http://www.yamamanx.com/sitemap.xml が作成されているはずなのに、アクセスすると、404エラーになります。

NginxでGoogle XML Sitemaps向けの設定

プラグインの設定画面を見ると「Since you are using Nginx as your web-server, please configure the following rewrite rules in case you get 404 Not Found errors for your sitemap:」と書いています。

そして下に以下のnginx.confの記述があります。

これをどこに追加するべきか、少し悩んだというか、最初に「location / {}」の中に追加したら全然だめでした。
で、WordPress.orgフォーラムのGoogle XML Sitemaps[resolved] 4.0 is broken in FPM/FastCGI serversに、「location / {}」の外に追記している情報があったので、そのようにしてNginxを再起動して無事アクセス出来るようになりました。

  • サーバーのconfファイルを編集

  • mydomain.conf
    ※ちなみに途中のincludeはW3TCの自動生成confファイル。

  • Nginx再起動

yamamanx-sitemap

実際のサイトマップXMLです

Google ウェブマスターツールに追加する

ウェブマスターツールにログインして、[クロール] – [サイトマップ]で[サイトマップの追加/テスト]から追加します。

sitemap_web_master_tool

sitemmap.xmlの中はプラグインのオプションで選んだとおり、トップページのxml、年月ごとの投稿記事のxml、カテゴリーのxmlでした、
この子sitemapが軒並みエラーになっていたので、個別に再送信してエラーを消しました。
再送信の際に追加されてしまうのですが、個別に追加していると動的生成の意味がないなーと思いまして、とりあえず、sitemap.xml以外を削除しています。
このままで、今後記事が増えた時に子sitemapの「インデックスに登録済み」が増えるかどうか見てみたいと思います。

robots.txtを設置する

仮想robots.txtが生成されなくなったようなので、生成されるように出来ないか調べようと思いましたが、実robots.txtがあればそれが優先されるそうなので、静的ファイルを作ってしまいました。

  • robots.txt

  • ファイル所有者を変更します

以上!

@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。 質問はコメントかSNSなどからお気軽にどうぞ。 出来る限りなるべく答えます。 このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。 また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - Web

ad

ad

Comment

  1. やまけん より:

    仮想robots.txtですが、
    rewrite ^/robots.txt$ “/index.php?robots=1” last;
    でルール追加すれば生成できますよ。

Message

メールアドレスが公開されることはありません。

  関連記事

Googleカレンダーの予定をPHPからXMLで取得してWebページに表示する(現在廃止されたAPIなので使えません)

ご注意 ※下記の記事で使用していたAPIは2016年現在使用出来なくなっています …

Google Apps ScriptでAdmin SDK Directory Serviceを使ってユーザの最終ログイン情報一覧を出力する

GoogleAppsで使わなくなったアカウントを確認する方法として、最終ログイン …

ホームページやサイトがiPhone,iPadのホーム画面に追加された時のアイコンを設定しておく

headタグでapple-touch-iconを指定 [crayon-5a88a …

言語スパムのアクセスをAnalyticsで除外した(2017/1/9現在)

Analyticsの言語に見慣れないのが出てたのでフィルタで除外対応。 Vita …

Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする

OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …

C#でOpenWeatherMap APIを使って天気情報を取得する

C#でOpenWeatherMapAPIを使って現在の天気を取得してみました。 …

PHP 共通ヘッダ、フッタの内容をページによって動的に変更する

共通ヘッダ、フッタ それぞれ必要な内容を書いたheader.php、footer …

Linux Mint 17 MATE 64bit にAptana Studio 3をインストールして日本語化

JDKのインストール 過去記事「Linux Mint 17 MATE 64bit …

Google Apps ScriptでAdmin SDK Directory Serviceを使ってグループメンバー情報を出力する

GoogleAppsのGoogleGroupをメーリングリストとして使っている人 …

スパムリファラーサイトのアクセスをAnalyticsで除外する(2017/8/17現在)

アクセス数とかそんなに気にしないのですが。 嘘です。 リファラーサイトからのアク …