Skip to content

Blog automation tool · WordPress & Content API

Blog automation that runs your blog on its own — including the weeks you forget it exists.

Structura runs a scheduled pipeline: it picks the next keyword from your bank, researches it against live search results, writes and formats the post, and publishes it to WordPress or any stack via the Content API. You choose whether it publishes or waits for your approval.

Free plan · no credit card · cancel anytime

Schedule
Weekly · Tue 09:00 Europe/Berlin
Mode
Autonomous — publishes without asking
Keyword bank
34 approved — 34 weeks of runway
Last 8 runs
7 clean · 1 retried — 0 missed
run 0142 · in progresslive

stage 5 of 9 · seo protocol · 21 checks

Two kinds of blog automation

What “automated” usually means — and what it means here.

Most blog automation is a chain you wire yourself. That is a real, respectable way to build; it is just a different machine from this one.

The chain you wire yourself

Zapier, n8n, Make, IFTTT — or an RSS-to-post plugin

  • triggerA cron step in your workflow tool fires on a schedule.
  • actionOne call to an AI endpoint with a prompt you wrote and now maintain.
  • publishAn HTTP POST to the WordPress REST API, or a plugin that turns a feed item into a draft.

These tools are genuinely good at what they do. If you like building automations, a chain like this is the cheapest useful thing you can assemble in an afternoon — and thousands of them run happily in production.

What the chain has no way of knowing
  • Which topic to write next — the prompt is fixed, so either you feed it a keyword every week or it invents one.
  • Whether the output is any good — nothing inspects the draft before it becomes a live URL.
  • What it already published — no memory, so month four quietly re-covers month one.
  • What to do with a 500 — a failed step is a broken run and a silent gap in your blog.
A pipeline built for one job

Nine stages that know what a blog post is

  • stateA keyword bank with status per keyword — approved, used, remaining — so “what next” is answered before the run starts.
  • researchLive search results for that exact query, read at run time, not a prompt guessing from memory.
  • gateA 20+ point SEO protocol that can hold a post back instead of shipping it.
  • memoryEvery published post written back to the bank, so the pipeline knows what it already covered.
  • recoveryBounded retries per stage, and a run that stops with a reason instead of publishing half a post.
  • consentAn approval gate you can switch on per campaign, so nothing goes live until you say so.

Same trigger. Everything between the trigger and the live post is the difference.

Automated blog posts, stage by stage

One scheduled run, start to finish.

This is one run of one campaign, start to finish. Switch the mode to see what changes: in autonomous mode the run publishes; in approval mode it stops at the gate and waits for you.

Stages 1–9 run unattended. Nothing waits for you.

  1. 01

    The schedule fires

    0.4s

    Weekly, Tuesday 09:00, in your timezone. You set the cadence once — daily, weekly, monthly — and the run starts itself.

  2. 02

    Next keyword comes off the bank

    bank 34 → 33

    The highest-priority approved keyword is claimed and marked in progress, so two runs can never take the same one. Anything already covered is skipped.

  3. 03

    SERP research on that exact query

    8 results · 3 sources

    Structura reads the live results: what currently ranks, which questions the page has to answer, and which sources are solid enough to cite.

  4. 04

    Draft

    1,742 words

    The post is written as your persona, in your voice, to the structure the research implies — not to a fixed prompt template.

  5. 05

    20+ point SEO protocol

    21 / 21 passed

    Title, meta description, heading order, schema, keyword placement, alt text, internal-link targets, readability. A post that fails a hard check does not continue.

  6. 06

    Images

    retried once

    Hero image and in-body visuals generated, compressed and alt-texted. This is the stage most likely to fail, because it depends on someone else's endpoint.

    attempt 1 · provider 503 → backoff 30s → attempt 2 ok · 3 images

  7. 07

    Internal and authority links

    4 internal · 2 external

    Links to your existing posts chosen from what you have actually published, plus outbound authority links validated against live URLs before they go in.

  8. 08

    Publish

    post 1284 live

    The post goes live on the schedule — Gutenberg blocks in WordPress, or out through the Content API. No one has to be awake for it.

  9. 09

    Channel fan-out

    linkedin · x

    Captions for your connected channels are queued from the finished post, so the distribution happens in the same run.

When an automated run fails

What happens when a run goes wrong.

Unattended software fails sometimes. The question that matters is whether you find out, and what the machine does in the meantime.

01

A failed step is visible, not silent

Every run writes a log with one line per stage: what it did, how long it took, what it produced. A failure names the stage and the provider response, and the run stops there rather than publishing half a post.

09:02:41  images.generate   failed · provider 50309:03:11  images.generate   retry 1 · ok09:03:19  links.internal    4 links
02

It will not cover the same keyword twice

Every published post is written back to the keyword bank as used. Before a run drafts anything it checks the bank and your existing posts for that topic; a match is skipped and the next keyword is taken instead. You get a skip line in the log, not a duplicate.

03

A thinning keyword bank warns you

