Substack SEO audit

Substack public posts are indexed by Google and can rank for your target queries. Meta titles come from post titles, descriptions from subtitles, and canonical tags point to your custom domain on paid plans. Substack does not support JSON-LD injection or llms.txt — which limits FAQPage schema and structured AI signals. DeepSEOAnalysis audits your Substack post's technical health including real Chrome user performance data and AI visibility scoring within Substack's platform constraints.

Audit your Substack post free →

What we check on Substack publications

Meta tags and SERP appearance

  • Meta title from post title + publication name suffix — total character count for SERP display
  • Meta description from post subtitle — character count and quality assessment
  • Open Graph tags — Substack generates OG tags from post title, subtitle, and cover image
  • Twitter Card tags — Substack generates summary_large_image cards for social sharing

Canonical and URL configuration

  • Canonical tag pointing to custom domain vs substack.com subdomain on free plan
  • Custom domain canonical setup — Substack Pro/Founding Member plans support custom domains
  • URL slug quality — Substack auto-generates slugs from post title; manual editing available
  • HTTPS — all Substack publications use HTTPS by default

Structured data assessment

  • Article schema auto-generated by Substack — property completeness check
  • FAQPage/HowTo schema absence — not injectable on Substack; structural platform limitation
  • Author schema linkage — Substack generates Person schema for the author profile
  • Breadcrumb schema — Substack generates basic breadcrumb markup for post pages

Crawlability and indexability

  • Public vs subscriber-only post status — subscriber-only posts are typically noindexed
  • Sitemap — Substack generates sitemap.xml at your publication URL/sitemap.xml
  • Robots.txt — Substack controls robots.txt; typically allows all crawlers for public posts
  • AI crawler access: GPTBot, ClaudeBot, PerplexityBot, Google-Extended in Substack robots.txt

Core Web Vitals (CrUX field data)

  • LCP: Substack page load performance; cover images are the primary LCP element
  • CLS: Substack's standardised layout reduces CLS risk vs custom-built sites
  • INP: Substack's reader JavaScript load impact on interaction responsiveness
  • p75 CrUX field data from real Chrome users on your Substack publication URL

AI visibility assessment

  • AI crawler access in Substack robots.txt — check platform default allows AI bots
  • llms.txt absence — not deployable on Substack-hosted publications (platform limitation)
  • FAQPage schema absence — cannot inject on Substack; AI schema visibility score impacted
  • Question-heading ratio: H2/H3 headings formatted as questions in post content
  • Content chunkability: average section word count for AI extractability

Substack SEO: newsletter platform as a search surface

Substack occupies a unique position as a publication platform: it was built primarily for email newsletter distribution, but its public post architecture makes it simultaneously a web publishing platform with Google-indexed content. Writers who publish on Substack accumulate a library of indexed posts that can rank for their target queries, build topical authority over time, and drive organic search traffic to their publication — in addition to the direct subscriber relationships the platform is designed for.

The key SEO constraint on Substack is the absence of custom code injection. Without the ability to add JSON-LD structured data, Substack publications cannot implement FAQPage schema (which increases AI Overview citation probability), HowTo schema, or Product schema for sponsored content. For writers whose SEO strategy depends on structured data rich results, Substack's limitations make it unsuitable as a standalone platform — a custom domain site with a headless CMS or WordPress may better serve SEO goals, with Substack used for the newsletter distribution layer only.

Custom domains are available on Substack's paid plans and are strongly recommended for serious SEO use. On the free plan, all posts are served from yourpublication.substack.com — a subdomain of substack.com rather than your own domain. Posts on a custom domain accumulate link equity and domain authority under your own brand; posts on the substack.com subdomain accumulate under Substack's domain. If you later migrate to a custom domain or a different platform, 301 redirects from the old substack.com URLs preserve link equity — DeepSEOAnalysis's redirect chain detection confirms redirect configurations are correct post-migration.

Frequently asked questions

Do Substack posts rank in Google Search?
Yes. Substack allows Google indexing of public posts by default. Each Substack post has a public URL at yourpublication.substack.com/p/post-slug (or your-custom-domain.com/p/post-slug on custom domain plans) that is crawlable and indexable by Google. Substack generates meta titles from the post title, meta descriptions from the post subtitle or opening text, and canonical tags pointing to the canonical version of the URL. Subscriber-only posts are accessible only to logged-in subscribers and typically are not indexed. Substack\'s built-in newsletter model means posts serve both as email content and as indexable web pages — the SEO value of a Substack post comes from the web version, not the email.
Can I customise meta tags on Substack posts?
Partially. Substack uses the post title as the meta title (with the publication name appended as a suffix) and the post subtitle as the meta description. You can control meta title and description by choosing your post title and subtitle carefully. Substack does not provide a separate SEO title field distinct from the post title, and does not provide a character count preview for SERP display — you need to manually count that your post title + "| Publication Name" fits within approximately 60 characters to avoid truncation in Google results. Substack does not support custom Open Graph image overrides per post beyond the cover image you upload in the post editor.
Can I add JSON-LD structured data to Substack?
No. Substack does not provide a custom HTML injection capability for JSON-LD structured data. Substack generates some basic structured data automatically (Article schema for blog posts) but the properties are limited and you cannot add custom schema types (FAQPage, HowTo, Product, etc.). If structured data is important to your SEO strategy — for example, if you want FAQPage schema to appear in AI Overview answers — Substack\'s limitations make it unsuitable as your primary publication platform without supplementing with a custom domain site that allows structured data injection.
How does DeepSEOAnalysis audit a Substack post?
DeepSEOAnalysis audits any publicly accessible Substack post URL. The audit checks: meta title and description quality (derived from your post title and subtitle), canonical tag configuration (Substack generates canonical tags; on custom domain plans the canonical points to your custom domain), structured data validity for any schema Substack auto-generates, real CrUX field data for Core Web Vitals (LCP, CLS, INP from actual Chrome users accessing Substack), robots.txt and AI crawler access, and the five-signal AI visibility score. The audit will identify Substack\'s structural limitations (no JSON-LD injection, no llms.txt) alongside any optimisable elements within the platform.