【テンプレコード付き】HTMLのheadとは?どんなことを書くのがベスト?

htmlの脳とも言えるheadタグの役割とそれぞれのタグやコードの意味について解説していきます。webサイト制作をする上でSEO対策と密接な関係にあるテーマの1つなのでしっかりと理解しましょう。記事の最後にはheadタグのコードのテンプレートも用意しているので是非参考にしてみてください。

headとは?

htmlでwebサイトを作成する時のコードを大きくわけると次のように「headタグ」と「bodyタグ」に分かれています。そしてそれぞれの役割は以下のようになっています。

headタグとbodyタグの役割

head

webブラウザには表示されない部分
webブラウザや検索エンジン(Goolge)などのコンピューターロボットがwebサイトの情報を知るための部分。

body

webブラウザで表示される部分
webサイトに表示したい文章や画像のhtmlタグを書く部分。

headタグはなぜ書くの?

headに適切な情報を書くメリット

検索順位を上位表示するための対策のことを「SEO対策」といいますが、headに書く情報はこのSEO対策に大きく関係してきます。

検索順位の決定はGoogleが行なっているため、metaタグとlinkタグを使って適切にwebページの情報を書くことはwebサイトを検索上位に表示することに繋がって行きます。

headに書くタグは2種類

headに書くタグは大きくわけて「metaタグ」と「linkタグ」の2種類です。

metaタグにはそのwebサイトの「文字コード」「説明文」「作成者」などを書き、linkタグには外部のwebページとの関係性やcss・javascriptファイルの読み込み先などを書きます。

今回はその中でも用途に応じた「metaタグ」と「linkタグ」の使い方を解説していきます。

ページの情報に関するmetaデータ

主にwebページの情報に関するmetaデータを書くためのタグです。この部分はheadに書く情報の中でも基本的な部分です。

文字コード

webページの文字コードを指定するためのmetaタグです。

<meta charset="utf-8">

文字化けを防ぐために必ず書きましょう。charset="〇〇"には他にも「Shift_JIS」「EUC-JP」を指定することができますが、html5での推奨の「UTF-8」を書いておけばOKです。

ページタイトル

そのページの内容を一言で表したものをtitleに記述します。

<title>ページのタイトル</title>

検索結果のタイトルになったりブラウザのタブ名になったりする

titleに書いたテキストは検索結果ブラウザのタブ名に使用されます。

Goolgeの検索結果に表示されるタイトルの文字数には制限があるため、日本語で30〜33文字以内で作成することが理想的です。

titleがシンプルすぎるからといって検索順位が下がるということはありません。大切なのはいかに的確にページの内容を伝えるかです。

スマホの検索結果ではタイトルの文字数制限が約50文字と大幅に変わります。ユーザーの多くがスマホで閲覧するようなサイトの場合、これも考慮するといいでしょう。

説明文

そのwebページの概要をdescriptionに書きます。

<meta name="description" content="webページの概要">

検索結果の説明文に使用される
<meta name="description" content="〇〇">に書いたテキストは検索結果の説明文に使用されます。こちらもタイトル同様表示される文字数が約120字と制限があるので説明文を全て表示したい場合は意識してみましょう。

120文字を超えたからといって検索順位が下がるということはなく200文字〜300文字のdescriptionでも上位表示しているwebサイトは多くあります。大切なのは「簡潔かつ正確にページの概要を書く」ということです。

よく解説されるけど「実は不要」なタグ

今でも多くの参考書や記事で紹介されるタグの中で「実は書く必要がないタグ」というものを紹介します。

lang

そのwebページで使用されている言語を伝えるために<html lang="ja"></html>とhtmlの開始タグに指定をしていましたが、Googleはwebページ内のテキストがどこの国の言語で書かれているかを判断できるため不要です。

author

そのwebページの作者を書くタグです。<meta name="author" content="名前">に作者の名前を書きます。現時点では書かれていてもGoogleの評価に影響はありません。

keyword

ページ内のメインのテーマを<meta name="keyword" content="html,head,初心者">のように単語で書くことができますがスパムが多いためGoolgeはこのタグを無視しています。

お兄さんからひとこと

Googleが生まれてすぐの頃はwebページを解析するロボットの性能があまり高くなかったんだ。でも今はwebページの内容から様々な情報を的確に汲み取ることができるようになったから以前まで必須だったタグが不要になってきているんだね。

