SEO Management
import { Metadata } from 'next';export async function generateMetadata() {}export async function generateMetadata({ params, searchParams }) {}Last updated
Was this helpful?
Was this helpful?
export async function generateMetadata({ params, searchParams }: PageProps<{ pk: number }>) {}const result: Metadata = {
title: 'title',
description: 'description',
keywords: 'keywords',
viewport:
'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0',
twitter: {
title: 'title',
description: 'description'
},
alternates: {
canonical: 'canonicalUrl'
},
openGraph: {
title: 'title',
description: 'description',
images: 'image'
},
};export async function generateMetadata({
params,
searchParams
}: PageProps<{ pk: number; locale: string }>) {
const nextHeaders = pzUrl();
const pageUrl = new URL(
nextHeaders.get('pz-url') ?? process.env.NEXT_PUBLIC_URL
);
const canonicalUrl = `${process.env.NEXT_PUBLIC_URL}${pageUrl?.pathname}`;
let result: Metadata = {};
try {
const {
data: { product }
} = await getProductData({
pk: params.pk,
searchParams
});
result = {
title: product.name,
description: product.attributes.description,
twitter: {
title: product.name,
description: product.attributes.description
},
openGraph: {
title: product.name,
description: product.attributes.description,
images: product.productimage_set?.map((item) => ({
url: item.image
}))
},
alternates: {
canonical: canonicalUrl
}
};
// eslint-disable-next-line no-empty
} catch (error) {}
return result;
}