feat: add favicon, structured data & SEO optimization for Google sitelinks
- Add SVG favicon (H logo navy+orange) for all sizes (32, 180, 192, 512) - Add web manifest (site.webmanifest) for PWA compatibility - Add theme-color meta tag (#1B2A4A navy) - Add 3 structured data schemas: LocalBusiness, WebSite, SiteNavigationElement - WebSite schema enables Google to show site name + search box - SiteNavigationElement signals main pages for sitelinks display - Add canonical URLs to all pages (macon, paysagiste, plombier, legal pages) - Add metadata to pages missing it (mentions-legales, confidentialite, cgv) - Add candidature/layout.tsx for metadata on client component page - Optimize sitemap with consistent BASE_URL and candidature/cgv pages - Add telephone, email, opening hours to LocalBusiness schema https://claude.ai/code/session_01V8YAjpqRQ3bfBYsABYsEgo
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
import type { MetadataRoute } from "next";
|
||||
|
||||
const BASE_URL = "https://www.hooklab.eu";
|
||||
const BASE_URL = process.env.NEXT_PUBLIC_APP_URL || "https://hooklab.eu";
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const now = new Date();
|
||||
|
||||
return [
|
||||
// Page d'accueil - priorit\u00e9 max
|
||||
// Page d'accueil - priorité max
|
||||
{
|
||||
url: BASE_URL,
|
||||
lastModified: now,
|
||||
@@ -14,7 +14,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
priority: 1.0,
|
||||
},
|
||||
|
||||
// D\u00e9mos m\u00e9tiers - pages strat\u00e9giques SEO
|
||||
// Démos métiers - pages stratégiques SEO
|
||||
{
|
||||
url: `${BASE_URL}/macon`,
|
||||
lastModified: now,
|
||||
@@ -34,43 +34,45 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
priority: 0.9,
|
||||
},
|
||||
|
||||
// Candidature - page importante
|
||||
{
|
||||
url: `${BASE_URL}/candidature`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
|
||||
// Pages SEO locales - site internet artisan + ville
|
||||
// Douai
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-douai`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
// Orchies
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-orchies`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
// Valenciennes
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-valenciennes`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
// Saint-Amand-les-Eaux
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-saint-amand-les-eaux`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
// Arleux
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-arleux`,
|
||||
lastModified: now,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
// Denain
|
||||
{
|
||||
url: `${BASE_URL}/site-internet-artisan-denain`,
|
||||
lastModified: now,
|
||||
@@ -78,24 +80,24 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
priority: 0.8,
|
||||
},
|
||||
|
||||
// L\u00e9gal
|
||||
// Légal
|
||||
{
|
||||
url: `${BASE_URL}/cgv`,
|
||||
lastModified: now,
|
||||
changeFrequency: "yearly",
|
||||
priority: 0.3,
|
||||
},
|
||||
{
|
||||
url: `${BASE_URL}/mentions-legales`,
|
||||
lastModified: now,
|
||||
changeFrequency: "yearly",
|
||||
priority: 0.2,
|
||||
priority: 0.3,
|
||||
},
|
||||
{
|
||||
url: `${BASE_URL}/confidentialite`,
|
||||
lastModified: now,
|
||||
changeFrequency: "yearly",
|
||||
priority: 0.2,
|
||||
},
|
||||
{
|
||||
url: `${BASE_URL}/plan-du-site`,
|
||||
lastModified: now,
|
||||
changeFrequency: "yearly",
|
||||
priority: 0.2,
|
||||
priority: 0.3,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user