Hexoのtitleタグを最適化する

ブログのtitleタグをどのページとも被らないように設定するのは、カテゴリー・タグページやそれぞれの2ページ目などを加味していくと、意外に大変だったりします。とりあえず試行錯誤していい感じになったので、このブログの物をそのままメモ。

titleタグを後で変更すると、Google Analytcisで別ページ扱いになってしまい、データがバラバラに散ってしまうので、サイトを開設したら早めに決めた方がいいと思います。

EJS

(2020-07-30) 全体のアーカイブでtitleがundefinedになるのを修正しました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%
var title;
if(is_home()){
title = '';
} else if (is_archive()){
title = 'アーカイブ';
if(page.year){
title += ': ' + page.year + '年';
}
if(page.month){
title += page.month + '月';
}
title += ' - ';
} else if (is_category()){
title = 'カテゴリー: ' + page.category + ' - ';
} else if (is_tag()){
title = 'タグ: ' + page.tag + ' - ';
} else {
title = page.title + ' - ';
}
if(page.current > 1){
title += 'ページ'+ page.current + ' - ';
}
title += config.title;
%>
<title><%= title %></title>

タイトル例

titleは下のような感じで表示されます。

ページtitle例
トップ[ブログ名]
トップ 2ページ目以降ページ[数字] - [ブログ名]
記事[記事名] - [ブログ名]
カテゴリーカテゴリー: [カテゴリー名] - [ブログ名]
カテゴリー 2ページ目以降カテゴリー: [カテゴリー名] - ページ[数字] - [ブログ名]
タグタグ: [タグ名] - [ブログ名]
タグ 2ページ目以降タグ: [タグ名] - ページ[数字] - [ブログ名]
アーカイブ(全体)アーカイブ - [ブログ名]
アーカイブ(全体)アーカイブ - ページ[数字] - [ブログ名]
年アーカイブアーカイブ: 〇〇〇〇年 - [ブログ名]
年アーカイブ 2ページ目以降アーカイブ: 〇〇〇〇年 - ページ[数字] - [ブログ名]
月アーカイブアーカイブ: 〇〇〇〇年〇月 - [ブログ名]
月アーカイブ 2ページ目以降アーカイブ: 〇〇〇〇年〇月 - ページ[数字] - [ブログ名]

日別アーカイブは対応させてないんですが、静的サイトジェネレーターで日別アーカイブを使うと膨大な数のページを生成することになるので、そんなもの使っている人はいないよね、という判断です。