mirror of
https://github.com/dyzulk/trustlab.git
synced 2026-01-26 13:32:06 +07:00
feat: implement basic seo (metadata, sitemap, robots)
This commit is contained in:
@@ -11,11 +11,57 @@ import { I18nProvider } from '@/components/providers/I18nProvider';
|
|||||||
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
|
metadataBase: new URL(process.env.NEXT_PUBLIC_APP_URL || 'https://trustlab.dyzulk.com'),
|
||||||
title: {
|
title: {
|
||||||
template: '%s | TrustLab - PKI & Certificate Management',
|
template: '%s | TrustLab - PKI & Certificate Management',
|
||||||
default: 'TrustLab - PKI & Certificate Management',
|
default: 'TrustLab - Secure PKI & Certificate Management System',
|
||||||
|
},
|
||||||
|
description: 'Enterprise-grade Certificate Authority and PKI Management System. Securely manage SSL/TLS certificates, internal CAs, and digital signatures.',
|
||||||
|
keywords: ['PKI', 'Certificate Authority', 'SSL', 'TLS', 'Security', 'Encryption', 'DevOps', 'Certificate Management'],
|
||||||
|
authors: [{ name: 'TrustLab Team' }],
|
||||||
|
creator: 'TrustLab',
|
||||||
|
publisher: 'TrustLab',
|
||||||
|
robots: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
googleBot: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
'max-video-preview': -1,
|
||||||
|
'max-image-preview': 'large',
|
||||||
|
'max-snippet': -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
openGraph: {
|
||||||
|
type: 'website',
|
||||||
|
locale: 'en_US',
|
||||||
|
url: 'https://trustlab.dyzulk.com',
|
||||||
|
siteName: 'TrustLab',
|
||||||
|
title: 'TrustLab - Secure PKI & Certificate Management',
|
||||||
|
description: 'Enterprise-grade Certificate Authority and PKI Management System.',
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: '/banner.png',
|
||||||
|
width: 1200,
|
||||||
|
height: 630,
|
||||||
|
alt: 'TrustLab Platform',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
twitter: {
|
||||||
|
card: 'summary_large_image',
|
||||||
|
title: 'TrustLab - PKI & Certificate Management',
|
||||||
|
description: 'Securely manage SSL/TLS certificates and internal CAs with TrustLab.',
|
||||||
|
images: ['/banner.png'],
|
||||||
|
creator: '@dyzulk',
|
||||||
|
},
|
||||||
|
icons: {
|
||||||
|
icon: '/favicon.ico',
|
||||||
|
shortcut: '/favicon.ico',
|
||||||
|
},
|
||||||
|
verification: {
|
||||||
|
google: 'verification_code_placeholder', // User needs to replace this
|
||||||
},
|
},
|
||||||
description: 'Advanced Certificate Authority and PKI Management System',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
|||||||
14
src/app/robots.ts
Normal file
14
src/app/robots.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { MetadataRoute } from 'next';
|
||||||
|
|
||||||
|
export default function robots(): MetadataRoute.Robots {
|
||||||
|
const baseUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://trustlab.dyzulk.com';
|
||||||
|
|
||||||
|
return {
|
||||||
|
rules: {
|
||||||
|
userAgent: '*',
|
||||||
|
allow: '/',
|
||||||
|
disallow: ['/dashboard/', '/api/'],
|
||||||
|
},
|
||||||
|
sitemap: `${baseUrl}/sitemap.xml`,
|
||||||
|
};
|
||||||
|
}
|
||||||
44
src/app/sitemap.ts
Normal file
44
src/app/sitemap.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import { MetadataRoute } from 'next';
|
||||||
|
|
||||||
|
export default function sitemap(): MetadataRoute.Sitemap {
|
||||||
|
const baseUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://trustlab.dyzulk.com';
|
||||||
|
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
url: baseUrl,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'daily',
|
||||||
|
priority: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}/signin`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'monthly',
|
||||||
|
priority: 0.8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}/signup`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'monthly',
|
||||||
|
priority: 0.8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}/contact`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'monthly',
|
||||||
|
priority: 0.7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}/tools/key-generator`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.9,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}/tools/chat-id`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.9,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user