Improve website SEO by adding keywords and dynamic page titles

Implement a global SEO strategy with updated meta tags in index.html and dynamic page titles and descriptions using the usePageMeta hook across various page components, including articles, categories, and static pages.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 517dfa7b-26ac-463d-a6e1-a58c6df97188
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: ce7d26d1-8092-4d73-8c8e-9589576d7f9d
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/517dfa7b-26ac-463d-a6e1-a58c6df97188/EtK2Sno
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sebastjanartic
2026-03-05 09:27:14 +00:00
parent 63c026d2c8
commit 02ab590071
17 changed files with 587 additions and 535 deletions
+10 -4
View File
@@ -3,11 +3,17 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
<title>Folx Music Television - folx.tv</title>
<meta name="description" content="Folx Music Television. Aktuelle Nachrichten, Interviews und Hintergrundberichte aus der Welt der Volksmusik und des Schlagers." />
<meta property="og:title" content="Folx Music Television - folx.tv" />
<meta property="og:description" content="Aktuelle Nachrichten aus der Welt der Volksmusik und des Schlagers." />
<title>Folx Music Television - Volksmusik & Schlager TV Sender | folx.tv</title>
<meta name="description" content="FOLX TV – Ihr Fernsehsender für Volksmusik und Schlager. Musikvideos, Live-Shows, Interviews und aktuelle Nachrichten aus der Welt der volkstümlichen Musik. Jetzt einschalten!" />
<meta name="keywords" content="Volksmusik, Schlager, Volksmusik TV, Schlager TV, Folx TV, volkstümliche Musik, Musiksender, Alpenmusik, Volksmusik Nachrichten, Schlager News, Musikvideos, Live Shows" />
<meta property="og:title" content="Folx Music Television - Volksmusik & Schlager TV Sender" />
<meta property="og:description" content="FOLX TV – Ihr Fernsehsender für Volksmusik und Schlager. Musikvideos, Live-Shows und aktuelle Nachrichten aus der volkstümlichen Musikszene." />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Folx Music Television" />
<meta property="og:url" content="https://www.folx.tv/" />
<meta property="og:image" content="https://www.folx.tv/favicon.png" />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://www.folx.tv/" />
<link rel="icon" type="image/png" href="/favicon.png" />
<script async src="https://fundingchoicesmessages.google.com/i/pub-4465464714854276?ers=1" nonce=""></script>
<script nonce="">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; iframe.id = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
+17
View File
@@ -0,0 +1,17 @@
import { useEffect } from "react";
export function usePageMeta(title: string, description?: string) {
useEffect(() => {
const suffix = " | Folx Music Television";
document.title = title + suffix;
if (description) {
let meta = document.querySelector('meta[name="description"]') as HTMLMetaElement;
if (meta) meta.content = description;
}
return () => {
document.title = "Folx Music Television - Volksmusik & Schlager TV Sender | folx.tv";
let meta = document.querySelector('meta[name="description"]') as HTMLMetaElement;
if (meta) meta.content = "FOLX TV – Ihr Fernsehsender für Volksmusik und Schlager. Musikvideos, Live-Shows, Interviews und aktuelle Nachrichten aus der Welt der volkstümlichen Musik. Jetzt einschalten!";
};
}, [title, description]);
}
+2
View File
@@ -1,8 +1,10 @@
import { Tv } from "lucide-react";
import Header from "@/components/header";
import Footer from "@/components/footer";
import { usePageMeta } from "@/hooks/use-page-meta";
export default function AboutPage() {
usePageMeta("Über FOLX TV - Volksmusik & Schlager Fernsehsender", "Alles über FOLX TV – Ihren Fernsehsender für Volksmusik und Schlager seit 2013.");
return (
<div className="min-h-screen bg-background">
<Header />
+6
View File
@@ -4,6 +4,7 @@ import { type Article } from "@shared/schema";
import { format } from "date-fns";
import { de } from "date-fns/locale";
import { ArrowLeft, Eye, Calendar, User, Clock } from "lucide-react";
import { usePageMeta } from "@/hooks/use-page-meta";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
import Header from "@/components/header";
@@ -100,6 +101,11 @@ export default function ArticlePage() {
queryKey: ["/api/articles", slug],
});
usePageMeta(
article ? `${article.title} - Volksmusik & Schlager` : "Volksmusik & Schlager Artikel",
article?.excerpt || "Aktuelle Nachrichten aus der Volksmusik- und Schlagerszene bei FOLX TV."
);
useEffect(() => {
window.scrollTo(0, 0);
}, [slug]);
+2
View File
@@ -3,6 +3,7 @@ import { useParams, Link } from "wouter";
import { type Article } from "@shared/schema";
import { format } from "date-fns";
import { de } from "date-fns/locale";
import { usePageMeta } from "@/hooks/use-page-meta";
import { Eye, ArrowLeft } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
@@ -12,6 +13,7 @@ import { ArticleCardAd } from "@/components/adsense";
export default function CategoryPage() {
const { category } = useParams<{ category: string }>();
usePageMeta(`${category} - Volksmusik & Schlager`, `Aktuelle ${category}-Beiträge aus der Volksmusik- und Schlagerszene bei FOLX TV.`);
const { data: articles, isLoading } = useQuery<Article[]>({
queryKey: ["/api/articles/category", category],
+2
View File
@@ -1,8 +1,10 @@
import { Shield } from "lucide-react";
import Header from "@/components/header";
import Footer from "@/components/footer";
import { usePageMeta } from "@/hooks/use-page-meta";
export default function DatenschutzPage() {
usePageMeta("Datenschutz - FOLX TV", "Datenschutzerklärung von FOLX TV – Ihr Volksmusik & Schlager Fernsehsender.");
return (
<div className="min-h-screen bg-background">
<Header />
+2
View File
@@ -1,6 +1,7 @@
import { Tv, Globe, MapPin } from "lucide-react";
import Header from "@/components/header";
import Footer from "@/components/footer";
import { usePageMeta } from "@/hooks/use-page-meta";
const COUNTRIES = [
{
@@ -32,6 +33,7 @@ const COUNTRIES = [
];
export default function EmpfangPage() {
usePageMeta("Empfang FOLX TV - Volksmusik & Schlager Sender empfangen", "So empfangen Sie FOLX TV – Ihren Volksmusik & Schlager Sender in Deutschland, Österreich und der Schweiz.");
return (
<div className="min-h-screen bg-background">
<Header />
+2
View File
@@ -3,8 +3,10 @@ import Footer from "@/components/footer";
import GalleryPage from "@/components/photo-gallery";
import { ArrowLeft } from "lucide-react";
import { Link } from "wouter";
import { usePageMeta } from "@/hooks/use-page-meta";
export default function GalleryPageWrapper() {
usePageMeta("Fotogalerie - Volksmusik & Schlager Bilder", "Fotos und Bilder von Volksmusik- und Schlager-Stars bei FOLX TV.");
return (
<div className="min-h-screen bg-background">
<Header />
+2
View File
@@ -3,6 +3,7 @@ import { Link } from "wouter";
import { type Article } from "@shared/schema";
import { format } from "date-fns";
import { de } from "date-fns/locale";
import { usePageMeta } from "@/hooks/use-page-meta";
import { Eye, Play, Images } from "lucide-react";
import { Skeleton } from "@/components/ui/skeleton";
import Header from "@/components/header";
@@ -483,6 +484,7 @@ function BentoSkeleton() {
}
export default function Home() {
usePageMeta("Volksmusik & Schlager News", "FOLX TV – Aktuelle Nachrichten, Musikvideos und Interviews aus der Welt der Volksmusik und des Schlagers.");
const { data: articles, isLoading } = useQuery<Article[]>({
queryKey: ["/api/articles"],
});
+2
View File
@@ -1,6 +1,7 @@
import { useState, useEffect, useRef } from "react";
import { useQuery } from "@tanstack/react-query";
import { Link, useParams } from "wouter";
import { usePageMeta } from "@/hooks/use-page-meta";
import {
Star,
Heart,
@@ -368,6 +369,7 @@ function SignDetail({ signIndex, onNavigate, aiHoroscopes }: { signIndex: number
}
export default function HoroscopePage() {
usePageMeta("Horoskop - Volksmusik & Schlager", "Tägliches Horoskop für Volksmusik- und Schlager-Fans bei FOLX TV.");
const params = useParams<{ sign?: string }>();
const [selected, setSelected] = useState<number | null>(null);
const detailRef = useRef<HTMLDivElement>(null);
+2
View File
@@ -1,8 +1,10 @@
import { Scale } from "lucide-react";
import Header from "@/components/header";
import Footer from "@/components/footer";
import { usePageMeta } from "@/hooks/use-page-meta";
export default function ImpressumPage() {
usePageMeta("Impressum - FOLX TV", "Impressum und rechtliche Informationen zu FOLX TV – Volksmusik & Schlager Fernsehsender.");
return (
<div className="min-h-screen bg-background">
<Header />
+2
View File
@@ -1,6 +1,7 @@
import { useState } from "react";
import { Link } from "wouter";
import { ChefHat, Clock, Users, X, ChevronLeft } from "lucide-react";
import { usePageMeta } from "@/hooks/use-page-meta";
import Header from "@/components/header";
import Footer from "@/components/footer";
import { InArticleAd } from "@/components/adsense";
@@ -295,6 +296,7 @@ function RecipeModal({ recipe, onClose }: { recipe: Recipe; onClose: () => void
}
export default function RecipesPage() {
usePageMeta("Rezepte - Alpenküche & Schlager", "Traditionelle Rezepte aus der Alpenküche bei FOLX TV – kochen wie die Volksmusik-Stars.");
const [selectedRecipe, setSelectedRecipe] = useState<Recipe | null>(null);
return (
+2
View File
@@ -2,6 +2,7 @@ import { useQuery } from "@tanstack/react-query";
import { useState, useEffect, useRef } from "react";
import { Link, useSearch, useLocation } from "wouter";
import { Search, Play, FileText, ArrowLeft } from "lucide-react";
import { usePageMeta } from "@/hooks/use-page-meta";
import Header from "@/components/header";
interface SearchResult {
@@ -25,6 +26,7 @@ interface SearchResult {
}
export default function SearchPage() {
usePageMeta("Suche - Volksmusik & Schlager", "Durchsuchen Sie FOLX TV nach Volksmusik- und Schlager-Inhalten.");
const searchString = useSearch();
const initialQuery = new URLSearchParams(searchString).get("q") || "";
const [query, setQuery] = useState(initialQuery);
+2
View File
@@ -3,6 +3,7 @@ import { Link } from "wouter";
import { type Article } from "@shared/schema";
import { format } from "date-fns";
import { de } from "date-fns/locale";
import { usePageMeta } from "@/hooks/use-page-meta";
import { Play, ArrowLeft } from "lucide-react";
import { Skeleton } from "@/components/ui/skeleton";
import Header from "@/components/header";
@@ -61,6 +62,7 @@ function VideoCardSkeleton() {
}
export default function VideosPage() {
usePageMeta("Volksmusik & Schlager Videos", "Musikvideos und Live-Auftritte aus der Volksmusik- und Schlagerszene bei FOLX TV.");
const { data: articles, isLoading } = useQuery<Article[]>({
queryKey: ["/api/articles/category/Video"],
});