9/7まで 最大30%OFF 初心者編|無料コーディング教材|HTML・CSS・jQueryを実践で学ぶ

HTMLのmetaタグとは?初心者向けに書き方・種類・SEO設定を解説

HTMLのhead内に書いたmetaタグがブラウザ、スマートフォン、検索結果、SNS共有へ情報を伝える図

HTMLを書いていると、<meta charset="UTF-8"><meta name="viewport" ...>を見かけます。画面には文字として表示されないため、何のために書くのか分かりにくいですよね。

metaタグは、文字コード、スマートフォンでの表示方法、ページの説明、検索エンジンへの指示などをブラウザや外部サービスへ伝えるHTML要素です。基本的にhead要素の中へ書きます。

この記事では、初心者が最初に使うメタタグから、SEOに関係するdescriptionrobots、SNS共有で使うOGPまで、コピペできるコードで解説します。

HTMLのmetaタグとはページの情報を伝える要素

meta要素は、そのページ全体に関するメタデータ(データについての情報)を表します。多くはnamecharsetなどの属性と、設定内容を表す値を組み合わせて使います。

<meta name="設定の種類" content="設定内容">

metaは中身や終了タグを持たない空要素です。HTMLでは</meta>を書かず、1つの開始タグだけで完結します。

HTMLタグ全体の役割や、headbodyの違いから確認したい場合は、次の記事も参考にしてください。

metaタグはhead要素の中に書く

ページの設定を表すメタタグは、基本的にhead要素の中へ配置します。次のコードでは、charsetviewportdescriptionを設定しています。

<!doctype html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="HTMLのmetaタグを初心者向けに解説するページです。">
  <title>HTMLのmetaタグ入門</title>
</head>
<body>
  <h1>HTMLのmetaタグ入門</h1>
</body>
</html>

head内の情報は、通常は本文として画面に表示されません。一方、body内の見出しや文章、画像はブラウザのページ内に表示されます。

title要素もhead内へ書くメタデータですが、metaタグではありません。ブラウザのタブ名や検索結果のタイトル候補などに使われます。

初心者が覚えたい主要なメタ情報

head要素から文字コード、画面幅、説明文、検索エンジン、SNS共有へ情報を伝える日本語の図
head要素内のmetaタグはブラウザや検索エンジン、SNSへ情報を伝えます

最初に覚えたいのは、文字コードを表すcharset、画面幅を表すviewport、ページ説明のdescriptionです。必要に応じて検索エンジン向けのrobotsやSNS向けのOGPも追加します。

文字コードを指定するcharset

charsetは、HTMLファイルで使う文字コードをブラウザへ伝えます。HTML5ではUTF-8を指定し、headの先頭付近へ置きます。

<meta charset="UTF-8">

エディターで保存した文字コードとHTMLの指定が一致していないと、日本語が文字化けする原因になります。新しく作るHTMLファイルは、エディター側もUTF-8で保存しましょう。

スマホの表示幅を指定するviewport

viewportは、ページを表示する領域の幅や初期倍率をブラウザへ伝えます。レスポンシブ対応するページでは、次の設定が基本です。

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

width=device-widthは表示領域の幅を端末の幅に合わせ、initial-scale=1は最初の表示倍率を等倍にします。この設定がないと、スマートフォンでデスクトップ向けの広いページを縮小表示する場合があります。

user-scalable=nomaximum-scale=1で拡大操作を禁止すると、文字を拡大したい利用者が読みにくくなります。特別な理由がなければ、ズームを制限しないでください。

ページの説明を書くmeta description

descriptionは、そのページに何が書かれているかを短く説明するメタタグです。検索エンジンが検索結果の説明文(スニペット)を作るときに、内容が使われる場合があります。

<meta name="description" content="HTMLのmetaタグとは何か、初心者向けに書き方と種類をコード付きで解説します。">

検索エンジンは、検索語やページ本文に応じて別の文章を表示することがあります。設定した文が必ずそのまま表示されるわけではありません。

文字数だけに合わせるのではなく、ページの内容、対象読者、読んで分かることを自然な文章でまとめます。同じ説明文を全ページへ使い回さず、ページごとに書き分けましょう。

検索エンジンへ指示するrobots

robotsは、検索エンジンのクローラーへ、ページを検索結果に登録するかなどを伝えます。通常の公開ページはindex, followが既定なので、わざわざ書く必要はありません。

検索結果へ表示したくないページでは、次のようにnoindexを指定します。

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

noindexを公開記事へ誤って付けると、検索結果に表示されなくなる可能性があります。テンプレートをコピーしたときや公開前には、不要なnoindexが残っていないか確認してください。

また、noindexはパスワード保護ではありません。機密情報を隠す目的では使わず、認証やアクセス制限を設定します。

SNSの共有表示を整えるOGP

OGP(Open Graph Protocol)は、ページがSNSなどで共有されたときのタイトル、説明文、画像、URLを伝えるメタ情報です。nameではなくproperty属性を使います。

