diff --git a/client/src/components/LoginForm.vue b/client/src/components/LoginForm.vue index 0dbe1a1..ce8a58d 100755 --- a/client/src/components/LoginForm.vue +++ b/client/src/components/LoginForm.vue @@ -2,9 +2,9 @@
-

Direkt in den Chat

+

Singles kennenlernen, privat chatten

+ +
+

So funktioniert der Single Chat

+ + +
@@ -182,6 +206,56 @@ function handleSubmit() { diff --git a/client/src/views/ChatView.vue b/client/src/views/ChatView.vue index 98b2fc2..715676d 100755 --- a/client/src/views/ChatView.vue +++ b/client/src/views/ChatView.vue @@ -159,7 +159,7 @@ Y
YpChat -

Chat

+

Kostenloser Single Chat

diff --git a/client/src/views/SeoLandingView.vue b/client/src/views/SeoLandingView.vue index ec0af32..edaf406 100755 --- a/client/src/views/SeoLandingView.vue +++ b/client/src/views/SeoLandingView.vue @@ -39,14 +39,12 @@
-

Passende Themen im Single Chat

+

Weitere Themen bei YPChat

- Viele Nutzer suchen nach einem kostenlosen Single Chat, einem Chat ohne lange Anmeldung oder einem Single Treff - fuer neue Kontakte. YpChat buendelt diese Einstiege auf einer Plattform: schnell starten, privat schreiben, - respektvoll bleiben. + Entdecke weitere Bereiche rund um den Chat-Einstieg, neue Kontakte und sichere Gespräche.

diff --git a/server/routes-seo.js b/server/routes-seo.js index ce94b89..0f471cd 100755 --- a/server/routes-seo.js +++ b/server/routes-seo.js @@ -395,18 +395,10 @@ for (const locale of SEO_LOCALES) { } function buildSitemapXml() { - const currentDate = new Date().toISOString().split('T')[0]; - const urls = Object.entries(seoData) - .map(([route, meta]) => { - const priority = route === '/' ? '1.0' : '0.8'; - const changefreq = route === '/' ? 'daily' : 'weekly'; - return ` + const urls = Object.values(seoData) + .map((meta) => ` ${meta.ogUrl} - ${currentDate} - ${changefreq} - ${priority} - `; - }) + `) .join('\n'); return ` @@ -461,6 +453,9 @@ function upsertJsonLd(html, schema) { function upsertHreflangLinks(html, route) { const cleaned = html.replace(/\n?/g, ''); + const isLocalizedHome = route === '/' || SEO_LOCALES.some((locale) => `/${locale.code}` === route); + if (!isLocalizedHome) return cleaned; + const links = SEO_LOCALES.map( (locale) => ` ` ); @@ -503,6 +498,21 @@ function buildLocalizedLandingContent(route, __dirname) {
`; } +function buildHomeSeoContent() { + return `
+

YPChat

+

Kostenloser Single Chat ohne Anmeldung

+

Bei YPChat kannst du kostenlos neue Singles kennenlernen, privat schreiben und direkt mit einem Nicknamen starten. Für den Einstieg wählst du Nickname, Alter, Geschlecht und Land – eine lange Registrierung ist nicht nötig.

+
+

Singles kennenlernen

Suche nach passenden Kontakten und beginne Gespräche in deinem Tempo.

+

Privat und respektvoll chatten

Private Unterhaltungen, Bilder im Chat sowie Blockier- und Meldefunktionen geben dir Kontrolle über deine Kontakte.

+

Ohne lange Anmeldung starten

Lege ein kurzes Profil an und öffne den Chat direkt im Browser.

+
+

Häufige Fragen zum kostenlosen Single Chat

Ist der Einstieg kostenlos?

Ja. Du kannst dein Profil starten und den Chat kostenlos nutzen.

Was brauche ich für den Start?

Ein Nickname sowie Alter, Geschlecht und Land genügen für den Einstieg.

+ +
`; +} + function buildSeoLandingContent(route) { const page = landingPages.find((entry) => entry.route === route); if (!page) return ''; @@ -519,7 +529,7 @@ function buildSeoLandingContent(route) {

${escapeHtml(page.heading)}

${escapeHtml(page.intro)}

${sectionMarkup}
-

Weitere Einstiege: kostenloser Single Chat, Single Chat ohne Anmeldung, Single Treff Chat.

+

Entdecke weitere Bereiche von YPChat: Chat starten, Chat ohne Anmeldung, Single Treff Chat und Ratgeber für bessere Gespräche.

`; } @@ -557,10 +567,7 @@ function generateHTML(route, meta, __dirname) { html = upsertHreflangLinks(html, route); if (route === '/') { - const deLanding = buildLocalizedLandingContent('/de', __dirname); - if (deLanding) { - html = html.replace('
', `
${deLanding}
`); - } + html = html.replace('
', `
${buildHomeSeoContent()}
`); } if (SEO_LOCALES.some((locale) => `/${locale.code}` === route)) {