Skip to content

On a schedule

Improve SEO titles and descriptions in batches

A batch of older posts gets a sharper SEO title and meta description every night until the whole archive is done.

Runs
On a schedule
Apps
WordPress
AI
Yes, uses the built-in AI allowance
Access
read+write

Send this to your assistant

Create a ClickRuntime automation: each night, take 20 WordPress posts that haven't been done yet, write a better SEO title under 60 characters and a meta description under 155, and save them to Rank Math.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

After a few years, a WordPress site's search listings tell a sad story. Titles are cut off with three dots, descriptions are blank so Google pulls a random sentence, and 200 older posts all start with the same site-name suffix. Fixing them by hand means opening each post, editing the SEO plugin box and saving, which nobody schedules into a working week.

On a schedule, posts that have not been handled yet are listed in batches. ClickRuntime's built-in AI rewrites each SEO title and meta description to fit typical display lengths while keeping the post's actual topic, and the new values are written into the post's SEO meta fields.

It helps most after a site migration or a content audit, when the whole archive needs consistent metadata and doing it manually would take weeks.

What you get out of it

  • Hundreds of posts, no hand edits

    A backlog that would take a full week of clicking through the editor is worked through in batches, without anyone sitting in front of the posts screen. That frees the person who would have done it for work only a human can do.

  • Titles fit the search result

    Titles trimmed to a sensible length stop appearing with truncated endings in listings, which improves how professional the result looks next to competitors that were optimised. Better-looking listings also reflect well on the brand when people compare results side by side.

  • Descriptions that earn the click

    A relevant description that mentions what the page answers gives searchers a reason to choose your result, which can lift click-through without moving your ranking at all. Even small click-through gains add up across hundreds of pages that already rank.

  • Progress is tracked, not repeated

    Posts already completed are remembered, so a large site is processed in order across several runs and no post is rewritten twice or skipped. If a run is interrupted, it resumes with the next unfinished post, not from the beginning.

  • Safer than a blind find-and-replace

    Each rewrite reflects its own post rather than applying one template, so a recipe and a legal explainer do not end up with the same formula in the description. That keeps search snippets accurate to each page, which searchers notice and reward with clicks.

How it works

What happens, step by step

  1. Every night, ClickRuntime takes the next batch of WordPress posts that haven't been improved yet.

  2. AI reads each post and writes a sharper SEO title and meta description.

  3. Both are saved to the post's SEO fields, for example in Rank Math.

  4. It remembers which posts are done and carries on each night until the whole archive is finished.

Before it runs live

  • Connect WordPress

What you get

RunsOn a schedule
Improve SEO titles and descriptions in batchestoday, 9:00Succeeded
WordPress · Rank Math"Invoice Payment Terms: Net 30 vs Net 15 Explained" · "Which payment terms get you paid faster, with wording you can copy."

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other WordPress steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
bulk_ai_rewrite_of_seo_titles_and_descriptions.pyexample
from clickruntime import on_trigger, credentials, http, state, ai

SITE = "https://blog.example.com"
SCHEMA = {"type": "object", "required": ["title", "description"], "properties": {
    "title": {"type": "string", "maxLength": 60}, "description": {"type": "string", "maxLength": 155}}}

def wp(method, path, **kw):
    resp = http.request(method, f"{SITE}/wp-json/wp/v2/{path}", **kw,
                        auth=("admin", credentials.secret("WP_APP_PASSWORD")))
    resp.raise_for_status()
    return resp.json()

@on_trigger
def run(event):
    done = set(state.get("done") or [])
    posts = [p for p in wp("GET", "posts", params={"per_page": 100, "orderby": "date", "context": "edit"})
             if p["id"] not in done][:20]
    for p in posts:
        seo = ai.generate(f"Title: {p['title']['raw']}\n\n{p['content']['raw'][:2500]}", json_schema=SCHEMA,
                          max_output_tokens=120, system="Write an SEO title under 60 characters and a meta description under 155.").json
        wp("POST", f"posts/{p['id']}", json={"meta": {"rank_math_title": seo["title"][:60],
                                                      "rank_math_description": seo["description"][:155]}})
        done.add(p["id"])
    state.set("done", sorted(done))
    return {"updated": len(posts), "total_done": len(done)}

FAQ

Common questions

Which SEO plugin fields does it update?
It writes to the SEO title and meta description fields on each post. The exact meta keys depend on the plugin you use, so during setup you tell your AI assistant which plugin the site runs and the correct fields are used.
Can I try it on a few posts first?
Yes. You can limit a first run to a small number of posts or a single category, check the results in WordPress, and only then widen the scope. The stored progress keeps track of which posts were already done.
What happens to pages that are not posts?
The list targets posts. Pages and custom post types are separate in WordPress, so they are not rewritten unless you ask for them to be included. Product pages in a store plugin usually fall into that second group.
What permissions does it need?
read+write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Improve SEO titles and descriptions in batches” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.