<meta property="og:type" content="article">
<meta property="og:title" content="HTMLのmetaタグ入門">
<meta property="og:description" content="metaタグの書き方と種類を初心者向けに解説します。">
<meta property="og:url" content="https://example.com/meta-tag/">
<meta property="og:image" content="https://example.com/images/meta-tag-ogp.jpg">

og:urlog:imageは、https://から始まる絶対URLで指定します。記事ページではog:type="article"、サイトのトップページではwebsiteが一般的です。

OGP画像は、共有先で文字や重要な部分が切れないよう、実際のプレビューでも確認しましょう。WordPressではテーマやSEOプラグインが自動生成することがあるため、同じタグを手書きで重複させないようにします。

X向けのTwitterカードを設定する

Xで大きな画像付きカードを表示したい場合は、twitter:cardを追加します。タイトルや画像はOGPの値が利用される場合もありますが、必要に応じて個別に指定できます。

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="HTMLのmetaタグ入門">
<meta name="twitter:description" content="metaタグの書き方と種類を初心者向けに解説します。">
<meta name="twitter:image" content="https://example.com/images/meta-tag-ogp.jpg">

canonicalはmetaタグではなくlink要素

似た内容のURLが複数あるとき、代表として扱ってほしいURLを伝えるcanonicalhead内へ書きます。ただし、これはmetaタグではなくlink要素です。

<link rel="canonical" href="https://example.com/meta-tag/">

hrefには、そのページの正規URLを絶対URLで指定します。WordPressでは自動出力されることが多いため、追加前にページのHTMLソースを確認してください。

現在は書かなくてよい古いメタタグ

meta keywords

<meta name="keywords" ...>は、以前キーワードを列挙するために使われていました。Google検索ではランキング目的に利用されないため、現在の一般的なページで追加する必要はありません。

X-UA-Compatible

<meta http-equiv="X-UA-Compatible" content="IE=edge">は、Internet Explorer向けに表示モードを指定していたコードです。現在新しく作るHTMLの基本雛形には不要です。

自動転送するhttp-equiv refresh

http-equiv="refresh"で一定時間後に別ページへ移動できますが、利用者が内容を読む前に画面が変わる可能性があります。URL変更では、可能ならサーバー側のHTTPリダイレクトを使います。

実用的なheadの完成例

これまでの内容をまとめると、記事ページのheadは次のように書けます。URL、タイトル、説明文、画像URLは自分のページに合わせて変更してください。

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>HTMLのmetaタグ入門</title>
  <meta name="description" content="HTMLのmetaタグとは何か、初心者向けに書き方と種類を解説します。">
  <link rel="canonical" href="https://example.com/meta-tag/">

  <meta property="og:type" content="article">
  <meta property="og:title" content="HTMLのmetaタグ入門">
  <meta property="og:description" content="metaタグの書き方と種類を初心者向けに解説します。">
  <meta property="og:url" content="https://example.com/meta-tag/">
  <meta property="og:image" content="https://example.com/images/meta-tag-ogp.jpg">

  <meta name="twitter:card" content="summary_large_image">
</head>

metaタグを確認する方法

ページのソースを表示する

ブラウザでページを開き、「ページのソースを表示」からhead内を確認します。CMSやJavaScriptが出力する場合もあるため、編集ファイルだけでなく最終的なHTMLを見ることが大切です。

開発者ツールで検索する

開発者ツールのElementsパネルを開き、meta name="description"og:imageを検索します。同じnamepropertyが複数出力されていないかも確認してください。

metaタグが反映されないときの確認項目

  • metaタグがhead内にあるか
  • namepropertycontentの綴りが正しいか
  • 属性値の引用符が閉じているか
  • 同じ種類のタグが重複していないか
  • CMSやキャッシュが古いHTMLを表示していないか
  • OGPのURLと画像URLが外部からアクセスできる絶対URLか

検索結果やSNSのプレビューは、HTMLを変更してもすぐに更新されない場合があります。まず最終HTMLが正しいことを確認し、その後に各サービス側の再取得を待ちます。

HTMLメタタグに関するよくある質問

metaタグはすべてのページに必要ですか?

charsetviewportは基本のHTMLへ入れます。descriptionやOGPはページごとに内容を変え、robotsは必要なページだけ設定します。

meta descriptionを書けば検索順位が上がりますか?

説明文を書くだけで順位が上がるとは限りません。ただし、ページ内容を正確に伝える説明文は、検索結果で利用者がページを選ぶ判断材料になる場合があります。

WordPressでもmetaタグを手書きしますか?

テーマやSEOプラグインが自動出力することが多いため、通常は管理画面の設定を使います。手書きする前にソースを確認し、description、canonical、OGPなどが重複しないようにしてください。

まとめ

HTMLのmetaタグは、ページ上には見えない情報をブラウザ、検索エンジン、SNSなどへ伝えます。まずはcharsetviewportdescriptionの役割と書き方を覚えましょう。

検索表示を制御するrobotsや共有表示を整えるOGPは、必要なページへ正しい内容で設定します。完成後はページのソースを開き、重複、綴り、URLまで確認できれば完了です。