Skip to content

Commit f852c31

Browse files
committed
improved seo
1 parent cd30484 commit f852c31

File tree

14 files changed

+245
-53
lines changed

14 files changed

+245
-53
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/node_modules
22
.env
3-
.github/copilot-instructions.md
3+
.github/copilot-instructions.md
4+
/dist

index.html

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,29 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66

7-
<title>GoBuild | Hire Construction labour in Jammu & Delhi</title>
8-
<meta name="description" content="GoBuild is a trusted startup providing verified labour, masons, and helpers for construction and repair work in Jammu and Delhi. Hire professionals easily and affordably." />
9-
<meta name="keywords" content="labour in Jammu, hire masons in Delhi, construction workers, helpers for hire,Gobuild, GoBuild startup, construction service providers in Jammu,construction service providers in Delhi" />
7+
<title>GoBuild | Hire Construction labour in Jammu & Delhi</title>
8+
<meta name="description" content="GoBuild is a trusted startup providing verified labour, masons, carpenters, electricians and helpers for construction and repair work in Jammu and Delhi. Hire professionals easily, safely, and affordably." />
9+
<meta name="keywords" content="GoBuild, construction labour, hire masons, hire carpenters, hire electricians, helpers for hire, labour in Jammu, labour in Delhi, construction workers, verified professionals" />
10+
<meta name="theme-color" content="#0ea5a4" />
1011
<meta name="author" content="GoBuild" />
1112

1213
<meta name="robots" content="index, follow" />
1314

1415
<meta property="og:title" content="GoBuild | Verified Construction Labour in Jammu & Delhi" />
1516
<meta property="og:description" content="Hire skilled labour, masons, and helpers for your construction needs in Jammu and Delhi through GoBuild - trusted, fast, and affordable." />
16-
<meta property="og:image" content="/public/GoBuild.png" />
17+
<meta property="og:image" content="/GoBuild.png" />
1718
<meta property="og:url" content="https://www.gobuild.in/" />
1819
<meta property="og:type" content="website" />
1920

2021
<meta name="twitter:card" content="summary_large_image" />
2122
<meta name="twitter:title" content="GoBuild | Labour & Construction Services" />
2223
<meta name="twitter:description" content="Construction labour, masons, and helpers for hire in Jammu and Delhi. Easy booking. Trusted startup." />
23-
<meta name="twitter:image" content="/GoBuild.png" />
24+
<meta name="twitter:image" content="/GoBuild.png" />
2425

2526
<link rel="icon" type="image/png" href="/GoBuild.png" />
2627

27-
<link rel="canonical" href="https://www.gobuild.in/" />
28+
<link rel="canonical" href="https://www.gobuild.in/" />
29+
<link rel="alternate" hreflang="en" href="https://www.gobuild.in/" />
2830

2931
</head>
3032

package-lock.json

