アクセスが肥大化した単一カテゴリを、WPのマルチサイト機能で別サイトとして独立させた



この中にあったソシャゲ攻略の記事を↓
https://miyadir.com/
こうしました↓
https://miyadir.com/herowars/

ある程度サイトがでかくなり、ある特定のカテゴリが大量にアクセスを稼ぐようになると、「そのカテゴリを別ドメインで独立させるべきなのか」というのは一度は頭に浮かぶと思います。

このブログは雑記ブログなんですが、あるソシャゲの記事を投稿し始めたらそのカテゴリのトラフィック量が大幅に増え、その他のカテゴリの記事のデータが非常に見づらくなりました
このブログは107記事で月間18万PVほどあるんですが、そのゲームの52記事がトラフィックの9割以上を占めていました。Google analyticsやGoogle Search Consoleで他カテゴリのデータが見ずらすぎて泣きそうだったんですが、マルチサイトに移したおかげで全部解消しました。

管理側としてはanalyticsなどで数値が見づらくなりますし、ユーザー側としては「ソシャゲの記事が見たくて、サイト内回遊したい」というニーズがあるのに雑記記事が混ざってしまい導線的にベストとは言えず、管理者・ユーザ共に得しない状態になっていました。
なのでwordpressのマルチサイト機能を使用し、サブディレクトリに独立させることにしました。

同じような状況の方がいるかもしれませんので、そのような方の参考になったら幸いです。

今回やった作業と、マルチサイト化するメリット

  • HeroWarsというソシャゲ攻略記事を独立化した
  • 元々のパーマリンクに aaa.com/category/001 のようにカテゴリは含まない
  • miyadir.com → miyadir.com/herowars という形で独立

今回はmiyadir.com内の「HeroWars」カテゴリ内の記事を、上記のサブディレクトリにマルチサイト化して避難させました。パーマリンクは miyadir.com/434 のように記事idのみで設定していましたので、元のURLにカテゴリは含まれていません。パーマリンクにカテゴリを含んでいればまた別のやり方もあったのですが、URLにカテゴリ名を含めてしまうと記事のカテゴリを変更した場合や、カテゴリの名前自体を変える場合に非常にめんどくさくなるため推奨はできません。

今回は、マルチサイト化での独立です。
Analytics・データが見やすい・取りやすくなった上、ゲーム攻略サイトのユーザもサイト内巡回がしやすくなったんじゃないかなと思います。「トップページロゴを押すとゲームカテゴリのトップに飛ぶ」とかは地味に大切ですね。「ゲームの攻略サイトを隅から隅まで見たいのに、トップに飛ぶと雑記の記事が出る」という状態でしたからね。これが解消され、まさにwin-winです。

肥大化した単一カテゴリの問題点

雑記ブログ等において、単一のカテゴリが肥大化したした時の実際の弊害を挙げていきます。

analyticsで正確なデータを取れない

analyticsでデータを見たいときに、莫大なトラフィック量のソシャゲ攻略記事に埋もれて雑記用の記事のデータがうまく見れなくなります。
パーマリンクの設定を以下のように設定していればこれは回避できる問題です。
expample.com/category/0002

URLにカテゴリを入れて、サブディレクトリ(カテゴリ)ごとにビューを分ければ良いんですが、ただこの方法を使うと記事のカテゴリを変更しただけでURLが変わってしまうという致命的な問題点があります。

Search Consoleで正確なデータを取れない

analyticsと同じような感じです。
マルチサイト化すれば、それぞれ独立したsitemap.xmlをはきだせますので、Search Console上であるカテゴリ(今回はゲーム)ごとにサーチコンソールのプロパティを追加していけます。
ちなみにSearch Console的にはこれは正しいやり方だそうです。

miyadir.com/sitemap.xml
miyadir.com/herowars/sitemap.xml

ちなみにURLにカテゴリを含めない場合、サーチコンソール上で「次のURLを含めない」フィルターによるサブディレクトリごとの除外が使えませんので、データがにごります。ソシャゲの攻略記事ばかり一覧に出てきて、広告単価の高い雑記記事などのリライトがまともにできなくなります。

