Hosted Blog Integration

Run a fully-managed blog on a subdomain of your own domain (e.g. blog.yourcompany.com) without installing any CMS. Add a single DNS record and BlogSEO publishes your articles for you, with SSL, CDN, sitemap, OG images and server-side rendering all included.

When to use the Hosted Blog

The Hosted Blog is the right fit when:

  • Your site is built on a platform with no usable publishing API (Squarespace, Kajabi, Carrd, most page builders).
  • Your site is statically generated and you'd rather not redeploy every time an article goes out.
  • You don't want to run, update, or pay for a separate CMS just to host an SEO blog.
  • You want to keep your blog at blog.yourdomain.com so SEO equity stays with your root domain.

If you already use WordPress, Webflow, Shopify, Ghost, Wix or any other CMS that BlogSEO supports natively, use the dedicated integration for that CMS instead. You'll get post-level control inside your existing admin.

How it works

  1. You pick a subdomain you control (e.g. blog.yourcompany.com).
  2. You add one CNAME record at your DNS provider pointing that subdomain at BlogSEO.
  3. BlogSEO automatically issues a free SSL certificate via Let's Encrypt, attaches the domain to our edge renderer, and starts serving your blog over HTTPS.
  4. Every article you generate is published instantly to https://blog.yourcompany.com/<article-slug>, complete with sitemap, OG images, structured data and your branding (logo, brand color, author).

There is no server for you to maintain, no plugin to keep updated, and no per-deploy publishing step.

Setting up the Hosted Blog

Navigate to Integrations → Hosted Blog in your BlogSEO dashboard and click Create Hosted Blog.

Step 1: Pick your subdomain

Enter the subdomain you want your blog to live on. We default to blog.<your primary domain>. You can use any subdomain you'd like (articles., learn., resources.…), but:

  • The hostname must be a subdomain. Apex/root domains (e.g. yourdomain.com directly) are not supported because CNAMEs cannot coexist with the DNS records that host your main website.
  • The subdomain must not already be in use for another site.

Click Continue to create the integration. We'll generate a CNAME target for you that looks like hosted.blogseo.io.

Step 2: Add the CNAME record

In your DNS provider's control panel, create a record with these values:

FieldValue
TypeCNAME
Name / HostThe subdomain prefix only (e.g. blog, not blog.yourdomain.com)
Target / Value / ContentThe CNAME target shown in your BlogSEO dashboard (e.g. hosted.blogseo.io)
TTLAuto (or 300 / 1 hour)

We auto-detect your registrar and surface a deep link to the right DNS panel directly in the dashboard, so you usually don't have to dig around. The per-registrar walkthroughs below cover the most common providers.

Step 3: Wait for propagation

DNS changes usually propagate within 5 to 60 minutes. Your dashboard auto-refreshes every 30 seconds and you can also click Refresh status at any time.

Once DNS resolves to us, we automatically:

  1. Verify the domain ownership with our edge platform.
  2. Issue a Let's Encrypt SSL certificate (typically 1 to 5 minutes).
  3. Mark the integration Connected.

