<!-- Markdown version of https://writrex.com/docs-campaigns/ — last updated 2026-09-19 -->

# Campaigns and scheduling (Professional+)

Campaigns generate many pages or posts over time. Writrex processes one item per scheduled run so your server isn't overloaded.

## Create a campaign

Open *Writrex → Pages Automator* (or *Blog Automator*) and switch to the *Schedule & Campaigns* tab.

1. Under **New Campaign**, add **Keywords & Areas** rows. Each row can also carry an image keyword and an AI image prompt.

2. To add many at once, click **Bulk Import** and paste one row per line: `keyword, area, image keyword, AI image prompt`.

3. Choose a **Generation Frequency**: every 5 minutes, hourly, twice daily, once daily or once weekly.

4. Optionally set a **Start Time**. Leave it blank to start processing immediately.

5. Choose a brand profile, template, tone and publish workflow — each generated item is saved as draft, pending or published.

6. Save the campaign.

```
web design, Broadstairs, office workspace, realistic website design desk scene no text
plumbing services, Margate, plumber tools, professional plumbing van tools no logos
```

## Manage campaigns

Open *Pages Campaign* or *Blog Campaign* to see every campaign with its progress, next run and per-item status. From there you can run an item now, force-run a schedule or delete a campaign. The Dashboard shows an overview of page and blog campaigns.

## Pacing

By default Writrex generates one item each time the schedule fires. Combined with **Vary campaign page angles** and the [overlap guard](https://writrex.com/docs-linking/), this keeps scaled pages distinct.

## Reliable scheduling with a server cron

WordPress's built-in scheduler (WP-Cron) only runs when someone visits your site. On low-traffic sites, replace it with a real cron job that calls `wp-cron.php`:

```
*/5 * * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
```

Add it in your server's crontab or in cPanel → Cron Jobs, replacing `yoursite.com` with your domain. The Blog Automator's *Cron Status* panel and the Dashboard's *System Health* show whether the hook is registered and when the next run is due.
