← Back to insights
Guide · #508

Ghost CMS SEO: A Founder Walkthrough

Set up Ghost CMS for SEO in minutes. Step-by-step walkthrough for founders: metadata, sitemaps, schema, Google Search Console integration, and technical optimization.

Filed
April 5, 2026
Read
16 min
Author
The Seoable Team

Ghost CMS SEO: A Founder Walkthrough

You shipped. Your product works. But nobody can find you.

Ghost is fast, clean, and built by people who understand publishing. But Ghost doesn't ship with SEO turned on by default—it ships with SEO ready to be turned on. That's different. And it's why most founders using Ghost never see organic traffic.

This walkthrough covers the exact setup steps to make Ghost SEO-native. Not "SEO-friendly." Native. The kind of setup that compounds over months and actually moves the needle.

We'll cover metadata, sitemaps, schema markup, Google Search Console, and the technical tweaks that separate Ghost sites that rank from Ghost sites that don't. By the end, you'll have a foundation that works without constant fiddling—and you'll understand why each step matters.

Prerequisites: What You Need Before Starting

Before we dig into configuration, make sure you have these in place:

Access Requirements:

  • Admin access to your Ghost site (self-hosted or Ghost(Pro))
  • A Google account for Search Console
  • A Bing account (optional but recommended)
  • Access to your domain's DNS settings (if you're self-hosting)
  • A code editor or text editor (VS Code, Sublime, or even Notepad works)

