この記事でわかること
この記事の目次Contents閉じる開く
Shopify管理画面でコンテンツ → ブログ記事 → ブログ記事を追加を開き、本文のどこかにカーソルを置いて書式ボタンを押してください。
Shopifyのリッチテキストエディタのドキュメントが書式設定オプションとして挙げているのは、段落、見出し (1〜6)、引用文、それに太字・斜体・下線・リスト・インデント・配置・文字色です。見出しレベルは6段階あります。そのどれにも、idを付けるためのフィールドもボタンもメニューもありません。
この属性1つが欠けていることが、目次アプリというカテゴリの全体です。
料金、レビュー件数、リスティングの記載内容は、2026年9月10日にen-USのShopify App Storeで確認したものです。料金はすべてUSD表記です。
Shopifyが書いていること、書いていないこと
Shopifyヘルプセンターのブログ記事の追加と管理のページは、かなり丁寧です。タイトルの文字数上限(255文字)、著者のドロップダウン、公開先ブログの選択、アイキャッチ画像、抜粋、タグ、テーマテンプレート、検索エンジン用リスティング、公開予約まで説明されています。
そこに「目次」「アンカー」「見出し」という語は一度も出てきません。
リッチテキストエディタのページには、HTMLを開く方法は書かれています。[HTML を表示] ボタンです。そこで<h2 id="shipping">を手書きすることはできます。ただし同じページに、手書きを難しくする記述が2つあります。
コンテンツの制限: リッチテキストエディタに入力するコンテンツには、64 KB という厳格な制限があります。これは、ページ、ブログ記事、追加のスクリプトに適用されます。
HTML のサニタイズ: TinyMCE は、ストアフロントの誤作動やセキュリティリスクを防ぐために HTML フォーマットを自動的に修正する、コンテンツフィルタリングロジックを提供します。手動で HTML を元の形式に編集して戻すこともできますが、潜在的な問題を回避するため、これらの自動変更をそのまま受け入れることをおすすめします。
つまり手書きのアンカーは、可能ではあり、ドキュメント化はされておらず、そして「書き換えるし、その書き換えに従ってほしい」とShopify自身が明言しているエディタの下に置かれます。同じページのトラブルシューティングでのShopifyの結論は、テーマ側で解決せよという内容です。
CDN が修正しようとしている HTML を記述することで特定の目標を達成しようとしている場合は、期待される HTML フォーマットをサポートするテーマコードに変更を加えるなど、それらの目標を達成するためのより理想的な方法があるかどうかを検討してください。
実在ストアのHTMLはどうなっているか
米国のShopifyストアで、長年editorialコンテンツを出しているBeardbrandから長文記事3本を取得し、配信されたHTML内の<h2>と<h3>を数えました。
| 記事 | h2+h3の個数 | idを持つ個数 |
|---|---|---|
/how-to-grow-long-hair-men | 20 | 3 |
/buzz-cut | 24 | 3 |
/mustaches | 9 | 3 |
どのページでも3個、しかもどのページでも同じ3個です。中身を出力すると理由が分かります。フッターのアコーディオン見出しでした。<h3 tabindex="0" id="footer-heading-dadcc981-…" aria-expanded="false">、テーマが生成したものです。
本文の見出しでidを持つものは、3本すべてでゼロでした。見出しが24個あってリンクできるセクションが1つもない、これはShopifyブログの放置された状態ではなく、標準の状態です。
アプリは実際に何をしているのか
次に、このカテゴリのアプリの1つSmart Table of Contentsのデモ記事を、同じページに対して2通りの見方で確認しました。
サーバーが返す生のHTMLを取得すると、文字列id="toc-は0回しか現れず、本文の<h2>は属性のない<h2>でした。同じページをブラウザでJavaScript実行後に読むと、本文の見出し9個中9個にidが付いています。toc-what-is-a-table-of-contents-and-why-does-it-matter、toc-why-doesnt-shopify-include-a-toc-by-default、という具合です。
これがこのカテゴリ全体の構造で、どのリスティングにも書かれていないのでそのまま書きます。目次がリンク先にしているアンカーは、あなたのページの中には存在しません。読者のブラウザの中で、ページが読み込まれるたびに、毎回作られています。 このカテゴリの別アプリに2023年に付いたレビューが、この仕組みを正確に描写しています。「ページを動的にスキャンして、見出しに動的に『ID』を追加してから、目次を作っているのだろう」。
ここから実務的な帰結が3つ出ます。どれもアプリを避ける理由ではなく、前提として織り込んでおくべき点です。
idは見出しテキストから生成される。 toc-why-doesnt-shopify-include-a-toc-by-defaultは、見出しをスラッグ化したものです。見出しを編集すればアンカーも変わります。共有済みのディープリンクは、あなたが張ったものも他人が張ったものも、ページ先頭に着地するようになります。
JavaScriptを実行せずにHTMLを読むものには、アンカーが見えない。 ブラウザはJavaScriptを実行しますし、GoogleもGooglebotがJavaScriptをレンダリングすることを明記しているので、読者体験とGoogleから見た状態は基本的に問題ありません。ただし「セクション単位でアドレス指定できるようになった」と思っているその状態は、他のフェッチャーが受け取るドキュメントには入っていません。そして、どのフェッチャーがJavaScriptを実行するのかは、アプリのリスティングを読んでも分かりません。
アンインストールしてもマークアップが残ることがある。 後述のJump Linksの項目で、開発元自身がそう書いています。
「Google jump-link schema」について
5本のうち2本が、schemaの出力を有料の理由として打ち出しています。Easy Table of Contents 2.0は「Automated SEO Schema: Built-in JSON-LD for Google Jump-to eligibility」を機能として掲げ、Freeプランに「Full SEO JSON-LD Schema」を入れ、そのうえで月額1.99ドルのEssentialプランに「Google SEO "Jump-Link" Schema」を置いています。同じ趣旨のものが、1つのリスティングの中で2つの段に分かれています。
Googleの構造化データ機能の一覧に、目次やジャンプリンクの型はありません。検索結果としていちばん近いのはsitelinkで、Googleのsitelinksのドキュメントはその生成方法を明確に書いています。
現時点では、サイトリンクは自動化されています。
ベストプラクティスとして挙げられているのは、情報量のある見出し、論理的なサイト構造、簡潔な内部リンクのアンカーテキストです。つまりページ構造の話で、追加できるマークアップの話ではありません。目次は記事構造を整える理由としては十分に正当です。ただし、Googleに目次を描画させるschema型はドキュメント上存在しません。
アプリを置ける場所
料金より効く制約がもう1つあります。しかもそれはアプリ側ではなくテーマ側にあります。
2025年9月、あるアプリ開発者がShopifyの開発者フォーラムにスレッドを立てました。Horizonテーマでは、Blog postセクションにApp Blockを挿入しても機能せず、ブロックは記事の下の新しいセクションに移動してしまう。「App Blockが記事コンテンツの中や隣に表示されないということです」。Dawnでは可能だったものが、Horizonでは不可でした。Shopifyのスタッフがエスカレーションし、2026年3月には「現時点でHorizonへのコントリビュートはレビュー・承認していない」と回答、そして2026年6月22日にこう書いています。「これはHorizonのバージョン4.0.0で解決されました」。9か月かかっています。同じスレッドの2026年5月には、別のアプリ開発者がHorizon、Sense、Refreshで同じ制約に当たっていることと、回避策として記事本文の下に別セクションを出していることを投稿しています。
プランを比べる前に、2つ確認してください。使っているテーマと、そのバージョンです。アプリの設置手段がテーマのApp Blockだけで、そのテーマが記事セクション内にブロックを受け付けないなら、目次は記事の上ではなく下に出ます。
5本のアプリ、5通りの条件
| アプリ | 無料プラン | 有料の開始 | トライアル | Built for Shopify | 評価(レビュー) | ブログ記事以外 |
|---|---|---|---|---|---|---|
| Easy Table of Contents 2.0 | あり(上部固定のみ) | 月額1.99ドル | 30日 | なし | 4.8(13件) | 3.99ドルでページ・コレクション・商品 |
| RuffRuff Table of Contents | あり(ブランディング表示) | 月額3.99ドル | 3日 | あり | 4.8(17件) | 9.99ドルで商品・コレクション・ページ |
| Smart Table of Contents | 無料のみ | — | — | なし | 5.0(1件) | ブログ記事のみ |
| Jump Links ‑ Table of Contents | なし | 月額1.99ドル | 7日 | なし | 2.5(4件) | 9.99ドルで関連商品 |
| Auto Table of Contents | 無料のみ | — | — | なし | 0.0(0件) | ページとブログ記事 |
5本合計でレビュー35件です。規模感のために書くと、2026年9月10日時点でApp Storeのブログカテゴリには234個のアプリが並んでいました。そしてそのカテゴリを「目次」機能で絞り込んでも、返ってくるのは同じ234個です。つまりこのフィルタは候補を絞る道具になっていません(同じカテゴリの「関連記事」フィルタでも同じことが起きていました)。
Easy Table of Contents 2.0

