Skip to content
SearchCub

Blogging Platforms and SEO: What Each One Lets You Control

Editorial responsibility: SearchCub

Google's technical requirements for appearing in Search don't name a platform, so choose a blogging platform for the SEO controls it gives you: of the nine compared here, Wix, Ghost and self-hosted WordPress with an SEO plugin document nearly all, Squarespace most, Blogger fewer and Substack the fewest.

Below is what each platform's own help pages say about those controls, then a list of which platform suits which kind of blogger. Every cell comes from documentation read on 8 October 2026. No platform was set up or tested for this comparison.

What Google says about the platform you choose

Google's technical requirements list three things a page needs: Googlebot can reach it, the page works, and it has indexable content. In Google's words, "As long as your page meets the minimum technical requirements, it's eligible to be indexed by Google Search" (Google: technical requirements). The list names no platform.

The SEO Starter Guide mentions a content management system (CMS), the software you write and publish in, only as something that can take care of technical steps for you. It says that with a CMS you may have nothing technical to do to your titles, so you can simply concentrate on writing good ones (Google: SEO Starter Guide).

That leaves a practical question: which of the settings Google reads can you change yourself? Google's verification help gives site-builder users the same starting point: look up Search Console verification in your site host's own documentation (Search Console Help: verify site ownership). This comparison reads that documentation for six platforms.

The nine controls, and what each one does

  • Custom domain, and a /blog folder. What it does for your blog: Puts the blog on your own address, and optionally in a folder of a site you already run. More detail: Subdomain vs subfolder.

  • Title tag and meta description per post. What it does for your blog: The title element is one of the sources Google uses for a result's title link (Google: SEO Starter Guide), and Google "sometimes uses the meta description HTML element" for the snippet (Google: snippets). More detail: SEO titles and meta descriptions.

  • URL slug. What it does for your blog: The readable end of a post's address; Google's advice is to "Try to include words in the URL that may be useful for users". More detail: Google: SEO Starter Guide.

  • Canonical URL. What it does for your blog: Names the main address when the same post appears at more than one, such as a post you also publish on another site; otherwise Google tries to pick one itself. More detail: Google: SEO Starter Guide.

  • XML sitemap. What it does for your blog: A file listing the pages you want search engines to find. More detail: XML sitemaps.

  • Noindex per page. What it does for your blog: Keeps one page out of results: Google "will drop that page entirely from Google Search results" once it reads the rule (Google: noindex). More detail: Why Google hasn't indexed your page.

  • Structured data. What it does for your blog: Code that describes a page's content to search engines. More detail: Structured data for blogs.

  • Redirects. What it does for your blog: Sends readers and Google from an old address to a new one; Google's guide sums up a permanent redirect as "Show the new redirect target in search results". More detail: Google: redirects.

  • Search Console verification. What it does for your blog: Proves you own the site so you can see Google's data about it. More detail: What is Google Search Console?.

How the six platforms compare

Two of the nine controls take two rows each. "Not documented" means the platform's help pages searched for this comparison don't describe the control. Ghost's hosting details are for Ghost(Pro), Ghost's hosted service (Ghost: custom domains, Ghost: subdirectory).

Control

WordPress (self-hosted)

Custom domain

Yes, on your own hosting

Blog in a /blog folder of a site built with something else

Yes, if you host that site: install WordPress in a folder

Title tag per post

Set by your theme or a plugin

Meta description per post

Plugin

URL slug

Yes

Canonical URL

Added for you; custom value via plugin

XML sitemap

Yes

Noindex per page

Whole site in core; per post via plugin

Structured data

Plugin

Redirects

Changed slugs only in core

Search Console verification

Not in WordPress docs; Google names the Site Kit plugin

Control

Ghost

Custom domain

Yes; subdomain recommended

Blog in a /blog folder of a site built with something else

Business plan add-on, behind a reverse proxy

Title tag per post

Yes

Meta description per post

Yes

URL slug

Yes

Canonical URL

Added for you; custom value per post

XML sitemap

Yes

Noindex per page

Not documented

Structured data

Added to every post and page

Redirects

Yes, from a file you upload

Search Console verification

HTML tag

Control

Squarespace

Custom domain

Yes

Blog in a /blog folder of a site built with something else

Not documented

Title tag per post

Yes (SEO title)

Meta description per post

Yes

URL slug

Yes

Canonical URL

Added for you; no setting documented

XML sitemap

Yes

Noindex per page

Per page, but not per post

Structured data

Added for you; can't be edited

Redirects

Yes (URL mappings)

Search Console verification

Google account connection or DNS record

Control

Wix

Custom domain

Yes