Technical Knowledge:

  • Basic understanding of DNS records (A, CNAME, MX)
  • Familiarity with JSON (for schema markup)
  • Ability to access your server's file system (self-hosted only)
  • Understanding of HTML meta tags (we'll explain as we go)

Time Investment: Plan for 2-3 hours total. Most of this is one-time setup. After that, maintenance is under 30 minutes per month.

Ghost Version: This guide covers Ghost 5.0+. If you're running an older version, upgrade first. The SEO features in recent versions are significantly better than older releases.

Step 1: Audit Your Ghost Site's Current SEO Status

Before you optimize, measure what you have.

Start by running your Ghost homepage through Google Search Central Documentation tools. Specifically, use the Mobile-Friendly Test and the PageSpeed Insights tool. Ghost sites are typically fast, but you need baseline numbers.

Next, check what Google already knows about your site. Open Google Search Console and search for your domain (you don't need to verify yet—we'll do that in Step 3).

Look for:

  • Coverage issues: Are all your pages indexed? Any crawl errors?
  • Mobile usability: Any warnings about mobile rendering?
  • Core Web Vitals: What's your LCP, FID, and CLS?

Write these numbers down. You'll compare them in 90 days to prove the setup worked.

If you want a deeper audit, use Seoable's domain audit to get a full technical breakdown in under 60 seconds. It's built for founders who need fast, actionable insights without agency overhead.

For now, just note the baseline. Move on.

Step 2: Configure Ghost's Built-In SEO Settings

Ghost has native SEO controls. Most founders never touch them.

Log into your Ghost admin panel. Navigate to Settings > General.

Set Your Site Title and Description

Your site title should be your brand name or a short, keyword-relevant phrase. Keep it under 60 characters. This appears in browser tabs and search results.

Your site description (also called the tagline) should be 155-160 characters. This is your meta description fallback when individual posts don't have custom descriptions.

Example:

  • Title: "Acme — Shipping Fast"
  • Description: "The fastest way to ship production code. No fluff, no frameworks that slow you down. Just shipping."

Ghost will use this description for your homepage and any page that doesn't have a custom description.

Enable SEO Features

Still in Settings > General, scroll down to the SEO section. Ghost has a toggle for "Enable SEO features." Turn it on.

This enables:

  • Custom meta descriptions per post
  • Open Graph tags (for social sharing)
  • Twitter Card tags
  • Canonical URL management
  • Structured data output

All of these are critical. Don't skip this.

Configure Your Site URL

Navigate to Settings > Design & Branding. Make sure your site URL is set correctly. This should be your full domain with HTTPS (e.g., https://yoursite.com). Ghost uses this for canonical tags, sitemaps, and schema markup.

If you're using a subdomain (e.g., blog.yoursite.com), make sure it's set correctly here. Mismatches cause crawl issues.

Step 3: Verify Your Domain in Google Search Console

Google needs to know you own your site.

Go to Google Search Console and click "Add Property."

Choose URL Prefix (not Domain Property). Enter your full site URL: https://yoursite.com

Google will ask you to verify ownership. You have several options:

DNS Verification (Recommended)

Ghost recommends DNS verification because it's permanent and covers all subdomains.

  1. In Search Console, select DNS as your verification method
  2. Copy the TXT record Google provides
  3. Log into your domain registrar (Namecheap, GoDaddy, Route 53, etc.)
  4. Navigate to DNS settings
  5. Add a new TXT record with the value Google gave you
  6. Wait 5-15 minutes for DNS to propagate
  7. Return to Search Console and click "Verify"

If you're self-hosting Ghost and managing your own DNS, the process is identical—just add the TXT record in your DNS control panel.

HTML File Verification (Fallback)

If DNS verification fails:

  1. Download the HTML verification file Google provides
  2. Upload it to your Ghost site's root directory (via SFTP or your hosting control panel)
  3. Ensure it's accessible at https://yoursite.com/[filename].html
  4. Return to Search Console and click "Verify"

Meta Tag Verification (Quick but Less Reliable)

Google will give you a meta tag. Add it to your Ghost site's code injection:

  1. Go to Settings > Code Injection
  2. Paste the meta tag in the Site Header field
  3. Publish the change
  4. Return to Search Console and click "Verify"

DNS is best. Use it if you can.

Once verified, you'll see Search Console data for your domain. This is your new best friend. Check it weekly.

For a deeper walkthrough on Search Console setup, read Seoable's step-by-step guide.

Step 4: Generate and Submit Your Sitemap

Your sitemap tells Google what pages exist on your site and how often they change.

Ghost auto-generates a sitemap. You don't have to build it manually.

Your sitemap lives at: https://yoursite.com/sitemap.xml

Test it by visiting that URL directly. You should see an XML file listing all your posts and pages.

Submit to Google Search Console

  1. In Search Console, select your property
  2. Click Sitemaps (left sidebar)
  3. Enter sitemap.xml in the URL field
  4. Click "Submit"

Google will crawl your sitemap and index your pages. You'll see the count of submitted vs. indexed URLs.

Submit to Bing Webmaster Tools

While you're at it, submit to Bing too. It's free and takes 30 seconds.

  1. Go to Bing Webmaster Tools
  2. Add your site
  3. Verify ownership (same options as Google Search Console)
  4. Submit your sitemap

Bing's traffic is smaller than Google's, but it's non-zero. And setup is trivial.

Step 5: Set Up Schema Markup for Your Organization

Schema markup is structured data that tells Google (and AI engines) what your site is about.

Ghost supports schema markup natively. You just need to configure it.

Navigate to Settings > Code Injection and add this to the Site Header field:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company Name",
  "url": "https://yoursite.com",
  "logo": "https://yoursite.com/logo.png",
  "description": "Your site description",
  "sameAs": [
    "https://twitter.com/yourhandle",
    "https://linkedin.com/company/yourcompany",
    "https://github.com/yourhandle"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "Customer Support",
    "email": "[email protected]"
  }
}
</script>

Replace the values with your actual information. This tells Google your organization's name, logo, social profiles, and contact info.

After you add it, test it using Google's Rich Results Test. Paste your homepage URL and verify the schema is valid.

For a deeper dive on schema setup, read Seoable's guide to Organization schema.

Step 6: Configure Post-Level SEO Settings

Now that your site-level SEO is solid, configure individual posts.

When you create a new post in Ghost, scroll down to the Post Settings panel (right sidebar). You'll see:

Custom Meta Description

Write a 155-160 character description for each post. This appears in search results. Make it compelling and keyword-relevant.

Good: "Learn how to ship Ghost CMS in production without breaking SEO. Step-by-step setup guide for founders."

Bad: "This post is about Ghost SEO setup."

The difference? The first tells readers what they'll learn. The second is filler.

Canonical URL

Ghost auto-sets this to your post URL. Leave it alone unless you're republishing content from another site (in which case, point the canonical to the original).

Open Graph Image

Ghost lets you set a custom image for social sharing. Use one. When your post is shared on Twitter, LinkedIn, or Facebook, this image appears. It drives clicks.

Make it 1200×630 pixels. Keep text minimal. Make it visual.

Twitter Card

Ghost auto-generates Twitter Card tags. Verify they look right by pasting your post URL into Twitter's Card Validator.

Step 7: Optimize Your Homepage for Keywords

Your homepage is your most powerful page. Optimize it like your business depends on it. Because it does.

Navigate to your homepage in Ghost (it's usually your default landing page). Edit it and add:

A Clear H1

Ghost pages use your title as the H1. Make it keyword-relevant but readable.

Good: "Ship Fast. Rank Higher. The Founder's SEO Playbook."

Bad: "SEO services for founders and indie hackers optimized for search visibility"

The first is scannable. The second is keyword stuffing.

Body Content

Add 300-500 words of body content. Cover:

  • What you do
  • Who you help
  • Why it matters
  • How to get started

Include your target keywords naturally. Don't force them.

Internal Links

Link to your most important pages. Ghost's editor makes this easy—highlight text and click the link icon.

Link to pages that explain your core offering. This helps Google understand your site structure and distributes ranking power.

Step 8: Enable RSS and Ensure Proper Redirects

Ghost generates an RSS feed automatically at yoursite.com/rss/.

Make sure it's enabled (it is by default). RSS feeds help with:

  • Content discovery by aggregators
  • Faster indexing by Google
  • Audience building (people subscribe to your feed)

Navigate to Settings > General and verify RSS is enabled.

Set Up Proper Redirects

If you're migrating from another platform (WordPress, Medium, etc.), set up 301 redirects from old URLs to new ones.

For self-hosted Ghost, add redirects in your .htaccess file (if using Apache) or your reverse proxy configuration (if using Nginx).

Example Nginx redirect:

rewrite ^/old-post-slug$ /new-post-slug permanent;

301 redirects preserve SEO value. Don't skip this if you're migrating.

Step 9: Configure Technical SEO Settings

These are the settings most founders miss. They're also the ones that compound.

Robots.txt

Ghost auto-generates a robots.txt file. You can customize it in Settings > Code Injection by adding custom rules.

For most sites, the default is fine:

User-agent: *
Disallow: /admin/
Disallow: /ghost/
Sitemap: https://yoursite.com/sitemap.xml

This tells search engines to crawl your content but not your admin panel.

For a detailed guide on robots.txt, canonicals, and sitemaps, read Seoable's breakdown of the three files founders always get wrong.

Canonicals

Ghost auto-generates canonical tags. Verify they're correct by inspecting your page source:

<link rel="canonical" href="https://yoursite.com/post-slug/" />

The canonical should match your post URL. If it doesn't, Ghost has a configuration issue. Check your site URL setting in Settings > Design & Branding.

Content Security Policy

If you're embedding external content (YouTube, Figma, etc.), Ghost handles CSP headers automatically. You usually don't need to configure this.

If you're self-hosting and embedding custom scripts, verify your CSP headers don't block them. Use Chrome DevTools (F12 → Console) to check for CSP violations.

Step 10: Integrate AI-Generated Content (Optional but Powerful)

Ghost doesn't generate content natively, but you can integrate AI content generation into your workflow.

Tools like Seoable's AI blog generation can produce 100 SEO-optimized posts in under 60 seconds. You then publish them directly in Ghost.

Here's the workflow:

  1. Audit your keywords: Use Seoable's keyword roadmap to identify high-intent keywords in your space
  2. Generate content: Use AI to create initial drafts optimized for those keywords
  3. Edit in Ghost: Paste the AI content into Ghost, add your voice, and publish
  4. Monitor in Search Console: Track rankings for each post

This approach is faster than writing everything manually and more consistent than hiring freelance writers.

For a template on crafting AI briefs that actually produce ranking content, read Seoable's guide to the busy founder's brief.

Step 11: Set Up Monthly Monitoring

SEO isn't set-it-and-forget-it. But it's not constant work either.

Set aside 30 minutes per month to check:

Google Search Console

Check:

  • Click-through rate: Are people clicking your results?
  • Average position: Are you moving up or down?
  • Impressions: Are you showing up for more queries?
  • Coverage: Any new crawl errors?

If CTR is low but impressions are high, your title or description needs work. Rewrite it.

If position is dropping, check if competitors published better content. If yes, update your post.

For a deep dive on reading Search Console like a founder, read Seoable's breakdown of the Performance report.

Core Web Vitals

Run your site through PageSpeed Insights monthly. Track:

  • Largest Contentful Paint (LCP)
  • Cumulative Layout Shift (CLS)
  • First Input Delay (FID)

Ghost is fast by default, but images, third-party scripts, and custom code can slow it down.

Ranking Keywords

Pick 5-10 target keywords. Check your ranking for each monthly using Google Search Console or a free tool like Ubersuggest.

Track the trend. If you're moving up, keep doing what you're doing. If you're stagnant, update the content.

Step 12: Create a Quarterly Review Process

Every 90 days, do a deeper audit.

Set a calendar reminder. Spend 90 minutes on:

  1. Audit crawl issues: Check Search Console for new errors
  2. Review top performers: Which posts are ranking? Which are driving traffic?
  3. Identify gaps: What keywords are you missing? What topics do competitors own?
  4. Update old content: Refresh your top 10 posts with new data, examples, and links
  5. Plan new content: Based on gaps, plan 5-10 new posts for the next quarter

For a repeatable template, read Seoable's quarterly SEO review process.

Bonus: Use the Free SEO Tool Stack

You don't need expensive tools to do SEO. Here's what you actually need:

Free tools every founder should set up:

For a complete setup guide, read Seoable's free SEO tool stack for founders.

Common Ghost SEO Mistakes (And How to Avoid Them)

Mistake 1: Not Setting a Custom Meta Description

Ghost will use your site description if you don't set one per post. This is generic and doesn't drive clicks.

Fix: Write a unique, compelling meta description for every post. 155-160 characters. Include your target keyword if it fits naturally.

Mistake 2: Using Duplicate Content Across Posts

If you publish the same content to Medium, Dev.to, and your Ghost site, Google will rank the wrong version (usually not yours).

Fix: Use canonical tags to point to your Ghost site as the original. Or publish exclusively to Ghost and syndicate afterward (with proper rel="canonical" tags).

Mistake 3: Ignoring Mobile Performance

Ghost is mobile-friendly by default, but custom code and third-party scripts can break it.

Fix: Test your site on mobile devices monthly. Use PageSpeed Insights to identify issues. Prioritize LCP and CLS.

Mistake 4: Not Linking Internally

Internal links distribute ranking power and help Google understand your site structure.

Fix: Link to related posts and key pages from every post you publish. Aim for 3-5 internal links per post.

Mistake 5: Publishing Without a Clear Target Keyword

If you don't know what keyword you're optimizing for, Google won't either.

Fix: Before writing, identify your target keyword. Use it in your title, first paragraph, and H2s. But keep it natural—keyword stuffing hurts more than it helps.

Putting It All Together: Your 30-Day Action Plan

Week 1:

  • Complete Steps 1-3 (audit, configure Ghost settings, verify Search Console)
  • Set up your homepage (Step 7)
  • Add Organization schema (Step 5)

Week 2:

  • Submit your sitemap (Step 4)
  • Configure your first 5 posts with custom meta descriptions and internal links (Step 6)
  • Set up monthly monitoring (Step 11)

Week 3:

  • Integrate AI content generation (Step 10)
  • Publish 5-10 new posts optimized for target keywords
  • Monitor initial impressions in Search Console

Week 4:

  • Review first month of data
  • Update underperforming posts
  • Plan your content roadmap for the next 90 days

By day 30, you'll have a Ghost site that's SEO-native. Not SEO-friendly. Native.

Why This Matters for Founders

You shipped a product. You proved product-market fit. Now you need organic visibility.

Traditional SEO agencies charge $5,000-$25,000 per month. They take 6-12 months to show results. And they'll tell you that you need constant optimization.

That's not true.

A properly configured Ghost site with a solid content strategy will compound. Month 1, you'll see zero traffic from SEO. Month 3, you'll see 100-200 organic visitors. Month 6, you'll see 1,000+. Month 12, you'll see 5,000+.

The math is simple: more content + proper technical setup = more organic visibility.

You don't need an agency. You need a plan, the right tools, and consistency.

If you want to accelerate this process, Seoable delivers a domain audit, brand positioning, keyword roadmap, and 100 AI-generated blog posts in under 60 seconds for a one-time $99 fee. It's built for founders like you—people who ship fast and need organic visibility without the agency overhead.

But whether you use Seoable or do it yourself, the Ghost setup remains the same. Follow these steps, and you'll have a foundation that works.

Key Takeaways

Here's what you need to remember:

  1. Ghost has native SEO features. Turn them on. They're good.
  2. Verify your domain in Google Search Console immediately. This is your primary data source.
  3. Submit your sitemap. Ghost generates it automatically. You just need to submit it.
  4. Configure schema markup. It's 5 minutes of setup that compounds over time.
  5. Write unique meta descriptions for every post. Generic descriptions don't drive clicks.
  6. Link internally. Help Google understand your site structure.
  7. Monitor monthly. Spend 30 minutes per month checking Search Console and PageSpeed Insights.
  8. Update quarterly. Refresh old content, fix crawl issues, and plan new posts.
  9. Consistency beats perfection. A Ghost site with 100 mediocre posts will outrank a site with 10 perfect posts.
  10. SEO is a long game. You won't see results in month 1. But by month 6, you'll wonder why you didn't do this sooner.

Now go set it up. Your future organic traffic is waiting.

For more on building SEO into your founder workflow, read Seoable's 100-day roadmap from Day 0 to Day 100 and the self-paced SEO onboarding track. Both are built for founders who ship fast and need results without the agency tax.

Free weekly newsletter

Get the next one on Sunday.

One short email a week. What is working in SEO right now. Unsubscribe in one click.

Subscribe on Substack →
Keep reading