外部ファイルを読み込む

cssとjavascriptのファイルを外部から読み込む場合はhead内に読み込むファイルの情報を記述します。

cssファイルを読み込む

cssファイルを外部から読み込む場合にはlinkタグを使います。

<link rel="ファイルの種類" href="ファイルの場所">
  1. rel属性にはhref属性で読み込むファイルの種類が何かを記述します。
  2. href属性にはファイルのパス(ファイルのURL)を書きます。

たとえば「style.css」というcssファイルを外部から読み込む場合は
<link rel="stylesheet" href="style.css">と書きます。

cssの読み込み方法はこちらの記事で詳しく解説しています。

jsファイルを読み込む

javascriptのファイルを読み込む場合はscriptタグを使用します。

<script src="ファイルの場所"></script>

注意したいのは先ほどのlinkタグと違い閉じタグ(</script>)があるという点です。

src属性にはjsファイルのファイルパス(URL)を書きましょう。

たとえば、script.jsというファイルなら<script src="script.js"></script>と記述します。

Googleのロボットに指示するためのタグ

metaタグを使うことによって、webページをどのように検索結果に表示するかなどをGoogleのロボットに指示することができます。

Googleの検索結果に出ないようにする

metaタグを使うことでwebページをGoogleの検索結果に表示しないようにできます。

<meta name="robots" content="noindex">

noindexを書くことでGoogleの検索結果に表示されなくなりますが、あくまで検索結果に表示されないだけなのでURLを知っていればwebで閲覧は可能です。

どんな時に使う?

noindexはユーザーにとって価値が低いページに対して使います。言い換えれば「検索してまで見たいと思わないページ」を指します。例えば「お問い合わせページ」や「日付別の記事アーカイブ」などです。

リンクを辿らないようにする

<meta name="robots" content="nofollow">

nofollowが付いているページ

Googleはページについているリンクを辿ることで、そのページを認識し順位付けの評価をしています。

headタグ内にnofollowがあることでそのページにある全てのリンク先のページを辿らないように指示することができます。

どんな時に使う?

検索順位をあげるためにはGoogleのロボットに効率よくサイトを巡回してもらう必要があります。そのためリンク先のコンテンツの内容が薄い(価値が低い)ものばかりの場合はGoolgeに見てもらっても無駄になってしまうのでnofollowを付けてリンクを辿る必要がないということを教えてあげましょう。

noindexとnofollowを一緒に書く

noindexとnofollowは一緒に書くことができます。

<meta name="robots" content="noindex,nofollow">

noindexしか書いていない場合は検索結果に表示されないだけでそのページにあるリンクをGoogleは辿ります。

逆にnofollowしか書いていない場合はリンクは辿りませんが検索結果には表示されるようになってしまいます。

検索結果に表示せず、リンクも辿らないようにGoogleに指示する場合は「,(カンマ)」で区切ってnoindexnofollowを両方書きます。

他のページとの関係性を示すタグ

Goolgeに誤解のないように他のwebページとの関係性を説明することで、正しくページの評価をしてもらう必要があります。

分割ページであることを伝えるタグ

 分割ページの例

分割ページとはページ送りがついているページです。左のイラストのようにページ送りがついている記事などを見かけたことがありますよね。

このようにページ送りで分割されたwebページのことを分割ページといいます。

link-relを書くことで全体で1つのページとして評価してもらえる

通常Googleは1つのページごとに評価をするのでページが異なる場合は評価も分散してしまいます。

イメージ的には「本来15点の評価がつく記事が3ページに分かれているせいで、5点ずつの評価になってしまう」ようなものです。

しかしlink relを使い分割されたページが繋がっていることをGoogleに教えることで全てのページをまとめて1つのページとして評価してもらうことができます。

<link rel="prev" href="前のページURL">
<link rel="next" href="次のページURL">

上記の形式で前後のページのURLを記述します。たとえば3ページに分割されたwebページがあるとします。その場合は

  1. 1ページ目に<link rel="next" href="2ページ目URL">
  2. 2ページ目に<link rel="prev" href="1ページ目URL"><link rel="next" href="3ページ目URL">
  3. 3ページ目に<link rel="prev" href="2のページURL">

とhead内に記述します。「そのページと直接繋がっているページのURLを書く」と覚えておけば迷いません。

スマホ用ページの存在をGoogleに知らせる

