<meta>要素は、メタ情報、すなわちブラウザなどのユーザエージェント(HTMLを読込んで処理するソフトウェア全般)に対して伝えるべき情報です。
今まで、文字コードの情報,文責・版権の情報,スタイルシート情報(CSSを利用する為)及びスクリプト情報(JAVAスクリプトを使用する為)が紹介されましたが、この他にもいろいろな種類があります。
ここでは、説明する機会の無かった主なメタ情報をご紹介しましょう。
<meta>要素のname属性値にdescriptionを指定する事で、検索エンジンのクローラに当該文書の要約を与える事が出来ます。要約はcontent属性にて与えます。
今日、グーグルを始めとするロボット型検索エンジンに如何に上位に挙げてもらうかと言う事で、「SEO(検索エンジン最適化)」と呼ばれる手法が注目されております。これは一言で言えば、適切な記述に依り検索エンジンに文書の重要性を知らしめる事です。
HTMLで最も重要な要素は<title>要素であり、従ってグーグルなどの検索エンジンは<title>要素を最重要のデータとして取扱います。更に<meta>要素にて文書の説明がある場合は、その内容を検索の際のデータとして取扱うようです。
<meta>要素のname属性値にkeywordsを指定する事で、検索エンジンのクローラに当該文書に関するキーワードを与える事が出来ます。キーワードはcontent属性にて、「,」で区切って与えます。
検索エンジンはここで指定されたキーワードが入力された際に、優先して当該文書を紹介するという使い方が想定されています。現在ではスパムキーワードの氾濫に依り、この方法で記述されたキーワード一覧は信用出来ないと判断されているようですが、まだ一部のエンジンでは有力なデータにしているかも知れません。
以下に例を挙げておきます。
<title>埼玉県の民鉄</title>
<meta name="description" content="埼玉県の民営鉄道(民鉄・私鉄)である、東武鉄道本線,東上線,西武鉄道,秩父鉄道などの紹介。" />
<meta name="keywords" content="埼玉県, 民鉄, 私鉄, 東武鉄道, 東上線, 西武鉄道, 秩父鉄道" />
<meta>要素のname属性値にROBOTSを指定する事で、検索エンジンのクローラに文書の扱いを指定出来ます。
content属性に値として、以下のものを,で区切って組合わせます。
INDEX または NOINDEXINDEX、当該文書を登録されたくない場合はNOINDEXを記述します。デフォルトはINDEXです。FOLLOW または NOFOLLOWFOLLOW、追跡されたくない場合はNOFOLLOWを記述します。デフォルトはFOLLOWです。NOARCIVE<meta>要素を無視すると公言している検索エンジンさえあります。
googlebot」を指定します。以上を纏めると以下のようになります(NOARCHIVE値は省略しました)。
<meta name="ROBOTS" content="INDEX, FOLLOW" /><meta name="ROBOTS" content="NOINDEX, FOLLOW" /><meta name="ROBOTS" content="INDEX, NOFOLLOW" /><meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />最近では、特定のハイパーリンクのみの追跡を拒否する記述もあります。具体的には追跡させたくない<a>要素にrel="nofollow"属性を附与すると言うものです。この記述は恐らく<meta name="ROBOTS">要素にヒントを得たものと思われます。
rel="nofollow"属性は一部の検索エンジンでは認識していないものもありますが、グーグルなどではサポートしております。リフレッシュとはHTTPの機能で、一定時間が経過すると指定のリソースを再度獲りに行くというものです。主にサイト移転の際に旧サイトのトップページに仕掛ける事で、移転先へ誘導すると言った使い方があります。
通常はリフレッシュは指定されませんし、指定させるにもサーヴァの設定が必要になります。そこで、HTML側でもリフレッシュの指定を変更する事が出来るようになっている訳です。
実際に<meta>要素でリフレッシュを指定するには、http-equiv属性にrefresh値を指定し、content属性に以下の書式でリフレッシュ時間とリフレッシュするリソースを指定します。
<meta http-equiv="refresh" content="リフレッシュ時間;URL=読込むリソースのURI" />
0にすると、読込み終了と同時に指定されたりソースを獲りに行きます。リフレッシュの機能は、閲覧中に勝手に表示ページを換えると言う事で好ましくないとされております。
リフレッシュの機能はHTTPで規定されているものの、ユーザエージェントに依っては実装されていない場合があります。特に携帯電話では一切使えません。
このため、リフレッシュだけでなくHTMLの本文にもリフレッシュ代わりのハイパーリンクを設置する事が求められます。すなわち、以下のようにすべきなのです。
<meta http-equiv="refresh" content="リフレッシュ時間;URL=読込むリソースのURI" />…<p><a href="(<meta>要素で指定した)リソースのURI">移転先</a></p>
また、携帯電話がリフレッシュに対応していない事から、<meta>要素に依るリフレッシュ指定はPC向けページと携帯電話向けページを振分けるのに使われる事もありますが、一部のPC向けブラウザでは携帯電話向けのページが表示される事が考えられます。実際に携帯電話との振分けには以下のように書く事が考えられます。
<meta http-equiv="refresh" content="0;URL=PC版表紙のURI" />… (携帯電話版の表紙となるコンテンツ) …