Skip to content

Commit a3926c0

Browse files
author
agent
committed
fix: canonical tags, sitemap URLs, and 404 SEO meta tags
- Add static canonical link tag fallback in index.html pointing to www.snapforest.in - Update all OG/meta/structured data URLs from snapforest.in to www.snapforest.in - Update sitemap.xml to use www.snapforest.in URLs and refresh lastmod dates - Update robots.txt sitemap reference to www.snapforest.in - Update Founder.tsx structured data to use www.snapforest.in - Add noindex,nofollow meta tags to 404 pages to prevent indexing - Add dynamic title and canonical updates for 404 pages
1 parent 3341c44 commit a3926c0

5 files changed

Lines changed: 102 additions & 70 deletions

File tree

index.html

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,31 @@
1313
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
1414
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
1515
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
16-
<!-- Canonical tag is dynamically set per page via React -->
16+
<!-- Canonical tag - static fallback for SSR/initial HTML, dynamically updated per page via React -->
17+
<link rel="canonical" href="https://www.snapforest.in/" />
1718

1819
<!-- Open Graph / Facebook -->
1920
<meta property="og:type" content="website" />
20-
<meta property="og:url" content="https://snapforest.in" />
21+
<meta property="og:url" content="https://www.snapforest.in" />
2122
<meta property="og:title" content="Snapforest - India's Viral Gen-Z Playground with 21 Mini Apps" />
2223
<meta property="og:description" content="India's most viral Gen-Z playground. Roast friends, generate memes, create shayaris, Bollywood dialogs, vibe scanner, aura calc & more. Zero login. Pure chaos." />
23-
<meta property="og:image" content="https://snapforest.in/logo.png?v=3" />
24+
<meta property="og:image" content="https://www.snapforest.in/logo.png?v=3" />
2425
<meta property="og:image:width" content="512" />
2526
<meta property="og:image:height" content="512" />
2627
<meta property="og:image:alt" content="Snapforest - Viral Playground for Gen-Z" />
2728
<meta property="og:site_name" content="Snapforest" />
2829
<meta property="og:locale" content="en_IN" />
2930
<meta property="article:author" content="Ved Prakash Arya" />
30-
<meta property="article:publisher" content="https://snapforest.in" />
31+
<meta property="article:publisher" content="https://www.snapforest.in" />
3132

3233
<!-- Twitter -->
3334
<meta name="twitter:card" content="summary_large_image" />
34-
<meta name="twitter:url" content="https://snapforest.in" />
35+
<meta name="twitter:url" content="https://www.snapforest.in" />
3536
<meta name="twitter:site" content="@snapforest_in" />
3637
<meta name="twitter:creator" content="@snapforest_in" />
3738
<meta name="twitter:title" content="Snapforest - Viral Playground for Gen-Z" />
3839
<meta name="twitter:description" content="15 addictive viral mini-apps. Roast your friends, scan your vibe, break fortune cookies. Zero login. Pure chaos." />
39-
<meta name="twitter:image" content="https://snapforest.in/logo.png?v=4" />
40+
<meta name="twitter:image" content="https://www.snapforest.in/logo.png?v=4" />
4041
<meta name="twitter:image:alt" content="Snapforest - Viral Playground for Gen-Z" />
4142

