Back to Tools

Meta Description Rewriter

Use cases

Fixing truncated meta descriptions Improving click-through rates Standardising tone across site sections Bulk optimisation of legacy content

GPT rewriting (gpt-4o-mini default, gpt-4o, or gpt-4.1) with context from H1, title, and URL.

Five tone options: Professional, Friendly, Authoritative, Conversational, Technical.

Smart word-boundary truncation (not mid-word).

Desktop and mobile length targets.

Temperature 0.7 for natural output.

0.5s rate limiting between requests.

Streamlit App Requires API Key

Platform

Browser-based (no installation required)

Input

OpenAI API key

Current description, H1, title (optional)

Target length and tone selection

Output

Desktop and mobile optimised descriptions with character counts. Bulk: original, rewritten, lengths, error log.

Launch App View Source

Features

  • Context-aware rewriting using H1, title and URL
  • Five tone options (Professional to Technical)
  • Exclamation mark and hyperbole avoidance toggles
  • Desktop rewrite; mobile version derived by word-boundary truncation
  • Desktop max 140-170 chars (default 160), mobile 100-140 (default 130)
  • 0.5s rate limiting, progress tracking, max-rows test option

How to use

  1. 1 Enter your OpenAI API key
  2. 2 Select GPT model and tone
  3. 3 Paste single description or upload CSV/Excel
  4. 4 Configure desktop/mobile length targets
  5. 5 Download rewritten versions with character counts

Frequently asked questions

Is the mobile version a separate rewrite?
No. The model writes one description against the desktop character limit; the mobile version is that same text truncated at the last word boundary with an ellipsis appended. If the rewrite already fits the mobile limit, both versions are identical.
Can it write descriptions for pages that have none?
Not in bulk mode: rows with an empty meta description column are skipped with a 'No meta description provided' error, even if H1 and title are present (those are used as context only). As a workaround, copy the H1 or title into the description column so the model has something to rewrite.
Why do I get different output each time I run it?
The rewrite call uses temperature 0.7 to produce natural-sounding copy, so the same input yields different phrasing on each run. Re-run rows you are unhappy with rather than expecting reproducibility.
What are the length limits and what happens if the model overshoots?
Desktop max is a 140-170 slider (default 160) and mobile 100-140 (default 130). The desktop limit is written into the prompt, and if the model still returns something longer it is truncated at a word boundary with '...' appended, so a trailing ellipsis in your output means the model overshot.
How fast is a bulk run?
One API call per row plus a fixed 0.5 second pause, so roughly 100 rows per minute at best. Use the 'Max rows to process' input (0 means all) to test tone and length settings on a small sample before committing to the full file.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Tell Me What You Need