Seo Testing updated

This commit is contained in:
akash 2025-12-09 22:31:43 +05:30
parent ecdea2c3ff
commit 522f7496bb
25 changed files with 96 additions and 137 deletions

View File

@ -1,37 +1,40 @@
# Antalya Restaurant - Apache Configuration # Antalya Restaurant - Apache Configuration
# SIMPLIFIED - Fixes 404 errors on refresh/new tab 100% # FIXED - Handles Next.js static export with trailing slashes 100%
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine On RewriteEngine On
RewriteBase / RewriteBase /
# Prevent directory listing # Prevent directory listing and disable MultiViews (Critical for Next.js)
Options -Indexes Options -Indexes
Options +FollowSymLinks
Options -MultiViews
# Skip if file exists # 1. Custom 404 handling
ErrorDocument 404 /404.html
# 2. Handle trailing slashes strictly
# If request is a file, serve it directly
RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L] RewriteRule ^ - [L]
# Skip if directory exists # If request is a directory, serve the index.html inside it
RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L] RewriteRule ^(.*[^/])$ $1/ [R=301,L]
# Add trailing slash if missing and directory exists # Rewrite all folder requests to their index.html
RewriteCond %{REQUEST_URI} !(.*)/$ RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/ -d RewriteRule ^(.*)/$ $1/index.html [L]
RewriteRule ^(.*)$ $1/ [R=301,L]
# Serve index.html from directory if it exists # 4. Fallback for clean URLs (if folder detection fails but index.html exists)
RewriteCond %{REQUEST_URI} (.*)/$ RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}index.html -f RewriteRule ^(.*)/$ $1/index.html [L]
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}%{REQUEST_URI}index.html [L]
# Fallback: try to serve as directory with index.html # 4. Fallback for clean URLs (just in case)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.html -f RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}%{REQUEST_URI}/index.html [L] RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
# Custom 404 page RewriteRule ^(.*)$ $1.html [L]
ErrorDocument 404 /404.html
</IfModule> </IfModule>
# Security Headers # Security Headers
@ -39,19 +42,24 @@
Header set X-Content-Type-Options "nosniff" Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "DENY" Header set X-Frame-Options "DENY"
Header set X-XSS-Protection "1; mode=block" Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule> </IfModule>
# Cache Control # Cache Control
<IfModule mod_expires.c> <IfModule mod_expires.c>
ExpiresActive On ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year" ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year" ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year" ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year" ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
</IfModule> </IfModule>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 991 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 944 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 836 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 765 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 KiB

View File

@ -18,7 +18,7 @@
<remove fileExtension=".woff2" /> <remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" /> <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
<remove fileExtension=".js" /> <remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="application/javascript" /> <mimeMap fileExtension=".js" mimeType="text/javascript" />
<remove fileExtension=".css" /> <remove fileExtension=".css" />
<mimeMap fileExtension=".css" mimeType="text/css" /> <mimeMap fileExtension=".css" mimeType="text/css" />
</staticContent> </staticContent>
@ -28,13 +28,20 @@
</httpErrors> </httpErrors>
<rewrite> <rewrite>
<rules> <rules>
<rule name="Handling Trailing Slashes" stopProcessing="false"> <rule name="Trailing Slash Enforce" stopProcessing="true">
<match url="(.*)" /> <match url="(.*[^/])$" />
<conditions> <conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions> </conditions>
<action type="Rewrite" url="{R:1}" /> <action type="Redirect" redirectType="Permanent" url="{R:1}/" />
</rule>
<rule name="React Routes" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}index.html" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="{R:1}/index.html" />
</rule> </rule>
</rules> </rules>
</rewrite> </rewrite>

View File