The bank is finite by design. When runway drops below four scheduled runs, the campaign shows a runway warning and emails you to approve more keywords. When it empties, the campaign pauses and says so. It does not invent filler topics to keep the streak alive.

3 keywords left · 3 runs of runway · approve more

04

Provider errors retry, then stop

Timeouts, rate limits and 5xx responses are retried with backoff — three attempts per stage. A stage that still fails ends the run with a reason you can read, and the schedule is untouched: the next run fires on time. Nothing is deleted; a recoverable draft stays in Structura.

Honest limits — things this page will not claim
  • Retries are bounded. After three attempts a stage gives up and the run is marked failed; it does not loop forever burning your quota.
  • If WordPress is unreachable at publish time, the finished post waits in Structura until you retry. It is not lost, and it is not published somewhere else.
  • A post held at the approval gate waits indefinitely. Nothing expires into publication behind your back.
  • Automation does not guarantee rankings. It guarantees that the posts get researched, written, checked and published on schedule — which is the part that otherwise does not happen.

Auto-publish to WordPress

Or to any stack you run.

WordPress

Native Gutenberg blocks

The plugin writes real block markup — headings, lists, tables, images, FAQ blocks — into the editor, so a published post is editable like anything you wrote by hand. Not a wall of pasted HTML in a Classic block.

structura plugin · wordpress.org

Everything else

Content API

Headless, static, Ghost, an app — the same finished post, its metadata and its images come out of the Content API on the same schedule. The developer docs cover the payload

rest · webhooks · scheduled pull

What stays yours

Your side of the line.

  • positioning

    What the site is for, who it sells to, and which topics are off limits.

  • persona & voice

    The persona the posts are written as, and the voice they are written in.

  • keywords

    Nothing enters the bank without your approval. The pipeline only spends what you put in it.

  • the gate

    Publish automatically, or review every post first. Per campaign, changeable any time.

Blog automation pricing

Priced per site, not per post.

The schedule is yours to set — daily, weekly, or monthly costs the same.

Bring your own AI

BYOK

You supply the AI. We supply the engine.

Bring your own API key

Pay your AI provider directly.

Monthly billing rate $15$12/ site / month
$144 per site, billed yearly
Save $36 per site / year

The full publishing engine

  • Everything in Free
  • SEO, SERP & competitor research
  • Keyword Bank and authority links
  • All channels and Search Console
  • Up to 10 active campaigns
  • Priority support

AI usage is billed by your provider.

Managed AIAI included

Cloud

We run the AI. No API keys, no provider bills.

Posts per site per month
Recommended starting point
Monthly billing rate $49$39/ site / month
$468 per site, billed yearly
Save $120 per site / year

Included per site, every month

posts
30
images
90
AI videos
10
  • Everything in BYOK
  • Same AI quality at every volume
  • All channels and unlimited campaigns
  • Support from the Structura team

Lower rates from your fifth site.

Cloud, 30 posts per site per month: $39 per site per month, $468 per site billed yearly. Includes 90 images and 10 AI videos per site per month.

Applicable taxes are calculated at checkout based on your location.

Want to run it on your own API key? Start on the free plan

Volume pricing

Cloud · 30 posts

Per site / month · billed yearly

Sites 1–4
$39
Sites 5–9
$34
Sites 10–24
$30
25+ sites
Contact sales

Each rate applies to the sites in that bracket.

Full pricing and volume tiers

Blog automation FAQ

Questions people actually ask

What is the best plugin for automatic blog posting in WordPress?

It depends on what you want automated. If you already know each topic and just want a queue, a scheduling plugin is enough. If you want a feed turned into posts, an RSS-to-post plugin does that. If you want the topic chosen, researched, written, SEO-checked and published without you in the loop, that is a pipeline rather than a plugin — Structura installs as a WordPress plugin but the run happens on our side and arrives as Gutenberg blocks.

Can I review posts before they publish?

Yes — that is approval mode. The run does everything up to publishing, then holds the post at the gate and emails you. It waits until you approve it; nothing publishes on a timer. You can switch a campaign between autonomous and approval whenever you like, and a common pattern is approval for the first month, autonomous afterwards.

What happens if a post fails to publish?

The stage retries up to three times with backoff. If it still fails, the run is marked failed, the log names the stage and the error, and you get notified. The finished post stays in Structura so you can retry the publish once the cause is fixed — an expired token, a firewalled REST API, a plugin conflict. The schedule is not affected; the next run fires at its normal time.

Is automated content against Google's guidelines?

Automation itself is not the problem — unhelpful content is. Google's spam policies target content produced at scale to manipulate rankings rather than to help a reader, regardless of whether a human or a machine typed it. That is why this pipeline researches each post against live results, writes to one approved keyword at a time, and gives you a gate: the mechanism is built to produce posts worth publishing, not the maximum number of them.

Blog automation, set once

Set the schedule once.

Connect a site, approve a handful of keywords, pick a day. The next run is the machine's problem.