運営サイトの一つで、サーチコンソールのインデックスカバレッジに「除外」ページが大量に発生して、「有効」ページが激減してしまっていたので、サイト構造見直しなどの対策をやってみました。対策の結果、「有効」ページを少しずつ復活させることができたので、やってみたその対策方法とその後の推移についてご紹介したいと思います。

バレッジの除外が大量発生したサイトとは

除外ページが急増して有効ページが激減してしまったサイトとは、消費者金融比較サイトの「消費者金融の泉」というサイトでした。単なるアフィリエイト目的のキャッシング比較サイトでしたが、YMYLジャンルで、大手も全力参入してしまった今となっては収益を上げることはほとんどできないサイトです。

とはいえ、ドメイン取得当時から続けている思い入れが強いサイトということもあり、なるべく手がかからないようにPHPとSQLで半自動運営できるようなサイトにいつだか作り直しておりました。

除外となったサイトの構成とは

サイトを見てもらえば分かると思いますが、キャッシングをジャンル別やタイプ別で出力して、融資限度額順や金利順などでソートするといったことができる、ECサイトのような作りの比較サイトに仕立ててありました。

このため、GETやPOSTでPHPプログラム側にパラメータデータを渡して、裏でクエリを生成して吐き出すといったことを各所でやっているわけですが、面倒だったので、それらをたった1つのPHPファイルで全部やってしまっていました。

「銀行のキャッシング商品カテゴリ」、「信販会社のキャッシング商品カテゴリ」といった2カテゴリを「query_search.php」というファイルで実現とかであればよくありがちですが、単一の商品出力やキーワード検索の結果出力まで、なんでもかんでも「query_search.php」という1ファイルでやってしまっていました。

//銀行商品のカテゴリ
https://www.osm.dtn.jp/query_search.php?cateid=C00

//信販会社商品のカテゴリ
https://www.osm.dtn.jp/query_search.php?cateid=C02

//単一商品データを取得する
https://www.osm.dtn.jp/query_search.php?qid=314

//キーワード検索
https://www.osm.dtn.jp/query_search.php?text=検索語

有効ページ<除外ページとなる原因

Googleのサーチコンソールで「有効なページより除外されたページの方が多い」現象が発生した場合の原因は、はっきり公表されていました。

・robots.txt ルールで、サイトの大部分に対する Google のクロールをブロックしている。

・サイトに多数の重複ページがある。主な理由として、パラメータを使用して一般的なコレクションのフィルタリングや並べ替えを行っている場合が考えられます(例: type=dress、color=green、sort=price)。これらのページが、同じコンテンツに対してさまざまな方法で並べ替えやフィルタリングやアクセスを行っているだけであれば、除外されるのは妥当です。

Search Consoleヘルプ – 有効なページより除外されたページの方が多い

つまり、この2つ目として挙げられている「パラメータを使用して一般的なコレクションのフィルタリングや並べ替えを行っている場合」と同じことを、わざわざ頑張ってやってしまっていたということのようです。

しかも、比較サイトなので、オリジナルコンテンツが少ないリンク集のようなサイト構造で、アフィリエイトタグも多いということもあり、プログラムを使った自動生成コンテンツをめっぽう嫌うGoogleに目を付けられてしまい、重複ページしかゴミサイトとされてしまい、ほとんど「除外」ページ扱いにされてしまったようです。

さすがにこれでは悲惨すぎるので、多少なりとも検索にヒットするようサイト構造を見直してみることにしました。

「有効」4ページ「除外」404ページ

「除外」ページが大量に発生して、「有効」ページが激減したといいましたが、実際には「除外ページ」404ページ「有効ページ」4ページという相当ヤバイ状況となっており、TOPページと他数枚以外はまるでインデックスされていない状況でした。

大量のインデックス「除外」が発生していた
大量のインデックス「除外」が発生していた

パラメータで並び替えをしただけの「重複ページ」と思われたことによる「除外」以外にも、質の低いコンテンツだとされて「除外」されてしまっているページも多数あるようでした。

ちなみに、Googleが公表する質の低いコンテンツとは下記とされています。

・コンテンツの自動生成

・内容の薄いアフィリエイトページ

・無断複製されたコンテンツ

・誘導ページ

Google検索セントラル – 質の低いコンテンツ

「コンテンツの自動生成」「内容の薄いアフィリエイトページ」…このあたりにも該当するとされてしまっている気がします。

サーチコンソールでこの状態なので、当然ながら、アクセス数は日に一桁あればいい方といった状態にまで落ち込んでいました。PHPとSQLで頑張ってネットのゴミを作り上げてしまったということのようです。

サーチコンソールの有効なページ数の推移

