Étude de cas · Concessionnaire automobile

BonAuto.
Saint-Joseph-du-Lac.

Refonte complète d'un concessionnaire automobile de la Rive-Nord. Migration depuis un site lent vers une stack moderne pré-rendue, SEO local sur 9 villes des Laurentides, indexation Google reconstruite, position moyenne remontée de 32 à 8 en 30 jours.

Le client

Concessionnaire d'occasion
établi en zone touristique.

BonAuto est un concessionnaire automobile d'occasion situé à Saint-Joseph-du-Lac, sur la Rive-Nord de Montréal. Implantation stratégique au cœur des Laurentides, à mi-chemin entre Oka et Sainte-Marthe-sur-le-Lac, avec une clientèle naturelle couvrant Mirabel, Saint-Eustache, Deux-Montagnes, Boisbriand, Blainville et même Laval pour les recherches automobiles spécifiques.

L'inventaire compte une cinquantaine de véhicules d'occasion à tout moment, avec rotation rapide (entrée-sortie hebdomadaire). Mix de marques généralistes (Honda, Toyota, Hyundai, Mazda) et premium (BMW, Lexus, Acura). Service de financement incluant 2e et 3e chance au crédit, programme d'échange, livraison rapide sur la Rive-Nord.

Le défi

Site WordPress lent.
Indexation à 23 %.
Concurrents en haut.

Au moment de la prise de contact (printemps 2026), BonAuto opérait sur un site WordPress vieillissant avec plusieurs problèmes structurels qui plafonnaient leur acquisition organique :

Performance médiocre. Lighthouse Performance 35 sur mobile, LCP au-delà de 4 secondes. Page d'inventaire avec plus de 50 véhicules chargeant toutes les images au montage, sans lazy loading. Plugin WP Cars cassé après une mise à jour de WooCommerce, rendant les fiches véhicule cassées sur la moitié de l'inventaire.

Indexation problématique. Sur les 89 URLs déclarées dans le sitemap, seulement 21 étaient indexées par Google (~23 %). Les pages de marques (Honda d'occasion, Toyota d'occasion), de types (VUS, berline, hybride), et de financement étaient toutes en « Discovered, currently not indexed » — Google avait vu les URLs via sitemap mais n'avait jamais crawlé le contenu.

SEO local quasi inexistant. Aucune page dédiée aux villes desservies. Page « contact » avec l'adresse mais aucun schema LocalBusiness, aucune structure géo. Le pack local Google Maps (top 3) sur les recherches « concessionnaire à Mirabel », « voitures d'occasion Saint-Eustache », etc. était occupé par les concessionnaires des grandes marques (Hyundai Saint-Eustache, Honda Boisbriand) malgré leur clientèle géographique partagée.

Drift Google. Mi-mai, la position moyenne organique sur Search Console est passée brutalement de ~7-9 à 32,3 en quelques jours suite à une mise à jour algorithme. Le client cherchait activement à reprendre le contrôle de sa visibilité organique avant la haute saison de vente (mai-août).

Notre intervention

Migration totale.
65 routes statiques.
SEO local complet.

L'intervention s'est faite en deux phases distinctes : une refonte technique complète, puis un sprint SEO local intensif.

Phase 1 — Refonte technique (4 semaines). Migration complète de WordPress vers une stack React + Vite avec hébergement edge mondial. Architecture par silos thématiques : 9 pages city (concessionnaire/[ville]), 14 pages marque (honda-occasion, toyota-occasion, etc.), 4 pages type (vus-occasion, berline-occasion, camion-occasion, hybride-occasion), 4 pages financement (mauvais-crédit, 2e chance, 3e chance, faillite), 16 articles conseils (pneus hiver, taxes, garantie LPC, etc.), outils interactifs (calculatrice de financement, comparateur).

Pre-rendering Puppeteer 65 routes. Le piège classique des SPA React pour le SEO : Googlebot ne voit qu'un shell HTML vide à la première visite, et l'hydratation JavaScript n'est pas toujours captée. Notre solution : un script Puppeteer qui navigue les 65 routes après build et capture le HTML rendu complet dans des fichiers statiques `dist/[route]/index.html`. Chaque route a son propre title unique, sa propre meta description, son propre schema. Googlebot voit du HTML complet dès le premier crawl.