出典: Shopify App Store(Easy Table of Contents 2.0、2026-09-10時点)
開発はBestdecoders、リリースは2022年1月18日。トライアルはこの5本で最長の30日で、価格は4段階あります。Free、Essential 月額1.99ドル、Extended 月額3.99ドル、Extended Yearly 年額39.99ドルです。
無料プランは記事数無制限で目次を生成しますが、Fixed Top Position Only、つまり上部固定のみに制限されます。位置の指定、モバイルのスライドアウトドロワー、箇条書きとインデント、ページ単位の設定はすべてEssential以上です。
判断材料として2点。評価は13件で4.8ですが、その13件はすべて両端に振り切れています。5つ星11件と1つ星2件で、4つ星・3つ星・2つ星は1件もありません。あるレビュアーは「下の1つ星レビューを見てしばらく敬遠していた」と書いています。もう1点は、データアクセス要求がこの5本で最も広いことです。ストアオーナーの氏名・メール・電話・住所に加えて、ブログ投稿者のメール・IPアドレス・ブラウザ・OSを要求します。
RuffRuff Table of Contents

出典: Shopify App Store(RuffRuff Table of Contents、2026-09-10時点)
開発はTsun Inc.、リリースは2022年12月5日で、この5本の中で唯一Built for Shopifyバッジを持っています(日本語ストアでの表示名は「RuffRuff 目次作成」)。Light 月額3.99ドルまたは年額39.60ドル、Regular 月額9.99ドルまたは年額99.60ドルで、Regularは商品・コレクション・ページに対応します。トライアルは3日です。
Lightプランの機能リストは、逆に無料プランが何であるかを教えてくれるので、よく読む価値があります。Lightで追加されるのは**「Anchor Link Generation from Headings」と「No branding」**です。どちらもインストール前に知っておきたい内容です。無料プランにはベンダーのブランディング表示が入り、見出しからのアンカーリンク生成——この記事が扱っているまさにその処理——が、標準ではなく有料機能として記載されています。
Lightでは目次の上下にカスタムLiquidを置けるようにもなります。この5本の中では最も自由度の高いカスタマイズです。
Smart Table of Contents

