Skip to content
← Tilbage til Learn
Page Metadata Advarsel

Missing title tag

Without a <title>, Google synthesizes one from page text. The generated version is usually worse than what you would write and erodes CTR.

<title> is the page’s name in three places: the browser tab, the SERP listing, and the link preview anywhere your URL is shared. When it’s missing, Google synthesizes a title from the page’s content — sometimes from the H1, sometimes from a stray button label, sometimes from text inside a navigation menu.

The synthesized version is rarely better than what you would write. CTR on missing-title pages is consistently lower than on pages with explicit, well-written titles.

How to detect it

curl -s https://example.com/some/page \
  | grep -oE '<title>[^<]*</title>'

Empty output means missing. A <title></title> with no content is just as bad.

Google Search Console doesn’t report missing titles directly. The signal: pages where the SERP-displayed title doesn’t match anything you wrote. That’s Google synthesizing.

What a good title looks like

Length: 50–60 characters, or up to ~600 pixels wide. Past that, Google truncates with an ellipsis.

Pattern: Primary topic — Brand name for content pages. Primary topic | Brand is equivalent. The separator doesn’t matter much.

Front-load the unique keyword. The first 30 characters are the most-likely to be read in a SERP scroll.

Examples:

  • Bad: Home → tells the reader nothing.
  • Bad: Welcome to Acme — The Best Software Company in the World → marketing voice, no keyword density.
  • Good: Project management for engineering teams — Acme.

The fix

Universal HTML

<head>
  <title>Project management for engineering teams — Acme</title>
</head>

Exactly one <title> per page, inside <head>, before any large block of <script> that could delay parsing.

WordPress (Yoast / Rank Math)

Both plugins auto-generate titles using template variables: %%title%% %%sep%% %%sitename%%. Verify the template:

  • Yoast → Search Appearance → Content types → set the title template for posts, pages, products.
  • Rank Math → Titles & Meta → Posts/Pages → title format.

Override per-page in the post editor’s Yoast/Rank Math meta box.

If the template emits an empty title for any content type, that’s the bug to fix. The most common cause: a “title” custom field someone added but never populated.

Shopify

Shopify ships titles via {{ page_title }} in theme.liquid:

<title>{{ page_title }}{% if current_tags %} – tagged "{{ current_tags | join: ', ' }}"{% endif %}{% if current_page != 1 %} – Page {{ current_page }}{% endif %}{% unless page_title contains shop.name %} – {{ shop.name }}{% endunless %}</title>

If pages have no title, check Online Store → Pages → individual page → SEO section → Page title.

Next.js (App Router)

Use the metadata API:

// app/products/[slug]/page.tsx
export async function generateMetadata({
  params,
}: {
  params: { slug: string };
}): Promise<Metadata> {
  const product = await getProduct(params.slug);
  return {
    title: `${product.name} — Acme`,
  };
}

For a default template, set it in the root layout:

// app/layout.tsx
export const metadata: Metadata = {
  title: {
    default: "Acme — Project management for engineering teams",
    template: "%s — Acme",
  },
};

The template uses %s as a placeholder; child pages override title with just the page-specific portion.

Static HTML

For multi-page static sites, generate titles at build time from a per-page front-matter field. Treat empty titles as a build error, not a warning.

Pitfalls

Don’t duplicate <title> across templates. A theme that emits a title and a plugin that also emits a title gives you two titles. Google picks one — usually the wrong one. View source to confirm one tag per page.

Don’t use the same title on every page. Sitewide titles like “Acme — The Project Management Platform” on every URL cluster all pages into one signal. See the duplicate titles guide.

Don’t keyword-stuff. “Project management software project management tool project planning software” is worse than a single clear phrase. Google rewrites obvious stuffing.

Don’t lead with the brand on content pages. “Acme — Project management for engineering teams” wastes the most-read pixels on a word the reader already saw next to your URL. Lead with the topic.

Fix at the edge with Serpwise

When titles are missing from a section of the site you don’t fully control — a third-party blog under /blog/, a hosted help center, a CMS template behind a vendor lock — fixing the template can take weeks.

Serpwise can inject <title> based on URL patterns and page content: “for every /products/* URL, set the title to the first <h1> text + — Acme.” Apply across thousands of URLs in minutes; the proper template fix lands on its own schedule.

See pricing or run a free AI visibility audit.

Fra diagnose til live rettelse

Find issue'et. Få rettelsen live.

Brug Learn til at forstå problemet, og kør derefter Serpwise på dit eget site for at se, hvad der kan rettes og komme live.