import { readFileSync } from 'fs'; import { join } from 'path'; // SEO-Meta-Daten für verschiedene Routen const seoData = { '/': { title: 'SingleChat - Chat, Single-Chat und Bildaustausch', description: 'Willkommen auf SingleChat - deine erste Adresse für Chat, Single-Chat und Bildaustausch. Chatte mit Menschen aus aller Welt, finde neue Kontakte und teile Erinnerungen sicher und komfortabel.', keywords: 'Chat, Single-Chat, Bildaustausch, Online-Chat, Singles, Kontakte, Community', ogTitle: 'SingleChat - Chat, Single-Chat und Bildaustausch', ogDescription: 'Willkommen auf SingleChat - deine erste Adresse für Chat, Single-Chat und Bildaustausch.', ogType: 'website', ogUrl: 'https://ypchat.net/', ogImage: 'https://ypchat.net/static/favicon.png' }, '/partners': { title: 'Partner - SingleChat', description: 'Unsere Partner und befreundete Seiten. Entdecke weitere interessante Angebote und Communities.', keywords: 'Partner, Links, befreundete Seiten, Community', ogTitle: 'Partner - SingleChat', ogDescription: 'Unsere Partner und befreundete Seiten.', ogType: 'website', ogUrl: 'https://ypchat.net/partners', ogImage: 'https://ypchat.net/static/favicon.png' } }; // HTML-Template für Pre-Rendering function generateHTML(route, meta) { const baseHTML = ` ${meta.title}
`; return baseHTML; } export function setupSEORoutes(app, __dirname) { // Pre-Rendering für SEO-relevante Routen (nur in Production) // In Development wird die normale index.html verwendet const IS_PRODUCTION = process.env.NODE_ENV === 'production'; if (IS_PRODUCTION) { // Pre-Rendering für Hauptseite app.get('/', (req, res) => { const meta = seoData['/']; const html = generateHTML('/', meta); res.send(html); }); // Pre-Rendering für Partners-Seite app.get('/partners', (req, res) => { const meta = seoData['/partners']; const html = generateHTML('/partners', meta); res.send(html); }); } // robots.txt app.get('/robots.txt', (req, res) => { const robotsTxt = `User-agent: * Allow: / Allow: /partners Disallow: /api/ Disallow: /static/logs/ Sitemap: https://ypchat.net/sitemap.xml `; res.type('text/plain'); res.send(robotsTxt); }); // sitemap.xml app.get('/sitemap.xml', (req, res) => { const sitemap = ` https://ypchat.net/ ${new Date().toISOString().split('T')[0]} daily 1.0 https://ypchat.net/partners ${new Date().toISOString().split('T')[0]} weekly 0.8 `; res.type('application/xml'); res.send(sitemap); }); }