Published on

SEOでマイナス評価を受けないための対策方法

目次

サイト作成において、検索からの流入を意識しなければいけない場面は多々ありまして、色々対策方法はあるのはなんとなくわかってるけど具体策がそんなにでてこないなあといった状況だったので、整理がてら記事にします。

大きく分けて2つの対策方法、内部要素と外部要素

内部要素はHTML要素のことですね。

  • title タグや meta name="description"
  • XMLサイトマップの有無
  • 構造化マークアップ(Json-ld等)
  • 表示速度
  • モバイルフレンドリー
  • コンテンツがニーズを満たしているか

続いて、外部要素

  • ソーシャルメディア対策
  • サイテーション対策
  • 自然リンクの獲得
  • グループサイトリンク

てことで内部要素のチェックポイントをみていきます。

基本かつ重要なタイトルタグ

title タグはgoogleなどの検索結果ページに表示されます。
検索結果のタイトル表示が省略されないように31文字以内に収まるようにするのが基本。
スマホももちろん考慮しなければいけないが今はスマホでの検索結果は2行ほど表示されるので極端に減らす必要はない。
タイトルかぶりはNG、すべて変えましょう。

WordPressの場合は設定ページのサイト名や投稿、固定ページのタイトルがページタイトルに反映されるようになっていて、
「タイトル - サイト名」のようにいい感じにしてくれます。

ページの要約、meta description

こちらも検索結果に表示される際の参考になるので重要です。

<head>
...
<meta name="description" content="ページの要約をかく">
...
</head>

かいた内容がそのまま検索結果に表示されるとも限らず、検索エンジンが必要に応じて変更修正したものが表示されます。

  • キーワードを含める
  • 100文字以内(目安)
  • ページごとに内容を変える

この3点に注意したほうがよさそうです。

ページごとに内容を変えるのは手間すぎるという場合はあえてこのタグを記述しないという手もあります。
検索エンジンが勝手にページ内容から検索結果に表示するスニペットを作成してくれます。

設定した記憶ないけどいい具合に説明文が表示されてる。、、なんてのは検索エンジンが自動で表示してくれたからですね。

なくてもよいmeta keywords

今ではSEO的に意味がないとされていますが、デメリットにもならないため設置してもしなくてもどちらでもよい。

<meta name="keywords" content="men,women">

hの見出しタグ

見出しをつけることでまとまりができ可読性が上がるのでユーザーのためになる。
ユーザーのためになることはgoogle(検索エンジン)が評価するといった構図です。
参考 https://youtu.be/-qKxgI8ScKE?t=2064

タグを使う注意点

  • 階層構造を守る
  • h要素ばかり使わない
  • h1 の内容は他のページとかぶらないように
  • 見た目を整える目的だけに使わない

階層構造を守るというのは順番を守ろうねということですね。

//NGの例
<h3>新商品</h3>
<h2>最新情報</h2>
<h4>限定</h4>

//順番が戻っていますがとんではいないのでこれはOK
<h2>最新情報</h2>
<h3>新商品</h3>
<h2>最新情報</h2>
<h3>新商品</h3>
<h4>限定</h4>

h1の内容がかぶっている例

index.php
<h1>サイトロゴ</h1>
abc.php
<h1>サイトロゴ</h1>
def.php
<h1>サイトロゴ</h1>

正しい例

index.php
<h1>サイトロゴ</h1>
abc.php
<h1>abc</h1>
def.php
<h1>def</h1>

a要素、アンカーテキスト

テキストリンクでよく使うa要素ですが、アンカーテキストをよりわかりやすい内容にしましょう。
検索エンジンが認識しやすい形で。

//わかりにくいやつ
<a href="/products/new_item">/products/new_item</a>
<a href="/products/new_item">こちら</a>

//わかりやすいやつ
<a href="/products/new_item">新商品の一覧</a>

アンカーテキストが検索順位に影響している例

