Skip to content

Ghost SEO Settings — Meta Titles, Descriptions, Canonical URLs and Structured Data

DodaTech Updated 2026-06-28 9 min read

In this tutorial, you'll learn how to configure SEO settings in Ghost — setting meta titles and descriptions per post, managing canonical URLs, understanding Ghost's built-in structured data, and optimizing content for search engines without plugins.

What You'll Learn

  • Ghost's built-in SEO features vs plugin-based SEO in WordPress
  • Setting meta titles and meta descriptions per post/page
  • Configuring canonical URLs for syndicated content
  • Ghost's automatic JSON-LD structured data
  • Open Graph and Twitter card settings
  • SEO settings in the admin dashboard
  • Bulk SEO management strategies
  • Using the SEO activity bar in the editor
  • Best practices for Ghost SEO

Why It Matters

Search engines are the primary source of traffic for most content sites. Ghost has excellent built-in SEO features — you do not need a plugin like Yoast or Rank Math. But you must use them correctly. An empty meta description is a missed opportunity to rank. A missing canonical URL can cause duplicate content penalties. Ghost does the heavy lifting (clean URLs, structured data, sitemaps), but the metadata decisions are yours.

Real-World Use

A food blog publishes recipes twice a week. Each post gets a custom meta title ("Easy Vegan Pasta Recipe — 20-Minute Meal") and a meta description ("This quick vegan pasta recipe takes just 20 minutes and uses pantry staples. Perfect for busy weeknights."). The blog uses canonical URLs when recipes are syndicated on other platforms. Open Graph images are set per post for attractive social sharing previews. Result: 60% of traffic comes from organic search.

Learning Path

flowchart LR
  A["Headless Ghost"] --> B["SEO Settings
You are here"]:::current B --> C["Sitemaps & Robots"] C --> D["Structured Data"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px

Ghost's Built-in SEO

Ghost handles many SEO fundamentals automatically:

SEO Feature Ghost Handling
Clean URLs Automatic — /post-slug/ format
Meta tags Auto-generated from title + excerpt
JSON-LD structured data Automatic for articles and pages
XML sitemap Automatic at /sitemap.xml
robots.txt Automatic at /robots.txt
Canonical URLs Set per post (optional)
Noindex for tags/pages Configurable in code injection
Responsive design Theme-dependent
Page speed Server-rendered, minimal JavaScript

What Ghost does NOT do automatically:

  • Meta descriptions (you must write them)
  • Custom meta titles (you can override)
  • Keyword research
  • Backlink building
  • Content Strategy

Per-Post SEO Settings

Each post in Ghost has a settings panel with SEO options.

Accessing SEO Settings

  1. Open a post in the editor.
  2. Click the settings icon (gear) in the top right.
  3. Scroll to the "SEO" section.

Meta Title

Meta Title: Custom title for search results
Default: Post title
Recommended length: 50-60 characters

The meta title appears in search result snippets and browser tabs. If you do not set one, Ghost uses the post title.

Best practices:

  • Put the primary keyword near the beginning
  • Keep it under 60 characters (Google truncates longer titles)
  • Make it compelling — it is the first thing searchers see
  • Include your brand name at the end (e.g., " — My Blog")

Meta Description

Meta Description: Custom description for search snippets
Default: Auto-generated from excerpt or first paragraph
Recommended length: 150-160 characters

The meta description is a short summary that appears below the title in search results.

Best practices:

  • Write a complete sentence that summarizes the content
  • Include the primary keyword naturally
  • Include a call to action ("Learn how", "Discover", "Read more")
  • Match the searcher's intent
  • Do not just repeat the first paragraph

Canonical URLs

A canonical URL tells search engines which version of a post is the original. Use it when content appears on multiple URLs or platforms.

When to Use Canonical URLs

  • Syndicated content: You publish on Medium and your own site — set the canonical to your site
  • Cross-posting: Same content on Ghost and a partner site
  • Printer-friendly versions: If you have a separate print URL
  • Multiple domains: If content appears on multiple domains

Setting Canonical URL

In the post SEO settings:

Canonical URL: https://example.com/original-post-url/

If the canonical URL is different from the post URL, Ghost adds a <link rel="canonical"> tag pointing to the original source.

Structured Data (JSON-LD)

Ghost automatically generates JSON-LD structured data for every post and page.

Article Schema

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Post Title",
  "description": "Post excerpt or meta description",
  "image": "https://yoursite.com/feature-image.jpg",
  "datePublished": "2024-01-15T10:00:00.000Z",
  "dateModified": "2024-01-20T14:30:00.000Z",
  "author": {
    "@type": "Person",
    "name": "Author Name"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Site Name",
    "logo": {
      "@type": "ImageObject",
      "url": "https://yoursite.com/logo.png"
    }
  }
}
</script>

This structured data helps search engines understand your content and enables rich results in search.

Open Graph and Social Sharing

Ghost automatically generates Open Graph tags for Facebook and Twitter Cards.

Default Open Graph

Ghost generates these automatically from the post title, excerpt, and feature image:

<meta property="og:title" content="Post Title" />
<meta property="og:description" content="Post excerpt" />
<meta property="og:image" content="https://yoursite.com/feature-image.jpg" />
<meta property="og:url" content="https://yoursite.com/post-slug/" />
<meta property="og:type" content="article" />

Custom Social Images

Override the defaults in the post SEO settings:

Facebook Title: Custom Open Graph title
Facebook Description: Custom Open Graph description
Facebook Image: Custom image for Facebook shares
Twitter Title: Custom Twitter Card title
Twitter Description: Custom Twitter Card description
Twitter Image: Custom image for Twitter shares

