NGZ Ads / SEO & Sitemap

SEO & Sitemap

NGZ Ads intègre des fonctionnalités SEO complètes : URLs propres, balises meta dynamiques, Open Graph, données structurées JSON-LD, sitemap XML et fichier robots.txt. Cette page explique comment tout cela fonctionne et ce que vous pouvez configurer.


Configuration SEO dans l'administration

Rendez-vous dans Administration → Paramètres → onglet SEO.

Meta descriptions par page

Vous pouvez personnaliser la description affichée dans les résultats des moteurs de recherche pour chaque page principale :

ParamètrePage concernée
seo_desc_homePage d'accueil
seo_desc_adsListe des annonces
seo_desc_usersAnnuaire des membres
seo_desc_contactPage de contact

Bonne pratique : rédigez des descriptions de 150 à 160 caractères qui résument clairement le contenu de la page et incitent au clic.

Les pages d'annonces individuelles et les profils utilisateurs génèrent leur description automatiquement à partir du contenu (titre, description de l'annonce, bio du membre).

Code personnalisé dans <head>

Le champ Code dans l'en-tête (section Advanced) vous permet d'insérer du code HTML arbitraire dans la balise <head> de toutes les pages : balises de vérification Google Search Console, code de suivi Analytics, pixel Meta, etc.

<!-- Exemple : Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXX');
</script>

Slugs d'URL multilingues

NGZ Ads supporte des URLs différentes selon la langue du site. Dans l'onglet SEO, le tableau Slugs d'URL vous permet de définir les segments de chemin pour chaque langue :

RouteFrançaisAnglais
Liste des annoncesannoncesads
Détail d'une annonceannoncead
Profil utilisateurutilisateuruser
Annuaire membresutilisateursusers

Ces slugs sont utilisés partout dans l'application pour générer les liens. Modifier un slug met à jour automatiquement les règles de réécriture dans .htaccess.

Ne modifiez les slugs qu'avant la mise en ligne. Changer un slug sur un site indexé crée des erreurs 404 pour les URLs déjà référencées.


URLs propres

NGZ Ads génère des URLs lisibles et optimisées pour le référencement via le fichier .htaccess.

Format des URLs

PageURL propreFormat legacy (redirigé)
Accueil/
Liste des annonces/ads/ads.php
Annonce/ad/titre-de-lannonce/ad.php?id=123
Catégorie/ads/electronique/ads.php?category_slug=electronique
Profil utilisateur/user/jean-dupont/user.php?username=jean-dupont
Annuaire membres/users/users.php
Déposer une annonce/post-ad

Redirections 301

Les anciennes URLs avec paramètres ?id= redirigent automatiquement en 301 (permanent) vers les URLs propres avec slug. Cela préserve le jus SEO lors d'une migration.

/ad.php?id=42   →  301  →  /ad/ma-belle-bicyclette-rouge

Balises meta par type de page

Page d'accueil

BaliseValeur
<title>Nom du site + tagline
<meta description>Valeur du paramètre seo_desc_home
og:typewebsite
og:imageImage par défaut du site (/assets/img/og-default.png)

Données structurées JSON-LD : schéma WebSite avec SearchAction (permet l'affichage du champ de recherche directement dans Google) :

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Nom du site",
  "url": "https://votre-site.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://votre-site.com/ads?q={search_term}",
    "query-input": "required name=search_term_string"
  }
}

Page d'annonce

BaliseValeur
<title>Titre de l'annonce + nom du site
<meta description>160 premiers caractères de la description
og:typearticle
og:imagePhoto principale de l'annonce
<link rel="canonical">URL propre /ad/{slug}

Fil d'Ariane : Accueil → Catégorie → Titre de l'annonce

Page de liste des annonces

BaliseValeur
<title>Catégorie / recherche + nom du site
<meta description>Valeur de seo_desc_ads
<link rel="canonical">URL avec paramètres de filtre actifs

Fil d'Ariane : Accueil → Annonces → [Catégorie ou recherche]

Profil utilisateur

BaliseValeur
<title>Nom de l'utilisateur – VendeurNom du site
<meta description>"[Nom] est vendeur sur [site] avec X annonces actives. [Bio]"
og:typearticle
og:imageAvatar de l'utilisateur
<link rel="canonical">/user/{username}

