---
title: "Publishing posts and custom domains"
category: "Publishing"
source: "https://getbloggable.com/help/publishing-and-domains"
updated: 2026-10-22T10:34:36.551Z
---

# Publishing posts and custom domains

## Publishing a post

From the editor's **Publish** panel:

- **Publish now** — live immediately.
- **Schedule** — pick a date and time; the scheduler runs every five minutes, so a post goes out within a few minutes of its slot.
- **Unpublish** — takes a live post back to draft.

You can also **duplicate** a post (useful as a template) and **archive** one. From the **Posts** list you can publish, archive, draft or repurpose in bulk, across blogs.

Editing an already-published post gives you a choice: edit in place, or fork a **V2 draft** so the live version stays untouched while you work.

## Where posts appear

Three possible addresses, in ascending order of ownership:

| Address | Looks like |
| --- | --- |
| Bloggable path | `getbloggable.com/b/<blog>/<post>` |
| Premium subdomain | `<handle>.bllog.io/<post>` |
| Your own domain | `blog.yourcompany.com/<post>` |

The premium subdomain is a middle tier — cheaper than a custom domain, and it looks like yours rather than ours.

Every blog also serves an RSS/Atom feed at `/feed`, `/feed.xml` and `/rss.xml`, and these follow whichever address the blog is on.

## Changing a post's URL

If you change a post's slug, the old URL permanently redirects to the new one. The same applies to a renamed blog. Nothing you've published strands a reader on a 404 because you renamed something.

## Connecting a custom domain

1. In the blog's settings, open the **Custom domain** address and add your domain — a subdomain you aren't using yet, like `blog.yourcompany.com`.
2. Follow the steps the panel then shows you: it names your DNS provider, gives you the exact record to add (every value is copy-to-clipboard), and tells you if anything already on that hostname is in the way.
3. Save the record and leave the page open, or don't — we keep checking on our own. The panel moves from **Domain added** → **DNS record** → **Certificate** as each stage completes.

Once the certificate has issued, the blog serves from your domain and that becomes its canonical address.

**If it's taking a while**, the panel tells you which of these it actually found — you don't have to guess:

- **Nothing published yet** — the record hasn't reached the public internet. Most providers take a few minutes; a few take an hour.
- **An old record in the way** — the hostname already points somewhere else. That record wins until it's deleted.
- **Cloudflare's proxy is on** — an orange cloud terminates the connection at Cloudflare, so the certificate can never be issued. Set the record to **DNS only** (grey cloud).
- **A CAA record is blocking issuance** — the domain has a CAA record that doesn't list `letsencrypt.org`, which is where our certificates come from. Add `0 issue "letsencrypt.org"`.

If the domain stops working later, we notice: every custom domain is checked once a day, and the owner gets an email naming what broke.

Custom domains are plan-dependent; **Settings → Billing** shows what your account includes.

## Why the domain matters more than it looks

**Google Search Console only works on a domain you can verify.** A blog on `getbloggable.com/b/…` or a `.bllog.io` handle sits on a domain you don't own, so Search Console will connect but will never collect data for it. If you want real click and impression data — and the decline detection in *Content intelligence* that depends on it — you need a custom domain. See *Google Search Console*.

## White-label

The white-label add-on removes Bloggable branding from the public blog: both the footer badge and the page title. Without it, the blog is still yours in every other respect, but it says where it was made.
