EC-CUBEのSEO対策で、METAタグのカスタマイズを考える場合、data/Smarty/templates/default/site_frame.tplのファイルが該当するファイルになります。
site_frame.tplではheadタグの他のカスタマイズも可能ですが、今回はmetaタグ属性descriptionとkeywordsのデフォルトの仕組みとカスタマイズを調べてみました。
EC-CUBEのページ毎のキーワードや詳細の設定は、管理画面の[基本情報管理]⇒[SEO管理]で各テンプレートごとに設定が可能です。
ここの各ページの項目が空の場合は、web上の実際のページでは空の状態となるので、できるだけ入力することが推奨されるでしょう。
■site_frame.tplのヘッダ部分、キーワードと詳細の記述
<meta name=”description” content=”<!–{$arrPageLayout.description|escape}–>” />
<meta name=”keywords” content=”<!–{$arrPageLayout.keyword|escape}–>” />
上記変数は管理画面のSEO管理で入力された値がページ毎に出力されるようになっています。
ただし、デフォルトではTOPページ、商品一覧ページ、商品詳細ページ、MYページの四種類のみです。
SEO管理のページを増やすという方法も一見考えられますが、これでは商品ごとにkeywordsやdescriptionが設定できないので、SEO対策的にはかなり不自由になります。
ですので、site_frame.tplをカスタマイズして、読み込まれるテンプレートごとにキーワードや詳細を指定する方法がよいと判断しました。
titleタグはページ名や商品名を取得しているので、方法としては、tplごとで条件を分岐させて、下記のtitleタグの記述を流用してみました。
【タイトルタグ部分の記述】
<title><!–{$arrSiteInfo.shop_name|escape}–>/<!–{$tpl_title|escape}–></title>
■EC-CUBEのSEO対策を考慮したheadタグ内のメタタグカスタマイズ手順
1.ページ階層を変数に代入して、デフォルトのdescriptionとkeywordsをif文で条件分岐させる
ページの数だけ指定して、商品一覧ページや商品詳細ページはそれぞれのページ情報を取得します
<!–{assign var=index value=”`$smarty.const.URL_DIR`index.php”}–>
<!–{assign var=list value=”`$smarty.const.URL_DIR`products/list.php”}–>
<!–{assign var=detail value=”`$smarty.const.URL_DIR`products/detail.php”}–>
<!–{assign var=mypage value=”`$smarty.const.URL_DIR`mypage/index.php”}–>
<!–{if $smarty.server.PHP_SELF==$index}–>
<meta name=”description” content=”<!–{$arrPageLayout.description|escape}–>” />
<meta name=”keywords” content=”<!–{$arrPageLayout.keyword|escape}–>” />
<!–{elseif $smarty.server.PHP_SELF==$list}–>
<meta name=”description” content=”<!–{$tpl_title|escape}–>の& lt;!–{$arrSearch.name|escape}–>の詳 細<!–{$arrSearch.category|escape}–>” />
<meta name=”keywords” content=”キーワード,<!–{$arrSearch.category|escape}–>,<!–{$arrSearch.name|escape}–>” />
<!–{elseif $smarty.server.PHP_SELF==$detail}–>
<meta name=”description” content=”<!–{$tpl_title|escape}–>の詳細” />
<meta name=”keywords” content=”キーワード,<!–{$arrProduct.name|escape}–>,<!–{$arrProduct.category|escape}–>” />
<!–{if $smarty.server.PHP_SELF==$mypage}–>
<meta name=”description” content=”<!–{$arrPageLayout.description|escape}–>” />
<meta name=”keywords” content=”<!–{$arrPageLayout.keyword|escape}–>” />
<!–{/if}–>
上記のようにTOPページとマイページはSEO管理からの内容を参照して、商品一覧ページは検索結果をもとに、商品詳細ページは商品名をもとにそれぞれMETAタグの内容を変更して出力することができました。
他にも個別のページが複数存在したので、それぞれ同じように分岐させて、それぞれの内容を記述しました。
なんとか各ページ毎でMETAタグの内容を変更することが確認できました。