initial commit: rocket.new export of broadcastbeat
This commit is contained in:
41
src/app/sitemap.ts
Normal file
41
src/app/sitemap.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { MetadataRoute } from 'next';
|
||||
import { sampleArticles } from '@/lib/articles/sampleArticles';
|
||||
|
||||
const BASE_URL = process.env.NEXT_PUBLIC_SITE_URL || 'https://broadcastb5322.builtwithrocket.new';
|
||||
|
||||
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
||||
// Static pages
|
||||
const staticPages: MetadataRoute.Sitemap = [
|
||||
{ url: `${BASE_URL}/`, lastModified: new Date(), changeFrequency: 'daily', priority: 1.0 },
|
||||
{ url: `${BASE_URL}/home-page`, lastModified: new Date(), changeFrequency: 'daily', priority: 1.0 },
|
||||
{ url: `${BASE_URL}/news`, lastModified: new Date(), changeFrequency: 'hourly', priority: 0.9 },
|
||||
{ url: `${BASE_URL}/gear`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.8 },
|
||||
{ url: `${BASE_URL}/technology`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.8 },
|
||||
{ url: `${BASE_URL}/show-coverage`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8 },
|
||||
{ url: `${BASE_URL}/forum`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.8 },
|
||||
{ url: `${BASE_URL}/about`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.6 },
|
||||
{ url: `${BASE_URL}/advertise`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.6 },
|
||||
{ url: `${BASE_URL}/contributor`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.5 },
|
||||
{ url: `${BASE_URL}/marketplace`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.7 },
|
||||
{ url: `${BASE_URL}/marketplace/jobs`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.7 },
|
||||
{ url: `${BASE_URL}/marketplace/gigs`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.7 },
|
||||
{ url: `${BASE_URL}/privacy`, lastModified: new Date(), changeFrequency: 'yearly', priority: 0.3 },
|
||||
{ url: `${BASE_URL}/terms`, lastModified: new Date(), changeFrequency: 'yearly', priority: 0.3 },
|
||||
];
|
||||
|
||||
// Dynamic article pages — all published articles
|
||||
const articlePages: MetadataRoute.Sitemap = sampleArticles.map((article) => ({
|
||||
url: `${BASE_URL}/articles/${article.slug}`,
|
||||
lastModified: new Date(article.date) || new Date(),
|
||||
changeFrequency: 'monthly' as const,
|
||||
priority: 0.7,
|
||||
}));
|
||||
|
||||
// Attempt to ping Google Search Console (fire-and-forget, non-blocking)
|
||||
const sitemapUrl = encodeURIComponent(`${BASE_URL}/sitemap.xml`);
|
||||
fetch(`https://www.google.com/ping?sitemap=${sitemapUrl}`, { method: 'GET' }).catch(() => {
|
||||
// Silently ignore — ping is best-effort
|
||||
});
|
||||
|
||||
return [...staticPages, ...articlePages];
|
||||
}
|
||||
Reference in New Issue
Block a user