ページタイトルの先頭にブログ名がでる
Googleの検索結果で自分のサイトをみてみると先頭にブログ名がついてきます。
「Blogger設定」というラベル名は全く表示されていません。
これは問題があると思います。
私自身もBloggerの設定と思って検索結果のページの内容を実行してみたらlivedoorブログの設定であった、という経験があります。
根本的にはブログ名か投稿タイトルに「Blogger」という名前を入れるべきだとわかりました。
これは別のブログを立ち上げることで解決しようと思います。
とりあえずこのブログでは「無意味な」ブログ名の表示が検索結果に表示されないように設定したいと思います。
この検索結果のタイトルはBloggerの各投稿のページタイトルに一致しています。
各投稿のページタイトルからブログ名を除く
テンプレートのHTMLの編集で変更できました。
Bloggerのテンプレートでは以下のような用語設定になっているようです。
data:blog.pageTitle デフォルトのページタイトル=ブログ名:投稿タイトル
data:blog.pageName 投稿タイトル(data:post.titleと一致?)
data:blog.title ブログ名
管理画面→テンプレート→HTMLの編集
編集画面のどこかをクリックしてからCtrl+F、で検索ボックスを表示。
data:blog.pageTitleで検索。
<title><data:blog.pageTitle/></title>
この部分を以下に書き換えます。
<title>
<b:if cond='data:blog.pageName == ""'>
<data:blog.pageTitle/>
<b:else/>
<data:blog.pageName/>
</b:if>
</title>
トップページやインデックスページではdata:blog.pageNameが存在しないためそのときは従来どおりdata:blog.pageTitleを表示するようにしています。
クリボウさんのように <b:if cond='data:blog.pageName == ""'>に替わり
<b:if cond='data:blog.pageType == "item"'>
と表示するページタイプを指定することもできます。
ページタイトルをデフォルトの逆順の投稿タイトル:ブログ名にしたいときは<data:blog.pageTitle/>を<title><data:blog.pageName/> | <data:blog.title/></title>に替えます。
私は以下のようにしました。
<title>
<b:if cond='data:blog.pageType == "item"'>
<data:blog.pageName/>
<b:else/><b:if cond='data:blog.pageName == ""'>
<data:blog.pageTitle/>
<b:else/>
<data:blog.pageName/> | <data:blog.title/>
</b:if>
</b:if>
</title>
本当は「投稿タイトル|ラベル名」としたかったのですがラベル名をひっぱってくるグローバルタグはないようですね。
参考にしたサイト
Blogger ブログのページタイトルを「投稿タイトル | ブログタイトル」の順にする方法 | クリボウの Blogger Tips
静的ページの変更方法も載っています。
Blogger Trick: Using the pageName Variable Instead of pageTitle for SEO
SEO対策にもよいらしいですがこのサイト自身はページタイトルを変更していませんね。
レイアウト データ タグ - Blogger ヘルプ
pageType: 'item'、'archive'、'index' 。'static_page'は載ってないですね。
Blogger Buster: Change the Title Tags for your Blog
<data:blog.pageName/>タグは後で追加されたようですね。
参考になりました。ありがとうございました。
返信削除