ユーザのUI的にも良くない

ゲームの攻略記事を読むユーザーは基本的には雑記ブログの他の記事なんかには興味ありません。

カテゴリも「ゲーム>ソシャゲA」という子カテゴリに位置していましたので、その中での「キャラ」「イベント」といった孫カテゴリまで作りたくありませんでした。
現在はこの子カテゴリ自体がサイトになりましたので、「キャラ」「イベント」というカテゴリを作りたい場合は親カテゴリで済んでいます。

ゲーム以外の記事の滞在時間が極端に短くなる

先程も述べたとおり、ゲームサイトのユーザにとって雑記サイトの記事は興味を引く内容ではないため、他カテゴリの記事の滞在時間が極端に短くなってしまいます。

wordpressでは「次の記事」「前の記事」という前後に投稿した記事へのリンクはカテゴリの絞り込みなどなく、全ての記事が対象になります。
単一のカテゴリ内でかなりのトラフィック量があり、さらにソシャゲ攻略記事などはサイト内の回遊率は高いですが、彼らにとってその他のカテゴリの記事は必要ないものです。ゲームの攻略記事を見ていて、「前の記事」がこのwordpressマルチサイト化の記事だったらどう感じますかという話です。まあ不便ですよね。

手順

マルチサイト機能でwpを再構築する

まずはマルチサイト機能を有効化し、テーマなどを設置します。
ここに関しては紹介している方がたくさんいますので、割愛します。

サイト内修正、記事内に手動で入れたサイト内リンクを修正等

記事内にサイトの中でのリンクがあったらURLの修正しましょう。
Search Regexなどのプラグインで一括置換してもいいと思いますが、今回は数も少なかったので手動で変換しました。

ちなみに記事内の画像URLは変更しませんでした。同じドメイン内に画像がありますので、特にSEO上の不利もないかなと言う判断です。

301でリダイレクトする

デザインや記事の修正が整ったら、元サイトからサブサイトに移した記事のリダイレクトをかけましょう。.httaccessで制御しても良いですが、Redirectionというプラグインを使うのが楽で転送数もカウントできるのでおすすめです。
RedirectionでURLリストをインポートして301転送する

Sitemap.xmlを生成し直し、サーチコンソールにプロパティを追加

 サイトマップを作成し、サーチコンソールのプロパティもマルチサイト別に追加のプロパティを作成します。
こうすれば、メインのドメインのプロパティで[ 検索パフォーマンス>絞り込み>ページ>憑きを含まないURL ]でサブディレクトリを追加していくだけで、メインのサイトのみでの絞り込みが可能です。
Googleサーチコンソールをディレクトリ毎に分けたら分析がしやすくなった話

Analyticsの設定をする

Analyticsのビューの設定をします。
サブサイトごとにプロパティ(UA-XXXXXXX-X)を再発行するのではなく、ビューを設定することによって今までのデータを活かしたままデータをチェックすることができます。
wordpressのマルチサイトの解析をanalyticsのビュー・フィルタを使用して運用する

何もしなくてよかった部分

CDN(Cloudflare)

これは環境によりますが、僕の場合はネームサーバもCloudflare投げてしまっているので、何もせずともサブディレクトリのマルチサイト内もまるっとキャッシュ化してくれてます。ゲームカテゴリは収益性が低いので、サーバ代が膨れ上がったら頑張れば頑張るだけ萎え萎えになってしまいますが、Cloudflareがうまいことアクセスをさばいてくれています。

ドメイン・SSL

今回のマルチサイト化はサブドメインを利用せず、サブディレクトリにしましたのでドメインのレコードやSSLをいじったりする必要はありませんでした。
サブドメインでやる方はSSLの設定をして上げる必要があります。

まとめ:面倒だけどやる価値はある

面倒ですが、リライトする記事の選定などが圧倒的に楽になりますので、やる価値はあると思います。記事数が多ければ多いほど、さらにアクセスが多いほどきちんと分けた時のメリットが増えていくと思います。
逆に1日1000PVもない状態であったり、カテゴリ毎にバランス良くアクセスが来ている場合は不要かもしれません。