WordPressのブログで記事と記事の内部リンク構造を可視化するプラグインを作りましたので公開します。
内部リンクの最適化にお役立てください。
Show Article Mapができること#
Show Article Mapは、記事本文中に貼ってある内部リンクを解析し、記事および固定ページをノード、リンクをエッジとしたマップを自動生成します。
たとえば当ブログの場合、こんな↓マップが生成されます。

四角いノードは記事、つながり(エッジ)が内部リンク、色はカテゴリを指しています。
少し拡大するとこんなふうに見えます↓。

それぞれのノードに記事のスラッグが入っています。(後述するカスタマイズで記事タイトルに変更可能)
矢印はリンクの方向です。どの記事からどの記事にリンクが張ってあるかがわかります。
ノードはマウスホバーすると記事のタイトルが表示されます。ダブルクリックで当該記事にジャンプ可能です。

マップの上にある検索窓でスラッグを検索可能です(記事タイトルにした場合、タイトル検索)。ヒットした記事のノードがハイライト表示されます。
検索窓直下に表示されているEditメニューから、ノードやエッジを自由に追加・削除可能です。「もしこの記事がなかったら?」「もしこの記事からこの記事へリンクされていたら?」など、内部リンクを最適化したあと全体がどう見えるかシミュレーションできます。(マップ上だけの操作のため、実際の記事データは変更されません)

「Toggle category / pages」欄から、カテゴリおよび固定ページ毎に表示・非表示を切り替え可能です。記事数が多すぎる、カテゴリ毎の関係が見たい場合にご利用ください。
「Toggle Blur」横のボタンで自動配置処理の有効・無効を切り替え可能です。ノードが静止しない場合は自動配置をストップすると捗ります。
内部リンクが可視化されるとなにが嬉しいか#
このプラグインを作った理由は、内部リンク最適化のためです。
ブログを書いていると、だんだんと記事と記事の関係づくりがおろそかになっていきます。
そこでいざ最適化しようと過去記事を開くも、1つ1つの記事を見ているだけでは、どこがどうつながっているかが見えにくいものです。
そこでブログ全体を俯瞰するため、Show Article Mapを使います。
ミクロな視点では見えてこない課題が、マクロな視点なら見えてきます。
孤立記事が一発でわかる#
たとえば↓のマップを見てください。

ポツポツと外縁を円状に取り巻く記事群が見えると思います。
これら、どの記事からもリンクされず、どの記事にもリンクしていない記事です。
いわば思いつきで書いてみた結果ブログ内で孤立してしまった、かわいそうな一発屋記事といえます。
これ、コンテンツ的にもSEO的にもよくありません。
- リンクしてない=ブログのテーマから逸脱している
- リンクされていない=内部リンクによるSEO効果を受けにくい
もしこのような記事のコンテンツが非常に弱く、検索経由でアクセスされずに残っているとすると、低品質サイトと評価されかねません。
関連記事を書く、関連する他記事を見つけてリンクを張るなどの施策が必要です。
読んでほしいのにリンクのない記事がわかる#
同じように、本当は読んでもらいたい記事に他記事からリンクが全然張られていない、なんて事情もまるわかりです。
検索を狙って書いた記事のはずなのになかなか上位にいかないのは、ブログ全体のテーマから逸脱している、もしくは内部リンクが集まっていないからかもしれません。
たとえば、下のマップ拡大図を見てみてください。

真ん中の記事に被リンク発リンクが集中しています。リンク先の記事は関連性の強いものばかり。
実はこの記事、検索でかなりいい位置に来ているんです。
読んでほしい記事がこのパターンになるよう、内部リンクを整理したり関連記事を書くことで検索順の上昇が見込めるかもしれません。
このように、ブログ全体のリンク構造が見えると、どの記事に対してどのような内部リンクのテコ入れが必要なのかがぱっと見でわかります。
ブログ全体のシナジーが出せているかがわかる#
カテゴリ別に色分けされたブログ全体を眺めることで、ブログ全体でシナジーを出せているかがわかります。
ここで言う「シナジー」とは、下記記事にあるとおり、各カテゴリが密接に関係しており回遊性が高い状態を指します。
参考 複数のブログテーマ、活かせてますか?回遊性を高めるテーマ選び | 趣味ブロガーの副業戦略
画像をお借りすると、全体像としてこういう状態が「シナジー型」に相当します。