4243
<!-- Geo & Location -->
@@ -90,18 +91,18 @@
9091
"@graph": [
9192
{
9293
"@type": "Organization",
93-
"@id": "https://snapforest.in/#organization",
94+
"@id": "https://www.snapforest.in/#organization",
9495
"name": "Snapforest",
95-
"url": "https://snapforest.in",
96-
"logo": "https://snapforest.in/logo.png?v=4",
97-
"image": "https://snapforest.in/logo.png?v=4",
96+
"url": "https://www.snapforest.in",
97+
"logo": "https://www.snapforest.in/logo.png?v=4",
98+
"image": "https://www.snapforest.in/logo.png?v=4",
9899
"description": "India's next-generation content creation platform offering professional creator spaces and services.",
99100
"founder": {
100101
"@type": "Person",
101-
"@id": "https://snapforest.in/#ved-prakash-arya",
102+
"@id": "https://www.snapforest.in/#ved-prakash-arya",
102103
"name": "Ved Prakash Arya",
103-
"url": "https://snapforest.in/ved-prakash-arya",
104-
"image": "https://snapforest.in/founder-portrait.jpg",
104+
"url": "https://www.snapforest.in/ved-prakash-arya",
105+
"image": "https://www.snapforest.in/founder-portrait.jpg",
105106
"sameAs": [
106107
"https://www.linkedin.com/in/vedpra260",
107108
"https://github.com/vedparkasharya"
@@ -190,16 +191,16 @@
190191
},
191192
{
192193
"@type": "Person",
193-
"@id": "https://snapforest.in/#ved-prakash-arya",
194+
"@id": "https://www.snapforest.in/#ved-prakash-arya",
194195
"name": "Ved Prakash Arya",
195196
"givenName": "Ved Prakash",
196197
"familyName": "Arya",
197198
"jobTitle": "Founder & CEO",
198199
"worksFor": {
199-
"@id": "https://snapforest.in/#organization"
200+
"@id": "https://www.snapforest.in/#organization"
200201
},
201-
"url": "https://snapforest.in/ved-prakash-arya",
202-
"image": "https://snapforest.in/founder-portrait.jpg",
202+
"url": "https://www.snapforest.in/ved-prakash-arya",
203+
"image": "https://www.snapforest.in/founder-portrait.jpg",
203204
"sameAs": [
204205
"https://www.linkedin.com/in/vedpra260",
205206
"https://github.com/vedparkasharya"
@@ -219,45 +220,45 @@
219220
},
220221
{
221222
"@type": "WebSite",
222-
"@id": "https://snapforest.in/#website",
223-
"url": "https://snapforest.in",
223+
"@id": "https://www.snapforest.in/#website",
224+
"url": "https://www.snapforest.in",
224225
"name": "Snapforest",
225226
"publisher": {
226-
"@id": "https://snapforest.in/#organization"
227+
"@id": "https://www.snapforest.in/#organization"
227228
},
228229
"potentialAction": {
229230
"@type": "SearchAction",
230231
"target": {
231232
"@type": "EntryPoint",
232-
"urlTemplate": "https://snapforest.in/spaces?q={search_term_string}"
233+
"urlTemplate": "https://www.snapforest.in/spaces?q={search_term_string}"
233234
},
234235
"query-input": "required name=search_term_string"
235236
}
236237
},
237238
{
238239
"@type": "WebPage",
239-
"@id": "https://snapforest.in/#webpage",
240-
"url": "https://snapforest.in",
240+
"@id": "https://www.snapforest.in/#webpage",
241+
"url": "https://www.snapforest.in",
241242
"name": "Snapforest – Content Creation Platform",
242243
"isPartOf": {
243-
"@id": "https://snapforest.in/#website"
244+
"@id": "https://www.snapforest.in/#website"
244245
},
245246
"about": {
246-
"@id": "https://snapforest.in/#organization"
247+
"@id": "https://www.snapforest.in/#organization"
247248
},
248249
"primaryImageOfPage": {
249250
"@type": "ImageObject",
250-
"url": "https://snapforest.in/logo.png?v=4",
251+
"url": "https://www.snapforest.in/logo.png?v=4",
251252
"width": 512,
252253
"height": 512
253254
}
254255
},
255256
{
256257
"@type": "LocalBusiness",
257-
"@id": "https://snapforest.in/#localbusiness",
258+
"@id": "https://www.snapforest.in/#localbusiness",
258259
"name": "Snapforest",
259-
"image": "https://snapforest.in/logo.png?v=4",
260-
"url": "https://snapforest.in",
260+
"image": "https://www.snapforest.in/logo.png?v=4",
261+
"url": "https://www.snapforest.in",
261262
"telephone": "+91-6202692971",
262263
"email": "hello@snapforest.in",
263264
"address": {
@@ -322,7 +323,7 @@
322323
"@type": "ListItem",
323324
"position": 1,
324325
"name": "Home",
325-
"item": "https://snapforest.in"
326+
"item": "https://www.snapforest.in"
326327
}
327328
]
328329
}

public/robots.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Allow: /apple-touch-icon.png
77
Disallow: /dashboard/
88
Disallow: /login/
99

10-
Sitemap: https://snapforest.in/sitemap.xml
10+
Sitemap: https://www.snapforest.in/sitemap.xml
1111

1212
User-agent: Googlebot-Image
1313
Allow: /

public/sitemap.xml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,94 +3,94 @@
33
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
44
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
55
<url>
6-
<loc>https://snapforest.in/</loc>
7-
<lastmod>2026-04-25</lastmod>
6+
<loc>https://www.snapforest.in/</loc>
7+
<lastmod>2026-04-30</lastmod>
88
<changefreq>daily</changefreq>
99
<priority>1.0</priority>
1010
<image:image>
11-
<image:loc>https://snapforest.in/founder-portrait.jpg</image:loc>
11+
<image:loc>https://www.snapforest.in/founder-portrait.jpg</image:loc>
1212
<image:caption>Ved Prakash Arya - Founder of Snapforest</image:caption>
1313
<image:title>Ved Prakash Arya - BTech CSE AI Student and Founder</image:title>
1414
</image:image>
1515
<image:image>
16-
<image:loc>https://snapforest.in/hero-studio.jpg</image:loc>
16+
<image:loc>https://www.snapforest.in/hero-studio.jpg</image:loc>
1717
<image:caption>Snapforest Creator Studio</image:caption>
1818
</image:image>
1919
</url>
2020
<url>
21-
<loc>https://snapforest.in/spaces</loc>
22-
<lastmod>2026-04-25</lastmod>
21+
<loc>https://www.snapforest.in/spaces</loc>
22+
<lastmod>2026-04-30</lastmod>
2323
<changefreq>weekly</changefreq>
2424
<priority>0.9</priority>
2525
</url>
2626
<url>
27-
<loc>https://snapforest.in/ved-prakash-arya</loc>
28-
<lastmod>2026-04-25</lastmod>
27+
<loc>https://www.snapforest.in/ved-prakash-arya</loc>
28+
<lastmod>2026-04-30</lastmod>
2929
<changefreq>weekly</changefreq>
3030
<priority>0.9</priority>
3131
<image:image>
32-
<image:loc>https://snapforest.in/founder-portrait.jpg</image:loc>
32+
<image:loc>https://www.snapforest.in/founder-portrait.jpg</image:loc>
3333
<image:caption>Ved Prakash Arya - Founder of Snapforest - BTech CSE AI</image:caption>
3434
<image:title>Ved Prakash Arya Portfolio</image:title>
3535
</image:image>
3636
</url>
3737
<url>
38-
<loc>https://snapforest.in/spaces/podcast-room</loc>
39-
<lastmod>2026-04-25</lastmod>
38+
<loc>https://www.snapforest.in/spaces/podcast-room</loc>
39+
<lastmod>2026-04-30</lastmod>
4040
<changefreq>weekly</changefreq>
4141
<priority>0.8</priority>
4242
</url>
4343
<url>
44-
<loc>https://snapforest.in/spaces/interview-setup</loc>
45-
<lastmod>2026-04-25</lastmod>
44+
<loc>https://www.snapforest.in/spaces/interview-setup</loc>
45+
<lastmod>2026-04-30</lastmod>
4646
<changefreq>weekly</changefreq>
4747
<priority>0.8</priority>
4848
</url>
4949
<url>
50-
<loc>https://snapforest.in/spaces/content-studio</loc>
51-
<lastmod>2026-04-25</lastmod>
50+
<loc>https://www.snapforest.in/spaces/content-studio</loc>
51+
<lastmod>2026-04-30</lastmod>
5252
<changefreq>weekly</changefreq>
5353
<priority>0.8</priority>
5454
</url>
5555
<url>
56-
<loc>https://snapforest.in/spaces/selfie-point</loc>
57-
<lastmod>2026-04-25</lastmod>
56+
<loc>https://www.snapforest.in/spaces/selfie-point</loc>
57+
<lastmod>2026-04-30</lastmod>
5858
<changefreq>weekly</changefreq>
5959
<priority>0.8</priority>
6060
</url>
6161
<url>
62-
<loc>https://snapforest.in/spaces/gaming-room</loc>
63-
<lastmod>2026-04-25</lastmod>
62+
<loc>https://www.snapforest.in/spaces/gaming-room</loc>
63+
<lastmod>2026-04-30</lastmod>
6464
<changefreq>weekly</changefreq>
6565
<priority>0.8</priority>
6666
</url>
6767
<url>
68-
<loc>https://snapforest.in/spaces/editing-suite</loc>
69-
<lastmod>2026-04-25</lastmod>
68+
<loc>https://www.snapforest.in/spaces/editing-suite</loc>
69+
<lastmod>2026-04-30</lastmod>
7070
<changefreq>weekly</changefreq>
7171
<priority>0.8</priority>
7272
</url>
7373
<url>
74-
<loc>https://snapforest.in/booking</loc>
75-
<lastmod>2026-04-25</lastmod>
74+
<loc>https://www.snapforest.in/booking</loc>
75+
<lastmod>2026-04-30</lastmod>
7676
<changefreq>weekly</changefreq>
7777
<priority>0.8</priority>
7878
</url>
7979
<url>
80-
<loc>https://snapforest.in/contact</loc>
81-
<lastmod>2026-04-25</lastmod>
80+
<loc>https://www.snapforest.in/contact</loc>
81+
<lastmod>2026-04-30</lastmod>
8282
<changefreq>monthly</changefreq>
8383
<priority>0.7</priority>
8484
</url>
8585
<url>
86-
<loc>https://snapforest.in/articles</loc>
87-
<lastmod>2026-04-25</lastmod>
86+
<loc>https://www.snapforest.in/articles</loc>
87+
<lastmod>2026-04-30</lastmod>
8888
<changefreq>weekly</changefreq>
8989
<priority>0.7</priority>
9090
</url>
9191
<url>
92-
<loc>https://snapforest.in/careers</loc>
93-
<lastmod>2026-04-25</lastmod>
92+
<loc>https://www.snapforest.in/careers</loc>
93+
<lastmod>2026-04-30</lastmod>
9494
<changefreq>monthly</changefreq>
9595
<priority>0.6</priority>
9696
</url>

src/pages/Founder.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,30 +42,30 @@ const founderSchema = {
4242
"@graph": [
4343
{
4444
"@type": "ProfilePage",
45-
"@id": "https://snapforest.in/ved-prakash-arya#profilepage",
46-
"url": "https://snapforest.in/ved-prakash-arya",
45+
"@id": "https://www.snapforest.in/ved-prakash-arya#profilepage",
46+
"url": "https://www.snapforest.in/ved-prakash-arya",
4747
"name": "Ved Prakash Arya – Founder of Snapforest | BTech CSE (AI)",
4848
"description": "Ved Prakash Arya is the founder of Snapforest, India's next-generation content creation platform. BTech CSE (AI) student, CCNA certified, YBI Foundation intern.",
4949
"isPartOf": {
50-
"@id": "https://snapforest.in/#website"
50+
"@id": "https://www.snapforest.in/#website"
5151
},
5252
"mainEntity": {
53-
"@id": "https://snapforest.in/ved-prakash-arya#person"
53+
"@id": "https://www.snapforest.in/ved-prakash-arya#person"
5454
}
5555
},
5656
{
5757
"@type": "Person",
58-
"@id": "https://snapforest.in/ved-prakash-arya#person",
58+
"@id": "https://www.snapforest.in/ved-prakash-arya#person",
5959
"name": "Ved Prakash Arya",
6060
"givenName": "Ved Prakash",
6161
"familyName": "Arya",
6262
"alternateName": "Ved Arya",
6363
"jobTitle": "Founder & CEO",
6464
"worksFor": {
65-
"@id": "https://snapforest.in/#organization"
65+
"@id": "https://www.snapforest.in/#organization"
6666
},
67-
"url": "https://snapforest.in/ved-prakash-arya",
68-
"image": "https://snapforest.in/founder.jpg",
67+
"url": "https://www.snapforest.in/ved-prakash-arya",
68+
"image": "https://www.snapforest.in/founder.jpg",
6969
"sameAs": [
7070
"https://www.linkedin.com/in/vedpra260",
7171
"https://github.com/vedparkasharya"
@@ -113,13 +113,13 @@ const founderSchema = {
113113
"@type": "ListItem",
114114
"position": 1,
115115
"name": "Home",
116-
"item": "https://snapforest.in"
116+
"item": "https://www.snapforest.in"
117117
},
118118
{
119119
"@type": "ListItem",
120120
"position": 2,
121121
"name": "Ved Prakash Arya",
122-
"item": "https://snapforest.in/ved-prakash-arya"
122+
"item": "https://www.snapforest.in/ved-prakash-arya"
123123
}
124124
]
125125
}

src/pages/NotFound.tsx

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,39 @@ import { Link } from "react-router";
22
import { Button } from "@/components/ui/button";
33
import { motion } from "framer-motion";
44
import { ArrowLeft, Trees } from "lucide-react";
5+
import { useEffect } from "react";
56

67
export default function NotFound() {
8+
useEffect(() => {
9+
document.title = "404 - Page Not Found | Snapforest";
10+
11+
// Add noindex meta tag to prevent 404 pages from being indexed
12+
let meta = document.querySelector('meta[name="robots"]') as HTMLMetaElement | null;
13+
if (!meta) {
14+
meta = document.createElement('meta');
15+
meta.name = 'robots';
16+
document.head.appendChild(meta);
17+
}
18+
meta.content = 'noindex, nofollow';
19+
20+
// Update canonical to the 404 URL so Google knows this is intentionally a 404
21+
let canonical = document.querySelector('link[rel="canonical"]') as HTMLLinkElement | null;
22+
if (!canonical) {
23+
canonical = document.createElement('link');
24+
canonical.rel = 'canonical';
25+
document.head.appendChild(canonical);
26+
}
27+
canonical.href = window.location.href.split('?')[0];
28+
29+
return () => {
30+
// Cleanup: restore default robots meta when leaving 404 page
31+
const robotsMeta = document.querySelector('meta[name="robots"]') as HTMLMetaElement | null;
32+
if (robotsMeta) {
33+
robotsMeta.content = 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1';
34+
}
35+
};
36+
}, []);
37+
738
return (
839
<div className="min-h-screen flex flex-col items-center justify-center bg-muted/30">
940
<motion.div

0 commit comments

Comments
 (0)