Schemas Schema.org enrichis. Vehicle schema sur chaque fiche véhicule (modèle, année, prix, kilométrage), LocalBusiness sur les 9 pages city avec coordonnées et zone desservie, Service sur les pages financement, FAQPage sur les articles conseils, BreadcrumbList partout. Le tout pour maximiser l'éligibilité aux rich snippets Google et aux citations dans les AI Overviews.

Phase 2 — Sprint SEO local (2 semaines). Création des 9 pages city avec contenu spécifique par ville (proximité kilométrique, types de véhicules populaires localement, photos du concessionnaire vu depuis chaque direction d'approche). Optimisation Google Business Profile avec catégories précises, photos professionnelles, posts hebdomadaires, gestion d'avis. Citations NAP cohérentes sur Pages Jaunes, BBB, 411.ca, AutoExpert et annuaires sectoriels automobiles. Soumission sitemap GSC + Request Indexing manuel sur les 9 pages city prioritaires.

Résultats mesurés

30 jours après.
Les chiffres parlent.

Mesure via Google Search Console, Google Analytics 4, audits Lighthouse répétés et tracking de position sur 25 mots-clés cibles.

  • Position moyenne organique — de 32,3 à 8,3 (gain de 24 positions)
  • Pages indexées — de 21/89 (23 %) à 65+ sur 78 URLs (83 %)
  • Performance Lighthouse mobile — de 35 à 87
  • LCP mobile — de 4,2 s à 1,6 s
  • Impressions Google Search Console — multipliées par 6 sur 30 jours
  • Clicks organiques — passés de 0-3 par jour à 15-25 par jour
  • Apparitions pack local Maps — top 3 sur « concessionnaire Saint-Joseph-du-Lac », « voitures d'occasion Mirabel », top 5 sur « auto usagée Deux-Montagnes »
  • Citations Bing et Yahoo — réactivées après reset des sitemaps fantômes

Au-delà des métriques techniques, l'impact business est concret : augmentation des appels téléphoniques entrants depuis Google (mesurés via call tracking), augmentation des demandes de soumission via le formulaire, et meilleure qualification des leads grâce aux articles conseils qui éduquent les acheteurs avant l'appel.

Stack utilisée

Standard moderne.
Rien d'exotique.

  • React 19 + Vite + TypeScript
  • Pre-rendering Puppeteer (65 routes statiques)
  • Hébergement edge mondial (déploiement par Git, SSL auto)
  • Schema.org JSON-LD (Vehicle, LocalBusiness, Service, FAQPage, BreadcrumbList)
  • Sitemap XML généré automatiquement au build
  • RSS feed pour les articles conseils
  • Google Analytics 4 + Search Console + Bing Webmaster Tools
  • Call tracking pour mesurer les appels entrants depuis Google
  • Suivi mensuel avec rapport personnalisé
Apprentissages

Ce qu'on garde
pour les prochains.

Le pre-rendering n'est pas optionnel pour les sites SPA qui veulent ranker. Sans pre-rendering, les 65 routes auraient été invisibles pour Googlebot et les bots IA. Avec pre-rendering correctement configuré, chaque route est traitée comme une page indépendante par Google, exactement comme un site multi-page classique.

Le pack local Maps est encore le levier #1 pour le SEO local. Bien avant les backlinks ou le contenu, la fiche Google Business Profile correctement remplie (catégories précises, attributs complets, photos régulières, gestion d'avis active) reste le signal dominant. Combiner GBP optimisé + page city dédiée + schema LocalBusiness donne des résultats visibles en quelques semaines.

Vercel cloud build ne supporte pas Puppeteer. Le build pipeline doit être local (avec dépôt Git pour le code source) puis deploy `--prebuilt` pour préserver les fichiers générés. Auto-build sur push Git écrase le pre-rendering. Pattern dominant à retenir pour tous les sites SPA prerendered.

Les articles conseils ne sont pas qu'un bonus SEO. Sur les 16 articles publiés, plusieurs convertissent en leads qualifiés. Les acheteurs qui lisent un article « pneus hiver Québec obligation 2026 » ou « financement mauvais crédit 2e chance Québec » avant de chercher un véhicule arrivent au formulaire de soumission déjà éduqués et avec une intention claire.

Démarrer un projet similaire
Démarrer un projet