GhostのSEO

Ghost CMSのSEO機能を解説します。従来型とヘッドレスの違い、自動で構築される技術SEO、対応していない機能、会員限定コンテンツ、Ghost Proとセルフホストを扱います。

初回公開:2026年6月27日 · 最終更新:2026年8月6日 · Advanced
言語

Ghost SEOは、どの構成で運用するかによって2つに分かれます。従来型(Handlebars)では、サイトマップ、canonical、メタタグ、Open Graph、Twitter Cards、記事のJSON-LDをプラグインなしで処理します。ヘッドレスではGhostはコンテンツAPIにとどまり、フロントエンド側でこれらを再構築する必要があります。どちらの構成でも、パンくず・FAQスキーマ、hreflang、記事ごとのnoindex切り替え、IndexNowには空白があります。会員限定コンテンツはサーバー側で保護されるため、Googleにはインデックスされません。従来型とヘッドレスを同じSEO問題として扱わないことが最大の注意点です。

TL;DR — Ghost SEOは、従来型(Handlebars)とヘッドレス(Content API)の選択で分岐します。従来型は、サイトマップ、自己参照+カスタムcanonical、メタタグ、OG/Twitterカード、Article JSON-LDをプラグインなしで自動生成し、初期状態でも高速です。ヘッドレスにするとすべて消え、フロントエンドが再構築するため、速度の利点もフレームワーク側の責任になります。どちらにもパンくず/FAQ/Productスキーマ、hreflang、記事ごとのnoindex、IndexNow、リダイレクトUIという空白があります。会員限定コンテンツはサーバー側で保護されるため登録できません。2方式を混同しないでください。

分岐点

GhostはNode.js(Express)のCMSで、コアが分離されています。APIと、任意のHandlebarsフロントエンドという構成が、SEOの全体像です。

  • 従来型 — GhostはHandlebarsテーマでHTMLを配信します。組み込みSEOはテーマの{{ghost_head}}ヘルパーから自動生成されます。
  • ヘッドレス — Ghostは*“a full headless CMS which is completely agnostic of any particular front end or static site framework.”* (翻訳)「特定のフロントエンドや静的サイトフレームワークに完全に依存しない、フル機能のヘッドレスCMS」です。別フロントエンド(Next.js、Astro、Nuxt、SvelteKit)からContent APIまたはAdmin APIを呼び出し、SEOは100%そのフロントエンドの責任になります。

方式の選択がGhost SEOの規模を決める最大の要因です。 以下はすべてこの選択を軸に整理します。ヘッドレス全般についてはヘッドレスCMSのSEOを参照してください。

従来型Ghostが自動処理すること

従来型では、Ghostが設定なしで中核の技術SEOを処理します。

  • サイトマップ。 /sitemap.xmlに自動生成し、公開/非公開時に更新します。記事、ページ、タグ、著者を含みます。Ghostは*“Ghost automatically creates and updates an XML sitemap for your website.”* (翻訳)「GhostはウェブサイトのXMLサイトマップを自動作成・更新します」と説明しています。 Evidence for this claim Ghost automatically creates and updates an XML sitemap. Scope: Traditional Ghost publication output. Confidence: high · Verified: Ghost: SEO
  • canonicalタグ。 すべての記事とページにrel=canonicalを自己参照で置きます。“Ghost adds canonical tags across your site to tell search engines which version of a page they should consider the ‘official’ one.” (翻訳)「Ghostはサイト全体にcanonicalタグを追加し、検索エンジンにページのどの版を『公式』とみなすか伝えます。」2019年3月以降は、エディターのメタデータパネルまたはAdmin APIのcanonical_urlで記事ごとのカスタムcanonicalも設定できます。これは*“guest posts, multiple versions of the same page or when you need to curate a list of links to external sources.”* (翻訳)「ゲスト投稿、同じページの複数版、外部ソースへのリンク一覧をキュレーションしたい場合」に向けた機能です。 Evidence for this claim Ghost outputs canonical tags and supports a custom canonical URL for a post or page. Scope: Traditional Ghost and the post/page metadata configuration. Confidence: high · Verified: Ghost: Canonical URLs
  • メタタイトル/説明。 空欄なら記事タイトルと抜粋へフォールバックします。
  • Open Graph+Twitter Cards。 記事メタデータとアイキャッチ画像から自動生成します。
  • 構造化データ(JSON-LD)。 “Ghost automatically includes structured data in all posts and pages” (翻訳)「Ghostはすべての記事とページに構造化データを自動的に含めます」。publisher、author、headline、datePublisheddateModified、画像、keywordsを持つArticleスキーマです。
  • クリーンURLとカスタムルーティング。 初期値はスラッグ型で、routes.yamlから完全に変更できます。
  • robots.txt。 管理パス/ghost/をdisallowし、それ以外を許可するデフォルトファイルです。