@ -1,55 +1 @@
Page URL,Image Src,Alt Text,Issue Type Page URL,Image Src,Alt Text,Issue Type
"http://localhost:3000/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"https://antalya.metatronnest.com/book-a-table/","","Antalya Restaurant","Duplicate Alt (3 times)"
"https://antalya.metatronnest.com/book-a-table/","","Phone","Duplicate Alt (2 times)"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/about-antalya-restaurant/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/about-antalya-restaurant/","","Antalya Dinner Icon","Duplicate Alt (3 times)"
"http://localhost:3000/about-antalya-restaurant/","","Antalya Cutlery Icon","Duplicate Alt (3 times)"
"http://localhost:3000/antalya-restaurant-menu/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-restaurant-menu/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-restaurant-menu/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/antalya-restaurant-gallery/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-restaurant-gallery/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-restaurant-gallery/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/catering-services-ontario/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/book-a-table/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/book-a-table/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/book-a-table/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/","","Antalya Restaurant","Duplicate Alt (3 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/","","icon","Duplicate Alt (2 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/","","Phone","Duplicate Alt (2 times)"
"http://localhost:3000/antalya-turkish-food-blog/","http://localhost:3000/images/dinner.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-turkish-food-blog/","http://localhost:3000/images/eat.png","(empty)","Empty Alt"
"http://localhost:3000/antalya-turkish-food-blog/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/antalya-turkish-food-blog/the-art-of-turkish-tea/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/antalya-turkish-food-blog/secrets-of-charcoal-grilling/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"http://localhost:3000/antalya-turkish-food-blog/a-taste-of-sweet-legacy/","","Antalya Restaurant Header Logo","Duplicate Alt (2 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/the-art-of-turkish-tea/","","Antalya Restaurant","Duplicate Alt (3 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/the-art-of-turkish-tea/","","Phone","Duplicate Alt (2 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/secrets-of-charcoal-grilling/","","Antalya Restaurant","Duplicate Alt (3 times)"
"https://antalya.metatronnest.com/antalya-turkish-food-blog/secrets-of-charcoal-grilling/","","Phone","Duplicate Alt (2 times)"

1 Page URL Image Src Alt Text Issue Type
http://localhost:3000/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/ http://localhost:3000/images/eat.png (empty) Empty Alt
https://antalya.metatronnest.com/book-a-table/ Antalya Restaurant Duplicate Alt (3 times)
https://antalya.metatronnest.com/book-a-table/ Phone Duplicate Alt (2 times)
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/about-antalya-restaurant/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/about-antalya-restaurant/ Antalya Dinner Icon Duplicate Alt (3 times)
http://localhost:3000/about-antalya-restaurant/ Antalya Cutlery Icon Duplicate Alt (3 times)
http://localhost:3000/antalya-restaurant-menu/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/antalya-restaurant-menu/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/antalya-restaurant-menu/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/antalya-restaurant-gallery/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/antalya-restaurant-gallery/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/antalya-restaurant-gallery/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/catering-services-ontario/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/book-a-table/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/book-a-table/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/book-a-table/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/ Antalya Restaurant Duplicate Alt (3 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/ icon Duplicate Alt (2 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/ Phone Duplicate Alt (2 times)
http://localhost:3000/antalya-turkish-food-blog/ http://localhost:3000/images/dinner.png (empty) Empty Alt
http://localhost:3000/antalya-turkish-food-blog/ http://localhost:3000/images/eat.png (empty) Empty Alt
http://localhost:3000/antalya-turkish-food-blog/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/antalya-turkish-food-blog/the-art-of-turkish-tea/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/antalya-turkish-food-blog/secrets-of-charcoal-grilling/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
http://localhost:3000/antalya-turkish-food-blog/a-taste-of-sweet-legacy/ Antalya Restaurant Header Logo Duplicate Alt (2 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/the-art-of-turkish-tea/ Antalya Restaurant Duplicate Alt (3 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/the-art-of-turkish-tea/ Phone Duplicate Alt (2 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/secrets-of-charcoal-grilling/ Antalya Restaurant Duplicate Alt (3 times)
https://antalya.metatronnest.com/antalya-turkish-food-blog/secrets-of-charcoal-grilling/ Phone Duplicate Alt (2 times)

View File

