高度なSEO対策 - titleタグとdescriptionの自動設定
Giblogは、デフォルトで、効果の高いSEO対策が、実施されています。
titleタグの自動設定
トップページ「index.html」のタイトルは、giblog.confの「site_title」で設定されているサイトタイトルになります。
use strict; use warnings; use utf8; { site_title => '私だけのオリジナルサイト', site_url => 'http://somesite.example', }
この場合のトップページのtitleタグは「私だけのオリジナルサイト」になります。
<title>私だけのオリジナルサイト</title>
トップぺージ以外のタイトルは、ページの最初の見出しの後ろに、サイトタイトルをつけたものになります。
トップページ以外のページの例は、たとえば、最初の見だしが
<h2>トマトのおいしい食べ方</h2>
であった場合は、このページのtitleタグは「トマトのおいしい食べ方 - 私だけのオリジナルサイト」になります。
<title>トマトのおいしい食べ方 - 私だけのオリジナルサイト</title>
descriptionの自動設定
タグのない最初の段落が、descriptionに自動設定されます。
<h2>トマトのおいしい食べ方</h2> トマトをおいしく食べるには、どうしたらいいのでしょうか。冷蔵庫で冷やしてみましょう。
<meta name="description" content="トマトをおいしく食べるには、どうしたらいいのでしょうか。冷蔵庫で冷やしてみましょう。">
タグのある最初の段落は、descriptionとしては、認識されないので、SEOで大切な、パンくずリストを書くこともできます。
<ol class="bread" itemscope itemtype="http://schema.org/BreadcrumbList"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="/"><span itemprop="name">トマト</span></a> <meta itemprop="position" content="1" /> </li> › <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="/blog/20101130129876.html"><span itemprop="name">食べ方</span></a> <meta itemprop="position" content="2" /> </li> › <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <span itemprop="name">here</span> </li> </ol> <h2>トマトのおいしい食べ方</h2> トマトをおいしく食べるには、どうしたらいいのでしょうか。冷蔵庫で冷やしてみましょう。
上記のように、パンくずリストがある場合でも、タグのない最初の段落の内容がdescriptionに設定されます。
<meta name="description" content="トマトをおいしく食べるには、どうしたらいいのでしょうか。冷蔵庫で冷やしてみましょう。">
titleタグとdescriptionのカスタマイズ
上記の設定は「lib/Giblog/Command/build.pm」を編集することでカスタマイズすることもできます。
Perlを知っていれば、カスタマイズしやすと思いますが、ページタイトルとサイトタイトルの区切り文字の変更ならば、単純に書き換えるだけです。
lib/Giblog/Command/build.pm
ページタイトルとサイトタイトルの区切り文字「-」を「|」に変えました。
package Giblog::Command::build; # 省略 sub run { my ($self, @args) = @_; # 省略 for my $file (@$files) { # Parse title $api->parse_title_from_first_h_tag($data); # Edit title my $site_title = $config->{site_title}; if ($data->{file} eq 'index.html') { $data->{title} = $site_title; } else { # # こちらを編集しました # $data->{title} = "$data->{title} | $site_title"; } # Add page link $api->add_page_link_to_first_h_tag($data, {root => 'index.html'}); # Parse description $api->parse_description_from_first_p_tag($data); } # 省略 }