feat(SEO): update meta tags and structured data for improved search visibility
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 36s
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:
@@ -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>
|
||||
|
||||
@@ -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': {
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user