有効なページの減少推移を改めてみてみると、昨年末頃から一気に「有効」ページが減りつつあったことが分かります。検索アルゴリズムが更に厳しくなったのかもしれませんが、昨年末にはもう有効ページが5ページ程度になってしまっていたようです。これでは訪問者がいるわけないですね。

サーチコンソールで有効なページが減少
サーチコンソールで有効なページが減少

有効ページを増加させるためにやってみたこと

ネットのゴミと化してしまったサイトの検索評価を少しでも上げるため、サイト構造の見直しなど3つの修正をやってみることにしました。

  1. パラメータ付き動的URLの静的URL化
  2. サイトの機能やコンテンツの強化
  3. sitemap.xmlの登録し直し

1~3の具体的な対策方法について順に紹介したいと思います。

パラメータ付き動的URLを静的URL化

パラメータ渡しをしている動的URLを静的URLに偽装する方法があります。動的URLに付けるパラメータやデータを静的なURLとしてはめ込み、プログラムでその値を取り出すという古典的な方法です。

//動的URLの銀行商品カテゴリ
https://www.osm.dtn.jp/item-category.php?cateid=C00

//静的URLとした銀行商品カテゴリ
https://www.osm.dtn.jp/category/item-category/C00

WordPressを使っている人であれば、まず最初にパーマリンク設定をやりましょうという話は聞いたことがあると思いますが、あれと似たような話です。

//パーマリンク設定をしていない場合のWordPress記事URL
https://www.example.com/?p=123

//パーマリンク設定で成形した場合のWordPress記事URL
https://www.example.com/how-to

サイトの中身や構造をGoogleが見ているとはいえ、一番最初に見るところはURLでしょうし、シンプルなURLにしろとはGoogleも説明しているので、ある程度効果はありそうです。

推奨 – シンプルでわかりやすい URL:
http://en.wikipedia.org/wiki/Aviation

非推奨 – 複雑でわかりにくい URL:
http://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1

Google検索セントラル – シンプルな URL 構造を維持する

PATH_INFOと.htaccessを使った静的URL化

動的URLの静的URL化をするため、PHPのサーバー変数$_SERVER[‘PATH_INFO’].htaccessのForceTypeディレクティブを使っています。

.htaccessのForceTypeディレクティブ

.htaccessファイルとは、ディレクトリ毎にサーバー設定を変更するためのApacheサーバの設定ファイルです。

ここにForceTypeディレクティブの指定を書いておくと、そのディレクトリにある全ファイルを「MIME-type」で指定されたコンテントタイプとして扱うことができるようになります。

ディレクトリのファイル全てを.phpファイルとして扱うには、このような形でForceTypeを指定してあげれば、拡張子の指定がなくてもphpファイルとして実行させることができます。

#PHPのMIMEタイプ
ForceType application/x-httpd-php

MIMEタイプはファイルタイプ毎にきまっており、他のMIMEタイプに指定すると、その拡張子が付いている時と同じようにブラウザに開かせることができます。参考までにPHP以外のMIMEタイプもご紹介しておきます。

拡張子MIMEタイプ
.phpapplication/x-httpd-php
.htm
.html
.shtml
text/html
.jpg
.jpeg
image/jpeg
.pdfapplication/pdf
.csstext/css
MIMEタイプのサンプル

.htaccessの<Files>ディレクティブ

<Files>ディレクティブは、設定の適用する範囲をファイル単位で指定する場合に使用します。ディレクトリに置いた「item-search.php」というPHPファイルだけにForceType application/x-httpd-phpを適用させたい場合には、下記のような記載をしておけば適用するファイルを限定することができます。

#ディレクトリに置いたファイルがitem-category.phpだった場合

<Files item-category>
ForceType application/x-httpd-php
</Files>

$_SERVER[‘PATH_INFO’]を使って値受け渡し

PHPのサーバー変数$_SERVER[‘PATH_INFO’]を使うと、PHPファイルとクエリの間にあるパス情報を取得できます。サンプルを見ると分かりやすいと思いますので、先ほどの静的URLに変えた銀行商品カテゴリのURLを例にPATH_INFOを取ってみます。

//静的URLに変えた銀行商品カテゴリ
https://www.osm.dtn.jp/category/item-category/C00

データ呼び出しをするPHPファイルと.htaccessはこんな感じでサーバーに置いてあるとします。

/ ROOT
├ index.html
└ category
  ├ .htaccess
  └ item-cateogry.php

この状態で$_SERVER[‘PATH_INFO’]を取ってみると、「/C00」という値が取れます。あとはこの文字列を「/」スラッシュ文字で分割すればURLから値取得ができるといった感じです。

