WIP — この記事は追記・更新される可能性があります。
【SEO検証】古い記事が孤立してたのでタグ・パンくず・JSON-LDを足した話——関連記事の仕組みもメモ
#SEO · #Google Search Console · #タグ · #パンくず · #JSON-LD · #内部リンク · #Design Ops · #star-moti
公開
更新
【SEO検証】古い記事が孤立してたのでタグ・パンくず・JSON-LDを足した話——関連記事の仕組みもメモ
手動インデックス運用の記事 を書いたあとも、Search Console はちょくちょく覗いていました。
8月末時点のざっくり数字だとこんな感じ。
- インデックス登録 … 登録済み 50 / 未登録 34
- サイトマップ … 検出 294 件(最終読み込み 2026/08/29 ごろ)
「サイトマップには載ってるのに、古いハブとか記事がまだインデックスされてない……?」
8/27 あたり以降に出した記事は、何もしなくても だんだん登録されていくのに、それより前の記事 は孤立してる感じがしたんですよね(^^;
タグの概念はなんとなく分かってた。パンくずも「あった方がよさそう」くらいは知ってた。
でも 今更ながら、「内部リンク弱いとクロール優先度下がるよね……」と改めて痛感して、Cursor に修正をしてもらいました。
- 古い記事に tags が付いてないから追加して
- パンくずも付けたい(内部リンク強化したい)
コードの中身を自分で書いたわけではなく、「何が足りないか」を伝えて実装してもらう 形です。いつも通り、star-moti の Design Ops のやり方(^^)
結果として タグ追加 → パンくず(+ JSON-LD) の順で site に入りました。
きっかけ:「新しい記事は載るのに、古い記事が浮いてる」
自分のサイト(star-moti)だと、だいたいこういう整理になりそうです。
| 時期 | 様子 |
|---|---|
| 8/27 以降 | push + 手動リクエスト or 自然クロールで、比較的早くインデックスに載りやすい |
| それより前 | ハブ記事・古い Life Log が サイトマップにはあるのに未登録 のまま残りがち |
サイトマップは 「こういう URL がありますよ」リスト であって、全部インデックスしてね という命令書ではない——これは前の記事でも書いた通り。
なので今回 Cursor に頼ったのは インデックス API みたいな銀の弾丸じゃなく、「Google がサイト内を歩きやすくする」方向の 地味な内部リンク強化 です。
① タグ追加(42件の古い記事)
タグって何?
各記事の frontmatter に書く キーワードラベル です。
tags: ["ノマドワーク", "スターバックス", "カフェ作業", "Life Log"]
/blog/tag/ノマドワーク みたいな タグ一覧ページ が自動でできて、同じタグの記事同士が一覧でつながります。
今回やったこと
新しい記事にはだいたい tags が付いていたんですが、古い記事42件 だけ未設定のまま残ってました。
「タグ未設定の記事、内容に合わせて frontmatter に tags 足して」と Cursor に頼んだら、記事を読んで既存記事と同じノリで一括追加してくれました。ハブ系3本には先頭に 【ハブ】 も付いています。
なぜ効くと思ったか
- 記事 ↔ 記事 の横リンク(タグ一覧経由)
- ユーザーが「ノマド」「SEO」など テーマ横断 で辿れる
- クローラーもタグページから 古い記事に再訪 しやすくなる(保証はしないけど、サイトマップだけよりマシ)
「タグの意味は分かってた。でも 古い分まで一括で揃える のを後回しにしてた」——が今回の本音です(^^)
② パンくずリスト(画面上の階段)
パンくずって何?
記事上部に出る 「ホーム › 知見・ブログ › カテゴリ › 記事タイトル」 みたいな道しるべです。
star-moti では例えばこんな階層。
ホーム › 知見・ブログ › Life & Perspectives / 暮らしと視点 › (記事タイトル)
ブログ記事・カテゴリ・タグ・Portfolio に、Cursor が Breadcrumbs コンポーネントとして追加してくれました。
なぜ今更?
パンくず自体は「知ってた」側。でも 未登録34件 を見て、「古い記事、親階層に戻るリンク薄くない?」と再認識。
毎記事から必ず ホーム → ブログ → カテゴリ へリンクが張られるので、孤立ページ になりにくい、という期待です。
③ JSON-LD(ここ、初めて知った!!)
知らなかったこと
パンくずを Cursor に付けてもらって、デプロイ後にページの HTML をざっと見たら—— <nav> の直前に <script type="application/ld+json"> も一緒についてたんですよね。
自分では「JSON-LD も入れて」とは頼んでいない。パンくず実装のついでに入れてくれた やつだと思います(^^)
「え、script タグ? でも画面には何も出てない……?」
→ 調べたら、これが JSON-LD で、Google 向けの構造化データ だと分かりました。パンくずの「人間向け <nav>」の裏側に、検索エンジン向けのメモ がセットで付いてた、という理解です。
ざっくり説明
| 層 | 誰向け | 例 |
|---|---|---|
<nav> パンくず | 人間(+アクセシビリティ) | 画面上の ホーム › 知見・ブログ › … |
| JSON-LD | 検索エンジン | { "@type": "BreadcrumbList", ... } |
type="application/ld+json"… JavaScript としては実行しない(中身は JSON のメモ)- schema.org の BreadcrumbList … 「これはパンくずの階層リストですよ」という共通フォーマット
- ページの
<head>でも<body>でも Google は読める(今回はパンくずコンポーネントの中)
期待すること(控えめに)
- 検索結果に パンくず風の表示 が付く かも
- サイト構造の理解が 少し しやすくなる かも
インデックス guaranteed ではない です。でも入れて損は小さい、という判断。
「JSON-LD、知らなかった」を一つ学びとしてメモしておきます(^^)
すでにやってくれてた内部リンク(Cursor + 過去の実装)
今回の3点以外にも、内部リンクは もともと 入ってました。ここは 今更気づいて助かってる ラインです(^^)
A. 記事末尾の「主要ハブ一覧」(HubDirectory)
5大ハブ一覧コンポーネントの記事 で入れたやつ。
- 個別記事の 末尾 に、キュレーションした5つのハブへリンク
- 定義は
lib/hub-directory.ts(フリーランス準備・投資ログ・ノマドスポット・おすすめグッズ・サイト改修ログ) - ハブ記事自身 では二重表示を避けて非表示
→ 全記事から主要ハブへの送客 は、すでに自動。
B. 本文中の Markdown リンク
記事を Cursor と一緒に書いていると、関連記事への [テキスト](/blog/slug) が自然に入る。これも強力な内部リンク。
C. カテゴリ・タグ(ヘッダー付近)
記事ページにはもともと カテゴリリンク と #タグリンク がありました。今回のタグ42件追加で、タグ側の網が一気に厚くなった感じ。
余談:「関連記事」って普通どうやって出すの?
「関連記事」コンポーネント、star-moti にはまだ自動版はない です(HubDirectory は 固定のハブ5つ なので、記事ごとの「似てる記事」ではない)。
一般的なブログでは、だいたい次のどれか(または組み合わせ)です。
| 方式 | やり方 | 特徴 |
|---|---|---|
| ① タグ一致 | 同じ tags が多い記事をスコア順 | 実装が簡単。今回 tags を厚くしたのはここにも効く |
| ② カテゴリ一致 | 同じ categories から新着 N 件 | 雑だけど意外と使える |
| ③ 手動指定 | frontmatter に related: [slug-a, slug-b] | 精度最高。量産ブログだと手間 |
| ④ 本文類似度 | TF-IDF / ベクトル(embedding)で近い記事 | Medium っぽい。API コスト or ビルド時間 |
| ⑤ WordPress プラグイン | Yet Another Related Posts Plugin 等 | ホスト型ブログの定番 |
| ⑥ グラフ | 相互リンク数・PV で PageRank 風 | 大規模向け |
star-moti で現実的な次の一手 なら、たぶん 「同カテゴリ+タグ一致数で上位3件」 くらいのシンプル自動が相性いい(将来メモ)。
今は HubDirectory + 本文リンク + タグ/カテゴリ + パンくず の多層で、まず孤立を減らす段階、という位置づけです。
今回やったこと一覧
| 対応 | 内容 | 狙い |
|---|---|---|
| tags 42件追加 | Cursor に古い記事の frontmatter を一括追加 | タグ一覧経由の横リンク |
| パンくず | Cursor にコンポーネント実装 | 親階層への確実なリンク |
| JSON-LD | パンくず実装に同梱(BreadcrumbList) | Google 向け構造の明示(初めて知った) |
| (既存)HubDirectory | 記事末尾5ハブ | 主要コンテンツへの送客 |
| (既存)手動リクエスト | 新着中心 | GSC運用記事 参照 |
まとめ
- タグ・パンくず … 概念は知ってた。でも 古い記事の孤立 を見て、今更 Cursor に一気に頼んだ
- JSON-LD … 知らなかった。パンくずを付けてもらったら ついでについてた Google 向けの構造化データ
- 関連記事 … 一般的にはタグ/カテゴリ/AI/手動など。star-moti は HubDirectory + 本文リンクで代替中
インデックス50 → いくつ増えるかは 数週間様子見。焦らず、手動リクエスト(新着)+内部リンク(全体)の 両方 を続ける、くらいの気持ちです(^^)