Blog in a /blog folder of a site built with something else

Not documented (a subdomain is)

Title tag per post

Yes

Meta description per post

Yes

URL slug

Yes

Canonical URL

Added for you; custom value per post

XML sitemap

Yes

Noindex per page

Per post

Structured data

Added for you, plus your own markup

Redirects

Yes, with a custom domain

Search Console verification

Google connection (Premium plan) or HTML tag

Control

Blogger

Custom domain

Yes, on www or another subdomain

Blog in a /blog folder of a site built with something else

Not documented

Title tag per post

Not documented

Meta description per post

One description for the whole blog

URL slug

Yes

Canonical URL

Not documented

XML sitemap

Not documented

Noindex per page

Per post

Structured data

Not documented

Redirects

Yes (custom redirects)

Search Console verification

Automatic for new blogs; older blogs use the HTML tag

Control

Substack

Custom domain

Yes, for a one-time fee; www subdomain recommended

Blog in a /blog folder of a site built with something else

Not documented

Title tag per post

Not documented

Meta description per post

Not documented

URL slug

Yes

Canonical URL

Not documented

XML sitemap

Becomes available as the publication grows

Noindex per page

Whole publication only (private mode)

Structured data

Not documented

Redirects

Domain-level only

Search Console verification

Becomes available as the publication grows

A blog built inside a Squarespace or Wix site already sits in a folder of that site, such as /blog, so the second row matters only when the rest of your site runs on something else.

Platform by platform

WordPress (self-hosted)

Core WordPress covers the address and URL basics. Its install guide covers putting WordPress into a subdirectory such as https://example.com/blog/, each post's slug is editable in the post settings sidebar, and core makes an XML sitemap (WordPress: installing, WordPress: post settings, WordPress: sitemaps). Core also adds a canonical tag to single posts and redirects a post's old slug to its current address (rel_canonical(), wp_old_slug_redirect()).

Most per-post controls come from plugins. WordPress's own SEO page says of meta tags: "By default, they are not included in WordPress", and points to plugins (WordPress: SEO). Core's noindex setting in the dashboard is Discourage search engines from indexing this site, which covers the whole site and also switches off the sitemap (WordPress: Reading settings, WordPress: sitemaps). Yoast SEO, as one example plugin, documents a Canonical URL field and a noindex setting in its Advanced tab, and describes posts with Article structured data by default (Yoast: canonical URLs, Yoast: noindex, Yoast: schema settings).

Ghost

Ghost builds in most of the list. Each post has its own meta title, meta description and editable Post URL, and Ghost adds canonical tags across the site, keeps an XML sitemap and includes structured data in every post and page (Ghost: SEO, Ghost: post settings). A Canonical URL field overrides the automatic canonical for one post, for example a guest post first published elsewhere; setting it also removes that post from your sitemap.

Redirects live in a redirects.yaml file that you download, edit and upload again in Ghost Admin (Ghost: redirects). Search Console verification uses a URL-prefix property and Google's HTML tag, pasted into Settings > Code Injection > Site Header (Ghost: Search Console). Ghost's help doesn't document a per-post noindex setting, and a custom robots.txt goes in your theme, which on Ghost(Pro) needs the Creator plan or higher (Ghost: robots.txt).

Squarespace

Squarespace sets most things up for you and leaves fewer settings open. Each blog post has an SEO title, an SEO description and an editable URL slug (Squarespace: title formats, Squarespace: SEO descriptions, Squarespace: URL slugs). The sitemap and structured data are generated for you, using a fixed set of schemas "which you can't edit or remove" (Squarespace: how it optimizes your site). Canonical tags are added for you too, for example marking a tag or category page's static address, such as /blog/category/dogs, as the one search engines should index (Squarespace: tags and categories in search), with no per-post setting described.

The noindex control is the one to check before you choose. The Hide page from search results toggle works per page, but Squarespace says "You can't exclude individual collection items or portfolio sub-pages from crawler scans without excluding the entire collection page" (Squarespace: hiding from search). Blog posts are collection items, so hiding one post means hiding the whole blog. Redirects use URL mappings, and Search Console connects through the Search keywords panel or a DNS record; Squarespace doesn't support verifying by uploading a file (Squarespace: URL mappings, Squarespace: Search Console).

Wix

Wix puts every per-post control in this comparison in one place. A post's SEO settings hold its title tag, meta description, URL slug and a Let search engines index this page toggle, and the Advanced tab adds structured data markup, a robots meta tag and an editable canonical tag (Wix: blog SEO settings). Each Wix site gets a sitemap that updates itself, and connecting through the SEO Setup Checklist submits it to Google for you (Wix: sitemaps).

