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ètre | Page concernée |
|---|---|
seo_desc_home | Page d'accueil |
seo_desc_ads | Liste des annonces |
seo_desc_users | Annuaire des membres |
seo_desc_contact | Page 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 :
| Route | Français | Anglais |
|---|---|---|
| Liste des annonces | annonces | ads |
| Détail d'une annonce | annonce | ad |
| Profil utilisateur | utilisateur | user |
| Annuaire membres | utilisateurs | users |
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
| Page | URL propre | Format 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
| Balise | Valeur |
|---|---|
<title> | Nom du site + tagline |
<meta description> | Valeur du paramètre seo_desc_home |
og:type | website |
og:image | Image 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
| Balise | Valeur |
|---|---|
<title> | Titre de l'annonce + nom du site |
<meta description> | 160 premiers caractères de la description |
og:type | article |
og:image | Photo 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
| Balise | Valeur |
|---|---|
<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
| Balise | Valeur | |
|---|---|---|
<title> | Nom de l'utilisateur – Vendeur | Nom du site |
<meta description> | "[Nom] est vendeur sur [site] avec X annonces actives. [Bio]" | |
og:type | article | |
og:image | Avatar 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
| URL | Priorité | Fréquence de mise à jour |
|---|---|---|
Page d'accueil / | 1.0 | Quotidienne |
Liste des annonces /ads | 0.9 | Horaire |
Annuaire des membres /users | 0.7 | Quotidienne |
| Pages de catégories | 0.8 | Horaire |
| Annonces individuelles (5 000 max) | 0.6 | Hebdomadaire |
Chaque annonce inclut une balise <lastmod> avec la date de dernière modification.
Soumettre le sitemap à Google
- Connectez-vous à Google Search Console (search.google.com/search-console).
- Ajoutez votre site et vérifiez la propriété (via le champ
header_codedans les paramètres). - Allez dans Sitemaps → entrez
sitemap.php→ Envoyer.
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.txtest 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 | Où |
|---|---|
| Renseigner des meta descriptions uniques par page | Admin → Paramètres → SEO |
| Vérifier le site dans Google Search Console | Paramètres → Advanced → Code <head> |
| Soumettre le sitemap | Google Search Console → Sitemaps |
| Choisir des slugs d'URL stables | Admin → Paramètres → SEO → Slugs d'URL |
| Ajouter une image OG par défaut soignée | Remplacer /assets/img/og-default.png |
Vérifier que robots.txt référence la bonne URL | Ouvrir https://votre-site.com/robots.txt |