出典: Shopify App Store(Smart Table of Contents、2026-09-10時点)
開発はSefa、リリースは2026年5月19日。無料で、有料プランは存在しません。H2とH3を読み取り、設定はアプリのダッシュボードではなくテーマエディタから行い、読み進めている位置をハイライトするスクロールスパイが付き、「Online Store 2.0のどのテーマでも動作する」と記載されています。
先ほどHTMLを検証したデモ記事はこのアプリのものです。つまり5本の中で唯一、リスティングの記載ではなく実測から仕組みを説明できるアプリでもあります。
注意点は機能ではなく実績です。レビューは1件、日付は2026年6月10日、しかもそのストアのアプリ利用期間は7分です。調査時点でリリースから4か月未満、レビュー1件というのは、実績とは呼べません。データアクセス要求はこの5本で最も狭く、ストアオーナーの情報のみです。
Jump Links ‑ Table of Contents

出典: Shopify App Store(Jump Links ‑ Table of Contents、2026-09-10時点)
開発は米国テキサス州ダラスのJump Links、リリースは2021年4月29日で、この5本で最も古いアプリです。Full Access 月額1.99ドル、Premium 月額9.99ドルで記事末尾への関連商品の自動表示が付きます。トライアルは7日、無料プランはありません。
評価は4件で2.5です。4つ星1件、3つ星1件、2つ星1件、1つ星1件で、5つ星は1件もありません。この4件のレビューはこのカテゴリで最も有用な資料なので、リスティングよりこちらを読んでください。
2023年2月のレビュアーは2点を報告しています。読み込み時間と、アンインストール後に残るコードです。開発元の公開返信は、前者を否定し、後者を認めています。
残念ながら、このアプリは削除時に一部のコードを残します。お問い合わせいただいた際のサポート回答でもお伝えしたとおり、これは既知のバグで修正に取り組んでおり、近いうちにそのコードを削除できるようになります。
この返信から3年半が経っていますが、これが現時点の公開記録のままです。読み込み時間については、別々の2名のレビュアーが独立に「2秒余分にかかる」と書いており、開発元は「証拠ゼロの許しがたい嘘」と反論して、GTmetrixでロンドンから498ミリ秒、バンクーバーから357ミリ秒という数値を挙げています。この応酬から確実に分かるのは構造の話です。開発元自身が、目次を生成するためにAWSを使っていると説明しています。つまりクライアント側で処理する他のアプリと違い、サーバーへの往復が入ります。4件のうち2件が、サポートから返信がなかったと書いています。最新は2024年8月で、全文が「ずっと前から動かなくなっていて、サポートは一切返信しない」です。もう1件は2023年5月の編集版で「まったく連絡が取れないことに、あらためて深く失望しています」とあり、開発元はこのマーチャントのメールが自社のスパムシステムに引っかかっていたと返信しています。
このカテゴリのアプリをアンインストールするなら、あとで記事のHTMLを確認しておくとよいでしょう。アプリのアンインストールは、多くのマーチャントが想定するより多くのものを残します。
Auto Table of Contents

