テーマカスタマイズ

SEO対策的にやっておきたいユニークにメタ情報を出力するWordPressの設定

2017.08.25

2017.09.03

ユニークな頭

WordPressのSEO効果を上げるために是非行っておきたいのが投稿記事のタイトル、ディスクリプション、キーワード等のメタをユニークに設定できるようにすることです。All in One SEOなどのSEO用のプラグインを使うのが手軽なのですが、いろいろ出来すぎて依存性が高いのでAdvanced Custom Fieldsのカスタムフィールドでやってみようと思います。

Advanced Custom Fieldsとは?

Advanced Custom Fieldsも依存性の高いプラグインなのですが、プラグインを使わなくてもDBから情報を取り出すことは可能なので、ガシガシ使います。ちなみにAdvanced Custom Fieldsを使うならProがオススメです。が無料版でもすごく便利なプラグインです。

プラグイン>新規追加>Advanced Custom Fieldsで検索>今すぐインストール>有効化で使えるようになります。

Advanced Custom Fieldsで入力項目を作る

インストールしたら早速入力項目を作ります。新規でフィールドグループを作成しこのフィールドグループを表示する条件を「投稿タイプ」「等しい」「投稿」と設定してください。作成したフィールドグループに各項目を作成します。SEO的に私が作っている項目は以下の通り。

  • ディスクリプション
  • キーワード
  • このページをindexさせない

ディスクリプション

ディスクリプションはクリック率にもつながるSEO対策的にも大事な要素です。各ページユニークに設定する必要があります。

設定項目
フィールドラベル 入力項目の名前です。日本語でもOK
フィールド名 カスタムフィールドの名称です。
フィールドタイプ テキストエリア
改行 何もしない

キーワード

SEO的には意味がないと言われていますが、端折る勇気はないのでなんとなく設定しています。

設定項目
フィールドラベル 入力項目の名前です。日本語でもOK
フィールド名 カスタムフィールドの名称です。
フィールドタイプ テキスト

このページをインデックスさせない

ちょっとしたお知らせなど中身の薄いコンテンツを作成した時、検索エンジンにページをインデックスさせたくない時に使います。実は内容の薄いコンテンツはSEO的に逆効果になる場合がありますので、インデックスさせない方が無難なのです。

設定項目
フィールドラベル 入力項目の名前です。日本語でもOK
フィールド名 カスタムフィールドの名称です。
フィールドタイプ 真/偽

プラグインの設定は以上です。

出力画面側の設定

出力設定はheader.phpを編集します。ユニークに設定しなければならない項目はpagedを使ってユニークにしています。

ディスクリプションをユニークに設定する

<?php
$cst_desc = get_field('ディスクリプションのフィールド名');
$cst_desc = str_replace(PHP_EOL, '', $cst_desc);
$trmdesc = term_description();
$trmdesc = str_replace(PHP_EOL, '', $trmdesc);
$site_topdesc = 'トップページのディスクリプション';
if (is_home()) {
	$sitedesc = $site_topdesc;
}
elseif (is_tax() || is_tag() || is_category() && term_description()) {
	$sitedesc = $trmdesc;
}
elseif (is_year()) {
	$sitedesc = get_query_var('year').'年の記事一覧。'.$site_topdesc;
}
elseif (is_month()) {
	$sitedesc = get_query_var('year').'年'.get_query_var('monthnum').'月の記事一覧。'.$site_topdesc;
}
else {
	$sitedesc = $cst_desc;
}
?>
<?php if ($sitedesc): ?>
<meta name="description" content="<?php echo $sitedesc; ?><?php if(is_paged()): echo '|'. get_query_var('paged'). "ページ目"; endif; ?>">
<?php endif; ?>

キーワードの出力を設定する

キーワードは前述の通りSEO効果が期待できませんのでユニーク設定ではありません。

<?php
$cst_keywords = get_field('キーワードのフィールド名');
if (is_category()) {
	$sitekeyword =  wp_title('',false,'right');
}
elseif (is_tag()) {
	$sitekeyword = single_tag_title('', false);
}
elseif (is_home()) {
	$sitekeyword = 'トップページキーワード';
}
elseif (is_archive()) {
	$sitekeyword = '共通キーワード';
}
elseif ($cst_keywords) {
	$sitekeyword = $cst_keywords;
}
else{
	$sitekeyword = '共通キーワード';
}
?>
<?php if ($sitekeyword): ?>
<meta name="keywords" content="<?php echo $sitekeyword; ?>">
<?php endif; ?>

no indexの設定

<?php
$cst_noindex = get_field('このページをインデックスさせないのフィールド名');
?>
<?php if ($cst_noindex == 1): ?>
<meta name="robots" content="noindex">
<?php endif; ?>

タイトルをユニークに設定する

ついでにタイトルもユニークで出力します。

<?php
if (is_home()) {
	$metatitle = 'トップページのタイトル';
}
elseif (is_month()) {
	$metatitle = get_query_var('year').'年'.get_query_var('monthnum').'月'.'の記事一覧';
}
elseif (is_search()) {
	$metatitle = wp_title('',false,'right').'一覧';
}
elseif (is_tag()) {
	$metatitle = single_tag_title('', false).'の記事一覧';
}
if(is_archive() || is_tax() || is_singular()) {
	$metasubtit = '|サブタイトル';
}
?>
<title>
<?php echo $metatitle; ?>
<?php if(is_paged()){echo '|'. get_query_var('paged'). "ページ目";} ?>
<?php if ($metasubtit){echo $metasubtit;} ?>
</title>

テーマをフルカスタマイズ場合の参考に

冒頭でも触れましたがこれらの設定はSEOプラグインを使うと手軽に実装できますが、ヘッダーをスッキリさせたい、ソースをプラグインにコントロールさせるのは抵抗あるぜ!って方は是非参考にしていただければと思います。Advanced Custom Fieldsは使っていますが・・・・。

WEBSITE DESIGN REQUEST

ホームページ制作依頼について

W・D・Sでホームページ制作をご希望の方はお気軽にご相談ください。
制作内容、ご予算、納期をお知らせいただくとスムーズです。

ホームページ制作を相談する