kurone43.com
これを記事間のトポロジー(ノードとエッジのつながり)で解釈すると、ブログ全体を俯瞰したとき、
- カテゴリ別にかたまりができている
- 各カテゴリ間にゆるいつながりがある
という状態が望ましいといえます。
ここで、Show Article Mapでカテゴリ別に色分けされたブログ全体像を見てみましょう。

真ん中あたりを見てみると、赤・緑・黄色は先ほどの「シナジー型」のベン図と近しい形をしていますが、青は逆に辺に断片化してしまっていることがわかります。(うちのブログです……)
このように、
- 「ここらへんはかたまりができてるな」
- 「こっちはなぜか孤島ばかりになってるな」
- 「カテゴリとは名ばかりで全体がぐちゃってるな」
といったことがShow Article Mapを使うとすぐわかってしまいます。
そのため改善点が見えやすく、テコ入れの方向性もパッとわかるのではないでしょうか。(もちろん、関係ないのに無理にリンクを張っていないことが条件です)
内部リンク最適化のインプットに#
このように、
- テーマを逸脱した孤立記事の特定
- 内部リンクによるテコ入れ箇所の特定
- ブログ全体のシナジー型構造レビュー
などを行うために、Show Article Mapはお役立ていただけるのではないかな、と思っています。
地道に内部リンク最適化を施していった結果がこちら↓。

