All rules
optional
Rule: title-lengthWeight: 8/100

Rule: title-length

Google displays approximately 50-60 characters of your title tag in search results (or about 580 pixels wide). Titles that exceed this limit are truncated with an ellipsis, cutting off your brand name or key differentiator. Titles that are too short waste valuable keyword real estate. This rule has a weight of 8/100 — one of the heaviest optional rules — because title length directly impacts click-through rates.

Run the check
$ npx indxel check
Look for title-length in the output

What it checks

Indxel counts the number of characters in the title tag (after trimming leading/trailing whitespace). It then compares the length against four threshold bands. The character count includes all visible characters, spaces, and special characters like pipes (|) or dashes (-) used as separators. Template suffixes like ' | Brand' from Next.js title.template are included in the count.

Thresholds

PASS

50-60 characters (inclusive)

WARN

30-49 characters — too short, wasting keyword space

WARN

61-70 characters — slightly long, may be truncated

ERROR

Less than 30 characters — far too short

ERROR

More than 70 characters — heavily truncated in SERPs

Edge cases

1

Next.js title.template adds characters (e.g., ' | Brand' = 8 chars). If your page title is 55 chars and the template adds 8, the final title is 63 chars — a warning. Account for template length.

2

Emoji characters count as 1-2 characters depending on the emoji. Indxel uses JavaScript string length, so compound emoji (flags, skin tones) may count as 2-4 characters.

3

Google's display width is pixel-based (~580px), not character-based. Wide characters like 'W' or 'M' take more space than 'i' or 'l'. 60 characters is a safe approximation but not exact.

4

If title-present fails (no title), title-length is automatically skipped. You can't measure the length of something that doesn't exist.

Configuration

indxel.config.ts
// indxel.config.ts
import { defineSEO } from "indxel";

export default defineSEO({
  rules: {
    "title-length": true, // enabled by default
  },
});

// title-length thresholds are fixed and not configurable.
// If you need to adjust them, disable the rule and implement
// a custom check via the SDK's validateMetadata() API.

Frequently asked questions

Why is the sweet spot 50-60 characters, not 60?

Google's truncation is pixel-based, not character-based. 60 characters of narrow letters (like 'i') fit fine, but 60 characters of wide letters (like 'W') get truncated. 50-60 is the safe zone where virtually all titles display fully.

Does the title.template in Next.js count toward the character limit?

Yes. If your template is '%s | Acme' and your page title is 'Pricing Plans', the rendered title is 'Pricing Plans | Acme' (20 chars). Indxel measures the final rendered title, including the template suffix.

Should I prioritize staying under 60 or including keywords?

Both matter, but a truncated title loses impact. Put your primary keyword near the beginning of the title, and keep the total under 60 characters. If you must choose, a complete 55-character title outperforms a truncated 75-character title.

Related rules

title-present

critical — 5/100

description-length

optional — 8/100

og-title

optional — 4/100

Validate your SEO now

$npx indxel check
Get startedBrowse all rules
Indxel

SEO validation that runs in your terminal and blocks bad deploys.

GitHubnpm

Product

  • Documentation
  • Pricing
  • Plus Plan
  • CI/CD Guard
  • Indexation
  • Free Tools
  • Blog

Comparisons

  • vs Semrush
  • vs Ahrefs
  • vs Moz
  • vs Screaming Frog
  • All comparisons

Integrations

  • Vercel
  • GitHub Actions
  • Netlify
  • Docker
  • All integrations

Resources

  • Frameworks & use cases
  • Next.js
  • For freelancers
  • For agencies
  • SEO Glossary

Built with care. MIT Licensed.

PrivacyTermsLegalContact