@ -1,6 +1,5 @@
'use client' 'use client'
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import FAQ from "@/components/FAQ/FAQ"; import FAQ from "@/components/FAQ/FAQ";
import Image from "next/image"; import Image from "next/image";
@ -85,7 +84,7 @@ export default function AboutContent() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
{/* Hero Banner */} {/* Hero Banner */}
<motion.section <motion.section
@ -113,9 +112,9 @@ export default function AboutContent() {
> >
<motion.div className={styles.textBlock} variants={slideInLeft}> <motion.div className={styles.textBlock} variants={slideInLeft}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="Antalya Dinner Icon" width={24} height={24} /> <Image src="/images/dinner.png" alt="Our Story Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="Antalya Cutlery Icon" width={24} height={24} /> <Image src="/images/eat.png" alt="Our Story Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.sectionTitle}>Our Story</h2> <h2 className={styles.sectionTitle}>Our Story</h2>
<p className={styles.text}> <p className={styles.text}>
@ -140,9 +139,9 @@ export default function AboutContent() {
{/* Features Section - With real images */} {/* Features Section - With real images */}
<section className={`${styles.section} ${styles.featuresSection}`}> <section className={`${styles.section} ${styles.featuresSection}`}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="Antalya Dinner Icon" width={24} height={24} /> <Image src="/images/dinner.png" alt="Features Section Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="Antalya Cutlery Icon" width={24} height={24} /> <Image src="/images/eat.png" alt="Features Section Cutlery Icon" width={24} height={24} />
</div> </div>
<motion.h2 <motion.h2
className={styles.sectionTitleCenter} className={styles.sectionTitleCenter}
@ -191,9 +190,9 @@ export default function AboutContent() {
</motion.div> </motion.div>
<motion.div className={styles.textBlock} variants={slideInRight}> <motion.div className={styles.textBlock} variants={slideInRight}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Why Choose Us Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Why Choose Us Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.sectionTitle}>Why Choose Us</h2> <h2 className={styles.sectionTitle}>Why Choose Us</h2>
<p className={styles.text}> <p className={styles.text}>
@ -209,9 +208,9 @@ export default function AboutContent() {
{/* Testimonials Section - Auto Slider */} {/* Testimonials Section - Auto Slider */}
<section className={`${styles.section} ${styles.testimonialsSection}`}> <section className={`${styles.section} ${styles.testimonialsSection}`}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="Antalya Dinner Icon" width={24} height={24} /> <Image src="/images/dinner.png" alt="Testimonials Section Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="Antalya Cutlery Icon" width={24} height={24} /> <Image src="/images/eat.png" alt="Testimonials Section Cutlery Icon" width={24} height={24} />
</div> </div>
<motion.h2 <motion.h2
className={styles.sectionTitleCenter} className={styles.sectionTitleCenter}
@ -308,9 +307,9 @@ export default function AboutContent() {
</motion.div> </motion.div>
<motion.div className={styles.faqContentBlock} variants={slideInRight}> <motion.div className={styles.faqContentBlock} variants={slideInRight}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="FAQ Section Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="FAQ Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.faqTitle}>FAQ Your Questions Answered</h2> <h2 className={styles.faqTitle}>FAQ Your Questions Answered</h2>
<p className={styles.faqSubtitle}> <p className={styles.faqSubtitle}>
@ -336,9 +335,9 @@ export default function AboutContent() {
> >
<div className={styles.ctaOverlay}> <div className={styles.ctaOverlay}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="Antalya Dinner Icon" width={24} height={24} /> <Image src="/images/dinner.png" alt="About CTA Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="Antalya Cutlery Icon" width={24} height={24} /> <Image src="/images/eat.png" alt="About CTA Cutlery Icon" width={24} height={24} />
</div> </div>
<motion.h2 <motion.h2
className={styles.ctaTitle} className={styles.ctaTitle}

View File

@ -1,7 +1,7 @@
'use client' 'use client'
import { useState } from 'react'; import { useState } from 'react';
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import Image from "next/image"; import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
@ -92,7 +92,7 @@ export default function GalleryContent() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
<motion.section <motion.section
className={styles.hero} className={styles.hero}
@ -110,9 +110,9 @@ export default function GalleryContent() {
<section className={styles.sectionHeading}> <section className={styles.sectionHeading}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="Antalya Dinner Icon" width={24} height={24} /> <Image src="/images/dinner.png" alt="Gallery Section Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="Antalya Cutlery Icon" width={24} height={24} /> <Image src="/images/eat.png" alt="Gallery Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading}>A Visual Journey Through Authentic Turkish Dining</h2> <h2 className={styles.mainHeading}>A Visual Journey Through Authentic Turkish Dining</h2>
<p className={styles.description}> <p className={styles.description}>

View File

@ -1,7 +1,6 @@
'use client' 'use client'
import { useState } from 'react'; import { useState } from 'react';
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import Image from "next/image"; import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
@ -74,7 +73,6 @@ export default function MenuPage() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
<motion.section <motion.section
className={styles.hero} className={styles.hero}
@ -92,9 +90,9 @@ export default function MenuPage() {
<section className={styles.sectionHeading}> <section className={styles.sectionHeading}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Menu Section Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Menu Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading}>Delicious Turkish Flavours, Mezze, and More</h2> <h2 className={styles.mainHeading}>Delicious Turkish Flavours, Mezze, and More</h2>
<p className={styles.description}> <p className={styles.description}>

View File

@ -1,6 +1,6 @@
'use client' 'use client'
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import Image from "next/image"; import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
@ -48,7 +48,7 @@ export default function BlogContent() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
<motion.section <motion.section
className={styles.hero} className={styles.hero}
@ -66,9 +66,9 @@ export default function BlogContent() {
<section className={styles.sectionHeading}> <section className={styles.sectionHeading}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Blog Section Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Blog Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading}>Stories Crafted Through Flavor & Celebration</h2> <h2 className={styles.mainHeading}>Stories Crafted Through Flavor & Celebration</h2>
<p className={styles.description}> <p className={styles.description}>

View File

@ -1,4 +1,4 @@
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import FAQ from "@/components/FAQ/FAQ"; import FAQ from "@/components/FAQ/FAQ";
import Image from "next/image"; import Image from "next/image";
@ -52,7 +52,7 @@ export default async function BlogDetailPage({ params }: { params: Promise<{ id:
if (!blog) { if (!blog) {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
<div className={styles.errorContainer}> <div className={styles.errorContainer}>
<h1 className={styles.errorTitle}>Blog Post Not Found</h1> <h1 className={styles.errorTitle}>Blog Post Not Found</h1>
<Link href="/antalya-turkish-food-blog" className={styles.backLink}>Back to Blog</Link> <Link href="/antalya-turkish-food-blog" className={styles.backLink}>Back to Blog</Link>
@ -64,7 +64,7 @@ export default async function BlogDetailPage({ params }: { params: Promise<{ id:
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
{/* Banner Section */} {/* Banner Section */}
<section className={styles.hero} style={{ backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url(${blog.banner})` }}> <section className={styles.hero} style={{ backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url(${blog.banner})` }}>
@ -91,6 +91,7 @@ export default async function BlogDetailPage({ params }: { params: Promise<{ id:
width={1200} width={1200}
height={600} height={600}
style={{ objectFit: 'cover' }} style={{ objectFit: 'cover' }}
loading="lazy"
/> />
</div> </div>
)} )}

View File

@ -3,7 +3,7 @@
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import ReCAPTCHA from "react-google-recaptcha"; import ReCAPTCHA from "react-google-recaptcha";
import axios from "axios"; import axios from "axios";
import Navbar from "@/components/Navbar/Navbar";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import Image from "next/image"; import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
@ -136,7 +136,7 @@ export default function ContactContent() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
<motion.section <motion.section
className={styles.hero} className={styles.hero}
@ -169,9 +169,9 @@ export default function ContactContent() {
transition={{ duration: 0.8 }} transition={{ duration: 0.8 }}
> >
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Contact Section Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Contact Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.title}>Book a Table</h2> <h2 className={styles.title}>Book a Table</h2>

View File

@ -2,7 +2,7 @@
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import { motion } from 'framer-motion' import { motion } from 'framer-motion'
import Navbar from '@/components/Navbar/Navbar'
import Footer from '@/components/Footer/Footer' import Footer from '@/components/Footer/Footer'
import Link from 'next/link' import Link from 'next/link'
import Image from 'next/image' import Image from 'next/image'
@ -112,7 +112,7 @@ export default function CateringContent() {
return ( return (
<main className={styles.main}> <main className={styles.main}>
<Navbar />
{/* Page Hero */} {/* Page Hero */}
<section className={styles.hero}> <section className={styles.hero}>
@ -135,9 +135,9 @@ export default function CateringContent() {
> >
<section className={styles.sectionHeading1}> <section className={styles.sectionHeading1}>
<div className={styles.smallHeading1} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading1} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Catering Event Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Catering Event Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading1}>Exceptional Turkish Catering for Every Occasion</h2> <h2 className={styles.mainHeading1}>Exceptional Turkish Catering for Every Occasion</h2>
<p className={styles.description1}> <p className={styles.description1}>
@ -267,9 +267,9 @@ export default function CateringContent() {
{/* Right Side: Content */} {/* Right Side: Content */}
<motion.div className={styles.welcomeContent} variants={slideInRight}> <motion.div className={styles.welcomeContent} variants={slideInRight}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Catering Visualization Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Catering Visualization Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeadingSection}>A Visual Journey Through Antalya Catering</h2> <h2 className={styles.mainHeadingSection}>A Visual Journey Through Antalya Catering</h2>
{/* <div className={styles.welcomeDivider}> {/* <div className={styles.welcomeDivider}>
@ -299,9 +299,9 @@ export default function CateringContent() {
<motion.div className={styles.servingContent} variants={slideInLeft}> <motion.div className={styles.servingContent} variants={slideInLeft}>
<section className={styles.sectionHeading3}> <section className={styles.sectionHeading3}>
<div className={styles.smallHeading3} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading3} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Culinary Experience Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Culinary Experience Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
</section> </section>
<h2 className={styles.mainHeading}>A Culinary Experience Crafted for Your Event</h2> <h2 className={styles.mainHeading}>A Culinary Experience Crafted for Your Event</h2>
@ -356,9 +356,9 @@ export default function CateringContent() {
> >
<motion.span className={styles.storyLabel} variants={fadeInUp}> <motion.span className={styles.storyLabel} variants={fadeInUp}>
<div className={styles.smallHeading3} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading3} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Success Story Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Success Story Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
</motion.span> </motion.span>
<motion.h2 className={styles.storyTitle} variants={fadeInUp}> <motion.h2 className={styles.storyTitle} variants={fadeInUp}>
@ -422,9 +422,9 @@ export default function CateringContent() {
{/* Right Side: Content */} {/* Right Side: Content */}
<motion.div className={styles.aboutContent} variants={slideInRight}> <motion.div className={styles.aboutContent} variants={slideInRight}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'start', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="About Catering Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="About Catering Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading}> <h2 className={styles.mainHeading}>
Antalya - One of Ontarios Finest Catering Experiences Antalya - One of Ontarios Finest Catering Experiences

View File

@ -41,9 +41,9 @@ export default function Blogs() {
return ( return (
<section className={styles.section} id="blog"> <section className={styles.section} id="blog">
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Home Blog Section Decorative Dinner Icon" width={24} height={24} />
<span>TASTE JOURNAL</span> <span>TASTE JOURNAL</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Home Blog Section Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.title}>Our Blogs</h2> <h2 className={styles.title}>Our Blogs</h2>

View File

@ -132,9 +132,9 @@ export default function BookTable() {
<div className={styles.formContainer}> <div className={styles.formContainer}>
<div className={styles.content}> <div className={styles.content}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Home Reservation Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Home Reservation Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.title}>Book A Table</h2> <h2 className={styles.title}>Book A Table</h2>

View File

@ -40,9 +40,9 @@ export default function Gallery() {
return ( return (
<section className={styles.section}> <section className={styles.section}>
<div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}> <div className={styles.smallHeading} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}>
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Home Gallery Decorative Dinner Icon" width={24} height={24} />
<span>GALLERY</span> <span>GALLERY</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Home Gallery Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.title}>Flavour in Frames <h2 className={styles.title}>Flavour in Frames
</h2> </h2>

View File

@ -41,9 +41,9 @@ export default function HomeMenu() {
className={styles.smallHeading} className={styles.smallHeading}
style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}
> >
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Home Menu Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Home Menu Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<h2 className={styles.mainHeading}>Explore Our Menu</h2> <h2 className={styles.mainHeading}>Explore Our Menu</h2>
<p className={styles.description}> <p className={styles.description}>

View File

@ -81,7 +81,7 @@ export default function Navbar() {
<Link href="/" onClick={closeMenu}> <Link href="/" onClick={closeMenu}>
<Image <Image
src="/images/header-logo.png" src="/images/header-logo.png"
alt="Antalya Restaurant Header Logo" alt="Antalya Restaurant Navigation Logo"
width={200} width={200}
height={200} height={200}
className={styles.logoImage} className={styles.logoImage}

View File

@ -54,9 +54,9 @@ export default function PopularDishes() {
className={styles.smallHeading} className={styles.smallHeading}
style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }} style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px' }}
> >
<Image src="/images/dinner.png" alt="" width={24} height={24} /> <Image src="/images/dinner.png" alt="Popular Dishes Decorative Dinner Icon" width={24} height={24} />
<span>ANTALYA</span> <span>ANTALYA</span>
<Image src="/images/eat.png" alt="" width={24} height={24} /> <Image src="/images/eat.png" alt="Popular Dishes Decorative Cutlery Icon" width={24} height={24} />
</div> </div>
<motion.h2 <motion.h2
className={styles.title} className={styles.title}

View File

@ -327,7 +327,7 @@ export const blogData = [
}, },
{ {
id: 3, id: 3,
slug: 'a-taste-of-sweet-legacy-turkish-baklava-desserts', slug: 'a-taste-of-sweet-legacy',
title: 'A Taste of Sweet Legacy', title: 'A Taste of Sweet Legacy',
metatitle: 'A Taste of Sweet Legacy | Turkish Baklava & Desserts', metatitle: 'A Taste of Sweet Legacy | Turkish Baklava & Desserts',
metadesc: 'Discover the rich heritage of Turkish desserts. Explore the art of baklava, its cultural traditions, how sweet rituals connect people across generations.', metadesc: 'Discover the rich heritage of Turkish desserts. Explore the art of baklava, its cultural traditions, how sweet rituals connect people across generations.',