Files
obc-terrassement/app/layout.tsx
Claude a845b47316 feat: refonte complète landing page - nouveau copywriting + 3 démos
- SEO: nouveau title/description optimisé artisans BTP Nord (59)
- Navbar: CTA téléphone cliquable + menu simplifié
- Hero: fond sombre, H1 percutant "aussi solide que vos ouvrages"
- Nouvelle section Problématique (identification pain points)
- System: redesign sombre "Dossier de Confiance" avec 3 piliers tech
- Démos Live: 3 cards vers /macon, /paysagiste, /plombier
- FAQ: nouvelles questions orientées objections (Facebook, site gratuit)
- Footer: SEO avec expertises + zone d'intervention étendue
- /macon: galerie Avant/Après + bouton Urgence Fuite
- /paysagiste: design épuré + filtrage Création vs Entretien
- /plombier: tarifs clairs + formulaire diagnostic rapide

https://claude.ai/code/session_01H2aRGDaKgarPvhay2HxN6Y
2026-02-15 19:14:01 +00:00

136 lines
3.8 KiB
TypeScript

import type { Metadata } from "next";
import "./globals.css";
const BASE_URL = process.env.NEXT_PUBLIC_APP_URL || "https://hooklab.eu";
export const metadata: Metadata = {
metadataBase: new URL(BASE_URL),
title: {
default:
"Cr\u00e9ation Site Internet Artisan & BTP Nord (59) | HookLab Flines-lez-Raches",
template: "%s | HookLab",
},
description:
"Sp\u00e9cialiste web pour artisans du b\u00e2timent et paysagistes \u00e0 Douai, Orchies, Valenciennes. Site ultra-rapide, s\u00e9curis\u00e9 et con\u00e7u pour g\u00e9n\u00e9rer des chantiers qualifi\u00e9s. Audit offert.",
keywords: [
"site web artisan",
"cr\u00e9ation site artisan b\u00e2timent",
"r\u00e9f\u00e9rencement local artisan",
"agence web Nord",
"site internet couvreur",
"site internet menuisier",
"site internet paysagiste",
"visibilit\u00e9 Google artisan",
"site web Douai",
"site web Valenciennes",
"agence web Orchies",
"site pro artisan Nord",
],
authors: [{ name: "HookLab - Enguerrand Ozano" }],
creator: "HookLab",
publisher: "HookLab",
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
"max-video-preview": -1,
"max-image-preview": "large",
"max-snippet": -1,
},
},
openGraph: {
type: "website",
locale: "fr_FR",
url: BASE_URL,
siteName: "HookLab",
title:
"HookLab | Sites web pour artisans du b\u00e2timent dans le Nord",
description:
"Transformez votre bouche-\u00e0-oreille en syst\u00e8me automatique. Sites web et r\u00e9f\u00e9rencement Google pour artisans \u00e0 Douai, Orchies, Valenciennes.",
images: [
{
url: "/og-image.png",
width: 1200,
height: 630,
alt: "HookLab - Sites web pour artisans du Nord",
},
],
},
twitter: {
card: "summary_large_image",
title: "HookLab | Sites web pour artisans du Nord",
description:
"Agence web locale pour artisans du b\u00e2timent. Douai, Orchies, Valenciennes.",
images: ["/og-image.png"],
},
alternates: {
canonical: BASE_URL,
},
verification: {
google: process.env.GOOGLE_SITE_VERIFICATION || undefined,
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const jsonLdOrganization = {
"@context": "https://schema.org",
"@type": "LocalBusiness",
name: "HookLab",
url: BASE_URL,
logo: `${BASE_URL}/logo.png`,
description:
"Agence web sp\u00e9cialis\u00e9e dans la cr\u00e9ation de sites et la visibilit\u00e9 Google pour les artisans du b\u00e2timent dans le Nord.",
address: {
"@type": "PostalAddress",
streetAddress: "35 rue Mo\u00efse Lambert",
addressLocality: "Flines-lez-Raches",
postalCode: "59148",
addressRegion: "Nord",
addressCountry: "FR",
},
geo: {
"@type": "GeoCoordinates",
latitude: 50.4267,
longitude: 3.2372,
},
areaServed: [
{ "@type": "City", name: "Douai" },
{ "@type": "City", name: "Orchies" },
{ "@type": "City", name: "Valenciennes" },
{ "@type": "City", name: "Arleux" },
{ "@type": "City", name: "Flines-lez-Raches" },
],
priceRange: "$$",
contactPoint: {
"@type": "ContactPoint",
contactType: "customer service",
availableLanguage: "French",
},
};
return (
<html lang="fr">
<head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLdOrganization),
}}
/>
</head>
<body className="antialiased">
<a href="#main-content" className="skip-to-content">
Aller au contenu principal
</a>
{children}
</body>
</html>
);
}