Skip to main content

Every page has unique title tag (50-60 chars)

Issue No: 39

Category: page seo basics

Issue type: Issue

Priority: CRITICAL

Description

Verify that each crawlable page has one non-empty title tag and that title content is unique across pages, with recommended length target of 50 to 60 characters.

How do we capture it

  1. Fetch page HTML and ensure response is HTML content.
  2. Parse raw HTML <head> and extract <title> node text.
  3. Normalize title text for comparison:
    • Decode HTML entities.
    • Collapse repeated whitespace.
    • Trim leading/trailing whitespace.
  4. Compute title character length on normalized text.
  5. Generate title fingerprint (for example normalized lowercase hash) for duplicate detection across crawl set.
  6. Compare fingerprint against previously stored pages in the same crawl run and project scope.
  7. Mark compliance only if title exists, appears once, is within preferred range when possible, and is unique in scope.
  8. Constraint: capture uses raw HTML only and does not depend on JavaScript-updated document title.

What to store

FieldTypeComment
page_url TEXTTEXTCrawled page URL.
title_text TEXTTEXTNormalized title text extracted from head.
title_tag_count INTEGERINTEGERNumber of title tags found in document head.
has_title_tag BOOLEANBOOLEANWhether at least one title tag exists.
title_length INTEGERINTEGERCharacter count of normalized title text.
title_fingerprint TEXTTEXTDeterministic fingerprint used for duplicate checks.
is_title_unique BOOLEANBOOLEANWhether title fingerprint is unique in crawl scope.
duplicate_title_urls JSONBJSONBOther URLs sharing the same title fingerprint.
title_length_in_range BOOLEANBOOLEANWhether title length is between 50 and 60.
title_capture_error TEXTTEXTExtraction or parsing error details.

Condition for trigger

This audit triggers when title is missing, duplicated, or outside preferred length target.

  • Trigger Rule 1: Missing Title Tag

    • Target Field: has_title_tag
    • Evaluation Logic: has_title_tag = FALSE
    • Severity: CRITICAL
    • Diagnostic Message: "Page is missing a title tag."
  • Trigger Rule 2: Duplicate Title Tag Content

    • Target Field: is_title_unique
    • Evaluation Logic: is_title_unique = FALSE
    • Severity: CRITICAL
    • Diagnostic Message: "Title tag is duplicated across multiple pages."
  • Trigger Rule 3: Title Length Outside Recommended Range

    • Target Field: title_length_in_range
    • Evaluation Logic: has_title_tag = TRUE AND title_length_in_range = FALSE
    • Severity: WARNING
    • Diagnostic Message: "Title length is outside the recommended 50-60 character range."

Sources

Long description

The title tag is a primary indexing and click-context signal. Missing or duplicated titles reduce the ability of search systems to differentiate pages and often lead to rewritten search snippets. Length guidance helps reduce truncation risk and increases consistency across templates, though uniqueness and semantic relevance remain the highest priorities.

Common failure scenarios checked by the crawler:

  • No title tag present in head.
  • Multiple title tags causing ambiguity.
  • Same title reused across many different pages.
  • Extremely short, empty, or excessively long titles.

How to Fix

Ensure each page template outputs exactly one descriptive title that uniquely represents the page intent. Maintain title generation rules in CMS or routing templates to avoid duplicates at scale, and periodically crawl pages to detect drift in uniqueness and length quality.