Back to Tools

Meta Description Grader

Use cases

Auditing meta descriptions at scale Comparing your descriptions vs competitors Finding weak descriptions to improve Training teams on meta description best practices

Four-dimension GPT grading: emotional hook/power verbs (0-10), clear benefit statement (0-10), active voice usage (0-10), urgency/interest creation (0-10).

Total score out of 40.

Model selection: gpt-4o-mini (default), gpt-4o, gpt-4.1.

Single and bulk modes with column mapping.

Streamlit App Requires API Key

Platform

Browser-based (no installation required)

Input

OpenAI API key

Meta description text (single) or file (bulk)

Optional: URL for context

Output

Per-criterion scores (0-10): hook, benefit, voice, urgency. Total /40 with summary stats (average, max, min) for bulk.

Launch App View Source

Features

  • Four 0-10 criteria: emotional hook, benefit, active voice, urgency (total /40)
  • Models: gpt-4o-mini (default), gpt-4o, gpt-4.1 with strict JSON schema output
  • Compare mode scores up to 4 description columns per row and picks a winner
  • Single-mode length check (120-160 characters flagged as good)
  • Bulk CSV/Excel with summary statistics
  • 0.5s pause between API calls

How to use

  1. 1 Enter your OpenAI API key
  2. 2 Select GPT model (gpt-4o-mini recommended)
  3. 3 Paste description or upload CSV/Excel
  4. 4 Map columns for bulk analysis
  5. 5 Review color-coded criterion scores
  6. 6 Download with total scores and averages

Frequently asked questions

Will the same description get the same score every time?
Not necessarily. The API call does not pin the temperature, so scores can vary slightly between runs. The response is forced into a strict JSON schema of four integers, but the judgement itself is the model's, guided only by a rubric in the prompt (10 is exceptional, 7-8 good, 5-6 average, below 5 needs improvement).
How long does a bulk run take and what does it cost?
One API call per description with a hard-coded 0.5 second pause between rows, so expect a bit under 100 rows per minute plus model latency. In compare mode it makes one call per description column, up to 4 per row, which quadruples both time and token spend.
Does it check description length?
Only in single mode, where it flags under 120 characters as too short, 120-160 as good and over 160 as risking truncation. Bulk mode returns scores only and does not report lengths, so run a separate length check on your file if that matters.
What is compare mode for?
Tick 'Compare multiple descriptions per row' and select up to 4 description columns, for example original vs rewritten variants. Each is scored on the same four criteria and the highest total out of 40 is recorded in winning_description and winning_score columns per row.
What happens to rows that fail?
Failed rows are kept in the output with the URL, the description text and an error column instead of scores, so nothing is silently dropped, but there is no retry. The summary statistics only average rows that scored successfully.

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