Two site-wide controls depend on your plan and domain. For Search Console through the checklist, "you must have a Premium plan and a domain connected to your site"; the alternative is pasting Google's meta tag into the Site Verification Tool (Wix: connecting to Google, Wix: site verification tool). And "301 redirects only work with custom domains" (Wix: 301 redirects). A Wix blog lives inside its own Wix site, at an address such as /blog; for a site built with something else, Wix documents connecting the Wix site as a subdomain (Wix: blog URLs, Wix: subdomains).

Blogger

Blogger documents indexing and redirect controls, but not a separate title tag or a per-post description. Each post can get a Custom Permalink, and per-post noindex is a No index switch under Custom robots tags in the post settings (Blogger: search engines). Settings also offer a custom robots.txt, custom redirects and a search description, which is one summary "of what your blog is all about" (Blogger: settings). Blogger's help pages don't describe canonical control, a sitemap or structured data either.

A custom domain must use www or another subdomain: "Blogs may not be hosted at naked domains", though one redirect from the bare domain is allowed (Blogger: settings). For a new blog, Search Console verification should happen by itself: "New blogs that you create in Blogger should be added and verified automatically in your Search Console account". If the blog doesn't appear there, Google says to add the property; older blogs aren't verified automatically and need Google's HTML tag method, and you must sign in to Search Console using the account that manages the blog (Search Console Help: verify site ownership).

Substack

Substack documents the fewest SEO controls of the six. You can edit a post's address under SEO Options, and use a custom domain for a one-time fee, with a subdomain such as www recommended (Substack: post URL, Substack: custom domain). Its help doesn't document a per-post title tag, meta description, canonical URL or structured data.

Two controls depend on how your publication is doing: "Some SEO features, such as sitemaps and Google Search Console verification, become available as your publication grows", and Substack says regular publishing, a growing subscriber list and turning on paid subscriptions all help to unlock them (Substack: SEO). The only documented way to keep posts out of search is making the whole publication private, and its Welcome page stays indexed even then (Substack: private publications). Redirects are documented only at the domain level: from your root domain to your custom domain, and one subdomain change "without breaking links" (Substack: root domain, Substack: changing your subdomain).

Which platform suits which blogger

  • If you already run a site built with something else and want the blog at yourdomain.com/blog. Consider: WordPress (self-hosted) if you host that site, or Ghost(Pro) with its Business plan add-on. Why, on these nine controls: They are the only two whose documentation covers a blog in a folder of another site.

  • If you want every per-post control without installing anything. Consider: Wix. Why, on these nine controls: Title tag, meta description, slug, canonical tag and noindex are all documented per post; connecting Search Console through its checklist needs a Premium plan and a connected domain, and 301 redirects need a custom domain.

  • If you write a publication-style blog and can edit a redirects file. Consider: Ghost. Why, on these nine controls: Metadata, canonical field, sitemap and structured data are built in; per-post noindex isn't documented.

  • If you want full control and don't mind maintaining plugins. Consider: WordPress (self-hosted). Why, on these nine controls: Core covers the domain, folder, slugs and sitemap; descriptions, per-post noindex, custom canonicals and structured data come from an SEO plugin.

  • If you run a portfolio or business site with a blog and want SEO set up for you. Consider: Squarespace. Why, on these nine controls: Sitemap, canonical tags and structured data are generated for you, but you can't hide one post without hiding the whole blog.

  • If you want a blog hosted by Google. Consider: Blogger. Why, on these nine controls: Search Console verification is automatic for new blogs, and per-post noindex and redirects are documented; per-post descriptions, canonicals and a sitemap aren't.

  • If you mainly send a newsletter and want the posts on the web too. Consider: Substack. Why, on these nine controls: Post URLs are editable, but title, description, canonical and structured data controls aren't documented, and sitemaps and Search Console verification depend on the publication growing.

Before you decide

Help pages change, so treat these cells as true on 8 October 2026 and recheck the pages linked above for the platform you pick. "Not documented" is a gap in the documentation, not proof that a control is missing, so ask the platform before you rule it out. Plan requirements matter too: several controls above sit behind a paid plan or a custom domain.

If you already blog somewhere, check what your posts output now, not just what the settings promise. SearchCub's Page checks reads one page's HTML and reports whether it has a title, a meta description and a canonical URL.

Your next step

Write down the controls your blog will need in its first year: a folder on an existing site, cross-posting that needs canonical tags, or old URLs that need redirects. Compare that list with the table, then confirm each one on the platform's own help pages. If you are still choosing an address, read does your domain name affect SEO, and for what search engines look at on any platform, start with what is SEO.