WordPressの標準インストールより、これは実際に多くを備えています。Ghostは*“XML sitemaps, canonical tags, optimised URLs, microformats, Facebook Open Graph tags, support for Twitter cards and clean semantic markup”* (翻訳)「XMLサイトマップ、canonicalタグ、最適化URL、マイクロフォーマット、Facebook Open Graphタグ、Twitterカード対応、クリーンなセマンティックマークアップ」を、プラグイン不要の組み込み機能として挙げています。

どちらの方式でもGhostがしないこと

Ghostは中核で止まります。次を自動生成しません

  • 高度なスキーマ。 パンくず、FAQ、HowTo、Product、Recipe、Video。Articleスキーマだけで、他はコード注入またはテーマ作業です。
  • hreflang/国際SEO。 ネイティブ対応はなく、WeglotやConveyThisなどの第三者サービス、またはテーマ実装が必要です。
  • 記事ごとのnoindex切り替え。 UIにはなく、コード注入が必要です。
  • キーワード最適化の助言。 GhostチームはYoast型ツールについて、“one of the downsides of using Yoast’s KW optimisation suggestions is that is encourages us to write meta data for machines instead of humans,” (翻訳)「YoastのKW最適化提案の欠点の1つは、人間ではなく機械向けにメタデータを書くよう促すことです」と述べ、さらに高度なSEO機能の要望には*“This isn’t on our radar at the moment.”* (翻訳)「現時点でその予定はありません」と答えています。
  • IndexNow。 ネイティブ対応はなく、必要なら公開Webhookで接続します。
  • リダイレクト管理UI。 self-hostedではredirects.yaml、Ghost Proではリダイレクトマネージャーを使います。頼れるプラグインエコシステムはありません。

ヘッドレスGhost:再構築するSEO

ヘッドレスにするとGhostはSEOシステムではなくコンテンツAPIになります。「自動処理」一覧はすべてフロントエンドの仕事です。

  • サイトマップ — ビルド時またはContent APIを呼ぶサーバーレス関数で生成します。
  • canonicalタグ — フロントエンドが、1つのSITE_URLから絶対URLを注入します。
  • メタ+OG/Twitterタグ — フレームワークのhead管理(Next.jsのgenerateMetadata、Astroの<head>、NuxtのuseSeoMeta)で出力します。
  • 構造化データ(JSON-LD) — すべてカスタムです。
  • robots.txt — フロントエンドが配信します。
  • 301/302リダイレクト — フロントエンドまたはCDN層で処理します。
  • Core Web Vitals — Ghostの速度優位は消え、フレームワークとレンダリング方式が性能を決めます。

引き継がれるのは、Content APIがエディターに入力したメタデータ(meta_titlemeta_descriptionog_titleog_descriptionog_imagetwitter_titletwitter_descriptiontwitter_imagecanonical_url)を返すことです。データはありますが、レンダリングは自分の責任です。これはヘッドレスCMS全般のSEO問題で、JavaScript SEOの問題でもあります。フロントエンドがクライアント側レンダリングを初期値にすると、Googlebotは後のレンダリング波まで待つ必要があります。AIクローラーの対応はプロバイダーで異なるため、カバレッジを最大化するにはSSR/SSGでサーバーまたはビルド時にレンダリングします。

限定コンテンツとGoogleが見られるもの