Lines changed: 36 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
"build": "vite build",
99
"build:dev": "vite build --mode development",
1010
"lint": "eslint .",
11-
"preview": "vite preview"
11+
"preview": "vite preview",
12+
"postbuild": "node ./scripts/generate-sitemap.js",
13+
"generate-sitemap": "node ./scripts/generate-sitemap.js"
1214
},
1315
"dependencies": {
1416
"@hookform/resolvers": "^3.9.0",
@@ -50,19 +52,18 @@
5052
"framer-motion": "^12.23.24",
5153
"i18next": "^25.0.1",
5254
"i18next-browser-languagedetector": "^8.0.5",
53-
"input-t-icons": "^5.5.0",
54-
"react-resizable-panels": "^2.1.3",
55-
"react-router-dom": "^6.26.2",
56-
"recharts": "^2.12.7",
57-
"sonotp": "^1.2.4",
5855
"lucide-react": "^0.462.0",
5956
"next-themes": "^0.3.0",
6057
"react": "^18.3.1",
6158
"react-day-picker": "^8.10.1",
6259
"react-dom": "^18.3.1",
60+
"react-helmet-async": "^1.3.0",
6361
"react-hook-form": "^7.53.0",
6462
"react-i18next": "^15.4.1",
65-
"reacner": "^1.5.0",
63+
"react-resizable-panels": "^2.1.3",
64+
"react-router-dom": "^6.26.2",
65+
"recharts": "^2.12.7",
66+
"sonner": "^2.0.7",
6667
"tailwind-merge": "^2.5.2",
6768
"tailwindcss-animate": "^1.0.7",
6869
"twilio": "^5.5.2",

public/robots.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ Allow: /
1212

1313
User-agent: *
1414
Allow: /
15+
16+
Sitemap: https://www.gobuild.in/sitemap.xml

public/sitemap.xml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3+
<url>
4+
<loc>https://www.gobuild.in/</loc>
5+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
6+
<changefreq>weekly</changefreq>
7+
<priority>0.7</priority>
8+
</url>
9+
<url>
10+
<loc>https://www.gobuild.in/services</loc>
11+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
12+
<changefreq>weekly</changefreq>
13+
<priority>0.7</priority>
14+
</url>
15+
<url>
16+
<loc>https://www.gobuild.in/blog</loc>
17+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
18+
<changefreq>weekly</changefreq>
19+
<priority>0.7</priority>
20+
</url>
21+
<url>
22+
<loc>https://www.gobuild.in/about</loc>
23+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
24+
<changefreq>weekly</changefreq>
25+
<priority>0.7</priority>
26+
</url>
27+
<url>
28+
<loc>https://www.gobuild.in/contact</loc>
29+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
30+
<changefreq>weekly</changefreq>
31+
<priority>0.7</priority>
32+
</url>
33+
<url>
34+
<loc>https://www.gobuild.in/profile</loc>
35+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
36+
<changefreq>weekly</changefreq>
37+
<priority>0.7</priority>
38+
</url>
39+
<url>
40+
<loc>https://www.gobuild.in/pricing</loc>
41+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
42+
<changefreq>weekly</changefreq>
43+
<priority>0.7</priority>
44+
</url>
45+
<url>
46+
<loc>https://www.gobuild.in/policy</loc>
47+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
48+
<changefreq>weekly</changefreq>
49+
<priority>0.7</priority>
50+
</url>
51+
<url>
52+
<loc>https://www.gobuild.in/terms</loc>
53+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
54+
<changefreq>weekly</changefreq>
55+
<priority>0.7</priority>
56+
</url>
57+
<url>
58+
<loc>https://www.gobuild.in/refund-policy</loc>
59+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
60+
<changefreq>weekly</changefreq>
61+
<priority>0.7</priority>
62+
</url>
63+
<url>
64+
<loc>https://www.gobuild.in/categories</loc>
65+
<lastmod>2025-11-23T08:24:40.779Z</lastmod>
66+
<changefreq>weekly</changefreq>
67+
<priority>0.7</priority>
68+
</url>
69+
</urlset>

scripts/generate-sitemap.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import fs from 'fs';
2+
import path from 'path';
3+
import { fileURLToPath } from 'url';
4+
5+
// List of canonical routes to include in sitemap
6+
const baseUrl = 'https://www.gobuild.in';
7+
const routes = [
8+
'/',
9+
'/services',
10+
'/blog',
11+
'/about',
12+
'/contact',
13+
'/profile',
14+
'/pricing',
15+
'/policy',
16+
'/terms',
17+
'/refund-policy',
18+
'/categories',
19+
];
20+
21+
function buildSitemap() {
22+
const now = new Date().toISOString();
23+
const urlset = routes
24+
.map((route) => {
25+
return ` <url>\n <loc>${baseUrl}${route}</loc>\n <lastmod>${now}</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.7</priority>\n </url>`;
26+
})
27+
.join('\n');
28+
29+
const xml = `<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n${urlset}\n</urlset>`;
30+
31+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
32+
const outDir = path.join(__dirname, '..', 'public');
33+
if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
34+
const outPath = path.join(outDir, 'sitemap.xml');
35+
fs.writeFileSync(outPath, xml, 'utf8');
36+
console.log('Sitemap written to', outPath);
37+
}
38+
39+
if (process.argv[1] && process.argv[1].endsWith('generate-sitemap.js')) {
40+
buildSitemap();
41+
}
42+
43+
export { buildSitemap };

src/App.tsx

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Toaster } from "@/components/ui/toaster";
22
import { Toaster as Sonner } from "@/components/ui/sonner";
33
import { TooltipProvider } from "@/components/ui/tooltip";
4+
import { HelmetProvider } from "react-helmet-async";
45
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
56
import { BrowserRouter, Routes, Route } from "react-router-dom";
67
import { AuthProvider, useAuth } from "./contexts/AuthContext";
@@ -97,18 +98,20 @@ const AppRoutes = () => {
9798

9899
const App = () => (
99100
<QueryClientProvider client={queryClient}>
100-
<TooltipProvider>
101-
<BrowserRouter>
102-
<AuthProvider>
103-
<LanguageProvider>
104-
<ScrollToTop/>
105-
<Toaster />
106-
<Sonner />
107-
<AppRoutes />
108-
</LanguageProvider>
109-
</AuthProvider>
110-
</BrowserRouter>
111-
</TooltipProvider>
101+
<HelmetProvider>
102+
<TooltipProvider>
103+
<BrowserRouter>
104+
<AuthProvider>
105+
<LanguageProvider>
106+
<ScrollToTop/>
107+
<Toaster />
108+
<Sonner />
109+
<AppRoutes />
110+
</LanguageProvider>
111+
</AuthProvider>
112+
</BrowserRouter>
113+
</TooltipProvider>
114+
</HelmetProvider>
112115
</QueryClientProvider>
113116
);
114117

0 commit comments

Comments
 (0)