If your DNS provider has a CAA record set (most don't), we'll surface that and tell you exactly what record to add or update. See Troubleshooting.

Step 4: Brand the blog

Once the integration is active, click Update Configuration to customise:

  • Site name: shown in the header, footer and RSS feed of your hosted blog. Pre-filled with your BlogSEO workspace name.
  • Meta title: the <title> tag used on the blog index and every non-article page. Pre-filled with your website's existing meta title; override here if you want a different title on the hosted blog. Per-article pages always use the article's own headline.
  • Meta description: the <meta name="description"> tag used on the blog index and every non-article page. Pre-filled with your website's existing meta description. Per-article pages always use the article's own meta description.
  • Brand color: used for links and accent elements.
  • Favicon: square, PNG / JPG / WEBP / SVG / ICO, max 2 MB.
  • Logo: full-width brand logo, shown on every page, max 5 MB.
  • Author name, URL, bio, photo: shown on each article byline.
  • Custom <head> HTML: drop in analytics (GA4, Plausible, Posthog), Search Console verification, custom fonts, etc. Max 50 KB. Scripts and styles are allowed; on-event JS handlers are sanitized away.

DNS provider walkthroughs

The Hosted Blog only ever needs one CNAME record. The steps below show exactly where to put it for each common registrar.

GoDaddy

  1. Open the GoDaddy Domain Portfolio.
  2. Click your domain → DNS.
  3. Click Add New Record.
  4. Select Type CNAME, Name blog (or your chosen subdomain prefix), Value hosted.blogseo.io, TTL 1 Hour.
  5. Save.

GoDaddy usually applies records within ~10 minutes.

Namecheap

  1. Open your Namecheap dashboard.
  2. Click Manage next to your domain → Advanced DNS tab.
  3. Click Add New Record.
  4. Type CNAME Record, Host blog, Value hosted.blogseo.io. (note the trailing dot, Namecheap requires it), TTL Automatic.
  5. Save.

Cloudflare

  1. Open your Cloudflare dashboard and select your domain.
  2. Go to DNS → Records.
  3. Click Add record.
  4. Type CNAME, Name blog, Target hosted.blogseo.io, Proxy status: DNS only (gray cloud).
  5. Save.

Disable the Cloudflare proxy (orange cloud). Cloudflare's proxy intercepts the SSL handshake and prevents us from issuing a Let's Encrypt certificate. Leave the cloud gray ("DNS only") for the hosted blog subdomain. You can still proxy other records on your domain.

Squarespace (formerly Google Domains)

  1. Open your Squarespace Domains dashboard.
  2. Click your domain → DNS Settings.
  3. Under Custom Records, add a new record.
  4. Host blog, Type CNAME, Data hosted.blogseo.io.
  5. Save.

If your website itself is hosted on Squarespace, the Hosted Blog is almost certainly the right way to run a blog because Squarespace's blogging tool has no publishing API. See the Other Integrations page for the full reasoning.

Hover

  1. Open the Hover control panel.
  2. Click your domain → DNS tab.
  3. Click Add a Record.
  4. Type CNAME, Hostname blog, Target Name hosted.blogseo.io, TTL 15 minutes.
  5. Save.

Porkbun

  1. Open Domain Management.
  2. Click Details next to your domain → DNS Records.
  3. Type CNAME, Host blog, Answer hosted.blogseo.io, TTL 600.
  4. Save.

Gandi

  1. Open admin.gandi.net and click your domain.
  2. Go to DNS RecordsAdd.
  3. Type CNAME, Name blog, TTL 1h, Hostname hosted.blogseo.io. (trailing dot required).
  4. Create.

OVHcloud

  1. Open the OVHcloud ManagerWeb Cloud → Domain names.
  2. Click your domain → DNS zone tab.
  3. Click Add an entryCNAME.
  4. Sub-domain blog, Target hosted.blogseo.io. (trailing dot required).
  5. Next → Confirm.

AWS Route 53

  1. Open the Route 53 hosted zones console.
  2. Click your hosted zone → Create record.
  3. Record name blog, Record type CNAME, Value hosted.blogseo.io, TTL 300.
  4. Create record.

DNSimple

  1. Open your DNSimple domains and pick your domain.
  2. DNSAdd recordCNAME record.
  3. Name blog, Alias for hosted.blogseo.io, TTL 3600.
  4. Add record.

Name.com

  1. Open My Domains and click your domain.
  2. DNS RecordsAdd Record.
  3. Type CNAME, Host blog, Answer hosted.blogseo.io, TTL 300.
  4. Add Record.

Dynadot

  1. Open Manage Domains → click your domain.
  2. Switch Name Servers to DNS Settings if not already.
  3. Add a Subdomain Record: Subdomain blog, Record Type CNAME, Value hosted.blogseo.io.
  4. Save.

Netlify DNS

  1. Open NetlifyDomains → DNS Panel.
  2. Click your domain → Add new record.
  3. Type CNAME, Name blog, Value hosted.blogseo.io, TTL Default.
  4. Save.

DigitalOcean

  1. Open DigitalOcean DNS → click your domain.
  2. Create a new record. Tab: CNAME.
  3. Hostname blog, Is an alias of hosted.blogseo.io. (trailing dot), TTL 3600.
  4. Create Record.

Vercel DNS

  1. Open Vercel Domains → click your domain.
  2. Scroll to DNS RecordsAdd.
  3. Type CNAME, Name blog, Value hosted.blogseo.io, TTL 60.
  4. Add.

IONOS

  1. Open my.ionos.com → Domains & SSL.
  2. Click your domain → DNS tab.
  3. Click Add RecordCNAME.
  4. Host name blog, Points to hosted.blogseo.io, TTL 1h.
  5. Save.

Hostinger

  1. Open hPanel → Domains and click Manage on your domain.
  2. Go to DNS / Nameservers.
  3. Add Record: Type CNAME, Name blog, Target hosted.blogseo.io, TTL 3600.
  4. Add Record.

Bluehost

  1. Open Bluehost Domains and click your domain.
  2. DNS tab → Add Record.
  3. Type CNAME, Host Record blog, Points to hosted.blogseo.io, TTL 4 Hours.
  4. Save.

Hetzner

  1. Open the Hetzner DNS Console and pick your zone.
  2. Click Add record.
  3. Name blog, Type CNAME, Value hosted.blogseo.io. (trailing dot).
  4. Save record.

Network Solutions

  1. Sign in to Network Solutions Account Manager.
  2. Click your domain → ManageChange Where Domain Points.
  3. Choose Advanced DNSEdit DNSAdd CNAME.
  4. Alias blog, Other Host hosted.blogseo.io., TTL 7200.
  5. Continue → Save.

My registrar isn't listed

Every registrar supports CNAME records. The labels just differ. Look for a section called DNS, DNS Zone Editor, Advanced DNS, Custom Records, or Nameservers / DNS. Then create a record with these three values:

  • Type: CNAME
  • Host / Name / Alias: the subdomain prefix only (e.g. blog)
  • Value / Target / Points to / Data: hosted.blogseo.io

If you get stuck, reach out via in-app chat or support@blogseo.io. We troubleshoot DNS setups every day and reply within 24 hours.

SSL certificates

Once your CNAME resolves to us, we automatically request a free SSL certificate from Let's Encrypt. This usually completes within 1 to 5 minutes. The dashboard refreshes itself every 30 seconds so you don't need to keep clicking.

Certificates renew automatically as long as your CNAME continues to point at us. There is nothing to install, configure, or renew on your end.

Troubleshooting

"Additional verification needed": TXT record required

If our edge platform asks for a _vercel TXT record on your domain, we show the exact record value in your dashboard. Add it as a separate record in your DNS panel (Type TXT, Name as shown, Content as shown, no trailing dot), then click Refresh status.

This usually happens when a previous tenant was using the same hostname on our infrastructure, and the platform needs to confirm you own the domain before serving traffic for it. The verification is one-time.

"CAA blocked": Let's Encrypt cannot issue

If your domain has CAA records set and Let's Encrypt isn't included, certificate issuance will fail. Open your DNS panel and either:

  • Remove the CAA records for the registrable domain, or

  • Add a CAA record allowing Let's Encrypt:

    FieldValue
    TypeCAA
    Name@ (apex of your domain)
    Flags0
    Tagissue
    Value"letsencrypt.org"

Click Refresh status in the dashboard once the new record is live.

Status stays at "Waiting for DNS propagation"

DNS propagation usually takes 5 to 60 minutes but can occasionally take up to 24 hours. While you wait, double-check that:

  • You picked CNAME, not A or ALIAS.
  • The Name / Host field contains only the subdomain prefix (e.g. blog), not the full hostname.
  • The Value is exactly hosted.blogseo.io (or whatever the dashboard shows), with no https://.
  • If your registrar requires a trailing dot in CNAME targets (Namecheap, Gandi, DigitalOcean, OVH, Hetzner, Network Solutions), make sure it's there.

You can also run dig blog.yourdomain.com CNAME +short from a terminal. It should return hosted.blogseo.io..

"DNS misconfigured"

This means we tried to provision the certificate but the upstream edge platform didn't accept the configuration. The most common cause is a Cloudflare proxied record. See Cloudflare above. Flip the cloud to gray (DNS only) for the hosted blog subdomain and click Refresh status.

My hosted blog stopped working / "Detached" status

If your CNAME stops pointing at us for more than 7 days, we automatically detach the domain. To restore it, re-add the same CNAME record and click Recheck DNS in the dashboard.

Subscription cancelled: when does the blog go offline?

If your subscription enters cancelled or payment_failed, your hosted blog is scheduled to go offline 7 days later. The dashboard shows the exact date. Re-subscribing before the deadline clears the schedule automatically and your blog stays online.

What gets published on the Hosted Blog

Every article you generate (or schedule) in BlogSEO is published instantly to https://yoursubdomain.com/<article-slug> with:

  • Server-side rendered HTML for full crawlability and AI-search ingestion.
  • Automatic sitemap at /sitemap.xml.
  • robots.txt that blocks crawlers until the integration is active, then opens up.
  • Per-article OG images for clean social/X/LinkedIn previews.
  • Schema.org Article structured data with author, headline, image, datePublished.
  • Internal-link rewriting: any links inside your articles that point at other articles in your hosted blog become clean in-blog links.

Updates to an article in BlogSEO trigger an instant edge re-render, with no rebuild, no deploy, and no cache invalidation needed.

Frequently Asked Questions

Can I use my apex domain (e.g. yourdomain.com directly)? No. CNAMEs can't coexist with the records your root site already uses (your MX for email, your A for the website itself). The Hosted Blog only supports subdomains like blog.yourdomain.com.

Will the Hosted Blog affect my main website's SEO? Subdomains share most of the SEO equity of the root domain in practice. Hosting your blog at blog.yourdomain.com is a well-established pattern (HubSpot, Stripe, Shopify all do this) and is strictly better than hosting on a separate brand domain.

Can I host the blog on a path like yourdomain.com/blog instead of a subdomain? Not via DNS Redirect. Path-based hosting requires a reverse proxy on your existing web server, which we can't manage for you. If your site is on a platform that does support reverse proxying (WordPress, Webflow, Ghost…), use the dedicated integration for that platform instead.

Can I migrate from the Hosted Blog to my own CMS later? Yes. You own your articles in BlogSEO. Export them at any time as Markdown, or connect any other CMS integration (WordPress, Webflow, etc.). Delete the Hosted Blog integration, repoint your CNAME, and you're done.

Does the Hosted Blog cost extra? No. It's included in every BlogSEO plan. Bandwidth, SSL, edge CDN and storage are all on us.

Can I have multiple hosted blogs on one workspace? Currently one hosted blog per workspace. If you need multiple, contact us at support@blogseo.io.

My CMS isn't natively supported and I can't use the Hosted Blog either. What now? Use the Custom Webhook integration to forward articles to any endpoint you control, or use one of the vibe coder options (Lovable, Bolt.new, v0, Replit) to scaffold a tiny blog frontend in minutes.

Was this page helpful?