SEO対策 URLから日付を削除する

URLに日付は含めない方がいい?

SEOに関する記事を読みました。タイトルは3,000万ユーザーを集客した結果わかった、SEOに関する30の教訓というとても興味深いものでした。ざっと30の教訓に目を通すと一つ気になるものがありました。

URLに日付は含めない

詳しい内容は以下です。

かつて、私は下記のようにURL内に日付を含めていた。
Neilpatel.com/2017/12/title-of-post/
こうすることで、そのコンテンツが特定の日付と関連していると、検索エンジンが想定してしまうことになる。その日付が古くなるにつれ、検索エンジンはあなたのコンテンツの関連性は低く、古いコンテンツであると想定してしまうだろう。
タイトルから日付を削除したタイミングで、SEOからのトラフィックは30日間で58%上昇した。

思いっきりURLに日付入ってました。hexoのデフォルトが/年/月/日/タイトルになっていました。

これは修正せねばということで、修正したいと思います。
修正はURLが少ない今のうちに早めにやっておいた方がよさそうです。

hexoのURL設定

hexoのURLの設定は_config.ymlにあります。

設定内容はこちらです。

1
2
3
4
5
# URL
url: https://book-reviews.blog
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

このpermalinkから日付を削除します。

1
permalink: :title/

タイトルだけが良いかどうかわかりませんが、今後変更がないように余計なものをURLに含ませないようにします。

nginxのリダイレクト設定

古いURLにアクセスがいく可能性があるので、古いURLから新しいURLにリダイレクトさせる必要があります。nginxにリダイレクトの設定をします。

serverディレクティブに1行追加します。

1
rewrite ^/\d{4}/\d{2}/\d{2}/(.+)/$ /$1/ permanent;

syntaxのチェックをします。

1
2
$ sudo nginx -t
nginx: [emerg] directive "rewrite" is not terminated by ";" in /etc/nginx/conf.d/hexo.conf:10

セミコロンで終わってないというメッセージのようですが、セミコロンで終わっているつもりなのですが…

試しに繰り返し回数の{4}+に変更してみるとsyntax OKが出ます。理由を調査していると{}を利用するときはダブルクォートで括る必要があるようです。

設定を修正します。

1
rewrite "^/\d{4}/\d{2}/\d{2}/(.+)/$" /$1/ permanent;

再度syntaxのチェックを行います。

1
2
3
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

大丈夫そうです!

サービスの再起動

サービスを再起動して設定を反映します。
今回の場合、特に起動順序などはありません。ほぼ同時にhexoとnginxの再起動が必要です。

hexoの再起動

hexoは以前systemdで起動できるようにしました。(その時の記事はこちら

なので、systemdを用いて停止起動を行います。

1
2
$ sudo systemctl stop hexo
$ sudo systemctl start hexo

nginxの設定再読み込み

syntaxのチェックは終わっているので、修正した設定を読み込みます。

1
2
$ sudo service nginx reload
Redirecting to /bin/systemctl reload nginx.service

nginxもsystemdで設定を再読み込みしました。

動作確認をするとちゃんとリダイレクトされています!
URLから日付を削除することでSEOにどんな影響があるのかをみていきたいと思います。