thinkhard.SI

Prompt repository Marketing

Write SEO titles and meta descriptions for a set of pages

You have a batch of pages that need title tags and meta descriptions written to length, each matching what the page actually says.

Registry no.
MKT-004
Collection
Marketing
Laid out for
Gemini
Score
10 out of 10
Blanks to fill
5
Added

MarketingGemini

The prompt

Score 10 of 10, Excellent

Use it when You have a batch of pages that need title tags and meta descriptions written to length, each matching what the page actually says.

  • {{pages}}
  • {{brand}}
  • {{searchers}}
  • {{title_limit}}
  • {{description_range}}
Full prompt and why it works
Prompt
<pages>
{{pages}}
</pages>

<site>
Brand name: {{brand}}
Who searches for these pages: {{searchers}}
</site>

<constraints>
- Title tags: at most {{title_limit}} characters, counting spaces, with the main topic first and the brand name at the end if it fits.
- Meta descriptions: {{description_range}} characters, counting spaces. Say what the page offers and why to click, in plain words.
- Use the page's target keyword once in each, where it reads naturally. Do not stuff keywords or repeat the brand name in the description.
- Describe only what is on the page. No claims, prices, offers or superlatives such as "best" that the page text does not support, because readers leave quickly when the page does not deliver what the snippet promised.
- Every title and every description must be unique across the set.
</constraints>

<format>
A Markdown table with the columns Page, Target keyword, Title, Title characters, Meta description, Description characters. One row per page, in the order given. Under the table, list any page where the limits forced you to drop something important.
</format>

<task>
Based on the pages above, write a title tag and a meta description for each page, for {{brand}}'s search results. A good result tells a searcher at a glance that this page answers what they typed. If anything is missing for a page, such as enough text to tell what it offers or a target keyword, write "Needs input" in its row and say what is missing.
</task>

Variables

{{pages}}
For each page: its URL, its target keyword, and its main text or a summary of it, clearly separated.
{{brand}}
Your brand or site name as it should appear.
{{searchers}}
Who searches for these pages and what they want, for example "homeowners comparing roof repair costs".
{{title_limit}}
Your title length limit, for example 60. Check your SEO tool's current guidance.
{{description_range}}
Your description length range, for example "120 to 155". Check your SEO tool's current guidance.

Why it works

  • Length. The limits come from you, with a character count column for every line so over-long ones stand out. Models can miscount, so check the counts before you publish.
  • What to avoid. Only claims the page itself supports are allowed, so each snippet promises what its page delivers.
  • Layout. Material first, then constraints and format in XML-style tags, and the task last: the layout Google recommends for Gemini.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/seo-titles-meta-descriptions

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "seo-titles-meta-descriptions"}, or just ask for it by name.