孤立記事が多くシナジー型とは言い難い形をしていますが、以前よりははるかにキレイにグループ化されました。
このように内部リンク整理作業の進捗がパッと見でわかるとやる気も続きやすくなるかと思います。
内部リンク最適化でPVが46%アップ?#
実際の検索順位への影響はきちんと測れていません。
ただ内部リンク最適化がPVに大きく影響したという事例があったりはします。
過去記事リライトと内部リンク整理でPVが46%アップした、という下記記事です。
参考 メインサイト200記事のリライトと内部リンク施策でPVが46%アップしたお話
ひたすら新記事を書くのもいいですが、内部リンクに手を入れる過去記事リライトもPVアップには重要なのです……
記事本文以外を解析対象外とした理由#
Show Article Mapは記事本文中の内部リンクのみを解析します。グローバルメニューやサイドバー、記事上下のウィジェットスペースのリンクは対象外です。
これには2つ、理由があります。
記事本文中以外のリンクはクリック率が低い#
記事本文中以外の内部リンクは、読者にほとんどクリックされていません。
リンクは貼られるだけでは意味がありません。クリックされ、そこにトラフィックが発生することではじめて「生きたリンク」になります。
たとえば当ブログの場合、クリックされやすいとされている記事下の関連記事より記事本文中のリンクのほうが1.5~2倍ほどクリックされています。その他パーツは言わずもがなでした。
もちろん貼っただけの「ハリボテ」リンクもSEO施策に役立たないとは言い切れません。しかし、クリックされない以上、読者の役に立っていない=Googleの重視するUXには貢献していないことになります。
そのため、記事本文中に意図的に貼ったもの=生きたリンクになりやすいものを優先して解析するほうが、SEO観点では効率的かなと考え、本文中のリンクのみを解析させています。
解析対象が多すぎるとマップが目で分析できなくなる#
可視化の目的は、改善点を見つけることです。そのため「パッと目で見てわかりやすいこと」が前提になります。
一方、サイドバーやウィジェットで自動挿入されるリンクを解析に含めてしまうと、リンクの数が多すぎて「スチールたわし」のような見た目になってしまいます。
これでは人間の目では分析しきれないので、ちょうどいいバランスを考えて、記事本文中のリンクのみを解析させています。
Show Article Mapのダウンロードと使い方#
ダウンロードとインストール#
Show Article Mapのダウンロード 下記環境で動作確認済です。
STORKをお使いの場合、スラッグを英字にしないとリンクが認識されないようです→参考情報
使い方#
プラグインの使い方は次のとおりです。
- 記事または固定ページを作る
- 本文に[[show_article_map]]というショートコードを書く
- 記事または固定ページを自分限定で公開する
公開した記事ページにアクセスすると、その場で過去記事の解析と可視化の処理が走ります。
JavaScriptで処理させているので表示まで時間がかかりますが、気長にお待ちください。処理性能の高いPCで見ることを推奨します。 特に理由や意図がない限り、自分限定公開にしてください。 解析処理はかなり重いので、誰もが見られる場所に公開するとアクセスのたびにサーバーに高い負荷がかり、サーバーエラーが発生する可能性があります。
スラッグではなく記事タイトルをラベルに出す#
スラッグにIDや日付を使っている方は、マップ上の四角(ノード)に表示されるラベルを記事タイトルにしたいと思われると思います。
その場合、プラグインファイル(showAticleMap.php)の72行目を下記のように変更してください
- Before:
'label' => nae_insert_str(urldecode($post->post_name), "rn", 20), - After:
'label' => nae_insert_str(urldecode($post->post_title), "rn", 20),
ただし、記事タイトルにした場合ノードが多少縦長になるのでご注意ください。
子カテゴリで細かく色分けする#
デフォルトではトップレベルの親カテゴリをもとに色分けされるようになっています。
が、サイト設計によっては一番細かい子カテゴリで色分けしたい場合もあると思います。
その場合、プラグインファイル(showAticleMap.php)の66行目付近を下記のように変更してください
- Before:
$group_name = !empty($category) ? $root_category->slug : "固定ページ"; - After:
$group_name = !empty($category) ? $category[0]->name : "固定ページ";
ただし、子カテゴリの色が多いと違うカテゴリでも同じ色に塗られることがありますのでご留意ください。(ライブラリの仕様です……)
リンク情報のデータをダウンロードする#
マップ下にある「Download CSV」リンクから、データをCSV形式でダウンロードできます。
ExcelやGoogle Spreadsheetで詳しく分析したい方はお使いください。
ご利用の際の注意事項#
最後に注意点です。
- 色分け機能は「1記事1カテゴリ」が前提です。複数ある場合、片方だけ処理されます
- 利用している可視化ライブラリの関係で、処理可能な記事数には限界があります。(1000記事は厳しいかもしれません)
- ところどころでjQueryを使っています。脱jQueryしている方は事前にjQueryを読み込んでください →jQueryを自動で読み込むようにしました(v0.4~)
不具合報告やご質問は本記事へのコメントまでお寄せください。
FAQ:よくあるトラブルと解決策#
マップが全く生成されない#
PHPのバージョンを7以上にアップグレードしてください。
ページは出るがリンクが認識されない#
Custom Permalinksなどのプラグインでパーマリンクを変更していると、正しくリンクが抽出できない可能性があります。
WordPressデフォルトのパーマリンク設定をご利用ください。
まとめ:内部リンク最適化にお役立てください#
なかなか全体像が見えづらい内部リンク。最適化のために1記事1記事をしらみつぶしにするのも骨が折れるものです。
こちらのプラグインでざっくり改善点のあたりをつけたうえで、ピンポイントでテコ入れをしていけば、効率的な過去記事整理ができるのではないでしょうか。
ぜひあなたのブログ・サイトの内部リンク最適化にお役立てください。
サイト設計の考え方については、下記Kindle本がオススメです。
参考 情報サイトでオーソリティーを目指そう!: 10年先も生き残る安定志向のサイト構築論
以上、WordPressで内部リンク構造を可視化するプラグイン「Show Article Map」のご紹介でした。
更新履歴#
- 2020/09/10:v0.8 - リンクデータダウンロード機能における改行処理のバグを修正
- 2018/08/12:v0.7 - リンクデータのダウンロード機能を追加
- 2018/07/08:v0.6 - Cocoonなど、記事本文内のscriptタグを自動改変する一部のテーマで動作しなかった不具合を修正
- 2018/05/29:v0.5 - JINなど、pタグの自動挿入がデフォルトでonになっている一部のテーマで動作しなかった不具合を修正
- 2018/04/25:v0.4 - Cocoonで高速化設定をオンにしたときに動作しなくなる不具合に対応 - jQueryをプラグイン内で読み込むよう変更
- 2017/09/22:v0.3 - 機能追加:カテゴリおよび固定ページ毎の表示切り替え機能、自動配置処理の有効・無効切り替え機能を追加
- 2017/09/19:v0.2 - 機能追加:固定ページを解析対象に追加 - バグ修正:カテゴリ色分けバグ修正、ショートコードやoEmbed等が正しく展開されていなかったバグ修正
- 2017/09/18:v0.1(初版公開)



