From e748b75a4babadc5774897196895c163757b0152 Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Sat, 25 Apr 2026 20:03:47 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20ajouter=20le=20support=20de=20Matomo=20?= =?UTF-8?q?pour=20le=20suivi=20des=20pages=20et=20am=C3=A9liorer=20les=20m?= =?UTF-8?q?=C3=A9tadonn=C3=A9es=20SEO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/layout.tsx | 128 ++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 90 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f94ba75..db05aa5 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,6 @@ import type { Metadata, Viewport } from "next"; import { Inter } from "next/font/google"; +import Script from "next/script"; import "./globals.css"; import Header from "@/components/Header"; import Footer from "@/components/Footer"; @@ -10,7 +11,8 @@ const inter = Inter({ display: "swap", }); -const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://reducelink.arthurp.fr"; +const baseUrl = + process.env.NEXT_PUBLIC_BASE_URL || "https://reducelink.arthurp.fr"; export const viewport: Viewport = { themeColor: "#2563eb", @@ -25,35 +27,22 @@ export const metadata: Metadata = { template: "%s | ReduceLink", }, description: - "Raccourcissez vos liens gratuitement avec ReduceLink. Simple, rapide et sans inscription. Créez des liens courts personnalisés avec QR Code, statistiques de clics et alias mémorables.", + "Raccourcissez vos liens gratuitement avec ReduceLink. Simple, rapide et sans inscription.", keywords: [ "raccourcisseur de liens", "raccourcir url", "shortener", "url shortener", "liens courts", - "réduire lien", "QR code", "gratuit", "sans inscription", - "raccourcisseur gratuit", - "lien court gratuit", - "générateur QR code", - "statistiques liens", - "short link", - "reducelink", ], authors: [{ name: "ReduceLink", url: baseUrl }], creator: "ReduceLink", publisher: "ReduceLink", applicationName: "ReduceLink", generator: "Next.js", - referrer: "origin-when-cross-origin", - formatDetection: { - email: false, - address: false, - telephone: false, - }, alternates: { canonical: "/", }, @@ -64,108 +53,67 @@ export const metadata: Metadata = { siteName: "ReduceLink", title: "ReduceLink - Raccourcisseur de liens gratuit", description: - "Raccourcissez vos liens gratuitement. Simple, rapide, sans inscription. QR Code et statistiques inclus.", + "Raccourcissez vos liens gratuitement. Simple, rapide, sans inscription.", }, twitter: { card: "summary_large_image", title: "ReduceLink - Raccourcisseur de liens gratuit", description: - "Raccourcissez vos liens gratuitement. Simple, rapide, sans inscription. QR Code et statistiques inclus.", - creator: "@reducelink", + "Raccourcissez vos liens gratuitement. Simple, rapide, sans inscription.", }, robots: { index: true, follow: true, - googleBot: { - index: true, - follow: true, - "max-video-preview": -1, - "max-image-preview": "large", - "max-snippet": -1, - }, - }, - category: "technology", - classification: "URL Shortener", - other: { - "google-site-verification": "", - "msvalidate.01": "", }, }; -// JSON-LD structured data for the website const jsonLd = { "@context": "https://schema.org", - "@graph": [ - { - "@type": "WebSite", - "@id": `${baseUrl}/#website`, - url: baseUrl, - name: "ReduceLink", - description: - "Raccourcissez vos liens gratuitement avec ReduceLink. Simple, rapide et sans inscription.", - inLanguage: "fr-FR", - potentialAction: { - "@type": "SearchAction", - target: { - "@type": "EntryPoint", - urlTemplate: `${baseUrl}/liens?search={search_term_string}`, - }, - "query-input": "required name=search_term_string", - }, - }, - { - "@type": "Organization", - "@id": `${baseUrl}/#organization`, - name: "ReduceLink", - url: baseUrl, - logo: { - "@type": "ImageObject", - url: `${baseUrl}/icon-512.png`, - }, - sameAs: [], - }, - { - "@type": "WebApplication", - "@id": `${baseUrl}/#webapp`, - name: "ReduceLink", - url: baseUrl, - applicationCategory: "UtilitiesApplication", - operatingSystem: "All", - offers: { - "@type": "Offer", - price: "0", - priceCurrency: "EUR", - }, - description: - "Service gratuit de raccourcissement de liens avec QR Code et statistiques de clics.", - inLanguage: "fr-FR", - featureList: [ - "Raccourcissement de liens", - "Génération de QR Code", - "Statistiques de clics", - "Alias personnalisés", - "Sans inscription", - "100% gratuit", - ], - }, - ], + "@type": "WebSite", + url: baseUrl, + name: "ReduceLink", }; export default function RootLayout({ children, -}: Readonly<{ +}: { children: React.ReactNode; -}>) { +}) { return ( - + + + {/* SEO JSON-LD */} +
{children}
@@ -173,4 +121,4 @@ export default function RootLayout({ ); -} +} \ No newline at end of file