SEO for Ghost

Ghost Meta Data and Canonical URLs: The Custom Override

Ghost's per-post Meta data section lets you override title, description, and canonical. Here's when and how to use each field.

Published May 24, 20266 min readBy RankCrab Team

Ghost's default meta tag behavior is sensible: the post title becomes the meta title, the excerpt becomes the meta description, and the post URL becomes the canonical. For most posts, this is fine and you don't need to touch it.

But the default behavior isn't always the right behavior. When you're writing titles for engagement rather than search, syndicating content to other platforms, or targeting a keyword phrase that's different from your headline, you need the override. Ghost provides it — it's called the Meta data section in the post settings sidebar, and most Ghost users never open it.

Here's what each field does and when to use it.

Where to find the Meta data section

Open a post in Ghost's editor. On the right-hand side of the screen, click the gear icon to open Post settings. Scroll down until you see the Meta data section. It's collapsible — click the label to expand it if it's closed.

The fields inside are:

  1. Meta title
  2. Meta description
  3. Canonical URL

Below Meta data, there's a separate Twitter card section and a Facebook card section, each with their own title, description, and image override fields.

Field 1: Meta title

Default: the post title.

Override when: your post title is written for clicks and curiosity, not keyword optimization. Headlines like "I Spent 6 Months Doing This — Here's What Happened" work well for social and newsletter, but they're not what someone types into Google. The meta title override lets you keep the engaging headline while giving search engines a title that includes your target keyword.

Format: Primary Keyword | Publication Name or just the keyword-optimized title on its own. Keep it under 60 characters to avoid truncation in search results.

Example:

Post title: "I Audited 100 Ghost Sites — Here's What I Found" Meta title: "Ghost SEO Audit: 12 Issues Most Sites Have | RankCrab"

The post title works for social and newsletter preview. The meta title works for search.

Field 2: Meta description

Default: the post excerpt.

Override when: almost always. Excerpts are frequently written for email preview — they're designed to read as the opening of the post. Meta descriptions are supposed to pitch the search result. These are different writing goals.

A good meta description:

  • Includes the primary keyword naturally in the first half
  • Is 140–160 characters (140 is safer for mobile)
  • Has a specific value proposition: what will the reader get?
  • Ends with something action-oriented if space allows

Example:

Excerpt: "Last month I ran a complete SEO audit on a Ghost site that had been live for two years. The results were surprising..." Meta description: "Ghost SEO audit checklist — 12 issues found on 100+ live Ghost sites, with step-by-step fixes for each. 15-minute audit."

Preview your meta title and description in search result format before publishing to catch truncation issues.

Free tool
Meta tag + SERP previewer
See exactly how your title and meta description will render in Google.
Try it

Field 3: Canonical URL

Default: the post's own URL.

This is the most consequential field in the Meta data section, and the one most often ignored.

The canonical tag tells search engines which URL is the "original" version of a piece of content. If two URLs contain the same content, the canonical tells Google which one to index and pass PageRank to. Ghost sets the canonical to the post's own URL automatically, which is correct for original content.

Override when: you're syndicating content.

Syndication means publishing the same content on another platform — Medium, DEV.to, LinkedIn Articles, a partner newsletter, a content aggregator. If you publish a post on your Ghost blog first and then cross-post it to Medium with no canonical tag, you've created a duplicate content situation. Google may choose the Medium version as the canonical (especially if Medium has more domain authority), and your Ghost post may not rank.

The fix: set Ghost's canonical URL field to your Ghost post URL before syndicating. Then, on the syndication platform, also set the canonical pointing back to your Ghost URL. Both sides need to agree.

On Ghost, the canonical override is in Post settings → Meta data → Canonical URL. Paste the full URL of the original post (your Ghost URL).

https://yourdomain.com/your-post-slug/

Other canonical use cases:

  • Paginated content: If you have a multi-page post or a paginated tag archive, the canonical on page 2+ should point to page 1 (or use rel="prev" and rel="next" — Ghost doesn't generate these automatically).
  • URL parameter pages: If your Ghost setup adds UTM parameters or other query strings that create duplicate URLs, the canonical prevents indexing those variations.
  • Content migrated from another domain: If you moved a post from an old domain and the original URL is still live, set the canonical on your Ghost post to itself (not the old URL) and make sure the old URL has a 301 redirect.

Use RankCrab's canonical checker to verify your canonical tags are rendering correctly.

Free tool
Canonical URL checker
Build a canonical tag the right way — and check the one you have.
Try it

Twitter card fields

Ghost's Twitter card section (in post settings) has three overridable fields:

  • Twitter title — overrides the OG title for Twitter specifically
  • Twitter description — overrides the OG description for Twitter
  • Twitter image — overrides the feature image for Twitter card display

When to use: Twitter card images have a different crop behavior than OG images. If your feature image has important content in the edges or corners, it may be cropped oddly in a Twitter card. Uploading a dedicated Twitter image (1200×675px) with the important content centered gives you control over how the card renders.

The Twitter title/description overrides are less commonly needed — most of the time, your OG meta is fine for Twitter as well.

Facebook card fields

The Facebook card section works identically to Twitter: separate fields for title, description, and image.

When to use: Facebook cards render OG tags, same as most other platforms. The Facebook-specific fields are useful when:

  • You want a different image crop for Facebook vs. the default feature image
  • Your post title is long and you want a shorter version for the Facebook card
  • You're A/B testing different descriptions for social traffic

The complete meta tag output

Here's what Ghost outputs in the <head> for a post with all the standard fields set:

<title>Your Meta Title | Publication Name</title>
<meta name="description" content="Your meta description." />
<link rel="canonical" href="https://yourdomain.com/your-post-slug/" />

<meta property="og:site_name" content="Publication Name" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Your OG Title" />
<meta property="og:description" content="Your OG description." />
<meta property="og:url" content="https://yourdomain.com/your-post-slug/" />
<meta property="og:image" content="https://yourdomain.com/content/images/your-image.jpg" />

<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Your Twitter Title" />
<meta name="twitter:description" content="Your Twitter description." />
<meta name="twitter:image" content="https://yourdomain.com/content/images/your-twitter-image.jpg" />

The priority order for each tag:

  1. The explicit field override (Meta data section or card section)
  2. The post-level field (post title → meta title; excerpt → meta description; feature image → OG image)
  3. The site-wide default (publication title, default OG image)

For the full picture of Ghost's SEO defaults — what gets generated automatically and what you need to configure — see the Ghost SEO checklist and the Ghost SEO hub.

Ship optimized content this afternoon.

7-day trial. $29 when it converts. Cancel from the dashboard the second it stops earning its keep.