スマホ用のページを別URLで用意する

webサイトをスマホ対応させる方法の1つに「PC用のページ」と「スマホ用のページ」をそれぞれ用意するという方法があります。

その場合、当然URLは別々になるのでGoogleに「PCの時はこっちのページで、スマホの時にはこっちのページを表示してね」と教えてあげなければいけませんよね。

そのために使うのが「alternate」と「canonical」です。

<link rel="alternate" media="only screen and (max-width: 640px)" href="http://example.com/sp/" />

PC用のページのhead内に上のような形式でスマホ用ページのURLを書きます。media〜の部分は「ブラウザサイズが640px以下(スマホはだいたい640px以下なので)の時はこっちのURLのページを表示してね」という意味です。

<link rel="canonical" href="http://example.com/" />

続いてスマホ用のページのheadにも上の形式でPC用ページのURLを書きます。

ポイント

PC用ページではrel="alternate"で、スマホ用ページではrel="canonical"ということに注意してください。このようにPC・スマホページで相互の関係性をGoogleに伝えることで、端末ごとに適切なwebページを表示してくれます。

複数ページの評価をまとめる

似ているページは評価が下がる

ページの内容がよく似ているとGoogleは評価をしにくくなってしまい、最悪の場合Goolgeの規約違反である「重複コンテンツ」とみなされスパム扱いされてしまいます。

しかしwebサイトを作っているとどうしても重複コンテンツが生まれてしまうという場合があります。

そんな時には「linkタグのcanonical」を使います。

http://example.com/second.htmlというページの内容がhttp://example.com/first.htmlというページと内容がほぼ同じだとします。first.htmlのページを正しいページとして評価してほしい場合、second.htmlのheadに以下のように書きます。

<link rel="canonical" href="http://example.com/first.html" />

これにより「second.htmlは重複コンテンツではなく、正しいページはfirst.htmlです」とGoogleに伝えることができます。

ポイント

意図せず重複コンテンツになってしまっているページに<link rel="canonical" href="本来評価してほしいページのURL">と書きます。複数ある場合はすべてのページにこれを書きます。本来評価して欲しいページには何も書かなくてOKです。

ユーザーのために設定したほうがいいタグ

ここで紹介するタグは必須ではありませんが、設定をすることでよりwebサイトを使いやすくすることができるのでぜひ設定しておきましょう。

IEで互換表示させない

InternetExplorerには「互換表示」と「標準モード」の2つの表示方法があります。ユーザーの環境によってどちらで表示されるかことなり、「互換表示」のレンダリングの場合レイアウトが崩れてしまうことがあります。

<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

上記のコードで強制的に「標準モード(最新のレイアウトに対応できる)」でwebサイトを表示させることができます。

ファビコンを設定する

faviconの例

ファビコンとはブラウザのタブに表示される「サイトのアイコン」です。ファビコンは自分の好きな画像を設定することができます。

<link rel="shortcut icon" href="ファイル名.ico">

ファイル名の拡張子が少し特殊で「.ico」となっているところに注意しましょう。

作成については、ファビコンにしたいpngファイル(背景が透明)を用意すれば「ファビコン favicon.icoを作ろう!」のようなサイトでico形式のファイルに変換することができます。

webクリップアイコンを設定する

 

webクリップアイコン

 

iphoneやandroidでwebサイトをホーム画面に追加した時に表示されるアイコンをwebクリップアイコンと呼びます。

何も設定しない場合でもスマホが自動でwebページをトリミングしたものを設定してくれますが、わかりやすいアイコンを登録していた方がユーザーもすぐに見つけることができますよね。

<link rel="apple-touch-icon-precomposed" href="画像のパス/apple-touch-icon-precomposed.png">

設定する時は以下のポイントに注意してください。

  1. 57px〜152pxの正方形の画像を用意する
  2. 画像の背景は透明にしないこと
  3. 角丸のデザインはスマホが勝手に処理してくれるので不要
  4. 「apple-touch-icon-precomposed.png」という名前にする

viewportを設定する

viewportはスマホサイトでのサイトの見え方を決めるための重要な概念です。

たとえばレスポンシブサイト(ブラウザ幅によってコンテンツの幅が変わる)であれば必ず以下のように書かなければいけません。

<meta name="viewport" content="width=device-width,initial-scale=1">

viewportは結構ややこしい概念なので詳しい説明は省きます。