//PATH INFOから値を取得する
$params = explode("/", $_SERVER['PATH_INFO']);

// 配列$paramsの中身はこんな感じです
// [0] => 
// [1] => C00                         

これでitem-category.php?cateid=C00といった感じでGETパラメータを付けて値取得するのと同じことができるようになりました。Google推奨のシンプルでわかりやすい URLにもなっているので良い感じです。

サイトのコンテンツや機能の強化

アフィリエイト目的のキャッシング比較サイトですが、少しでも質の高いコンテンツを提供するためには、キャッシング商品の情報を増やしたり、比較機能を強化したりといったことが必要ですので、それぞれ対応をしてみました。

商品説明文の文字数を増やす

ECサイトであれば基本の作業となりますが、それぞれのキャッシングの商品説明文の文量をかなり増やしてみました。

キャッシング商品の説明文の文字数をかなり増やしました
キャッシング商品の説明文の文字数をかなり増やしました

とはいえ、商品説明文をこってりさせてしまうと、比較検索した際に見にくくなってしまうので、商品画像とリンクだけの一覧表示化もすぐにできるようにしてみました。

表示方式切替ボタンで商品画像一覧を表示
表示方式切替ボタンで商品画像一覧を表示

商品比較検索の機能を強化

キャッシングの比較サイトということで、比較検索機能を更に作りこんでみました。

商品カテゴリとしては下記のようなものを用意してありますが、

  1. 銀行・銀行系・信販・信金・消費者金融といったジャンル別表示
  2. 北海道~東北~関東~九州といった地域別表示
  3. カードローン・振込ローンといった商品タイプ別表示

このカテゴリ別表示に融資限度額順、金利順、人気順といった並び替え機能を付けて、更に、サービス提供地域で絞り込めるといった形にしてみました。もちろん、その絞り込みの際に付けるパラメータ・値も静的URLでも取れるようにしておきました。

例えば、消費者金融の商品を人気順に並べて、島根県で提供されている商品だけを表示するといった場合のURLはこんな感じに生成してパラメータ・値取得をしています。

https://www.osm.dtn.jp/category/item-category/C04/popularity/島根県

$_SERVER[‘PATH_INFO’]では、/C04/popularity/島根県が取れることになります。

//PATH INFOから値を取得する
$params = explode("/", $_SERVER['PATH_INFO']);

// 配列$paramsの中身はこんな感じです
// [0] => 
// [1] => C04
// [2] => popularity
// [3] => 島根県     

パラメータの順番さえ間違えなければ、GETパラメータを山ほど仕込んでも普通に取れるのでいい感じです。

sitemap.xmlの登録し直し

これまでサーチコンソールに登録していたsitemap.xmlは、WEBで無料生成できるツールを使って作っていました。何百という内部リンクをsitemap.xmlにワンクリックでできるので、こりゃいいと思って使ってしまいましたが、今回はトップページやテキストコンテンツのページ、主要なカテゴリとなるページだけを手作業で作って登録してみることにしました。

サーチコンソールに現れた変化

パラメータ付き動的URLの静的URL化、サイトの機能やコンテンツの強化、
sitemap.xmlの登録し直しをやった数日後、早速サーチコンソールに変化が現れていました。

「有効」4ページ、「除外」404ページという絶望的な状態だったカバレッジでしたが、見ると「有効」12ページ、「除外」136ページと少々改善されているようでした。

サーチコンソールの有効ページが増え始めた
サーチコンソールの有効ページが増え始めた

その後も「有効」ページは、12ページ→15ページと少しずつ増えてきており、「インデックス登録されましたが、サイトマップに送信していません」というお知らせも受ける状態になりましたので、効果がでてきているのかもしれません。

おわりに

サーチコンソールのインデックスカバレッジに「除外」ページが大量に発生したことから、キャッシング比較サイトの大掛かりな手入れをした経緯をご紹介しました。

キャッシングはまさにYMYL(Your Money or Your Life)ジャンルのため、単なる個人サイトでアクセス数を増やすとなると、口コミや掲示板といった手がかかるコンテンツでも付けないことにはもう難しいのかもしれません。

このサイトにも掲示板を常設していた時期がありましたが、プライバシー侵害・名誉棄損、闇金情報のオンパレードとなってしまい、発信者情報開示請求や脅迫まがいの問い合わせなどが頻発するに至ってしまい、管理負担が大きすぎて閉鎖することにしてしまいました。

お金に直結するジャンルということもあり、あまり成果も望めないので、今のプログラムを使った自動比較機能程度で続けるのがせいぜいかとは思っていますが、色々と勉強させてもらったサイトなので、今後も細々と続けていきたいとは思っています。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォロー下さい。