Toolsby Spectral Web Services

DocsBulk Actions

Bulk Actions

Making a bulk change safely in five steps, then the reference — the filters, the actions bar, the per-row tools, and the selection trap that catches everybody once.

⚠️ Back up first. With great power comes great responsibility. Before you use bulk tools, back up your content: in Ghost, go to Settings → Import/Export → Export and choose the content export. Bulk Actions has no undo of its own.

Bulk Actions is for the jobs Ghost's own dashboard makes slow: retagging a few hundred imported posts, publishing a batch of drafts, clearing out a tag that shouldn't exist. It shows posts as a table you can filter, sort and act on in one go.

Making a bulk change

  1. Export your content first. Not optional advice. This tool deletes hundreds of posts as easily as one and has no undo.
  2. Choose Posts or Pages, and set Per page. A big number puts your whole archive in one table, which is what you want when you intend to act on all of it — but a slow computer will feel it. 0:33
  3. Filter down to exactly what you mean. Include and exclude by tag and author, and narrow by status. The exclude filters are what find the awkward sets — everything without a section tag, say. 0:47
  4. Select the rows. Tick them individually, or use the header box — but read the next line first, because the header box selects only the rows on the current page, not the whole filtered set. 2:23
  5. Pick an action, and watch it run. Add or remove tags, set the status, or delete. Large runs go in chunks with progress on screen, and can be stopped cleanly at the next boundary. 2:41

Everything below is reference, ending with the mistakes worth knowing about in advance.

The video introduces Bulk Actions and its sibling, Tag Wrangler. Bulk Actions is the first three and a half minutes.

Finding the posts

Bulk Actions is a post-focused view of your site, built for the job of finding and reorganising posts without the infinite scroll the Ghost dashboard falls into at a few tens of thousands of posts. The filter bar at the top narrows the table:

  • Type: Posts or Pages.
  • Status: draft, published, scheduled, any combination.
  • Include tags and Exclude tags; Include authors and Exclude authors.
  • Per page: 10, 50, 100, 1,000 or 5,000 rows, so a whole archive can sit in one table when you want to act on all of it.

Click a column header to sort the table by that column; click it again to flip the order. Tick the rows you want, or the header box for every row on the page. The count of selected items shows on the actions bar — check it against the number you expected before you act, because the header box takes the current page only.

The actions bar

Each action applies to every selected row at once:

  • Set to Published and Set to Draft.
  • Add tags: pick one or more tags and they're added to every selected post, keeping the tags it already has.
  • Remove tags: pick tags and they come off every selected post that carries them.
  • Delete selected, after a confirmation.

A large run goes in chunks, with a progress window you can watch; Cancel after current chunk stops it cleanly at the next boundary, leaving what's done done.

Per-row tools

Each row also has its own controls: View the post on your site, Edit in Ghost admin, Rename the title in place, Duplicate, Delete, and an × on each tag chip to take that one tag off that one post.

Things worth knowing in advance

I selected everything, but only some posts changed

The header checkbox selects the rows on the page in front of you, not every row your filter matched. With Per page at 100 and four pages of results, you changed a quarter of them. Raise Per page until the whole filtered set is on one page, then select again — and trust the count on the actions bar over the filter's total.

I deleted the wrong posts

There's no undo — and don't simply re-import your export file. Ghost will bring everything in it back alongside what's still on the site, and you'll have traded a deletion for a mess of duplicates, which is the harder problem of the two.

Email me instead. The content can be recovered from an export, but it wants doing carefully rather than in a hurry. (You did take an export first — didn't you?)

The table is slow or the page hangs

Lower Per page. Five thousand rows in one table is a lot of browser work, and an older machine will struggle with it long before the server does.

A run stopped partway

Whatever finished stayed done — the work goes in chunks, and stopping ends it at a chunk boundary rather than rolling anything back. Re-filter and look at what's left; running the same action again on the remainder is safe.

I want to merge two tags, not just add and remove them

Use Tag Wrangler. It's built for that job, it previews the whole change before touching anything, and it can undo its most recent run — none of which is true here.