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さんにも申し訳ないので、それぞれちゃんとやりなおしておこうと思います。
目次
Nginxのエラーログを確認する。
下記はデフォルトの設定です。[Ctrl]-[C]で停止できます。
[bash]
$ sudo tail -f /var/log/nginx/error.log
[/bash]
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の記述があります。
[vim]
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.xml$ “/index.php?xml_sitemap=params=$2” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.xml.gz$ “/index.php?xml_sitemap=params=$2;zip=true” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.html$ “/index.php?xml_sitemap=params=$2;html=true” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.html.gz$ “/index.php?xml_sitemap=params=$2;html=true;zip=true” last;
[/vim]
これをどこに追加するべきか、少し悩んだというか、最初に「location / {}」の中に追加したら全然だめでした。
で、WordPress.orgフォーラムのGoogle XML Sitemaps[resolved] 4.0 is broken in FPM/FastCGI serversに、「location / {}」の外に追記している情報があったので、そのようにしてNginxを再起動して無事アクセス出来るようになりました。
- サーバーのconfファイルを編集
[bash]
$ sudo vim /etc/nginx/conf.d/mydomain.conf
[/bash]
- mydomain.conf
※ちなみに途中のincludeはW3TCの自動生成confファイル。
[vim]
server {
listen 80;
server_name mydomain.com www.mydomain.com;
root /usr/share/nginx/mydomain;
include /usr/share/nginx/mydomain/nginx.conf;
location / {
index index.php index.html;
try_files $uri $uri/ /index.php;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.) $1 last;
rewrite ^.+?(/..php)$ $1 last;
rewrite ^ /index.php last;
}
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.xml$ “/index.php?xml_sitemap=params=$2” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.xml.gz$ “/index.php?xml_sitemap=params=$2;zip=true” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.html$ “/index.php?xml_sitemap=params=$2;html=true” last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?.html.gz$ “/index.php?xml_sitemap=params=$2;html=true;zip=true” last;
}
[/vim]
- Nginx再起動
[bash]
$ sudo service nginx restart
[/bash]
Google ウェブマスターツールに追加する
ウェブマスターツールにログインして、[クロール] – [サイトマップ]で[サイトマップの追加/テスト]から追加します。
sitemmap.xmlの中はプラグインのオプションで選んだとおり、トップページのxml、年月ごとの投稿記事のxml、カテゴリーのxmlでした、
この子sitemapが軒並みエラーになっていたので、個別に再送信してエラーを消しました。
再送信の際に追加されてしまうのですが、個別に追加していると動的生成の意味がないなーと思いまして、とりあえず、sitemap.xml以外を削除しています。
このままで、今後記事が増えた時に子sitemapの「インデックスに登録済み」が増えるかどうか見てみたいと思います。
robots.txtを設置する
仮想robots.txtが生成されなくなったようなので、生成されるように出来ないか調べようと思いましたが、実robots.txtがあればそれが優先されるそうなので、静的ファイルを作ってしまいました。
[bash]
$ sudo vim /usr/share/nginx/mydomain/robots.txt
[/bash]
- robots.txt
[vim]
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Sitemap: http://www.mydomain.com/sitemap.xml
[/vim]
- ファイル所有者を変更します
[bash]
$ sudo chown apache:apache /usr/share/nginx/mydomain/robots.txt
[/bash]
以上!
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
言語スパムのアクセスをAnalyticsで除外した(2017/1/9現在)
Analyticsの言語に見慣れないのが出てたのでフィルタで除外対応。 Vita …
-
Google Adsenseでセンシティブな広告が表示されるので調整しました
何も調整していなかった時 今年に入ってからこのブログでやたらと下衆い広告が表示さ …
-
Google Apps ScriptでAdmin SDK Directory Serviceを使ってグループメンバー情報を出力する
GoogleAppsのGoogleGroupをメーリングリストとして使っている人 …
-
ホームページ、自作サイトにアメブロの新着情報を掲載する
MagipieRSSを使用 なので下記サイトでダウンロード http://mag …
-
YoutubeチャンネルにカスタムURLを設定しました
YoutubeチャンネルのURLは初期状態では、https://www.yout …
-
Googleナレッジパネルの申請が承認されました
今年の4/13に「Googleナレッジパネルの認証を受けるために申請してみた」が …
-
ライブ配信のカレンダーをGoogle Apps Scriptとかで作りました
ライブ配信がまとまっているカレンダー欲しいなあと思いまして。 まとめようと思いま …
-
Youtube動画のダウンロード
Youtubeにアップロードした動画のダウンロード方法です。 以前はこんな機能が …
-
Googleカレンダーの予定をPHPからXMLで取得してWebページに表示する(現在廃止されたAPIなので使えません)
ご注意 ※下記の記事で使用していたAPIは2016年現在使用出来なくなっています …
-
Chrome リモートデスクトップを使ってみる
自宅のMacをリモートで操作したい 外出用PCはWindows 8 とLinux …