「出口」と検索するとヤフージャパンのTOPページが表示されます。
これは成人向けサイトで年齢によってリンク先を分けるときに出口というアンカーテキストでヤフージャパンへリンクを貼っているからみたいです。

画像タグにはaltをつける

検索エンジンや視覚障害をお持ちの方に画像を説明するために必要。
注意点としては

  • 具体的な内容にする
  • 装飾のための画像はaltは空でいい
  • タイトルや見出し、リンクの場合は必ずaltをつける
  • キーワードをつめこまない
//理解不能なaltはだめ
<img src="animal.jpg" alt="img001">

//内容が把握できるのはOK
<img src="animal.jpg" alt="動物">

画像周りに画像に関係するテキストをいれるのはおすすめ。

少し前に作られたサイトで見かけるのが、画像に重要な文字を埋め込んでいるケース。
これは基本的にNG。検索エンジンにも認識されず、ページ翻訳でも検知されません。できる限りテキストはHTMLにしましょう。もったいないです。

参照 https://support.google.com/webmasters/answer/114016?hl=ja

URLの見直し

1URL1コンテンツという原則がありまして、以下のケースはよくないです。

  • 同一URLに異なるコンテンツが混ざっている
  • 異なるURLに同じコンテンツが表示される
  • 異なるURLに同じtitleとdescriptionが表示される
  • 異なるURLに1コンテンツが分割される(ページネーション)

同じURLでコンテンツが混ざっている例

Tシャツ https://example.com/search.php
パンツ  https://example.com/search.php
パーカー https://example.com/search.php

静的もしくは動的URL(パラメータ)で分けたほうがいい。

//静的URL
Tシャツ https://example.com/t-shirt
パンツ  https://example.com/pants
パーカー https://example.com/parkar

//動的URL
Tシャツ https://example.com/search.php?item=t-shirt
パンツ  https://example.com/search.php?item=pants
パーカー https://example.com/search.php?item=parkar

重複している場合はsearch consoleでエラーがでます。

正規URLを知らせる

コンテンツが重複しているページや似たようなページをまとめ、検索エンジンにこのURLが正しいと知らせる方法です。

正規 URL とは、サイトの重複するページの中で Google が最も代表的と考えるページの URL です。たとえば、同じページに対して複数の URL がある場合(例: example.com?dress=1234 と example.com/dresses/1234)、Google はそのうちの 1 つを正規 URL として選択します。なお、これらのページは完全に同一である必要はありません。リストページの並べ替えやフィルタリングによるわずかな変化は重複と見なされます(価格による並べ替え、アイテムの色によるフィルタリングなど)。
正規のページは重複するページとはドメインが異なる場合があります。

https://support.google.com/webmasters/answer/139066#definition

正規URLを設定するにはおおきく分けて2通りあります。

  • canonicalを設定
  • 301リダイレクト

他に似たようなページがなければcanonicalをヘッダー内に設定します。

//canonicalの例
<link rel="canonical" href="https://ドメイン/item/pants">

似たようなページがある場合は評価が分散されてしまうのでできる限りまとめます。

まとめるには301リダイレクトを使いましょう。

//.htaccessに書くときの例
RewriteEngine On
RewriteCond %{変数名} 条件
RewriteRule 非正規ページURL 正規ページURL [R=301,L]


//wwwありからなしへ
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.ドメイン\.com$
RewriteRule ^(.*)$ http://ドメイン.com/$1 [R=301,L]

//httpへのアクセスをhttpsにリダイレクトさせる
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://ドメイン.com/$1 [R=301,L]

//indexありからなしへ
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://ドメイン/$1 [R=301,L]

より具体的な説明についてはこちらをどうぞ
https://support.google.com/webmasters/answer/139066#definition

なお、JavaScriptやmeta refreshでのリダイレクトは301ステータスコードを返さないなどで推奨されていません。

ページネーションの対応

こちらもページごとにURL分けようねってことです。

