diff --git a/txclient/src/app/landing/categories/page.tsx b/txclient/src/app/landing/categories/page.tsx index 7eaf8eb..d9cff50 100644 --- a/txclient/src/app/landing/categories/page.tsx +++ b/txclient/src/app/landing/categories/page.tsx @@ -1,9 +1,39 @@ +import { Metadata } from "next"; import AnimatedContainer from "@components/AnimatedConainer/AnimatedContainer"; import CategoriesExplorer from "@core/app/components/Home/CategoriesExplorer/page"; import DefaultLoginAction from "@core/app/components/LoginAction/DefaultLoginAction"; import { ScrollToTop } from "@core/app/components/ScrollTop"; import style from "./style.module.css"; +const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://turnosxpress.com.ar"; + +export const metadata: Metadata = { + title: "Explorá categorías y encontrá tu próximo turno | TurnosXpress", + description: + "Categorías de servicios por rubro en TurnosXpress. Elegí el tipo de servicio que necesitás y filtrá por ubicación para encontrar opciones cercanas, rápidas y organizadas.", + alternates: { + canonical: `${baseUrl}/landing/categories`, + }, + openGraph: { + type: "website", + title: "Explorá categorías y encontrá tu próximo turno | TurnosXpress", + description: + "Categorías de servicios por rubro en TurnosXpress. Elegí el tipo de servicio que necesitás y filtrá por ubicación.", + url: `${baseUrl}/landing/categories`, + siteName: "TurnosXpress", + locale: "es_AR", + }, + twitter: { + card: "summary", + title: "Explorá categorías y encontrá tu próximo turno | TurnosXpress", + description: "Categorías de servicios por rubro en TurnosXpress.", + }, + robots: { + index: true, + follow: true, + }, +}; + export default function CategoriesPage() { return ( + + + +
+

Quiero reservar turno

+

+ Reservar un turno es muy fácil. Solo tenés que explorar nuestras categorías y + buscar el servicio más adecuado para vos. Una vez que ingreses al servicio, + podrás realizar la reserva. Tené en cuenta que, para poder reservar, debés estar + registrado en nuestro sitio web. +

+
+
+ + +
 
+
+
+ ); +} \ No newline at end of file diff --git a/txclient/src/app/landing/get-appointments/page.tsx b/txclient/src/app/landing/get-appointments/page.tsx index 24c5c65..9c53fe5 100644 --- a/txclient/src/app/landing/get-appointments/page.tsx +++ b/txclient/src/app/landing/get-appointments/page.tsx @@ -1,44 +1,35 @@ -"use client"; -import AnimatedContainer from "@components/AnimatedConainer/AnimatedContainer"; -import ExploreCategories from "@core/app/components/ExploreCategories/ExploreCategories"; -import HeaderConfProvider from "@core/app/components/HeaderConfProvider/HeaderConfProvider"; -import useContainerHeight from "@core/app/hooks/ContainerHeight"; -import { ScrollToTop } from "@core/app/components/ScrollTop"; -import DefaultLoginAction from "@core/app/components/LoginAction/DefaultLoginAction"; +import { Metadata } from "next"; +import GetAppointmentsContent from "./GetAppointmentsContent"; + +const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://turnosxpress.com.ar"; + +export const metadata: Metadata = { + title: "Quiero reservar turno | TurnosXpress", + description: + "Reservá tu turno en TurnosXpress: explorá categorías y buscá el servicio más adecuado para vos. Registrate y reservá en minutos.", + alternates: { + canonical: `${baseUrl}/landing/get-appointments`, + }, + openGraph: { + type: "website", + title: "Quiero reservar turno | TurnosXpress", + description: + "Explorá categorías, buscá el servicio más adecuado para vos y reservá tu turno en TurnosXpress.", + url: `${baseUrl}/landing/get-appointments`, + siteName: "TurnosXpress", + locale: "es_AR", + }, + twitter: { + card: "summary", + title: "Quiero reservar turno | TurnosXpress", + description: "Explorá categorías y reservá tu turno en TurnosXpress.", + }, + robots: { + index: true, + follow: true, + }, +}; export default function GetAppointmentsPage() { - const containerHeight = useContainerHeight(); - - return ( - - - - -
-

Quiero reservar turno

-

- Reservar un turno es muy fácil. Solo tenés que explorar nuestras categorías y - buscar el servicio más adecuado para vos. Una vez que ingreses al servicio, - podrás realizar la reserva. Tené en cuenta que, para poder reservar, debés estar - registrado en nuestro sitio web. -

-
-
- - -
 
-
-
- ); -} + return ; +} \ No newline at end of file diff --git a/txclient/src/app/sitemap.xml/route.ts b/txclient/src/app/sitemap.xml/route.ts index 1a296d9..6f69fae 100644 --- a/txclient/src/app/sitemap.xml/route.ts +++ b/txclient/src/app/sitemap.xml/route.ts @@ -94,6 +94,22 @@ export async function GET() { }, ]; + // Category exploration pages + // /landing/reviews is intentionally omitted: it renders rating lists driven by + // query params (?targetType=&targetId=) — parametric thin pages, not stable URLs. + const explorationRoutes: SitemapRoute[] = [ + { + url: `${baseUrl}/landing/categories`, + changeFrequency: "weekly", + priority: 0.8, + }, + { + url: `${baseUrl}/landing/get-appointments`, + changeFrequency: "weekly", + priority: 0.6, + }, + ]; + // Legal pages (rarely change, low priority) const legalRoutes: SitemapRoute[] = [ { @@ -149,7 +165,7 @@ export async function GET() { console.error("Error generating sitemap:", error); } - const allRoutes = [...staticRoutes, ...videoRoutes, ...authRoutes, ...marketingRoutes, ...legalRoutes, ...serviceRoutes]; + const allRoutes = [...staticRoutes, ...videoRoutes, ...authRoutes, ...marketingRoutes, ...explorationRoutes, ...legalRoutes, ...serviceRoutes]; const sitemapXml = `