Custom social images are important because:

  • The feature image may not be square (Twitter uses 2:1, Facebook uses 1.91:1)
  • You may want different text overlay on social images
  • The post title may be too long for social snippets

SEO Activity Bar

In the Ghost editor, an SEO activity bar shows live previews of how your post appears in search results and social shares.

Search Engine Preview

Shows the title, URL, and description as they would appear in Google search results:

Post Title — Site Name
https://yoursite.com/post-slug/
Post description or meta description text...

Social Share Previews

Shows how the post appears when shared on Facebook and Twitter.

The activity bar updates in real time as you edit the SEO settings, helping you optimize before publishing.

Site-Level SEO Settings

In Settings > General:

Title and Description

Site Title: My Blog
Site Description: A blog about technology and programming

The site title appears in:

  • Browser tab title (combined with page title)
  • Default OG site name
  • Search results for the homepage
  • RSS feed title

Publication Language

Publication Language: en

Set this to your content's language code (en, es, fr, de, etc.). This helps search engines serve your content to the right audience.

SEO Best Practices for Ghost

Content Structure

  • Use descriptive, keyword-rich titles
  • Write unique meta descriptions for every post
  • Use headings (H2, H3) to structure content
  • Include internal links to related posts
  • Optimize images with alt text and descriptive filenames

URL Structure

  • Keep URLs short and descriptive
  • Use hyphens between words
  • Avoid dates in URLs (they become outdated)
  • Ghost's default /slug/ format is excellent

Image SEO

  • Use descriptive filenames (not IMG_1234.jpg)
  • Set alt text on every image
  • Optimize image file sizes
  • Use WebP format when possible

Common Mistakes

  1. Not setting meta descriptions: Ghost auto-generates descriptions from the excerpt or first paragraph. But auto-generated descriptions are rarely optimized. Always write a custom meta description for every post.

  2. Using the same meta description on all posts: Each post needs a unique meta description. Duplicate descriptions confuse search engines and reduce click-through rates.

  3. Ignoring Open Graph images: Without custom social images, shares look generic. You can set per-post social images that differ from the feature image.

  4. Setting overly long meta titles: Titles over 60 characters get truncated in search results. Keep them concise. Put the most important information (and keyword) in the first 50 characters.

  5. Forgetting about featured images and SEO: The feature image is used as the Open Graph image by default. If your feature image is not suitable for social sharing (wrong aspect ratio, contains text that will be cropped), set a custom social image.

Practice Questions

  1. What SEO metadata does Ghost generate automatically? Answer: Ghost automatically generates clean URLs, meta titles (from post title), JSON-LD structured data (Article schema), Open Graph tags (from post title, excerpt, feature image), Twitter Cards, XML sitemaps, and robots.txt. Meta descriptions are auto-generated from the excerpt but should be customized.

  2. When would you use a canonical URL in Ghost? Answer: Use a canonical URL when content is syndicated on other platforms (like Medium) to tell search engines which version is the original. Also use it if the same content appears on multiple URLs or if you cross-post to partner sites.

  3. What is the recommended length for meta titles and descriptions? Answer: Meta titles should be 50-60 characters. Meta descriptions should be 150-160 characters. Longer content is truncated in search results. The primary keyword should appear near the beginning of the title.

  4. Challenge: Audit the SEO settings of a Ghost site. Review 10 posts and check: every post has a unique meta title and meta description, canonical URLs are correctly set, Open Graph images are optimized for social sharing, and JSON-LD structured data is valid. Report the issues you find and fix them.

FAQ

Does Ghost support SEO plugins like Yoast?

Ghost does not have plugins and does not need them. SEO features like meta tags, structured data, sitemaps, and canonical URLs are built into the core. Ghost's approach is that SEO should be built-in, not bolted on via plugins.

Can I add custom meta tags to individual posts?

You can add custom meta tags site-wide using code injection in Settings. For per-post custom tags, you would need to use the {{ghost_head}} hook in your theme or inject via the Admin API.

Does Ghost prevent duplicate content issues?

Ghost avoids duplicate content by design — every post has a single URL (/slug/), and Ghost sets canonical URLs correctly. For syndicated content, you manually set the canonical URL in the post settings.

How do I add Google Analytics tracking to a Ghost site?

Use the Code Injection feature in Settings. Add your Google Analytics tracking code to the Site Footer section. This injects the script on every page of your site.

Can I add schema markup beyond the built-in Article schema?

The built-in JSON-LD covers Article and WebPage schema. For custom schema types (FAQ, Recipe, Product, etc.), add the markup via code injection in the Post Header section for individual posts.

Mini Project

Your task: Perform a complete SEO audit and optimization of a Ghost site.

  1. Review every post on the site and ensure each has a unique meta title and meta description.
  2. Check that all images have descriptive alt text.
  3. Verify canonical URLs are set for syndicated content.
  4. Test Open Graph previews for the 5 most important posts using the Facebook Sharing Debugger.
  5. Validate JSON-LD structured data using Google's Rich Results Test.
  6. Check the sitemap at /sitemap.xml and ensure all pages are listed.
  7. Document all issues found and create an SEO optimization checklist.

This exercise gives you a repeatable SEO audit Process for any Ghost site.

What's Next

Now that SEO settings are configured, learn about sitemaps and robots:

Continue to Lesson 31: Sitemaps and Robots — Built-in sitemap, robots.txt, and crawler control.

Related lessons:

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro