2026年5月20日

2026年5月20日

WordPressのメタタグを設定する方法

はじめに

メタタグは検索エンジンとブラウザにページの情報を伝えるHTML要素です。WordPressは基本的なメタタグを自動出力しますが、SEOに最適化された robots・canonical・description タグを wp_head フックで制御することで、インデックスの質を高められます。

症状・原因

  • Googleに意図しないページがインデックスされている
  • 検索結果のタイトルやスニペットが正しくない
  • 重複コンテンツとして評価されている
  • モバイルでレイアウトが崩れる(viewport未設定)

解決手順

ステップ1:必須メタタグを確認する

// WordPress が自動で出力するメタタグ(wp_head経由):
// <meta charset="UTF-8">                    ← wp_head() で自動出力
// <meta name="viewport" ...>                ← テーマが出力(必須)
// <link rel="canonical" href="...">         ← WP4.6以降自動出力
// <link rel="pingback" href="...">          ← 自動出力(不要なら削除可)

// 自動出力されないため手動設定が必要:
// <meta name="description" content="...">
// <meta name="robots" content="...">
// OGPタグ(別記事で解説)
// JSON-LD構造化データ(別記事で解説)

ステップ2:viewportとcharsetを正しく設定する

// functions.php

function mytheme_essential_meta_tags(): void {
    // charset は wp_head() が自動出力するが念のため確認
    // <meta charset="UTF-8"> ← WordPress が自動で出力

    // viewport: モバイル対応に必須
    echo '<meta name="viewport" content="width=device-width, initial-scale=1">' . "\n";

    // X-UA-Compatible: IE互換モードを無効化(IE11以前向け)
    // 現在はほぼ不要だが古いサイトでは設定されていることがある
    // echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">' . "\n";
}
add_action('wp_head', 'mytheme_essential_meta_tags', 1);

ステップ3:robotsメタタグを適切に設定する

// functions.php

function mytheme_robots_meta(): void {
    // デフォルトはインデックス許可(明示的に書かなくてもよい)
    $robots = 'index, follow';

    // noindex にすべきページ
    if (is_search()) {
        $robots = 'noindex, follow';         // 検索結果
    } elseif (is_404()) {
        $robots = 'noindex, nofollow';       // 404ページ
    } elseif (is_author() && !is_front_page()) {
        $robots = 'noindex, follow';         // 著者アーカイブ(任意)
    } elseif (is_tag()) {
        $robots = 'noindex, follow';         // タグアーカイブ(任意)
    } elseif (is_paged() && get_query_var('paged') > 3) {
        $robots = 'noindex, follow';         // 深いページネーション
    }

    // ステージング環境では全ページnoindex
    if (defined('WP_ENV') && WP_ENV === 'staging') {
        $robots = 'noindex, nofollow';
    }

    if ($robots !== 'index, follow') {
        echo '<meta name="robots" content="' . esc_attr($robots) . '">' . "\n";
    }
}
add_action('wp_head', 'mytheme_robots_meta', 1);

ステップ4:不要なメタタグ・リンクタグを削除する

// functions.php

function mytheme_remove_unnecessary_head_tags(): void {
    // RSD リンク(XML-RPCが不要な場合)
    remove_action('wp_head', 'rsd_link');

    // Windows Live Writer リンク
    remove_action('wp_head', 'wlwmanifest_link');

    // ショートリンク(SEO的に不要)
    remove_action('wp_head', 'wp_shortlink_wp_head');

    // WordPress バージョン情報(セキュリティのため削除)
    remove_action('wp_head', 'wp_generator');

    // Pingbackリンク(使用しない場合)
    remove_action('wp_head', 'feed_links_extra', 3);
    // フィード自体は残す場合
    // remove_action('wp_head', 'feed_links', 2);

    // Adjacent posts リンク(SEOには不要)
    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10);

    // REST API リンク(公開したくない場合)
    remove_action('wp_head', 'rest_output_link_wp_head', 10);
    remove_action('template_redirect', 'rest_output_link_header', 11);
}
add_action('init', 'mytheme_remove_unnecessary_head_tags');

ステップ5:meta robots をHTTPヘッダーでも送信する

// functions.php

// ページのnindex設定をX-Robots-Tagヘッダーでも送信
// (PDFなど非HTMLリソースにも有効)
function mytheme_x_robots_tag_header(): void {
    if (headers_sent()) {
        return;
    }

    if (is_search() || is_404()) {
        header('X-Robots-Tag: noindex', true);
    }

    // ステージング環境
    if (defined('WP_ENV') && WP_ENV === 'staging') {
        header('X-Robots-Tag: noindex, nofollow', true);
    }
}
add_action('send_headers', 'mytheme_x_robots_tag_header');

// wp-config.php でステージング環境を識別
// define('WP_ENV', 'staging'); // ステージングサーバーのwp-config.phpに追加

注意事項

  • wp_generator を削除するとWordPressのバージョンが隠せますが、セキュリティの根本解決にはなりません。WordPressとプラグインを常に最新に保つことの方が重要です
  • is_search() での noindex は必ず設定してください。Googleがサイト内検索ページをインデックスすると重複コンテンツとして評価されます
  • ステージング環境の noindex はデプロイ手順に組み込み、本番環境に誤って適用されないよう注意してください

まとめ

wp_head priority:1 で robots メタタグを出力し、検索結果・404・タグアーカイブを noindex にします。remove_action で不要なリンクタグを削除してHTMLを軽量化します。X-Robots-Tag HTTPヘッダーをあわせて送信することで、PDFなどHTMLでないリソースにもインデックス制御が効きます。

お気軽にご相談ください

お見積りへ お問い合わせへ