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:
parent
63c026d2c8
commit
02ab590071
@ -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
client/src/hooks/use-page-meta.ts
Normal file
17
client/src/hooks/use-page-meta.ts
Normal 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]);
|
||||
}
|
||||
@ -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 />
|
||||
|
||||
@ -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]);
|
||||
|
||||
@ -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],
|
||||
|
||||
@ -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 />
|
||||
|
||||
@ -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 />
|
||||
|
||||
@ -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 />
|
||||
|
||||
@ -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"],
|
||||
});
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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 />
|
||||
|
||||
@ -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,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);
|
||||
|
||||
@ -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"],
|
||||
});
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"access_token": "sl.u.AGW5qKGBU3tAvpP1D2nq7yW9QKqc-Wu6G54QBGvg-B42dzG6ADiOY3tCq9-gn6hDq6-GhpueN4ZoOMmYp6uj9kbsSvLIeSqVGupc5p9jc31mXu5DfG9fHiao_XoLOR67wst12uSjelNqsO9EXbHt5J5tgKxvGtD5xrFFy5C5GzGvwCkJat9bKOxhJ6g2ZAHGseVj4nWQqo4UMxvcLLDqGVE5rx0I69-d1z2IHCmcdrTrcJ1ph3SQWDIDAWPi2lFE_qyj822oN6NdChMqGCEiTaNDM-AjOMKm7HEPUb2H95N-fWBjf3sF4rXBmY9deNNj581xWmdKaOkTzH4pd6PKobf_PNhdgqtTUx6Xtew0OnjGumohEjD8Y8YW2s_GEQM4JYxJmdsHSRbtO1yyY5I0riOphFy04gmDotz01p9QnIUgn6JKxyUHKQnPf4E7WTNNlg7yYBTqM6XkyqxVXMnsEfDbeGQ-JnsTtGMk6BcNkuk7B7JOP-GNstHmsFwlBygTIxLiRvxcBUESfjy2V-QUvbIMl4vwevNVYuAZ4IQBQGCwaybijnQkpYthDnDGMU8vT5q63OLj2gRCC_BHbGZZcyPW2t0NYUHO6K_enCGPvzE7oI7u44xd6U4slaqYp4t_gDvaM8fInydoSyC1xWwzNCuocP3i5fHJ25pwaU0R3fV2tLvSWYPzO94KtbVJUOn4jutYn-xgEi63ya2iS9jBA813b1TgJIRjefsP_93pO-iJLKm2DUSoEnNPz3F43lbdM0S8HbGgD0AHHJ9_DFFxYf_SarGZjPepLs21Tb8-flojSVpqFIBgLdu2qRHYQcZbE8q1tkOkviZUowvEIu4lI0nVXEUMiOxg_HyeoAmSxZE82AVOd5grtdX7vrbAFlsOEAzXP5NQWlfg4-8SHlU6Ujla_qMci23ZLEewjeH17L32F90NwXug2ChGY2bROFi51Ma8ZRp2u9_hCvUYSI9K628nyft9XK9kvbT4UL6rWPNfoezlRBI_nrdG66QjIhIfkIG6lFQPEDGIeofJd4CDDDFMw_sHRc1uvOpwwPUoA1Zx1t1TY2JzOIMn8jUS_WCa1SR8CLaO-Dj5cgNmnAy6KTpB-i7tkbg7Q3hga1DmhBwDDs9DsJ6pD8S4-99XriolTFmg1ISxCEEPU_ZrtlaxvKmI3Fvtd2eOJBi4CbnyalJS9DrVrYdHC8SQXcs6NkHDTsil3j81SbTw6PtOaqP0gSrnmVr_56O2X7g3qrs7BHENoaYR2ZF7lVRAlObUtHQGWLL609WdtV7ci2Y0k44CyDIUjV0ZeluRZxaGS3YmeemRCQ",
|
||||
"access_token": "sl.u.AGWJ8sxDwmUlPT2LcHxWop31dWjgQBdBEFRmm7UFkk6NrkdA_Wcjn5cmlJ1JSNcwQEOv6seTzt5_1NbyWc-12KujpapH4aMNY75sYMTZcklc63GAgoUFouTQFvTW1Dd4UR2uEiP8z09MU3DX-trdEy9CfAXt4gilBx3apibz-vFpxHrsZlQDeEnx7KY_XmRFRlEKg3AHBsezx7O2DAEhDjMCF7M9CrxaCPEMNszI_oi7eXOcjyDn1LpEI7xb8JpeLUJSJ2DtLTut3hBgIpsAMfR0NDfesXLAeyA0NdpL75k_5pKpDCVsqUZJAITyBWqxSthPaalhboLFQAEPMOYNKLPeZpgFvPDeQdEIqLGbH0ob6nJzJbJz2fyYGEUXPgNBzq_3fJpxIThXNOluSmhBIVjuJwzK1M4nbzs_9EIUwq8YRndfm76yBUHz-YG1mQIJwYX-1gnMZEM4v72QZfI2pCo4igGfFWhSvdbW17ni8SRt46_LpxzM9uXoLTOEeMf2VXDqZxRMar1CxdORcz2gHfZHkBLfTkRHB9QkrtcE9ckU3B3srHtBKwhYxL-FT5gKix5u9o4dTvQGQzHnUmBX_5AvoWayATE3BPVXoAIBYFVX3oMwkRElyKyZmwSzmoi1LvoDnzkF7ZuWtTF6GaCPvv6S1aUsTLh6yd0Izu3T_-N7TeblmcHnE3OgIO8IWOFr3jQutrhIiY4D9X637Pr5-GubYtX-sptVPzEhvRM_epIrsBYZWFSvA7HN4JUcZaB7Gn0_ibcuNhDBBwYiai35AslEOSfLrwrDwoygAC2asMILGn8vXEeZNybZKmmyQY2jcBynuHBXh-Jnx18of0Xk2sQ-Q_sCDiA3m3CQCmn2_zF_hdi1AWiC0oPANKlqPhXMuaToEqBSIqtny1PdFyZgK1Q-p2_Gz-Tz5BD9CHaEu6iHRpt5uFwbQFCHa-iumAyJq5NFIPlQ0Gb56P7JLt6Ks0o6VCIFGP2itDRR1kWcaRIFwdeK9v67QTuYjomFszM0P73ZhdZp_AeaWlCF0lovY32cLIxjzpKQ3Z6VIa10s2abc2Gj6fdgnh6OQDHcFaBqHO1jAA-lTmEQ4CSVma7JLfl00LcqS5bwfV2y7eM6Gfck0uF6JUXmfjHyV5qDpLcok-n-sOHLbkmF551_NwpRTTvXUBxaEYzDJ3U8QF-yFQOD5KPREyZfEitATZikay78XT67tyrCPMQ4TmkmZSf5evKlb542x4H1KHT2QW0b_gU7c6jBzZyeR9ki0Fnop3-VwqP0GKDG1_FzexDN1T8dNjCosJXjBcvt1X6u5pcf_Uoe0w",
|
||||
"refresh_token": "8-fiK0Io8Z8AAAAAAAAAAXn1QIGTwFTVWKF47COXY2bjqYlWyd4aRnFtQJ7usZ0y",
|
||||
"expires_at": 1772702693199,
|
||||
"expires_at": 1772717208506,
|
||||
"app_key": "sjwprgka82p8tpv",
|
||||
"app_secret": "g3vuczqo0rx3crz"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -55,7 +55,8 @@ export function serveStatic(app: Express) {
|
||||
`<meta name="twitter:title" content="${escapeHtml(article.title)}" />`,
|
||||
`<meta name="twitter:description" content="${escapeHtml(article.excerpt)}" />`,
|
||||
imageUrl ? `<meta name="twitter:image" content="${escapeHtml(imageUrl)}" />` : "",
|
||||
`<title>${escapeHtml(article.title)} - Folx Music Television</title>`,
|
||||
`<meta name="description" content="${escapeHtml(article.excerpt)}" />`,
|
||||
`<title>${escapeHtml(article.title)} - Volksmusik & Schlager | Folx Music Television</title>`,
|
||||
].filter(Boolean).join("\n ");
|
||||
|
||||
template = template.replace(/<meta property="og:[^"]*"[^>]*\/>\s*/g, "");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user