---
title: "Publish to Webflow"
description: "Connect your Webflow CMS collection with a site API token. Articles land as items in your blog collection. Takes about five minutes."
---

> Documentation Index
> Fetch the complete documentation index at: https://rctrl.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish to Webflow

RankControl publishes each approved article as an item in one of your Webflow
CMS collections, usually your blog collection. Items use your collection
template and your domain. Updates to an article revise the same item.

You need a Webflow site with a CMS collection for articles, and permission to
generate an API token on that site. The collection needs at least a title
field, a slug field, and a rich text field for the body. Most blog templates
already have these.

## 1. Generate a site API token

In Webflow, open your site and choose **Site settings** from the site name
menu. Go to **Apps & Integrations**, scroll to **API access**, and click
**Generate API token**. Name it, for example `RankControl`.

Set these two permissions and leave the rest on **No access**:

| Scope | Access |
|---|---|
| **CMS** | Read and write |
| **Sites** | Read |

RankControl never publishes your whole site, so Sites write access is not
needed. Click **Generate token** and copy it now. Webflow shows it once.

## 2. Connect in RankControl

Go to **Brand Control → Publishing**, open **Add a destination**, and choose
**Webflow**. Enter a name, paste the token, and click **Test connection**.

Then:

1. Choose your **Site**.
2. Choose your **Blog collection**.
3. Under **Publish as**, choose **Published post** (items go live) or
   **Draft for review** (items wait unpublished in your CMS).
4. Click **Save destination**.

Only one destination serves articles at a time. Open the saved row and click
**Make active** if new articles must go to Webflow.

## What gets filled in

RankControl matches your collection's fields by name, then by type:

| We fill | Field type | Names we look for |
|---|---|---|
| Title | Plain text | `name`, `title`, `post-title` |
| Slug | Plain text | `slug`, `url-slug` |
| Body (required) | Rich text | `post-body`, `body`, `content`, `article-body` |
| Summary | Plain text | `summary`, `excerpt`, `description`, `meta-description` |
| Main image | Image | `main-image`, `featured-image`, `cover-image`, `hero-image` |
| Thumbnail | Image | `thumbnail-image`, `thumbnail`, `thumb` |

The body field must be a rich text field. A plain text field named `content`
is not used for the body. The summary gets the meta description and is left
empty when no summary field exists. The hero image becomes a real asset in
your Webflow library. Publish dates are not set: fill the Date field in
Webflow if your template shows one.

## Publishing and live links

With **Published post**, RankControl creates the item and publishes that item.
It never publishes your whole site. If your site has unpublished design
changes, the item can show **Queued to publish** until your next site
publish.

The live link uses your custom domain, or the `webflow.io` address when no
custom domain is connected. RankControl loads the article a couple of minutes
after publishing to make sure that it renders. An article that is not
reachable is marked **Not live yet**, and the check retries on its own.

## Analytics

Visit tracking needs one site-wide script. Under **Analytics → Sources**,
choose **Install** under Webflow. This needs a site token with **CMS** and
**Custom code** permissions. The script goes live with your next Webflow site
publish. You can also paste the script yourself from the same screen.

## Troubleshooting

**"Invalid API token."** The token is truncated or expired. Generate a new
token (step 1) and paste it again. An old token cannot be recovered.

**"Your Webflow site has never been published."** Webflow does not put items
live on a site that was never published. Publish the site once in the Webflow
designer, then republish the article from RankControl. The item already
exists in your CMS.

**The item is in the CMS but not on the live site.** Your site has
unpublished changes. Publish the site in Webflow.

**Articles have no live link.** Make sure that the site is published to its
custom domain, not only to the `webflow.io` staging address.

**"This token can't manage custom code."** This is the analytics install
only. Create a site token with **CMS** and **Custom code** permissions and
paste it under **Analytics → Sources**.

**Test connection fails.** The token belongs to one site. Generate it on the
site that holds your blog collection.

Source: https://rctrl.com/docs/webflow/index.mdx
