
こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
今回は、動的にメタタグを設定する軽量なPHPスニペットについてご紹介します。
SEOの基本である title や meta name="description"、さらにはOGPの meta property="og:〜" などのタグは、ページごとに異なる内容にすることが必須です。
でも、WordPressのようなCMSを使っていないと、「どこでどう出し分けたらいいの?」と悩むこともありますよね。
そんなときに便利なのが、1ファイルだけで完結する簡潔なメタタグ管理のスニペットです!
目的:ページごとにタイトルやOGPを変える
静的HTML+PHPで構成された小規模サイトなどでは、テンプレートファイルを使い回しながらも、各ページに適したメタ情報を柔軟に設定する仕組みが求められます。
- トップページ → 「会社の概要」
- 会社概要 → 「◯◯株式会社とは?」
- サービス紹介 → 「Web制作サービス | ◯◯株式会社」
このようなメタ情報をURLまたはファイル名で判別して出力する方法を構築していきます。
PHPスニペット:基本構造
以下のようなコードを head.php などに書き、HTMLの head 部分で読み込むことで、ページごとにメタタグを出し分けられます。
 <?php $page = basename($_SERVER['PHP_SELF'], '.php');
    $meta = ['index' => ['title' => '浜松のWeb制作会社 | サイト名', 'description' => '静岡県浜松市でWeb制作を行う「サイト名」の公式サイトです。',], 'about' => ['title' => '会社概要 | サイト名', 'description' => 'サイト名の会社概要ページ。私たちの理念や沿革を紹介します。',], 'service' => ['title' => 'サービス紹介 | サイト名', 'description' => 'Web制作、SEO対策などのサービスについて紹介しています。',]];
    $title = $meta[$page]['title'] ?? 'サイト名';
    $description = $meta[$page]['description'] ?? '浜松市のWeb制作ならおまかせください。'; ?> <title><?= htmlspecialchars($title) ?></title>
 <meta name="description" content="<?= htmlspecialchars($description) ?>">これにより、ファイル名が about.php のときは about キーの情報が表示されるようになります。
汎用性を高めたい場合
URLのクエリやパス情報を使いたい場合は$_SERVER['REQUEST_URI'] で判別する方法もあります:
 <?php $request_uri = $_SERVER['REQUEST_URI'];
    if (strpos($request_uri, 'service') !== false) {
        $title = 'サービスページ';
    } ?>条件を増やすことで、ディレクトリ構造に応じた細かい出し分けも可能になります。
OGP・Twitterカードにも応用可能
このスニペットは、OGPのようなSNS用メタタグにもそのまま応用できます。
<meta property="og:title" content="<?= htmlspecialchars($title) ?>">
<meta property="og:description" content="<?= htmlspecialchars($description) ?>">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/<?= $page ?>.php">
<meta property="og:image" content="https://example.com/images/ogp-default.jpg">Twitterカード用にも同様に設定できます。
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="<?= htmlspecialchars($title) ?>">
<meta name="twitter:description" content="<?= htmlspecialchars($description) ?>">これで、SNSシェア時もページごとに最適な情報が表示されるようになります。
補足:meta情報をJSONなどに分離してもOK
規模が大きくなる場合は、メタ情報だけを外部ファイル(たとえば meta.json)に分けて管理するとより柔軟です。
{
        "index": {
            "title": "トップページ",
            "description": "トップの説明"
        },
        "blog": {
            "title": "ブログ一覧",
            "description": "ブログ記事一覧"
        }
    }読み込み方法
<?php
$meta_json = json_decode(file_get_contents('meta.json'), true);
$title = $meta_json[$page]['title'] ?? 'デフォルトタイトル';
?>これで非エンジニアの編集も可能な仕組みになります。
まとめ
動的なメタタグ出し分けは、小規模サイトやカスタムCMSでも導入可能なSEO対策の第一歩。
今回ご紹介したPHPスニペットを使えば、わざわざ重たいCMSを使わなくても、ページごとに最適化されたメタタグ出力ができます。
- basenameで現在のページ名を取得し、条件で分岐
- title・description・OGP情報をPHPで動的に出力
- 外部ファイル化すれば柔軟で再利用性もアップ
「HTMLベースだけどSEOをちょっと強化したい」そんなときに、ぜひ取り入れてみてください!
 
							
											










 
                     
                     
                     
                    

 
                         
                         
                         
                         
                         
                         
                         
                         
                 
																 
																 
																 
																 
																 
																 
																 
																 
																 
																 
                  
                                    
                  
                                    
                  
                                    
                  
                                    
                  
                                    
                  
                                    
                  
                                    
                  
                                    
                  
                                   