horoskop, recepti in galerija ven s folx.tv: pripomocki z naslovnice, povezave iz glave in noge, poti 301 na naslovnico, iz sitemapa (GA4: 318 ogledov od 96.307 v 28 dneh)

This commit is contained in:
2026-08-30 16:29:45 +02:00
parent 6a0ef7f2cf
commit c697623e5d
5 changed files with 11 additions and 31 deletions
-15
View File
@@ -60,21 +60,6 @@ export default function Footer({ narrow }: { narrow?: boolean }) {
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-video">Video</span>
</Link>
</li>
<li>
<Link href="/gallery">
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-gallery">Fotogalerie</span>
</Link>
</li>
<li>
<Link href="/horoskop">
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-horoskop">Horoskop</span>
</Link>
</li>
<li>
<Link href="/rezepte">
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-rezepte">Rezepte</span>
</Link>
</li>
<li>
<Link href="/kontakt">
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-kontakt-cat">Kontakt</span>
-3
View File
@@ -9,9 +9,6 @@ const navItems = [
{ label: "Start", href: "/" },
{ label: "News", href: "/category/News" },
{ label: "Video", href: "/videos" },
{ label: "Galerie", href: "/gallery" },
{ label: "Horoskop", href: "/horoskop" },
{ label: "Rezepte", href: "/rezepte" },
{ label: "Kontakt", href: "/kontakt" },
];
+3 -11
View File
@@ -11,9 +11,6 @@ import { Skeleton } from "@/components/ui/skeleton";
import Header from "@/components/header";
import Footer from "@/components/footer";
import AdSense, { ArticleCardAd, SidebarAd, PageSideAds, MultiplexAd, TopBannerAd } from "@/components/adsense";
import { PhotoGalleryWidget } from "@/components/photo-gallery";
import { HoroscopeWidget } from "@/components/horoscope-widget";
import { RecipeWidget } from "@/components/recipe-widget";
import { NewsWidget } from "@/components/news-widget";
import { SidebarWeatherWidget } from "@/components/weather-widget";
import { BreakingNewsWidget } from "@/components/breaking-news-widget";
@@ -825,16 +822,13 @@ export default function Home() {
return out;
}, [shuffled]);
// 30. 8. 2026: horoskop, recept in galerija so vzeti z naslovnice. Po GA4 so
// v 28 dneh naredili 242, 60 in 16 ogledov od 96.307, clanki pa 93.001.
// Sprosceni prostor gre clankom.
const widgets = useMemo(() => [
{ id: "horoscope", el: <HoroscopeWidget key="horoscope" /> },
{ id: "news", el: <div key="news" className="flex flex-col gap-4"><NewsWidget /></div> },
{ id: "gallery", el: <PhotoGalleryWidget key="gallery" /> },
{ id: "recipe", el: <RecipeWidget key="recipe" /> },
{ id: "breaking", el: <div key="breaking" className="flex flex-col gap-4"><BreakingNewsWidget /></div> },
{ id: "gallery2", el: <PhotoGalleryWidget key="gallery2" reverseOrder={true} /> },
{ id: "horoscope2", el: <HoroscopeWidget key="horoscope2" /> },
{ id: "news2", el: <div key="news2" className="flex flex-col gap-4"><NewsWidget /></div> },
{ id: "recipe2", el: <RecipeWidget key="recipe2" /> },
{ id: "breaking2", el: <div key="breaking2" className="flex flex-col gap-4"><BreakingNewsWidget /></div> },
], []);
@@ -918,12 +912,10 @@ export default function Home() {
const bottomSection = useMemo(() => {
const items: { type: "widget" | "ad" | "article"; el: JSX.Element }[] = [
{ type: "widget", el: <NewsWidget key="bottom-news" /> },
{ type: "widget", el: <HoroscopeWidget key="bottom-horoscope" /> },
{ type: "widget", el: <BreakingNewsWidget key="bottom-breaking" /> },
{ type: "article", el: <BlogCard key={`bottom-art-0`} article={bottomArticles[0]} focalPoints={focalPoints} /> },
{ type: "ad", el: <div key="ad-bottom-1"><ArticleCardAd /></div> },
{ type: "article", el: <BlogCard key={`bottom-art-1`} article={bottomArticles[1]} focalPoints={focalPoints} /> },
{ type: "widget", el: <PhotoGalleryWidget key="bottom-gallery" /> },
{ type: "article", el: <BlogCard key={`bottom-art-2`} article={bottomArticles[2]} focalPoints={focalPoints} /> },
{ type: "article", el: <BlogCard key={`bottom-art-3`} article={bottomArticles[3]} focalPoints={focalPoints} /> },
{ type: "article", el: <BlogCard key={`bottom-art-4`} article={bottomArticles[4]} focalPoints={focalPoints} /> },
+2 -2
View File
@@ -147,8 +147,8 @@ export async function registerRoutes(
// POZOR: tu smejo biti samo poti, ki jih pozna React router v App.tsx.
// Prej so bile "/news", "/video", "/galerie" — teh poti ni, zato je Google
// dobival soft 404. Prave so "/category/News", "/videos", "/gallery".
const staticPaths = ["/", "/category/News", "/videos", "/gallery",
"/horoskop", "/rezepte", "/empfang-folx-tv", "/ueber-uns",
const staticPaths = ["/", "/category/News", "/videos",
"/empfang-folx-tv", "/ueber-uns",
"/kontakt", "/impressum", "/datenschutz"];
const urls: string[] = [];
for (const p of staticPaths) {
+6
View File
@@ -339,6 +339,12 @@ export function serveStatic(app: Express) {
"Aktuelles": "",
};
const pathOnly = url.split("?")[0].split("#")[0];
// 30. 8. 2026: horoskop, recepti in galerija so ukinjeni. Stare povezave
// ne smejo v 404, zato gredo trajno na naslovnico.
if (/^\/(horoskop|rezepte|gallery|galerie)(\/.*)?$/.test(pathOnly)) {
res.redirect(301, "/");
return;
}
if (/^\/aktuelles\/?$/.test(pathOnly)) {
res.redirect(301, `${NEWS_HOST}/`);
return;