基本的な考え方は「実践!スマホサイトのviewport設定|CodeGrid」で理解できます。

OGPの設定をする

OGPとはfacebookやTwitterなどのSNSでwebページがシェアされた時の設定です。

シェアされた時のタイトルや説明文、サムネイル画像など細かく設定することができます。

<!-- facebookのOGPタグ -->
<meta property="og:site_name" content="サイト名" />
<meta property="og:url" content="ページURL" />
<meta property="og:type" content="ページタイプ" /> /*websiteやarticle*/
<meta property="og:title" content="ページタイトル" />
<meta property="og:description" content="ページ説明文"/>
<meta property="og:image" content="サムネイル画像URL" />
<meta property="fb:app_id" content="appIdを入力" />
<meta property="og:locale" content="ja_JP" />
 
<!-- twitterのOGPタグ -->
<meta name="twitter:card" content="カードの種類" />
<meta name="twitter:site" content="@ユーザー名" />
<meta name="twitter:description" content="ページ説明文" />
<meta name="twitter:image:src" content="サムネイル画像URL" />

詳しくは「OGP 設定方法」などで検索するとたくさんの解説記事がでてくるので、実際に設定する際はそちらを参考にしてください。

headタグ内のコードテンプレート

<head>
  <meta charset="utf-8">
  <meta name="robots" content="index,follow" />
  <title>ページタイトル</title>
  <meta name="description" content="説明文" />
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <link rel="shortcut icon" href="ファイル名.ico">
  <link rel="apple-touch-icon-precomposed" href="画像のパス/apple-touch-icon-precomposed.png">

  <!-- 外部ファイルの読み込み -->
  <link rel="ファイルの種類" href="ファイルの場所">
  <script src="ファイルの場所"></script>

  <!-- スマホページのURLが異なる場合(PC側) -->
  <link rel="alternate" media="only screen and (max-width: 640px)" href="スマホページのURL" />

  <!-- スマホページのURLが異なる場合(スマホ側) -->
  <link rel="canonical" href="PCページのURL" />

  <!-- 必要あれば -->
  <link rel="canonical" href="評価を統一したいページのURL" />

  <!-- 分割ページの場合 -->
  <link rel="prev" href="前のページのURL">
  <link rel="next" href="次のページのURL">

  <!-- facebookのOGPタグ -->
  <meta property="og:site_name" content="サイト名" />
  <meta property="og:url" content="ページURL" />
  <meta property="og:type" content="ページタイプ" /> 
  <meta property="og:title" content="ページタイトル" />
  <meta property="og:description" content="ページ説明文"/>
  <meta property="og:image" content="サムネイル画像URL" />
  <meta property="fb:app_id" content="appIdを入力" />
  <meta property="og:locale" content="ja_JP" />
   
  <!-- twitterのOGPタグ -->
  <meta name="twitter:card" content="カードの種類" />
  <meta name="twitter:site" content="@ユーザー名" />
  <meta name="twitter:description" content="ページ説明文" />
  <meta name="twitter:image:src" content="サムネイル画像URL" />

</head>

お兄さんからひとこと

head内に必要なmetaタグとlinkタグをまとめてテンプレート化したからwebサイトを作りはじめる時にぜひ活用してみてね。ただコピペするだけでは無駄なコードが増えてしまうから、きちんとコードの意味を理解して必要なものだけに絞り込むようにこころがけよう!

この記事を書いた人

web関連の勉強をしているみんなのために「とにかくわかりやすい記事」にこだわってwebスキルの情報を発信しています。フリーランスでデザイン・コーディング・webマーケティング(SEO)とweb全般のお仕事をしています。

この記事を読んだ人におすすめ

  • iframeタグを使ってwebページにコンテンツを埋め込もう

  • 【完全ガイド版】Sublime Textの使い方と設定方法 - MacとWindow...

  • 【基本のき】ホームページの仕組みをイラスト付きでまるっと解説!

  • 【初心者向け】HTMLの改行方法まとめ|pタグとbrタグの使い方

  • 【初心者向け】0からformがわかる|HTMLでのフォーム作成

  • パンくずリストを構造化データでリッチスニペット対応する方法

  • マークアップの意味とマークアップ言語の種類について

  • 【完全初心者】HTMLとは何か?をイラストを使って解説

記事をもっと見る +

目次を開く