先日当サイトを襲った、パクリブログ問題。
一般的によく聞くブログ記事のパクリというのは、人気記事だけを盗用したものが多く、僕もそういう認識だった。
ところが、今回当サイトを襲ったのは、特定記事だけではなくサイト全体の記事を盗用する、まさに「丸パクリ」というもの。
この事実に対する反響はかなり大きく、このような問題に詳しい人でも「丸ごとパクるのは初めて見た」なんて言っていて、それはそれで僕も驚いた。
今回のパクリサイトはWEBアプリケーションによって実現されているため、ターゲットが変われば同じような事がいくらでもできるものと思われる。
この為、同じような被害にあったサイト運営者の方が、少しでも早く対策できるよう、パクリサイトの仕様や当サイトが受けた被害とその対策をまとめておこうと思う。
※かなり長い記事ですが、大事な話だと思うので、興味のある方は時間のある時にご覧ください
本ページはアフィリエイトプログラムによる収益を得ています。
パクリサイトの手口(プログラムの仕様)
まず、犯人は盗用したいサイトを見つけたら、パクリサイト側のプログラムに対象サイトのドメインを登録するようだ。そして、自身のサイト(パクリサイト)と対象サイト(今回では当サイト)の関連付けを行う。
こんな感じだ。
【当サイト】
https://estpolis.com/【パクリサイト】
http://www.advieshoreca.nl/6s/csctccase.asp【当サイト記事ページ】
https://estpolis.com/2015/02/17103.html【パクリサイト記事ページ】
http://www.advieshoreca.nl/6s/csctccase.asp?2015/02/17103.html
そうすると、以下のように動作する。
- パクリサイトを閲覧した人がアクセスすると(Googleのクローラーも含む)、対象サイトのドメイン配下(当サイトだと.html)のURLから、HTMLをHTTP経由で取得する(ブラウザでアクセスするのと同じイメージ)
- 取得したHTMLをソースコードベースで全文解析し、一定のルールによって置換処理を行う
- 取得したHTMLをパクリサイト側で表示する
何言っているかわからない人もいるかもしれないが、対象サイトのドメイン配下のURL全てが対象になるため、単一記事はもちろん、トップページ、カテゴリーページ、タグページなどあらゆるページが盗用されてしまうのだ。
そして、その都度対象サイトにアクセスしてくるため、記事を更新すれば即パクリサイトに反映されるし、公開済みの記事を更新しても反映される。コメントももちろん反映される。この事を検証したのが以下の記事だ。
このようなプログラムのため、パクリサイトの表示は遅いし、画像は取得できないという難点はあるものの、恐ろしく簡単にサイト全体を盗用することができる。
しかし、単純な仕組み故に強力だ。
例えばパーマリンクを変更するという対応は通用しないし、RSSの全文配信が原因ではという指摘もいただいたが、そもそもRSS経由で取得していないため関係ない。
全コンテンツが対象となるため、こちらとしても何から手を打てばよいかわからなくなってしまうのだ。例えばドメインを変更すれば対処は可能だが、長く運営しているサイトほどそんなことは簡単にできない。
全文解析と置換処理の例
プログラムで対象サイトとリンクをしている関係で、記事内に対象サイトのドメインを記述するとそれも置換処理がかかってしまう(対象は半角文字)。
こんな感じだ。
また、犯人がやばいと認識しているキーワードについても置換をかけているようだ。僕が把握したのは「Google→God」だが他にもあるかもしれない。
上記例は画面に表示している文字列だが、HTMLソースベースで置換されるため、例えばGoogle AnalyticsやAdSenseを実行するためのJavaScriptファイル名も置換されてしまう。結果としてこれらの機能がパクリサイトで動作することはない。
特にAdsenseに関してはパクリサイトに表示されることで利用規約に抵触する可能性もあるわけだが、その点だけは大丈夫と思われる。
当サイトが受けた被害
パクリサイトが登場し、そのサイトの方がGoogleの検索では上位に表示されるようになった事が直接的な被害だ。ただ、それによってPV数は減少したし、連動してAdSenseなどのアフィリエイト収入も激減した。
実はパクリサイトの存在は1/25くらいに気付いていた。ただ、あくまでも単一記事だと思っていたので、仕事が忙しかったこともあり対応を後回しにしていた。
が、1月末に妻からの申告で、サイト名で検索するとパクリサイトがトップに表示されることに気づき、事の重大さをようやく認識した。
検索結果やPV数などは具体的に紹介する。
PV数の減少グラフ
2015年1月時点で当サイトの平均PV数はデイリー8000PVくらいで、その約半数が検索経由のアクセスだ。
パクリサイトが登場したのはおそらく2015年1月20日前後と思われるが、その頃を境に1日20%程度の比率で、PV数が減少していった。
最終的に対策が完了したのは2/11なので、それまでずっと減り続けた(パクリ騒動をブログ記事で告発したため、一時的にUPしたことはあったが)。
最終的には、デイリー4000PV程度まで減少していたので、約20日間で半分に落ちるまで被害を受けた。対策がもっと遅ければさらに減少していたと思う。
検索結果への影響
で、PV数減少の原因は当サイトの記事がGoogleの検索で表示されなくなったことと思われる。検索結果での表示回数ベースで見ても、ガクンと下がっていることが分かると思う。
上記画像のようにサイト名で検索すると、パクリサイトがトップに表示されるのは一例だが、他のキーワードでも当サイトの記事とパクリサイトの記事が両方表示されるような状態にもなっていた。
このような場合、Googleはどちらかを重複コンテンツとして除外してしまう。そして、たちの悪いことに本家である当サイトの記事がIndex削除されていたのだ。
これはウェブマスター ツールで見た当サイトのGoogleにおけるIndex数だが、1月下旬で一気に減っている。おそらく重複コンテンツとして、当サイトの記事がIndex削除されたからと思われる。
パクリサイトへの対応1:GoogleへのDMCA侵害申告
このような被害を受けた場合、まず考えるのはGoogleへのDMCA侵害申告。
- ウェブマスター ツール
※Googleへのログインが必要です
DMCA(デジタルミレニアム著作権法)とは、1998年10月に成立し2000年10月に施行された、アメリカの著作権法なのだが、この申告を行うことでパクリサイトをGoogleのIndexから削除することができる。
ところがこの手続きにかなり手間取った。
まず、申告するものの、Googleから「そのサイトが確認できない」というような回答が返ってくるのだ。しかも、英語で(僕は英語ができない)。このやりとりを紹介したのは以下の記事。
記事を取得できませんでした。記事IDをご確認ください。
それでも何とか対応しようとするわけだが、いつまでたっても先に進まない。さらに、今回のパターンでは単一記事ではなく、サイト全体が著作権侵害を受けているイメージとなるため、DMCA侵害申告をフォームでURLを列挙して記載した。
そうすると、申告を1つずつ分けてくれというような返答が返ってくる。当サイトは単一記事だけで1000を超えており、それを一つ一つ申告するなんで時間がいくらあっても足りない。ブログであれば、もっと記事数の多いサイトなんて山ほどあるだろう。
というわけで、記事数の少ないサイトであればGoogleへ個別に申告するのもよいが、記事数が多い場合、あまり現実的な対策とはならない。
そこで次の手を打った。アクセス遮断作戦だ。
パクリサイトへの対応2:「.htaccess」でパクリサイトからのアクセスを遮断する
パクリサイトの仕様を検証する中でわかった事は、当サイトのコンテンツがリアルタイムに反映されていること。
ということは、パクリサイト側でHTMLなどのコンテンツを保持するのではなく、都度対象サイトにアクセスしているので、当サイトのサーバーに何らかのアクセスログが残っているのではないかと予想した。
そして、調べてみると以下のようなアクセスログが出ていることに気がついた。
estpolis.com ip.space.by.uwwebhostingprovider.nl – – [05/Feb/2015:08:51:57 +0900] “GET /wp-content/themes/dp-escena_custom/images/300x120xidol.jpg.pagespeed.ic.2rdbZPZ1M6.jpg HTTP/1.1” 200 13370 “-” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)”
いかにも怪しいドメインだ。
というわけで、このドメインからのアクセスを遮断する方法として最初に思いついたのは「.htaccess」によるアクセス遮断。当サイトはシックスコアというレンタルサーバーを使用しているが、レンタルサーバーのほとんどはWEBサーバーにApacheを使用しているため、「.htaccess」を使うことができる(レンタルサーバーによっては使用を許可していない可能性もある)。
「.htaccess」に以下のような記述をし、
order allow,deny
allow from all
deny from ip.space.by.uwwebhostingprovider.nl
WEBサイトとして公開しているルートディレクトリ(htdocsとかpublic_htmlとか)にファイルを配備すればよい。
配備する方法はレンタルサーバーによってはWEBの管理画面からできることもあるし、SSHでログインしてファイルを作成できるかもしれないし、FTPでファイルをアップロードするかもしれない。レンタルサーバーによって様々なので利用しているサーバーに応じて対応すればよいかと思う。
これでアクセス自体は遮断できる。パクリサイト側でも表示できなくなることは確認したが、それでは手ぬるいのだ。
サイト運営者ならこの気持ちをわかっていただけると思うが、パクリサイトはできることなら「今すぐ」削除させたい。しかし、犯人と直接交渉できるわけがないし、Googleも頼りにならない。
パクリサイトのコンテンツ価値を0にする対応が必要となる。その為に、考え付いたのが逆SEOで、SEO的に100%NGな事をやり相手のサイトを実質的に潰してしまう事。Googleの中の人は当てにせず、Googleのシステム(クローラー)に消させてしまうのだ。
パクリサイトへの対応3(最終版):WordPressプラグイン「WP-BAN」でアクセス遮断と同時に、SEO的にNGなごみくずレスポンスを返却する
「.htaccess」の設定に色々苦戦している時に、WordPressなら「WP-BAN」というプラグインがあるのでこれを試してみてはと教えていただいた。
プラグインでのアクセス遮断という発想は僕には全くなくて、こんなものがあるのかと驚いたが、効果は絶大だった。
以下は設定例。
WordPressプラグイン「WP-BAN」の設定例
プラグインのインストール自体は通常のプラグインと同じなので、WordPress利用者であれば特に苦戦することはないかと思う。
プラグインを有効化したら、設定を始める。
前述のとおり、パクリサイトからアクセスされていることは分かっているので、これをブロック対象のホスト(Banned Host Names)とIPアドレス(Banned IPs)を設定した。IPアドレスは念のためで、基本的にホストを設定すればよい。
こんな感じだ。
プロキシを経由しサブドメインレベルで色々変わる可能性もあるため、ワイルドカード設定とした。
これでパクリサイトは、ブロックされましたというような表示となる。
「WP-BAN」ではこのブロックされた際に表示されるHTMLを、「Banned Message」に入力することで、独自のものに編集する事が出来る。この事に気づいて相手のプログラムを逆手に取った作戦を実行する。
SEO的にNGなコンテンツを返却
設計箇所は以下で、
設定内容は色々あると思うが、こんな感じにした。
※画像です
ポイントは、
- H1タグは複数使うのはNG
- 意図的に同じキーワードを詰め込んでいる
- H1タグの中に入れ子でstrongを複数入れている
- 背景と同色の文字で隠しテキスト(style=”color:white;”)
と言った辺り。
とてつもないゴミクズコンテンツだ。これを、とりあえず山ほど入れておいた。
対策の結果とその後の動向
ゴミクズコンテンツがパクリサイトに表示されるようになったのが、2/11朝の話。そして、その日の夜にはすでにサイト名による検索結果での表示が、ゴミクズコンテンツに変わった。
この表示でクリックする人は皆無だろう。
クローラーが最新情報を取得するペースはまちまちだが、トップページはさすがに早かった。そして、2日後にはサイト名での検索で当サイトがTOPに復活(パクリサイトは4番目くらいにまだ残っていた)。
記事ページに関しては、数日経ってもそのままだったが、1週間も経てばほぼ消えてしまった。さすが高性能なGoogleのクローラー。恐ろしく仕事が早い。
結果として、今回のパクリサイトは対策から1週間程度でコンテンツとしても、GoogleのIndexとしても消滅させることに成功した。
対策後のPV数推移
というわけで、パクリサイトのコンテンツがほぼ消滅し、当サイトのコンテンツが徐々にGoogleのIndexに復活していった。その甲斐あって、PV数も急激に回復。対策翌日は以下の記事がSNSなどで沢山シェアされていた影響もあるが、効果は数日で出た。
というか、元々よりも増えたような感じで、今度は新規サイトと認識されて、ご祝儀的に検索結果で上位になったのだろうかと思うくらいだ。
その原動力は何と言っても検索流入の回復で、非常に分かり易く回復した。GoogleのIndexもほぼ元に戻った。
とりあえず、SEO的にNGなゴミクズコンテンツをパクリサイトに表示させるという作戦は、かなり有効に作用したし、その効果はかなり早く出ると言えそうだ。
サイト丸パクリを検出した際の調査ポイントと今でも出来る準備
今回のパクリサイトの特徴は、対象サイトとしてピックアップされたら、そのサイトがピュアHTMLだろうが、WordPressなどのCMSだろうが関係なく、パクられてしまうという事だ。
つまり、誰でも被害に合う可能性がある。
僕はシステム関係の仕事をしているため、この辺りの対応に多少知見があったわけだが、そうじゃない人の方が多いだろう。
それでも、まずは相手の手口を知る事が重要だし、自分のサイトのログがどこに出ているかは知っておく必要がある。
そういう方向けに知っておいてほしいのは、以下の3つ。
1.利用しているサーバーのアクセスログ閲覧方法を把握しておく
例えば僕が契約しているシックスコアだと、WEBの管理画面から、アクセスログがダウンロードできる。
こういう仕組みは普通どこのレンタルサーバーサービスでも用意していると思うので、その方法を把握しておく必要がある。
実際ログの解析までは難しいと思うが、ログさえ取得できれば、有識者に見てもらう事も出来るためここは重要なポイントだ。
有識者に頼むにしても、調査の基本は「ログ」。これが入手出来ないと色んな意味で、対策は遅くなってしまうだろう。取得方法がわからない場合は、契約しているレンタルサーバー会社に確認しておこう。
2.アクセス遮断の方法があるかを把握しておく
WordPressであれば前述の通りプラグインを使用して、パクリサイトからのアクセスを遮断することができる。だが、全てのCMSでこのようなプラグインがあるとは限らないし、ピュアHTMLのサイトではプラグインなどという仕組みすらない。
多くの場合は、WEBの管理画面から登録するか、「.htaccess」を使うことになると思うが、その方法を把握しておくことも重要だ。
3.サービス運営会社の技術的な事に関する問い合わせ先を把握しておく
はてなブログやアメーバブログなどでは、上記2つのような仕組みは用意されていない可能性が高い。ただ、こういう場合運営会社にある程度対応を任せる事ができると思うので(特に有料サービスの場合は)、技術的な話の問い合わせ先を把握しておくべきと思う。
レンタルサーバーの場合もそうだが、一人のユーザーで対応するには限界があるので、必要に応じて運営会社に問い合わせするようにした方がよいと思う。
※対応スピードは会社によってマチマチと思うが
自分の不得意分野で相談できる友達を持つ
もう一つ大事な話がある。
相談できる友達を作っておく
ってことだ。
結局それかよ!と言われそうだし、作ろうと思ってなかなかできるものでもないが、今回の件は本当に色んな方に協力いただいた。
パクリサイトにすぐ反映されるなら、パクられたって記事がパクリサイトにも表示されるんじゃない?試してみたら?
という助言をFacebookでいただいて、パクリサイトの仕様を確認する記事を書くインスピレーションを得られた。そしてその記事が拡散することで、さらに様々な助言を得ることができた。
Googleとの対応においては、慣れない英語であるため、ブロガー友達でもあるヨッセンスのヨスさんに多大な協力をしていただいた。また、パクリサイトを潰すための逆SEOに関する知識を授けてくれたのもヨスさんだ。
さらに、ヨスさん経由でしゅんぼーさんを紹介いただき、「.htaccess」でのアクセス遮断や、最終的な決め手となったWordPressプラグイン「WP-BAN」の事を教えていただいた。
こうしてみると、ヨスさんは神だな、と思うw
終わりに
正直、今回の件は精神的にもかなりへこんでいた。数年かけて育ててきて、愛着もあるブログが、一瞬にして破壊されたような気持ちになったからだ。
このサイト一番のファンは自分自身。そう思うからこそ楽しいし、続けられるのだが、それが折れかけていた。
英語以外の知識は冷静に調べたら、すぐに見つけられた話かもしれない。
だが、自分自身も混乱していて、冷静さを欠いてしまう時に、その問題を理解してくれて、落ち着いて協力してくれる友達の存在は、本当に心強かった。彼らの存在がなければ、短期間で解決する事は出来なかっただろう。
その他にも応援のメッセージなどを多数いただいたし、個人ブログだがこれほど多くの人たちに支えてもらっていたのかと再認識した次第だ。
今回の対応は恒久的な対応とはならない。別のサーバーから同じことをされたら、またこの被害は発生する。だが、対策方法は分かっているので、面倒ではあるがもう焦ることはないだろう。
最後になるが、この場を借りて応援していただいた全ての皆様に感謝したします。
本当にありがとうございました。
今後同じような被害にあった方がいた際、この記事が少しでも役に立てばと思います。