---
name: checking-titles-and-descriptions
description: Checks a web page's title tag and meta description against Google's guidance. Use when someone asks to check, audit or fix a page title, SEO title or meta description.
---

# Checking titles and descriptions

## Step 1: get the real tags, never guess them

Run `python3 scripts/read_head.py <url>` from this skill's folder, once per URL. It prints the title, the meta description, the first H1, the canonical and the robots tag as JSON, with exact character counts.

- If it prints an `error`, or you cannot run scripts here, ask the user to paste the page's HTML (in the browser: View source, copy all). Save it and run `python3 scripts/read_head.py --file <saved file>`.
- Never take the title or description from a fetch tool that returns page text, from memory, or from the visible headline. If you could not read a tag, say "not read" and stop there for that tag.

## Step 2: ask for what only the user knows

Before you suggest a new title or description, you need two things. Ask for any you do not have, in one message:

1. The search the page should be found for (for example "cold plunge tub for sale").
2. The brand name, spelled the way the business spells it.

If the user does not know the search, check the page anyway and write no rewrites.

## Step 3: check each tag

Title:
- Missing or empty: fix first. More than one title: say which ones.
- Vague ("Home", "Untitled", the brand alone on a page that is not the home page): flag it.
- The same word or phrase repeated: flag it as stuffing.
- The words that answer the search should come before the brand, so that if Google cuts the end of a long title, only the brand is lost.
- Compare it with the first H1. If they describe different things, say so: Google uses headings as one source when it writes its own title link.
- Report the character count. Google sets no length limit; it cuts titles to fit the screen. Never call a length a Google rule.

Meta description:
- Missing: say that Google will build the snippet from page text, and offer one.
- It should sum up this page, not the whole site, and not be a list of keywords.
- If the user gave several URLs, flag descriptions that are the same or nearly the same.
- Report the character count, with the same caution as for titles.

## Step 4: suggest a rewrite only when it is needed

At most two options per tag. Use only facts that appear on the page or that the user gave you.

Count every rewrite with `python3 scripts/read_head.py --count "<text>" "<text>"` before you show it. Never estimate a count or write "about".

## Never

- Never invent a search volume, a ranking, a click-through rate or a "best" length.
- Never put a price, discount, guarantee, year or claim in a rewrite unless the page states it.
- Never respell the brand. Use the spelling the user gave you; if the page spells it another way, point that out.
- Never promise that Google will show the new title or description: it chooses title links from several sources and builds most snippets from page text.

## Output

For each URL, a table with these columns: tag, what the page has now, characters, verdict (keep, improve or fix), why. Then the rewrites, if any, each with its character count. End with what you could not check.
