読者です 読者をやめる 読者になる 読者になる

MovableType のテンプレートをSEO的に見直してみよう(1)

以前のエントリーにも書きましたが MovableType のデフォルトテンプレートは足りない部分が多いわ余計な部分が多いわでイマイチです(個人的な意見)。そんな訳で。色々な見地から見直してみよう。と云う不定期連載企画。あくまで個人的な見解なので意見がある方はコメント宜しくです。

まずは個別ページの「エントリー・アーカイブ」から。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
   </meta><meta name="generator" content="Movable Type <$MTVersion$>" />

   <link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
   </link><link rel="alternate" type="application/atom+xml" title="Atom" href="<$MTBlogURL$>atom.xml" />
   </link><link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<$MTBlogURL$>index.xml" />
   
   <title>< $MTBlogName encode_html="1"$>:< $MTEntryTitle$></title>

   </link><link rel="start" href="<$MTBlogURL$>" title="Home" />
   <mtentryprevious><link rel="prev" href="<$MTEntryPermalink$>" title="< $MTEntryTitle encode_html="1"$>" /></link></mtentryprevious>
   <mtentrynext><link rel="next" href="<$MTEntryPermalink$>" title="< $MTEntryTitle encode_html="1"$>" /></link></mtentrynext>

   < $MTEntryTrackbackData$>

   <mtblogifcclicense>
   < $MTCCLicenseRDF$>
   </mtblogifcclicense>

   <script type="text/javascript" src="<$MTBlogURL$>mt-site.js"></script>
</link></meta>
</head>
</html>

なーんか足りなくありません?ちなみに Another HTML-lint で検証すると head 部分に関するエラーはこんな感じ。

6: line 1: XHTML1.0 では XML宣言をすることが強く求められています。 → 解説 21
2: line 3: <html> には lang 属性を指定するようにしましょう。 → 解説 119
2: line 3: </html><html> には xml:lang 属性を指定するようにしましょう。 → 解説 119
0: line 19: (コメント中に `< ` や `>` を書くと、いくつかのブラウザを混乱させることがあります。) → 解説 30
0: line 36: (コメント中に `< ` や `>` を書くと、いくつかのブラウザを混乱させることがあります。) → 解説 30
1: line 53: <script> を使うときは <head>〜</head> 内に <meta http-equiv="content-script-type" content="〜" /> を指定するようにしましょう。 → 解説 146
0: line 54: (<head>〜</head> 内に <link rev="made" href="mailto:〜" /> が含まれていません。) → 解説 124
3: line 55: onload 属性を使うときは <head>〜</head> 内に <meta http-equiv="content-script-type" content="〜" /> を指定しなければなりません。 → 解説 147

んー。まぁコレに拘る必要も無いのですが一応参考にしましょう。

で。まずは XML 宣言を1行目に入れてみます。 MT タグを使えば設定したデフォルトの文字コードが指定出来るのでこんな感じ。

<?xml version="1.0" encoding="<$MTPublishCharset$>" ?>

で。MT を PHP 化していた場合はココで「Parse error: parse error, unexpected T_STRING in **** on line 1」なんてエラーが出るので

<?php echo '<?xml version="1.0" encoding="<$MTPublishCharset$>"?>'."n" ?>

と。しましょう。はい。次は lang 属性ですか。はいはい。

<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr"></html>

あと。meta タグに http-equiv 属性ってのがあって文字コードをセットしたり MIME タイプを指定したりするのですが…。果たして必要なのかどうか仕様書見ても微妙なんですが(すいません。理解不足で)一応こんな感じ。

<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />

前置きが長くなりましたが。タイトルに書いてある通り。SEO 的に見ると meta タグに description と keywords が無いのが気になりますな。で。以前エントリーに書いた「MovableTypeにタグを付けてみる」でエントリーにタグ(キーワード)を記述する Tips を覚えていますか?ココでタグを入力する際に,(カンマ)区切りで入力している人限定で(今更云うなって。はいはい。私も後から気付いて痛い目に…)。

  <meta name="description" content="<$MTBlogDescription$>" />
  </meta><meta name="keywords" content="<$MTEntryKeywords$>" /></meta></enchtml></blockquote>

を追加してあげましょう。取り敢えずここまで。次回は重要なエントリー部分のマークアップを変更します。