Ghostにはpublicmembers-free(メール必須)、members-paid(購読)の3つの公開レベルがあります。SEO上の重要点は、限定コンテンツがユーザーエージェント判定ではなくサーバー側でブロックされることです。Ghostチームは*“Google can’t crawl protected content on your page, because that’s only ever available to logged in members.”* (翻訳)「保護されたコンテンツはログイン済み会員だけが利用できるため、Googleはページ上の保護コンテンツをクロールできません」と説明しています。ログアウト読者と同じ制限ビューをGoogleに返します。

現実的な戦略は2つです。

  1. 公開プレビュー。 冒頭や最初の数段落を公開し、残りを限定します。Ghostのネイティブ公開プレビューなら、公開部分が順位を担います。
  2. メータリング。 第三者実装で、登録を求める前に無料記事を数本読めるようにします。

限定する場合、Googleはペイウォール用マークアップ(NewsArticleisAccessibleForFree: false、限定領域を示すhasPartcssSelector)をサポートします。ただしGhostは自動生成しないためコード注入が必要です。いずれにせよ、クローキングはしないでください。読者にはペイウォールを見せながらGooglebotに全文を見せるとガイドライン違反で、手動対策のリスクがあります。公開コンテンツが順位を取り、限定コンテンツが転換するという整理が正直です。

Ghost Proとセルフホスト

両方のSEOソフトウェアは同じです。同じGhost、同じ機能で、違いはインフラのコントロールです。

  • Ghost Pro — CDN、SSL自動化、バックアップ付きの管理ホスティングです。CDNは分散ユーザーのTTFBとCore Web Vitalsに役立ちます。ただし**robots.txtを直接上書きできず**、サポートへ連絡する必要があります。ヘッドレスやprivate modeでは現実的な制約です。
  • セルフホスト — サーバー、ヘッダー、キャッシュ、robots.txt、サーバーリダイレクト、自前CDN(Cloudflareが一般的)を完全に制御できます。高度な技術SEOの自由度は高い一方、管理も増えます。

どちらがSEOに本質的に「優れている」わけではありません。Ghost ProはCDNを、セルフホストはコントロールを買う選択です。

よくある落とし穴

  • 薄いタグ/著者アーカイブ。 Ghostは/tag/slug//author/slug/を自動作成します。細かすぎるタグや1記事だけの著者は薄いページを作るため、低価値なものはnoindexを検討します。
  • プレビューURLの登録。 古いGhostでは、プレビューに読み込まれた第三者スクリプト経由で下書きURLがGooglebotに漏れることがありました(コアで修正済み。GitHub issue #9749参照)。古いインストールでは確認します。
  • /ghost/の露出。 管理パスのデフォルトrobots.txt disallowが上書きされていないことを確認します。
  • カスタムコレクションによる重複。 routes.yamlで同じコンテンツに別URLパスを作れます。デフォルト構造はcanonical化されますが、カスタムルーティングは明示的に管理しないと重複を作ります。
  • 転載/ゲスト投稿のカスタムcanonical不足。 他所のコンテンツを再公開するなら、記事ごとのcanonical_urlを元URLへ設定します。機能は2019年3月以降です。
  • ヘッドレスの公開前登録。 公開前に独自robots.txtなしでヘッドレスフロントエンドをデプロイすると、早期登録されます。Ghostのprivate modeはDisallow: /を返しますが、Ghost本体を守るだけで別フロントエンドは守りません。
Evidence for this claim Ghost outputs canonical tags and supports a custom canonical URL for a post or page. Scope: Traditional Ghost and the post/page metadata configuration. Confidence: high · Verified: Ghost: Canonical URLs

GhostとWordPressの簡単な比較

Ghostは設定なしでより多くのSEOを備え、初期状態でも高速です(Ghost自身のベンチマークは*“up to 1,900% faster than WordPress”* (翻訳)「WordPressより最大1,900%高速」と主張します。ベンダー値として扱うべきですが、最小限のJavaScriptと強いCWV基準という方向性は現実的です)。WordPressは適切なプラグインでスキーマ、リダイレクト管理、プログラムSEOを追加でき、上限は高い一方、プラグイン依存が性能を損ねることがあります。SEOプラグインの負担なく書きたい出版社にはGhost、複雑なサイトや高度な連携にはWordPressが向きます。「速いから順位が上がる」は単純化で、Core Web Vitalsは多くの要因の1つです。ヘッドレスGhostの速度はフロントエンド次第です。

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.