Skip to content

seo(meta): remove em-dash from titles, sharpen /best-time and /compare titles - #40

Merged
Manuel10i merged 1 commit into
mainfrom
seo/packedplaces-meta-titles-no-emdash
Sep 5, 2026
Merged

Manuel10i merged 1 commit into
mainfrom
seo/packedplaces-meta-titles-no-emdash

Conversation

@Manuel10i

Copy link
Copy Markdown
Owner

Problem

The metaTitle (SEO <title>) for /privacy, /contact, /best-time and /compare used an em-dash separator, e.g. Best Time to Visit — PackedPlaces.com. Em-dashes are against the house copy rule (they read AI-generated) and these are SEO-visible title tags. The two hub titles (/best-time, /compare) were also thin/generic. Flagged in the daily website audit (state 2026-08-30, [L] offen: "Sammel-Fix beim nächsten packedplaces-PR").

Change (en/de/es/fr)

  • /best-time: Best Time to Visit: Crowd Calendars for 700+ Destinations (was Best Time to Visit — PackedPlaces.com). Now descriptive and keyword-rich; this page is the crowd-calendar finder over all destinations. The 700+ count is verified against the live sitemap (729 /destination/ URLs), so it is accurate, not invented.
  • /compare: Compare How Crowded Destinations Are, Week by Week (was Compare Crowds — PackedPlaces.com).
  • /privacy, /contact: keep the brand suffix, swap the em-dash for a pipe (Privacy Policy | PackedPlaces.com).
  • /contact metaDescription (en + de): em-dash replaced with a period.

Why it helps reach

/best-time already picks up impressions for the "best time to visit" head intent (GSC 28d: 31 impressions, pos ~47) but with a generic title. Descriptive, keyword-led titles improve SERP relevance and CTR, and remove an off-brand character from the four hub/utility title tags that show in search results and social unfurls.

Verified

  • JSON valid for all four locale files.
  • Top-level message-key parity intact across en/de/es/fr (no keys added or removed, only values changed).
  • Zero em-dash or en-dash in the new strings (checked on the diff additions).
  • Title template is %s (brand appears once), so no double-brand.
  • Full next build is OOM-limited in this environment (as with prior packedplaces PRs); this is a pure i18n message-value change with unchanged keys, so it cannot affect typecheck/build.

Not in scope

Body-copy em-dashes remain in the message files (~40 per locale, in lede/subtitle prose). That is a larger, translation-sensitive sweep; this PR is limited to the SEO-visible meta fields flagged in the audit.

🤖 Generated with Claude Code

The metaTitle tags for /privacy, /contact, /best-time and /compare used an
em-dash separator ("Best Time to Visit — PackedPlaces.com") in the
SEO-visible <title>. Em-dashes are against the house copy rule, and the two
hub titles were also generic. Fixes across en/de/es/fr:

- /best-time: "Best Time to Visit: Crowd Calendars for 700+ Destinations"
  (was "Best Time to Visit — PackedPlaces.com"). Descriptive + keyword-rich;
  the page is the 729-destination crowd-calendar finder. Count verified from
  the live sitemap (729 /destination/ URLs), so "700+" is accurate.
- /compare: "Compare How Crowded Destinations Are, Week by Week"
  (was "Compare Crowds — PackedPlaces.com").
- /privacy, /contact: keep brand suffix but with a pipe separator.
- /contact metaDescription (en + de): em-dash replaced with a period.

Title template is "%s" (brand appears once), so no double-brand. No message
keys added or removed; only values changed. Verified: JSON valid for all four
locales, top-level key parity across en/de/es/fr, zero em/en-dash in the new
strings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Manuel10i
Manuel10i merged commit e335921 into main Sep 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant