feat(SEO): update meta tags and structured data for improved search visibility
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 36s

- Revised title and description meta tags in index.html for better alignment with the application's focus on table tennis club management.
- Updated Open Graph and Twitter meta tags to reflect the new branding and features of the application.
- Enhanced structured data implementation in SeoLandingPage.vue to support JSON-LD for better SEO performance.
- Adjusted sitemap.xml to reflect updated last modified dates for improved indexing.
- Refined content in ClubMemberManagementPage.vue to emphasize member profiles and data management.
This commit is contained in:
Torsten Schulz (local)
2026-04-09 09:43:38 +02:00
parent 951842c824
commit 45c701b149
5 changed files with 90 additions and 27 deletions

View File

@@ -11,23 +11,23 @@
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<title>Trainingstagebuch Umfassende Vereinsverwaltung, Trainingsplanung & Turnierorganisation</title>
<meta name="description" content="Das TrainingsTagebuch ist die umfassende Lösung für Vereine: Mitgliederverwaltung, Trainingsgruppen, Trainingszeiten, Trainingstagebuch, Turniere (intern, offen, offiziell), Team-Management, MyTischtennis-Integration, Statistiken, Berechtigungssystem DSGVOkonform und einfach zu bedienen." />
<title>Trainingstagebuch Vereinsverwaltung für Tischtennis, Trainingsplanung & Turniere</title>
<meta name="description" content="Trainingstagebuch: Vereinssoftware für Tischtennisvereine Mitgliederverwaltung und Mitgliederprofile, Trainingsplanung, Trainingstagebuch, Turniere, Mannschaften, Statistiken, MyTischtennis-Anbindung." />
<meta name="robots" content="index,follow" />
<link rel="canonical" href="https://tt-tagebuch.de/" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Trainingstagebuch" />
<meta property="og:title" content="Trainingstagebuch Umfassende Vereinsverwaltung, Trainingsplanung & Turnierorganisation" />
<meta property="og:description" content="Mitgliederverwaltung, Trainingsgruppen, Trainingszeiten, Trainingstagebuch, Turniere (intern, offen, offiziell), Team-Management, MyTischtennis-Integration, Statistiken, Berechtigungssystem DSGVOkonform und einfach." />
<meta property="og:title" content="Trainingstagebuch Vereinsverwaltung für Tischtennis, Trainingsplanung & Turniere" />
<meta property="og:description" content="Vereinssoftware für Tischtennisvereine: Mitgliederverwaltung, Mitgliederprofile, Trainingsplanung, Turniere, Mannschaften, Statistiken, MyTischtennis-Anbindung." />
<meta property="og:url" content="https://tt-tagebuch.de/" />
<meta property="og:image" content="https://tt-tagebuch.de/android-chrome-512x512.png" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Trainingstagebuch Umfassende Vereinsverwaltung, Trainingsplanung & Turnierorganisation" />
<meta name="twitter:description" content="Mitgliederverwaltung, Trainingsgruppen, Trainingszeiten, Trainingstagebuch, Turniere (intern, offen, offiziell), Team-Management, MyTischtennis-Integration, Statistiken, Berechtigungssystem DSGVOkonform und einfach." />
<meta name="twitter:title" content="Trainingstagebuch Vereinsverwaltung für Tischtennis, Trainingsplanung & Turniere" />
<meta name="twitter:description" content="Vereinssoftware für Tischtennisvereine: Mitgliederverwaltung, Mitgliederprofile, Trainingsplanung, Turniere, Mannschaften, Statistiken, MyTischtennis-Anbindung." />
<meta name="twitter:image" content="https://tt-tagebuch.de/android-chrome-512x512.png" />
<!-- JSON-LD: Website + Organization -->
@@ -53,7 +53,7 @@
"operatingSystem": "Web",
"description": "Umfassende Vereinsverwaltung mit Mitgliederverwaltung, Trainingsgruppen, Trainingszeiten, Trainingstagebuch, Turnierorganisation (intern, offen, offiziell), Team-Management, MyTischtennis-Integration, Statistiken und flexiblen Berechtigungssystemen DSGVOkonform und einfach zu bedienen.",
"featureList": [
"Mitgliederverwaltung",
"Mitgliederverwaltung & Mitgliederprofile",
"Trainingsgruppen & Trainingszeiten",
"Trainingstagebuch & Dokumentation",
"Turniere (intern, offen, offiziell)",

View File

@@ -5,43 +5,43 @@
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://tt-tagebuch.de/</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/impressum</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/vereinssoftware-tischtennis</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/mitgliederverwaltung-verein</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/trainingsplanung-tischtennis</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/turniersoftware-tischtennis</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://tt-tagebuch.de/datenschutz</loc>
<lastmod>2026-03-27</lastmod>
<lastmod>2026-04-01</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>

View File

@@ -88,6 +88,43 @@ export default {
type: Array,
default: () => [],
},
/** Optional JSON-LD (schema.org), z. B. eine WebPage */
structuredData: {
type: Object,
default: null,
},
},
watch: {
structuredData: {
deep: true,
handler() {
this.removeStructuredDataScript();
this.injectStructuredDataScript();
},
},
},
mounted() {
this.injectStructuredDataScript();
},
beforeUnmount() {
this.removeStructuredDataScript();
},
methods: {
injectStructuredDataScript() {
if (!this.structuredData || typeof this.structuredData !== 'object') return;
const el = document.createElement('script');
el.setAttribute('type', 'application/ld+json');
el.setAttribute('data-seo-landing-structured', '1');
el.textContent = JSON.stringify(this.structuredData);
document.head.appendChild(el);
this._structuredDataEl = el;
},
removeStructuredDataScript() {
if (this._structuredDataEl?.parentNode) {
this._structuredDataEl.parentNode.removeChild(this._structuredDataEl);
}
this._structuredDataEl = null;
},
},
};
</script>

View File

@@ -4,7 +4,8 @@ const DEFAULT_IMAGE = `${SITE_URL}/android-chrome-512x512.png`;
const DEFAULT_SEO = {
title: 'Trainingstagebuch Vereinsverwaltung für Tischtennis, Trainingsplanung & Turniere',
description: 'Trainingstagebuch ist die Software für Tischtennisvereine: Mitgliederverwaltung, Trainingsplanung, Trainingstagebuch, Gruppen, Turniere, Team-Management, Statistiken und MyTischtennis-Integration.',
description:
'Trainingstagebuch: Vereinssoftware für Tischtennisvereine Mitgliederverwaltung und Mitgliederprofile, Trainingsplanung, Trainingstagebuch, Turniere, Mannschaften, Statistiken, MyTischtennis-Anbindung.',
robots: 'index,follow'
};
@@ -16,12 +17,14 @@ const ROUTE_SEO = {
},
'/vereinssoftware-tischtennis': {
title: 'Vereinssoftware für Tischtennisvereine | Trainingstagebuch',
description: 'Webbasierte Vereinssoftware für Tischtennisvereine mit Mitgliederverwaltung, Trainingsplanung, Mannschaftsorganisation, Turnieren und Auswertungen.',
description:
'Webbasierte Vereinssoftware für Tischtennisvereine: Mitgliederverwaltung, Mitgliederprofile, Trainingsplanung, Mannschaften, Turniere und Auswertungen in einer Anwendung.',
robots: 'index,follow'
},
'/mitgliederverwaltung-verein': {
title: 'Mitgliederverwaltung für Vereine | Trainingstagebuch',
description: 'Mitgliederverwaltung für Vereine mit Stammdaten, Rollen, Gruppenbezug und organisatorischer Verbindung zu Training und Vereinsabläufen.',
title: 'Mitgliederprofile & Mitgliederverwaltung für Tischtennisvereine | Trainingstagebuch',
description:
'Mitgliederverwaltung für Vereine: Mitgliederprofile und Stammdaten zentral pflegen Rollen, Gruppen, Status, Kontaktdaten und Bezug zu Training & Mannschaften im Tischtennis.',
robots: 'index,follow'
},
'/trainingsplanung-tischtennis': {

View File

@@ -1,18 +1,21 @@
<template>
<SeoLandingPage
eyebrow="Mitgliederverwaltung"
title="Mitgliederverwaltung für Vereine"
lead="Die Mitgliederverwaltung im Trainingstagebuch hilft Vereinen dabei, Stammdaten, Status, Gruppen, Rollen und sportbezogene Zuordnungen konsistent an einem Ort zu pflegen."
title="Mitgliederprofile & Mitgliederverwaltung für Tischtennisvereine"
lead="Mitgliederprofile und Stammdaten zentral pflegen: Status, Rollen, Gruppen und sportbezogene Zuordnungen bleiben im Trainingstagebuch konsistent von Kontaktdaten bis zur Verbindung zu Training und Mannschaften."
:highlights="highlights"
:sections="sections"
:checklist="checklist"
:related-links="relatedLinks"
:structured-data="structuredData"
/>
</template>
<script>
import SeoLandingPage from '../components/SeoLandingPage.vue';
const MEMBER_MGMT_PAGE_URL = 'https://tt-tagebuch.de/mitgliederverwaltung-verein';
export default {
name: 'ClubMemberManagementPage',
components: {
@@ -20,7 +23,27 @@ export default {
},
data() {
return {
structuredData: {
'@context': 'https://schema.org',
'@type': 'WebPage',
'@id': `${MEMBER_MGMT_PAGE_URL}#webpage`,
url: MEMBER_MGMT_PAGE_URL,
name: 'Mitgliederprofile & Mitgliederverwaltung für Tischtennisvereine',
description:
'Mitgliederverwaltung für Vereine: Mitgliederprofile und Stammdaten zentral pflegen Rollen, Gruppen, Status, Kontaktdaten und Bezug zu Training & Mannschaften im Tischtennis.',
isPartOf: {
'@type': 'WebSite',
name: 'Trainingstagebuch',
url: 'https://tt-tagebuch.de/',
},
inLanguage: 'de-DE',
about: {
'@type': 'Thing',
name: 'Mitgliederverwaltung und Mitgliederprofile im Sportverein',
},
},
highlights: [
'Mitgliederprofile & Stammdaten',
'Kontaktdaten',
'Status und Rollen',
'Gruppenzuordnung',
@@ -28,29 +51,29 @@ export default {
],
sections: [
{
heading: 'Mitgliederdaten als Grundlage der Vereinsarbeit',
heading: 'Mitgliederprofile und Daten als Grundlage der Vereinsarbeit',
paragraphs: [
'Ohne saubere Mitgliederdaten wird jede weitere Organisation unnötig aufwendig. Genau deshalb ist die Mitgliederverwaltung nicht nur ein Adressverzeichnis, sondern die Basis für Trainingsgruppen, Teilnahmen, Auswertungen und interne Rechte.',
'Ohne saubere Mitgliederdaten wird jede weitere Organisation unnötig aufwendig. Die Mitgliederverwaltung ist dabei mehr als ein Adressverzeichnis: Sie bildet die Basis für Trainingsgruppen, Teilnahmen, Auswertungen und interne Rechte und die sichtbaren Mitgliederprofile bündeln die Informationen, die im Vereinsalltag wirklich gebraucht werden.',
'Im Trainingstagebuch lassen sich aktive Mitglieder, Testmitglieder, Status, Kontaktdaten und Vereinsrollen in einem gemeinsamen System verwalten. Das reduziert doppelte Pflege und verhindert, dass dieselbe Information in mehreren Listen auseinanderläuft.',
],
},
{
heading: 'Relevanz für Training und Gruppen',
heading: 'Bezug zu Training, Gruppen und Mannschaften',
paragraphs: [
'Gerade im Tischtennis hängen Mitgliedsdaten oft direkt an Trainingsgruppen, Trainingstagen und Mannschaften. Wenn die Zuordnung sauber gepflegt ist, lassen sich Anwesenheiten, Aktivitäten und organisatorische Abläufe nachvollziehbar steuern.',
'Diese Seite ist deshalb nicht nur für allgemeine Suchanfragen nach Mitgliederverwaltung interessant, sondern speziell für Vereine, die ihre Trainingsorganisation mit den Stammdaten verzahnen wollen.',
'Vereine, die Stammdaten und Trainingsorganisation verzahnen, profitieren davon, dass Trainerinnen, Übungsleitung und Verwaltung dieselbe aktuelle Datengrundlage nutzen.',
],
},
{
heading: 'Datenschutz und Rollen',
paragraphs: [
'Mitgliederverwaltung ist immer auch ein Datenschutz-Thema. Deshalb spielt die Frage eine Rolle, wer welche Daten sehen oder ändern darf. Das System ist auf rollenbasierte Zugriffe ausgelegt, damit nicht jede Person im Verein automatisch Vollzugriff erhält.',
'Für SEO ist das ein relevanter Vertrauensfaktor: Nicht nur Funktionen zählen, sondern auch der nachvollziehbare Umgang mit personenbezogenen Vereinsdaten.',
'Mitgliederverwaltung ist immer auch ein Datenschutz-Thema: Es muss klar sein, wer welche Daten sehen oder ändern darf. Das System ist auf rollenbasierte Zugriffe ausgelegt, damit nicht jede Person im Verein automatisch Vollzugriff auf sensible Mitgliederdaten erhält.',
'Transparente Berechtigungen und nachvollziehbare Abläufe stärken das Vertrauen der Mitglieder in den Umgang mit ihren personenbezogenen Daten.',
],
},
],
checklist: [
'Mitglieder, Probemitglieder und Status sauber abbilden',
'Mitgliederprofile mit Stammdaten, Probemitgliedern und Status abbilden',
'Kontaktdaten und Rollen zentral pflegen',
'Direkte Verbindung zu Trainingsgruppen und Abläufen',
'Datensparsamkeit und Zugriffssteuerung berücksichtigen',