出典: Shopify App Store(Auto Table of Contents、2026-09-10時点)
開発はドレスデンのMax Benz、リリースは2026年7月16日で、調査時点でまだ2か月未満です。無料でレビューはありません。ページとブログ記事のH2・H3をスキャンしてアンカーリンク付きの目次を生成し、見出しが変わると自動で更新されます。
リスティングの1行が、多くの米国マーチャントにとっての結論になります。Languagesの欄がGermanで、その下に「This app is not translated into English」と書かれています。リスティング本文もmeta descriptionもドイツ語です。これはアプリの管理画面についての記述で、ストアフロントの出力が必ずそうだという話ではありませんが、インストール後ではなく前に確認しておく類の情報です。
選び方
年に数本しか長文記事を出さないなら、まず何もしないでください。記事をブラウザで開いて見出しを数え、読者が実際にジャンプリストを使うかを考えます。見出し3つの900ワードの記事に目次は要りません。
月額を払わず、Online Store 2.0のテーマを使っているなら、管理画面が英語で使えるいちばん素直な無料案はSmart Table of Contentsです。ただし根拠がレビュー1件であることを理解したうえで選ぶ必要があります。
プラットフォーム側のシグナルを重視するなら、この5本でBuilt for Shopifyなのはこの1本、RuffRuff Table of Contentsだけです。Lightの月額3.99ドルを前提に予算を組んでください。無料プランにはブランディングが入り、見出しからのアンカー生成は有料機能として記載されています。
商品ページやコレクションページにも目次が必要なら、Easy Table of Contents 2.0の月額3.99ドルとRuffRuffのRegularの月額9.99ドルを比べます。その範囲ではEasy Table of Contents 2.0のほうが安く、RuffRuffはバッジとレビュー履歴の長さで勝ちます。
同じアプリで記事下に関連商品も出したいなら、Jump LinksのPremium、月額9.99ドルです。評価2.5と、開発元が認めたアンインストール時の残存コードのバグと合わせて判断してください。
テーマがSense、Refresh、または4.0.0より古いHorizonなら、料金を決める前に設置場所を決めてください。
まとめ
Shopifyは見出しレベルを6段階用意し、そのどれにもアドレスを与える手段を用意していません。このカテゴリのアプリはすべて同じ方法でその穴を埋めます。読者のブラウザのDOMにid属性を書き込む方法です。そのうえで、位置の指定、モバイル表示、ブログ記事以外への適用範囲、そして1本はアンカー生成そのものに、それぞれ違う値段を付けています。
実際に差がつくのは機能リストではありません。テーマがアプリに何を許すか、そのアプリがいまも動いている証拠がどれだけあるか、そして削除したとき何が残るか、この3点です。
出典
- Shopifyヘルプセンター — コンテンツ用のリッチテキストエディタの使用
- Shopifyヘルプセンター — ブログ記事の追加と管理
- Shopify Developer Community — Horizon + Shopify theme devs: Please allow apps to insert blocks into the Blog Post section
- Google Search Central — Sitelinks
- Google Search Central — All structured data features
- Shopify App Storeのリスティング(2026年9月10日取得): Easy Table of Contents 2.0、RuffRuff Table of Contents、Smart Table of Contents、Jump Links ‑ Table of Contents、Auto Table of Contents
Shopifyヘルプセンターには、レビューアプリ移行の結果を決定づける一文があります。「CSVを使用してアプリのレビューパートナー間で移行されたレビューは、Shopで表示する対象になりません」。2025年6月6日に標準商品レビューシンジケーションプログラムが一般提供になって以降、承認済みアプリはすべてのレビューを自分のストア内のメタオブジェクトに書き込んでいます。つまり移行は2つあり、CSVのほうが劣ります。Judge.meのエクスポートは動画・SKU・注文情報・認証ステータスを落とします。Yotpoのインポートは受け入れたレビューをすべて匿名扱いにします。Looxはストアあたり10万件で永久に打ち止め、取り消しは7日間だけ。Okendoは isVerifiedBuyer 列に TRUE と入力させます。Judge.meは手動での認証付与を拒否します。エクスポートの中身、インポート制限、認証バッジが戻る条件、着地コストで比較したのは、Judge.me Product Reviews App、Loox ‑ Product Reviews App、Yotpo: Product Reviews App、Okendo: Reviews & Loyalty、Stamped Reviews & Loyaltyの5本です。2026年9月10日時点で確認。