内部リンク, htmlの基礎とSEO効果をわかりやすく解説

目次

はじめに

目的

この章では、本書の狙いと読み進め方をやさしく説明します。HTMLのページ内リンク(アンカー)を学び、実装からトラブル対処、SEOの工夫まで実用的に使える知識を身につけることが目的です。

対象読者

初心者から中級者のウェブ制作者、ブログ運営者、WordPress利用者を想定します。HTMLの基本タグがわかる方なら読み進められます。専門用語は最小限にして、具体例で補足します。

本書で学べること

  • HTML4とHTML5それぞれのページ内リンクの作り方
  • リンクが飛ばないときの原因と直し方
  • WordPressでの設定手順
  • 内部リンクでSEO効果を高めるポイント

進め方と注意点

章ごとに実例とコード例を示します。まずは基本を試し、問題が出たら該当章に戻ると効率的です。実際のサイトに適用する際は、バックアップを取ってから変更してください。

HTMLでのページ内リンク設定の基礎知識

概要

ページ内リンクとは、同じページ内の特定の位置へ移動するための仕組みです。目次から本文の見出しへジャンプさせるなど、閲覧の利便性を高めます。設定には「リンク元」と「リンク先」の両方が必要です。

基本要素

  • リンク元:<a href="#目標のID">リンクテキスト</a>のようにhref#で始まる識別子を指定します。
  • リンク先:移動先の要素にid="目標のID"を付けます。idはページ内で一意にします。

実際の書き方(例)

<a href="#section1">この見出しへ</a>
...
<h2 id="section1">セクション1</h2>

このようにすると、リンクをクリックすると該当位置までスクロールします。

注意点

  • idは同じページで重複させないでください。重複すると意図した場所へ飛ばない場合があります。
  • 日本語のidは使えますが、半角英数字で短くする方が互換性で安心です。
  • 固定ヘッダーがある場合、見出しが隠れることがあります。その場合はCSSのscroll-margin-topを使うか、少し余白を追加してください。

互換性(補足)

古い例では<a name="...">が使われましたが、現在はid属性を使う方法が標準です。

ユーザビリティのコツ

リンクテキストは目的を明確にし、目次や「トップへ戻る」など分かりやすい文言を心がけてください。キーボード操作でも移動できるよう配慮すると親切です。

従来のHTML(HTML4)での実装方法

基本の書き方

HTML4では、ページ内リンクの目的地にname属性を付けたアンカー要素を置きます。例:

<a name="example">ここが目印(テスト)</a>
<a href="#example">ここからリンク</a>

上のようにname="example"を付けた場所へ、href="#example"で飛びます。リンク先は同じページ内だけでなく、page.html#exampleのように別ページにも指定できます。

実際の配置例と注意点

通常は見出しや段落の直前に置きます。目立たせたくない場合は空のアンカーを使うこともありますが、空だとスクリーンリーダーで認識されにくくなることがあるため、見出し要素(h1〜h6)やid付きの要素を併用すると親切です。

制限と互換性

name属性のアンカーは古い書き方で、多くのブラウザは対応しますが、HTML5では非推奨になりました。フォームやスクリプトで同じ名前を使うと混乱する場合があります。新しい書き方ではid属性を使うことが一般的です。

HTML5での最新の実装方法

基本的な書き方

HTML5ではid属性を使うのが一般的です。アンカーはセクション1へ、目標は

セクション1

のように記述します。シンプルでブラウザやURLとの相性が良いです。

適用できる要素

idは見出し(h1〜h6)、div、section、article、footerなど、ほとんどの要素に付けられます。意味のある要素に付けると構造が分かりやすくなります。

