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 | # URL |
このpermalinkから日付を削除します。
1 | permalink: :title/ |
タイトルだけが良いかどうかわかりませんが、今後変更がないように余計なものをURLに含ませないようにします。
nginxのリダイレクト設定
古いURLにアクセスがいく可能性があるので、古いURLから新しいURLにリダイレクトさせる必要があります。nginxにリダイレクトの設定をします。
serverディレクティブに1行追加します。
1 | rewrite ^/\d{4}/\d{2}/\d{2}/(.+)/$ /$1/ permanent; |
syntaxのチェックをします。
1 | $ sudo nginx -t |
セミコロンで終わってないというメッセージのようですが、セミコロンで終わっているつもりなのですが…
試しに繰り返し回数の{4}を+に変更してみるとsyntax OKが出ます。理由を調査していると{}を利用するときはダブルクォートで括る必要があるようです。
設定を修正します。
1 | rewrite "^/\d{4}/\d{2}/\d{2}/(.+)/$" /$1/ permanent; |
再度syntaxのチェックを行います。
1 | $ sudo nginx -t |
大丈夫そうです!
サービスの再起動
サービスを再起動して設定を反映します。
今回の場合、特に起動順序などはありません。ほぼ同時にhexoとnginxの再起動が必要です。
hexoの再起動
hexoは以前systemdで起動できるようにしました。(その時の記事はこちら)
なので、systemdを用いて停止起動を行います。
1 | $ sudo systemctl stop hexo |
nginxの設定再読み込み
syntaxのチェックは終わっているので、修正した設定を読み込みます。
1 | $ sudo service nginx reload |
nginxもsystemdで設定を再読み込みしました。
動作確認をするとちゃんとリダイレクトされています!
URLから日付を削除することでSEOにどんな影響があるのかをみていきたいと思います。