Fil d'Ariane : Accueil → Membres → Nom de l'utilisateur


Open Graph & Twitter Cards

Toutes les pages génèrent automatiquement les balises Open Graph (partage sur Facebook, LinkedIn, WhatsApp…) et Twitter Cards :

<!-- Open Graph -->
<meta property="og:title"       content="Vélo de route carbone - Vélos | MonSite">
<meta property="og:description" content="Vélo de route en carbone, taille M, très bon état...">
<meta property="og:image"       content="https://votre-site.com/uploads/listings/photo1.jpg">
<meta property="og:url"         content="https://votre-site.com/ad/velo-route-carbone">
<meta property="og:type"        content="article">
<meta property="og:site_name"   content="MonSite">

<!-- Twitter Card -->
<meta name="twitter:card"        content="summary_large_image">
<meta name="twitter:title"       content="...">
<meta name="twitter:description" content="...">
<meta name="twitter:image"       content="...">

L'image d'aperçu est la photo principale de l'annonce. Si aucune image n'est associée, l'image par défaut du site (/assets/img/og-default.png) est utilisée.


Sitemap XML

Le sitemap est généré dynamiquement à l'adresse :

https://votre-site.com/sitemap.php

Contenu du sitemap

URLPrioritéFréquence de mise à jour
Page d'accueil /1.0Quotidienne
Liste des annonces /ads0.9Horaire
Annuaire des membres /users0.7Quotidienne
Pages de catégories0.8Horaire
Annonces individuelles (5 000 max)0.6Hebdomadaire

Chaque annonce inclut une balise <lastmod> avec la date de dernière modification.

Soumettre le sitemap à Google

  1. Connectez-vous à Google Search Console (search.google.com/search-console).
  2. Ajoutez votre site et vérifiez la propriété (via le champ header_code dans les paramètres).
  3. Allez dans Sitemaps → entrez sitemap.phpEnvoyer.

Google explorera régulièrement ce sitemap pour découvrir les nouvelles annonces.


Fichier robots.txt

Le fichier robots.txt (à la racine du site) indique aux robots d'exploration ce qu'ils peuvent ou ne peuvent pas indexer :

User-agent: *
Allow: /

Disallow: /api/        ← endpoints API non indexables
Disallow: /includes/   ← code serveur
Disallow: /uploads/    ← fichiers uploadés bruts
Disallow: /sql/        ← sauvegardes base de données
Disallow: /profile     ← espace personnel (authentification requise)
Disallow: /post-ad     ← formulaire de dépôt (authentification requise)

Sitemap: https://votre-site.com/sitemap.php

Le chemin du sitemap dans robots.txt est défini avec l'URL locale au moment de l'installation. Sur un serveur de production, vérifiez que cette URL correspond bien à l'URL publique de votre site.


Fil d'Ariane (Breadcrumb)

Un fil d'Ariane est affiché sur les pages de détail (annonce, profil, liste par catégorie) pour aider les visiteurs à se repérer et améliorer le maillage interne.

Il est généré par la fonction breadcrumb() dans includes/helpers.php et rendu en HTML sémantique Bootstrap compatible avec les standards d'accessibilité.


Canonical URL

Chaque page inclut une balise <link rel="canonical"> pointant vers son URL propre canonique. Cela évite les problèmes de contenu dupliqué qui pourraient pénaliser le référencement :

  • Les paramètres de tri et de pagination ne créent pas d'URLs canoniques alternatives.
  • Les anciennes URLs ?id= effectuent une redirection 301 avant même que la page ne soit rendue.

Récapitulatif des bonnes pratiques

Action
Renseigner des meta descriptions uniques par pageAdmin → Paramètres → SEO
Vérifier le site dans Google Search ConsoleParamètres → Advanced → Code <head>
Soumettre le sitemapGoogle Search Console → Sitemaps
Choisir des slugs d'URL stablesAdmin → Paramètres → SEO → Slugs d'URL
Ajouter une image OG par défaut soignéeRemplacer /assets/img/og-default.png
Vérifier que robots.txt référence la bonne URLOuvrir https://votre-site.com/robots.txt