SEOコンサルティングサービスのご案内
専門のコンサルタントが貴社サイトのご要望・課題整理から施策の立案を行い、検索エンジンからの流入数向上を支援いたします。
無料ダウンロードする >>
SEOについて学び始めた際に、「隠しテキスト」「隠しリンク」という手法を耳にすることがあります。過去(2000年~2009年ごろ)に流行した手法であり、Googleがペナルティの対象としているスパムです。
目次
隠しテキスト・隠しリンクとは、ユーザーには見えないが検索エンジンには認識される形でテキストやリンクを配置する手法で、Googleのスパムポリシー違反に該当します。
2000年代初期のSEOでは、これでキーワードを大量に埋め込んで検索順位を上げようとする手法が横行していました。当時は検索エンジンの検出技術が未熟だったためです。
Googleはこういったスパムの取り締まりを20年以上続けており、現在はほぼ淘汰されていると言ってよいでしょう。現在、CSSのcolorプロパティとbackground-colorの値を比較するなど、この手法を容易に検出できます。
非常に原始的な手法なので、今これを意図的に使うサイトはほぼありませんが、古いサイトのリニューアル案件などで残骸として発見されることはあります。
Googleはこれをクローキングと同様の欺瞞的行為とみなし、手動対策(ペナルティ)の対象としています。発覚した場合、検索順位の大幅な下落やインデックス削除といった措置が取られます。
具体的には、CSSやHTMLでテキストの色を背景色と同一に設定し、人間の目には見えないがHTMLソース上には存在する状態を作る手法です。
記述例

ユーザーがページを見ても何も表示されていないように見えますが、検索エンジンのクローラーはHTMLを読み取るため、このテキストを認識します。
CSSでfont-size:0を指定し、テキストを物理的に見えないサイズにする手法です。
テキストは存在しますが、文字サイズが0ピクセルなので画面上には何も表示されません。HTMLソースやクローラーには読み取れます。
検出方法としては、ブラウザのデベロッパーツールで要素を検査すると、font-size:0が適用されているのがすぐ分かります。Googleも同様にCSSプロパティを解析して検出できます。
「font-size:0」は、「インライン要素間の空白を除去するテクニック」「アイコンフォントの親要素でテキストを非表示にする」のCSS技術として使われることもあります。
問題になるのは、この手法をキーワードの詰め込みや検索エンジンを欺く目的で使用した場合です。意図と文脈で判断されます。
CSSのtext-indentプロパティでテキストを画面の表示領域外に押し出し、視覚的に見えなくする手法です。text-indent:-9999pxは「テキストの1行目を左に9999ピクセルずらす」という意味で、事実上画面外に飛ばされて見えなくなります。
具体例
HTML

CSS

この手法はロゴ画像を表示しつつ、スクリーンリーダー向けにテキストを残すという目的で、「画像置換(Image Replacement)」と呼ばれるアクセシビリティ技術として広く使われていました。
しかし、この技術を悪用して、ロゴとは無関係なキーワードを大量に画面外に配置するスパム行為が横行したため問題になりました。
現在の推奨方法は以下のようにスクリーンリーダー向けにテキストを残しつつ、スパム目的ではないことが明確な実装です。ただし、これもキーワード詰め込みに使えば当然違反になります。

CSSで要素を非表示にするプロパティを使い、ユーザーには見せずに検索エンジンにだけテキストを読ませようとする手法です。
検出方法としては、デベロッパーツールの「Elements」パネルで、非表示要素にどんなテキストが含まれているか確認できます。監査時は「このテキストはユーザーが何らかの操作で見られるか?」を基準に判断しているとされています。
両者の違いは以下の通りです。
| プロパティ | 挙動 |
| display:none | 要素が完全に消え、レイアウト上のスペースも占有しない |
| visibility:hidden | 要素は見えないが、レイアウト上のスペースは残る |
どちらもHTMLソース上には存在するため、クローラーは読み取れます。
Googleは「ユーザー操作によって表示されるコンテンツ」は問題ないと明言しています。例えばタブをクリックすると表示されるテキストは、初期状態でdisplay:noneでも問題ありません。
違反になるケースは、「ユーザーが操作しても永久に表示されないテキスト」「キーワードを詰め込む目的で非表示にしている」といった場合です。
CSSのポジショニングやz-indexを使い、画像や他のコンテンツの下にテキストを配置して見えなくする手法です。
z-indexは要素の重なり順を指定するプロパティで、数値が大きいほど前面に表示されます。下記の例では画像が前面(z-index: 2)、テキストが背面(z-index: 1)になり、テキストは画像に隠れて見えません。

2000年代〜2010年代前半、Flashで作られたサイトでよく使われたFlashの場合(過去の手法)、検索エンジンが中身を読めなかったため、その背後にテキストを置いて「SEO対策」と称することが横行していました。
当時の言い訳としてよく使われたのは「Flashはクローラーが読めないから、代替テキストを置いている」というものでした。しかし実態はキーワードの詰め込みであることがほとんどでした。
Flashは2020年末にサポート終了したため、この手法自体はほぼ絶滅しています。ただし、同様の原理で画像やCanvasの背後にテキストを隠す手法は技術的には可能なので、Googleは引き続き検出対象としています。
1ピクセル四方の透明な画像をリンクにして、ユーザーには見えない(気づかない)がクローラーには認識されるリンクを設置する手法です。
1px×1pxの画像は肉眼ではほぼ視認できず、さらに透明なのでユーザーはリンクの存在に気づきません。しかしHTMLソース上ではリンクとして存在し、クローラーは認識します。
この手法は、主に被リンクを不正に獲得するために使われました。
現在、Googleはリンクのサイズや視認性も評価しており、この手法は容易に検出されます。現在は使われることはほぼありませんが、古いサイトで悪質なSEO業者が過去に施策したサイトで発見されることが極々稀にあります。
基本的に現在は用いられることが少ない技術ばかりですので、古いサイト以外は問題になるケースはほとんどないでしょう。
一方で、古いサイトや知識の古い技術者が実装した場合、デザイン上の問題から、テキストを非表示にすることがあります。その際に、意図せず隠しテキストとなってしまう場合がありますので、注意が必要です。
こういったペナルティの知識は、Webのエンジニアには必須です。「知らなかった」ではサイトのパフォーマンスに多大な影響を与えてしまうため、NG例として把握しておくと良いでしょう。
SEO最新情報やセミナー開催のお知らせなど、お役立ち情報を無料でお届けします。
