最近PHPマスターになるため、SEO効果(対策)としてCakePHPでnoindexを入れる取り組みを行っているのですが、まずはnoindexやらの概要からブログしていきたいと思います。
■noindex/nofollow
https://digital-marketing.jp/seo/about-noindex-and-nofollow/
・noindex
- クローラーが自動収集した情報をDBに格納すること(index)
- そしてGoogle側のアルゴリズムによって検索順位がつけられる
- つまり、noindexすることでGoogle側からページが表示されなくなる
- ウェブサイトの価値を底上げできる
- 質の高いコンテンツのほうが価値が高くなる
・nofollow
- クローラーに対してリンクをたどる行為を禁止
- リンクが設置されているサイトが悪質な場合、マイナス評価が引き継がれてしまう
- そこでnofollowするとリンクをたどれなくなり、価値を下げずに済める
■やりたいこと
- https://adachin.jp/adachin?ref=hoge
?ref=
がつくページにnoindexをつける。
■cake/View
1 2 3 |
$ ll cake/View/Adachin/ total 128 -rw-r--r-- 1xxxx staff 44293 6 5 17:24 index.ctp |
- index.ctp
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <?php if(!empty($this->request->query['ref'])): ?> <meta name="robots" content="noindex"> <?php endif; ?> ~省略~ |
ここらへんの構文を説明していきましょう。
- $this->request->query[‘ref’]
URLのクエリストリングを連想配列で取得するメソッド。
その実態はCakeRequestのオブジェクトが入っています。(以下公式より)
https://book.cakephp.org/2.0/ja/controllers/request-response.html#id3
- <head>タグがない場合
https://book.cakephp.org/2.0/ja/core-libraries/helpers/html.html#HtmlHelper::meta
1 2 3 4 |
<?php if (!empty($this->request->query['ref'])) { ?> $this->Html->meta(array('name' => 'robots', 'content' => 'noindex'), null, array('inline' => false));` `array('inline' => false)); <?php } ?> |
array(‘inline’ => false) という風に $options の 『inline』 というキーに false を設定することで、タグをインラインで出力するか meta ブロックに追加するかを 指定することができます。
・inline => trueだったら呼び出したその場で出力
・inline => falseだったら<head>タグ内に出力
- 純粋なPHPで書くと
※ctpの場合は上記
1 2 3 |
<?php if (!empty($this->request->query['ref'])) { ?> <meta name="robots" content="noindex"> <?php } ?> |
- 確認
https://adachin.jp/adachin?ref=hogeeeeeeeeeeee
これで ?ref=
以降の文字列で検索しても noindex
が出るようになりました!
■まとめ
ちなみにコンテンツ量(記事数)を増やすことだけが、
SEO対策のすべてではないということですな。
0件のコメント