実装のポイント

  • idはページ内で一意にします。同じidがあると動作が不安定になります。
  • id名は英数字とハイフンを使うと扱いやすいです(例: section-1)。
  • 他ページから直接参照するときはフラグメント識別子(#section-1)をURLに付けます。

アクセシビリティと動作改善

  • リンク先にフォーカスが移るように、必要なら tabindex=”-1″ を設定します。
  • スムーススクロールはCSSのhtml{scroll-behavior:smooth;}で簡単に実装できます。

実例(ナビからジャンプ)

<nav><a href="#about">会社概要</a></nav>
<section id="about"><h2>会社概要</h2>...</section>

この方法で意味のある構造化された内部リンクが実現できます。

ページ内リンクが飛ばない原因と解決策

よくある原因

  • id属性とhref属性の不一致:<a href="#section1">に対し、移動先がid="sec1"だと飛びません。値を完全一致させてください。
  • name属性とid属性の混在:HTML5ではidを使います。古いnameに頼ると挙動が不安定です。
  • 重複したid:同じidが複数あるとブラウザがどこに飛ぶか迷います。idは一意にします。
  • 要素が存在しない/非表示:移動先がdisplay:noneやまだ読み込まれていないと機能しません。動的に生成する場合はロード後にリンクを効かせます。
  • 固定ヘッダーで見出しが隠れる:飛んでも見出しが隠れると「効かない」と感じます。スクロール位置を調整します。

確認手順(簡単)

  1. hrefの#以降と移動先のidを文字単位で比べる。大文字小文字も区別します。
  2. ブラウザの検証ツールで該当要素が存在するか確認する。
  3. idが重複していないか確認する。

具体的な解決策(コード例)

  • 正しい例:<a href="#about">会社概要</a><h2 id="about">会社概要</h2>
  • 固定ヘッダー対応(CSS):h2{scroll-margin-top:80px;} これでヘッダー分の余白を確保します。
  • 動的要素の場合(JavaScript):要素生成後にlocation.hash = '#id名'element.scrollIntoView()で確実に移動させます。

その他の注意点

  • idにスペースや特殊文字を使わない。英数字と-や_が安全です。
  • ページを跨ぐリンクは/page.html#idのようにパスを含める。
  • ブラウザのキャッシュや拡張が影響することもあるため、別ブラウザでの確認もおすすめします。

WordPressでのページ内リンク設定方法

方法1:テキストに#を付けてリンクする(ブロックエディタ)

  1. リンク先のブロックを選択します。
  2. 右側のブロック設定で「高度な設定」欄を探し、「HTMLアンカー(例:section1)」を入力します。
  3. リンク元のテキストを選び、リンク挿入でURL欄に「#section1」と入力します。
    例:リンクURLに「#about」→ 対象ブロックのHTMLアンカーは「about」。

方法2:GUIメニューからHTMLアンカーを設定する

  1. ブロックを選択 → ブロック設定の「高度な設定」へ。
  2. 「HTMLアンカー」に半角英数字とハイフンを使って名前を入力します(空白は不可)。
  3. リンクは通常のリンク挿入と同様に「#アンカー名」を指定します。

動作確認(プレビューでの確認)

  1. 投稿を保存または下書き保存します。
  2. プレビューを開き、リンクをクリックしてページ内で該当位置に移動するか確認します。

注意点

  • アンカー名は他と重複しないように決めます。
  • 日本語を使うとブラウザでURLが変換される場合があるため、英数字やハイフン推奨です。
  • 固定ページやテーマによってはスクロールの挙動が異なることがあります。

SEO効果を高める内部リンク設置のポイント

目的を明確にする

内部リンクはユーザーの導線と検索エンジンの巡回を助けます。まずどのページに訪問者を導きたいかを決めてください。例えば「商品ページ」へ誘導して購買を増やす、といった目的です。

関連性の高いリンクを優先

同じテーマやカテゴリのページ同士でリンクを張ります。無関係なページへ飛ばすとユーザーが混乱し、離脱率が上がります。例:レシピ記事から食材の購入ページへリンク。

アンカーテキストの書き方

「こちら」や「詳細はこちら」ではなく、具体的な語句を使います。例:「夏向け保湿クリームの詳しいレビュー」。検索エンジンとユーザーに内容を伝えやすくなります。

設置場所と量

本文中の文脈に沿った箇所に置きます。サイドバーやフッターに無意味にたくさん置くと効果が薄れます。1ページあたり自然な数(目安は数個)を目安にしてください。

dofollow と nofollow の使い方

内部リンクは原則dofollow(特に属性を付けない)で構いません。クローラーがページ間の価値を渡せるようにします。広告や有料リンク、信頼できない外部ページへはnofollowを検討してください。

サイト構造と階層化

トップ→カテゴリ→詳細のように論理的な階層を作ります。パンくずリストを設けるとユーザーとクローラー両方に親切です。

実践チェックリスト

  • リンク先はテーマが近いか
  • アンカーテキストは具体的か
  • ページ数に対してリンクが多すぎないか
  • 重要なページへ内部リンクが集まっているか

これらを意識して内部リンクを整えると、ユーザー体験が向上し、SEO効果も高まります。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次