sitemap
This commit is contained in:
@@ -125,6 +125,7 @@ export default function HomeClient({ lang, dict }: { lang: string; dict: any })
|
||||
alt="Moy Group Hero"
|
||||
fill
|
||||
priority
|
||||
sizes="100vw"
|
||||
className="object-cover object-center"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-b from-black/50 via-black/30 to-black/60" />
|
||||
@@ -302,6 +303,7 @@ export default function HomeClient({ lang, dict }: { lang: string; dict: any })
|
||||
src={venue.img}
|
||||
alt={venue.title}
|
||||
fill
|
||||
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 55vw, 50vw"
|
||||
className="object-cover transition-transform duration-700 group-hover:scale-105"
|
||||
/>
|
||||
<div className={`absolute inset-0 bg-gradient-to-t ${venue.color} to-transparent opacity-50`} />
|
||||
@@ -392,6 +394,7 @@ export default function HomeClient({ lang, dict }: { lang: string; dict: any })
|
||||
src="https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&q=60&w=1600"
|
||||
alt="Moy Group CTA Background"
|
||||
fill
|
||||
sizes="100vw"
|
||||
className="object-cover object-center"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -88,6 +88,7 @@ export default function GaleriClient({ lang, dict }: { lang: string; dict: any }
|
||||
src={img.src}
|
||||
alt={img.title}
|
||||
fill
|
||||
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
|
||||
className="object-cover transition-transform duration-700 group-hover:scale-110"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-[var(--color-moy-dark)]/0 group-hover:bg-[var(--color-moy-dark)]/50 transition-all duration-300 flex flex-col items-center justify-center gap-3">
|
||||
|
||||
@@ -5,6 +5,7 @@ import Footer from "../components/Footer";
|
||||
import { MotionProvider } from "../components/MotionProvider";
|
||||
import "../globals.css";
|
||||
import { Locale, getDictionary } from "../dictionaries";
|
||||
import Script from "next/script";
|
||||
|
||||
const cormorant = Cormorant_Garamond({
|
||||
variable: "--font-cormorant",
|
||||
@@ -59,10 +60,11 @@ export default async function RootLayout({
|
||||
<html
|
||||
lang={locale}
|
||||
className={`${cormorant.variable} ${montserrat.variable} h-full antialiased`}
|
||||
data-scroll-behavior="smooth"
|
||||
>
|
||||
<head>
|
||||
{/* VPS Panel Analytics */}
|
||||
<script defer src="https://panel.ayris.tech/api/analytics/script" data-domain="moygroup.com.tr"></script>
|
||||
<Script defer src="https://panel.ayris.tech/api/analytics/script" data-domain="moygroup.com.tr" />
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
|
||||
|
||||
@@ -49,6 +49,7 @@ export function ImageCard({ src, alt, title, subtitle, badge, className }: Image
|
||||
src={src}
|
||||
alt={alt}
|
||||
fill
|
||||
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"
|
||||
className="object-cover transition-transform duration-700 group-hover:scale-105"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-400" />
|
||||
|
||||
+28
-7
@@ -1,11 +1,32 @@
|
||||
import { MetadataRoute } from 'next'
|
||||
|
||||
|
||||
import type { MetadataRoute } from 'next';
|
||||
|
||||
const PROTECTED = ['/admin/', '/api/'];
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: {
|
||||
userAgent: '*',
|
||||
allow: '/',
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
userAgent: '*',
|
||||
allow: '/',
|
||||
disallow: PROTECTED,
|
||||
},
|
||||
// AI arama / citation botları
|
||||
{ userAgent: 'OAI-SearchBot', allow: '/', disallow: PROTECTED },
|
||||
{ userAgent: 'ChatGPT-User', allow: '/', disallow: PROTECTED },
|
||||
{ userAgent: 'PerplexityBot', allow: '/', disallow: PROTECTED },
|
||||
{ userAgent: 'Perplexity-User', allow: '/', disallow: PROTECTED },
|
||||
{ userAgent: 'Claude-SearchBot', allow: '/', disallow: PROTECTED },
|
||||
{ userAgent: 'Claude-User', allow: '/', disallow: PROTECTED },
|
||||
// Training crawler'ları engelle
|
||||
{ userAgent: 'GPTBot', disallow: '/' },
|
||||
{ userAgent: 'ClaudeBot', disallow: '/' },
|
||||
{ userAgent: 'Google-Extended', disallow: '/' },
|
||||
{ userAgent: 'CCBot', disallow: '/' },
|
||||
{ userAgent: 'Bytespider', disallow: '/' }, // ByteDance/TikTok
|
||||
{ userAgent: 'Meta-ExternalAgent', disallow: '/' }, // Meta training
|
||||
],
|
||||
sitemap: 'https://moygroup.com.tr/sitemap.xml',
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
+43
-11
@@ -1,24 +1,56 @@
|
||||
import { MetadataRoute } from 'next'
|
||||
import { i18n } from './dictionaries'
|
||||
import type { MetadataRoute } from 'next';
|
||||
import { i18n } from './dictionaries';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const baseUrl = 'https://moygroup.com.tr'
|
||||
const baseUrl = 'https://moygroup.com.tr';
|
||||
|
||||
// Public pages defined in the project
|
||||
const pages = ['', '/kurumsal', '/galeri', '/iletisim', '/menu', '/sss']
|
||||
// Dynamically scan the app/[lang] folder for pages
|
||||
const langDir = path.join(process.cwd(), 'app/[lang]');
|
||||
let subfolders: string[] = [];
|
||||
|
||||
const sitemapEntries: MetadataRoute.Sitemap = []
|
||||
try {
|
||||
if (fs.existsSync(langDir)) {
|
||||
subfolders = fs.readdirSync(langDir).filter((file) => {
|
||||
const filePath = path.join(langDir, file);
|
||||
if (fs.statSync(filePath).isDirectory()) {
|
||||
// Only include folders that contain a page.tsx file
|
||||
return fs.existsSync(path.join(filePath, 'page.tsx'));
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error reading directories for sitemap:', error);
|
||||
}
|
||||
|
||||
// Base page paths: home page ('') + dynamic folders
|
||||
const pages = ['', ...subfolders.map((folder) => `/${folder}`)];
|
||||
|
||||
for (const locale of i18n.locales) {
|
||||
for (const page of pages) {
|
||||
const sitemapEntries: MetadataRoute.Sitemap = [];
|
||||
|
||||
for (const page of pages) {
|
||||
// Generate language alternates for this page
|
||||
const alternatesLanguages: Record<string, string> = {};
|
||||
for (const locale of i18n.locales) {
|
||||
alternatesLanguages[locale] = `${baseUrl}/${locale}${page}`;
|
||||
}
|
||||
|
||||
// Add entries for all locales, providing localized alternates for each
|
||||
for (const locale of i18n.locales) {
|
||||
sitemapEntries.push({
|
||||
url: `${baseUrl}/${locale}${page}`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: page === '' ? 'weekly' : 'monthly',
|
||||
priority: page === '' ? 1 : 0.8,
|
||||
})
|
||||
priority: page === '' ? 1.0 : 0.8,
|
||||
alternates: {
|
||||
languages: alternatesLanguages,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return sitemapEntries
|
||||
return sitemapEntries;
|
||||
}
|
||||
|
||||
|
||||
Generated
-114
@@ -615,9 +615,6 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -634,9 +631,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -653,9 +647,6 @@
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -672,9 +663,6 @@
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -691,9 +679,6 @@
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -710,9 +695,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -729,9 +711,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -748,9 +727,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -767,9 +743,6 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -792,9 +765,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -817,9 +787,6 @@
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -842,9 +809,6 @@
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -867,9 +831,6 @@
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -892,9 +853,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -917,9 +875,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -942,9 +897,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1160,9 +1112,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1179,9 +1128,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1198,9 +1144,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1217,9 +1160,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1458,9 +1398,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1478,9 +1415,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1498,9 +1432,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -1518,9 +1449,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2071,9 +1999,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2088,9 +2013,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2105,9 +2027,6 @@
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2122,9 +2041,6 @@
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2139,9 +2055,6 @@
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2156,9 +2069,6 @@
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2173,9 +2083,6 @@
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2190,9 +2097,6 @@
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2207,9 +2111,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2224,9 +2125,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -4899,9 +4797,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -4923,9 +4818,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -4947,9 +4839,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -4971,9 +4860,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
|
||||
Reference in New Issue
Block a user