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.comso 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
- You pick a subdomain you control (e.g.
blog.yourcompany.com). - You add one CNAME record at your DNS provider pointing that subdomain at BlogSEO.
- 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.
- 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.comdirectly) 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:
| Field | Value |
|---|---|
| Type | CNAME |
| Name / Host | The subdomain prefix only (e.g. blog, not blog.yourdomain.com) |
| Target / Value / Content | The CNAME target shown in your BlogSEO dashboard (e.g. hosted.blogseo.io) |
| TTL | Auto (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:
- Verify the domain ownership with our edge platform.
- Issue a Let's Encrypt SSL certificate (typically 1 to 5 minutes).
- 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
- Open the GoDaddy Domain Portfolio.
- Click your domain → DNS.
- Click Add New Record.
- Select Type CNAME, Name
blog(or your chosen subdomain prefix), Valuehosted.blogseo.io, TTL1 Hour. - Save.
GoDaddy usually applies records within ~10 minutes.
Namecheap
- Open your Namecheap dashboard.
- Click Manage next to your domain → Advanced DNS tab.
- Click Add New Record.
- Type CNAME Record, Host
blog, Valuehosted.blogseo.io.(note the trailing dot, Namecheap requires it), TTL Automatic. - Save.
Cloudflare
- Open your Cloudflare dashboard and select your domain.
- Go to DNS → Records.
- Click Add record.
- Type
CNAME, Nameblog, Targethosted.blogseo.io, Proxy status: DNS only (gray cloud). - 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)
- Open your Squarespace Domains dashboard.
- Click your domain → DNS Settings.
- Under Custom Records, add a new record.
- Host
blog, TypeCNAME, Datahosted.blogseo.io. - 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
- Open the Hover control panel.
- Click your domain → DNS tab.
- Click Add a Record.
- Type
CNAME, Hostnameblog, Target Namehosted.blogseo.io, TTL15 minutes. - Save.
Porkbun
- Open Domain Management.
- Click Details next to your domain → DNS Records.
- Type
CNAME, Hostblog, Answerhosted.blogseo.io, TTL 600. - Save.
Gandi
- Open admin.gandi.net and click your domain.
- Go to DNS Records → Add.
- Type
CNAME, Nameblog, TTL1h, Hostnamehosted.blogseo.io.(trailing dot required). - Create.
OVHcloud
- Open the OVHcloud Manager → Web Cloud → Domain names.
- Click your domain → DNS zone tab.
- Click Add an entry → CNAME.
- Sub-domain
blog, Targethosted.blogseo.io.(trailing dot required). - Next → Confirm.
AWS Route 53
- Open the Route 53 hosted zones console.
- Click your hosted zone → Create record.
- Record name
blog, Record typeCNAME, Valuehosted.blogseo.io, TTL300. - Create record.
DNSimple
- Open your DNSimple domains and pick your domain.
- DNS → Add record → CNAME record.
- Name
blog, Alias forhosted.blogseo.io, TTL 3600. - Add record.
Name.com
- Open My Domains and click your domain.
- DNS Records → Add Record.
- Type
CNAME, Hostblog, Answerhosted.blogseo.io, TTL 300. - Add Record.
Dynadot
- Open Manage Domains → click your domain.
- Switch Name Servers to DNS Settings if not already.
- Add a Subdomain Record: Subdomain
blog, Record TypeCNAME, Valuehosted.blogseo.io. - Save.
Netlify DNS
- Open Netlify → Domains → DNS Panel.
- Click your domain → Add new record.
- Type
CNAME, Nameblog, Valuehosted.blogseo.io, TTLDefault. - Save.
DigitalOcean
- Open DigitalOcean DNS → click your domain.
- Create a new record. Tab: CNAME.
- Hostname
blog, Is an alias ofhosted.blogseo.io.(trailing dot), TTL 3600. - Create Record.
Vercel DNS
- Open Vercel Domains → click your domain.
- Scroll to DNS Records → Add.
- Type
CNAME, Nameblog, Valuehosted.blogseo.io, TTL60. - Add.
IONOS
- Open my.ionos.com → Domains & SSL.
- Click your domain → DNS tab.
- Click Add Record → CNAME.
- Host name
blog, Points tohosted.blogseo.io, TTL 1h. - Save.
Hostinger
- Open hPanel → Domains and click Manage on your domain.
- Go to DNS / Nameservers.
- Add Record: Type
CNAME, Nameblog, Targethosted.blogseo.io, TTL 3600. - Add Record.
Bluehost
- Open Bluehost Domains and click your domain.
- DNS tab → Add Record.
- Type
CNAME, Host Recordblog, Points tohosted.blogseo.io, TTL4 Hours. - Save.
Hetzner
- Open the Hetzner DNS Console and pick your zone.
- Click Add record.
- Name
blog, TypeCNAME, Valuehosted.blogseo.io.(trailing dot). - Save record.
Network Solutions
- Sign in to Network Solutions Account Manager.
- Click your domain → Manage → Change Where Domain Points.
- Choose Advanced DNS → Edit DNS → Add CNAME.
- Alias
blog, Other Hosthosted.blogseo.io., TTL7200. - 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:
Field Value Type CAAName @(apex of your domain)Flags 0Tag issueValue "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
AorALIAS. - 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 nohttps://. - 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.txtthat blocks crawlers until the integration isactive, 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.