From 45d474385cfdd92fe5cee49475ff4eb7b718f933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20J=C3=A4derberg?= Date: Tue, 13 May 2025 08:29:49 +0000 Subject: [PATCH] Merged in fix/noindex-contentpages (pull request #2066) fix: add noindex+nofollow to contentpages * fix: add noindex+nofollow to contentpages * fix: move no-index/no-follow to the shared generateMetadata function instead * remove comment Approved-by: Erik Tiekstra --- apps/scandic-web/utils/generateMetadata.ts | 34 +++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/apps/scandic-web/utils/generateMetadata.ts b/apps/scandic-web/utils/generateMetadata.ts index 6a6c1ca3a..ec91c2039 100644 --- a/apps/scandic-web/utils/generateMetadata.ts +++ b/apps/scandic-web/utils/generateMetadata.ts @@ -1,3 +1,4 @@ +import { env } from "@/env/server" import { serverClient } from "@/lib/trpc/server" import type { @@ -6,9 +7,11 @@ import type { PageArgs, UIDParams, } from "@/types/params" +import type { Lang } from "@/constants/languages" export async function generateMetadata({ searchParams, + params, }: PageArgs< LangParams & ContentTypeParams & UIDParams, { subpage?: string; filterFromUrl?: string } @@ -22,5 +25,34 @@ export async function generateMetadata({ filterFromUrl, noIndex: noIndexOnSearchParams, }) - return metadata + + if (!metadata) { + return { + robots: { + index: env.isLangLive(params.lang), + follow: env.isLangLive(params.lang), + }, + } + } + + if (typeof metadata?.robots === "string") { + return metadata + } + + return { + ...metadata, + robots: { + ...(metadata.robots ?? {}), + index: isIndexable(metadata.robots?.index, params.lang), + follow: isIndexable(metadata.robots?.follow, params.lang), + }, + } +} + +function isIndexable( + pageIndexableFromSettings: boolean | null | undefined, + lang: Lang +) { + // If we are live we want to index the page, but if the page has been marked as noindex in contentstack we don't + return (pageIndexableFromSettings ?? true) && env.isLangLive(lang) }