確認したい点

  • ページを変えるとURLも変わるか
  • rel="prev" /rel="next"の設置
  • title/descriptionをページごとに変える
  • Search Consoleでのパラメータ設定(パラメータ使用時)

URLが変わる例として

http://ドメイン/list/?page_id=1
http://ドメイン/list/?page_id=2
http://ドメイン/list/?page_id=3

http://ドメイン/list/1
http://ドメイン/list/2

//一緒になってよくないやつ
http://ドメイン/list/pagenation.php

最近のフレームワークやWordPressは特に意識しなくてもこのあたり対応していると思います。

rel="prev" /rel="next"については、前ページと次ページをクロールしやすいよう検索エンジンに伝える役目になりまして、ヘッダーの中に入れます。

<head>
...
//2ページ目以降に必要
<link rel="prev" href="https://ドメイン">
//最後のページ以外に必要
<link rel="next" href="https://ドメイン/page/3">
...
</head>

WordPressではテーマによって自動で追加してくれるものもあります。

WordPressのrel="prev" /rel="next"の設置例

WordPressの場合のコードはこんなかんじです。

function add_adjacent_posts_rel_link() {
  //現在のページ送り番号を取得
   $paged = max( 1, (int) get_query_var( 'paged' ) );
   //投稿の前後のリンクを取得する関数を利用して分岐、リンクが取得できたら現在のページ送り番号を基準に数字を差し引き
     if ( get_previous_posts_link() ) {
	echo '<link rel="prev" href="' . get_pagenum_link( $paged - 1 ) . '" />';
     }

     if ( get_next_posts_link() ) {
	echo '<link rel="next" href="' . get_pagenum_link( $paged + 1 ) . '" />';
     }
}
add_action('wp_head', 'add_adjacent_posts_rel_link');

エラー対応

おおきく分けて内部エラーと外部エラーがあります。

内部エラーは自サイト側の問題で、外部エラーはリンク先のサイトに問題がある場合。

内部エラーは検索エンジンの評価が下がるので、もしある場合はなくすように対策します。
エラー状況についてはsearch consoleでも確認できます。

エラー表示せざるおえない場合は他のページとレイアウトを近づけた404ページをつくったり、正しいステータスコードを返す。
よくある「お探しの記事はみつかりません」のような場合に404ではなく、200ステータスコードを返すと、同じ内容のエラー記事がたくさんあることになるので重複コンテンツ扱いになってしまう。

また、エラー発生時にリダイレクトさせるのもNG。
エラーが発生したURLがインデックスから削除される。

ステータスチェックにはこのようなサイトがあります。
https://httpstatus.io/

そして外部サイトのリンク切れについて

これはどうしようもないので、URLを削除するか変更しましょう。

リンク切れの確認ができるリンクチェッカー
https://validator.w3.org/checklink
WordPressだとプラグインで対応できます。
Broken Link Checker

スパムに対応する

よくありがち?なこととしてはコピーコンテンツあたりかなと思います。

完全コピーはもちろんアウトですが、一部語句を置換したものもコピーと認識されるようなので気をつけましょう。

引用するときはきちんと引用タグを使わないと思わぬところでコピー扱いになってしまいます。

//引用タグ
<blockquote>
ナニカ
</blockquote>

また、一昔前のサイトによくあったのが背景と文字の色が一緒でユーザーにみえないテキストなどです。
あとは幅も高さも0の画像タグなど。
これらもNGです。

質の低い被リンクもよくないようで、質の低い被リンクを否認する方法もあります。
ただ、なにをもって質が低いかを判断するのかちょっとわかりずらいです。

問題の無いリンクを否認することは避けたいので、本当に関係のないリンクかどうかなど慎重に判断してください。
否認方法はsearch consoleからリンクの否認で可能です。

最後に

基本的な対策になっていますが、意外なところで評価をさげていたりすることがあります。
サイトの運用歴が長い場合、リンク切れに気をつけたいところです。

以上になりますが、SEOを意識する場面があったらぜひ参考にしてみてください。