dfsearchconsole — Google Search Console pour PrestaShop
Installation, configuration OAuth Google, synchronisation cron et exploitation des opportunités SEO du module dfsearchconsole.
Présentation
dfsearchconsole synchronise les données de Google Search Console directement dans le back-office PrestaShop 8 et 9 : top requêtes par URL, CTR par page, position moyenne, et surtout quatre catégories d’opportunités SEO calculées automatiquement avec des suggestions d’optimisation contextuelles.
Le module ajoute 5 onglets sous Améliorer → Search Console : Tableau de bord, Pages, Requêtes, Opportunités et Paramètres. La communication avec Google se fait via OAuth2 en lecture seule (périmètre webmasters.readonly), sans dépendance Composer — uniquement cURL natif.
Installation
- Téléchargez le fichier ZIP du module depuis votre compte client DataFirefly.
- Dans le back-office PrestaShop : Modules → Module Manager → Téléverser un module.
- Sélectionnez le fichier ZIP et laissez l’installation se terminer.
- Le module crée 4 tables SQL (
ps_dfgsc_sync,ps_dfgsc_page,ps_dfgsc_query,ps_dfgsc_opportunity) et enregistre ses 5 onglets sous le menu Améliorer.
Prérequis : PrestaShop 8.0 à 8.2 ou 9.0, PHP 7.4 minimum (8.1+ recommandé), extension cURL activée, et une propriété validée dans Google Search Console.
Configuration OAuth Google Cloud
Le module communique avec l’API Search Console via vos propres identifiants OAuth2. La création est gratuite et prend une dizaine de minutes.
1. Créer le projet et activer l’API
- Rendez-vous sur console.cloud.google.com et créez un projet (ou réutilisez-en un).
- Dans API et services → Bibliothèque, recherchez Google Search Console API et activez-la.
2. Configurer l’écran de consentement
- Ouvrez API et services → Écran de consentement OAuth.
- Type d’utilisateur : Externe (ou Interne si vous utilisez Google Workspace).
- Renseignez le nom de l’application, l’email de support et votre domaine.
- Ajoutez l’étendue
https://www.googleapis.com/auth/webmasters.readonly. - Tant que l’application n’est pas publiée, ajoutez votre adresse Google comme utilisateur de test.
3. Créer l’ID client OAuth
- Dans API et services → Identifiants, cliquez sur Créer des identifiants → ID client OAuth.
- Type d’application : Application Web.
- Dans URI de redirection autorisés, collez l’URL affichée dans l’écran Paramètres du module (de la forme
https://votre-domaine.com/module/dfsearchconsole/oauth). - Notez le Client ID et le Client Secret.
4. Connecter le module
- Dans PrestaShop, ouvrez Améliorer → Search Console → Paramètres.
- Collez le Client ID et le Client Secret, puis enregistrez.
- Cliquez sur Se connecter à Google et autorisez l’accès.
- De retour dans le back-office, sélectionnez la propriété Search Console à synchroniser dans la liste déroulante.
Le bouton Tester la connexion vérifie que le token fonctionne et affiche le nombre de propriétés accessibles depuis le compte connecté.
Synchronisation
Synchronisation manuelle
Le bouton Synchroniser maintenant de l’écran Paramètres lance immédiatement une synchronisation complète. Comptez de quelques secondes pour une petite boutique à 2-3 minutes pour un site avec des milliers de pages indexées.
Synchronisation automatique (cron)
L’écran Paramètres affiche une URL de cron protégée par un jeton aléatoire de 32 caractères. Ajoutez-la à votre crontab pour une synchronisation quotidienne :
0 4 * * * curl -s "https://votre-domaine.com/module/dfsearchconsole/cron?token=VOTRE_TOKEN" > /dev/null
Google Search Console applique un délai d’environ 2 jours sur les données. Le module synchronise donc toujours la fenêtre se terminant à aujourd’hui − 2 jours. Une synchronisation par jour est suffisante.
Période de lookback
Par défaut, le module récupère 90 jours de données ainsi que les 90 jours précédents pour calculer les deltas. Cette période est configurable de 28 à 480 jours dans Paramètres. Plus la fenêtre est grande, plus la synchronisation est longue.
Tableau de bord
Le tableau de bord donne une vue d’ensemble : 4 cartes KPI (clics, impressions, CTR, position moyenne) avec les évolutions par rapport à la période précédente, le top 10 des pages, le top 15 des requêtes et un aperçu des opportunités prioritaires.
Pour la position moyenne, une baisse est une amélioration (plus la position est basse, mieux la page est classée). Le tableau de bord affiche donc une flèche verte quand la position diminue.
Pages et Requêtes
Onglet Pages
Liste paginée et triable de toutes les URL remontées par Search Console, avec clics, impressions, CTR, position et delta de clics. Un filtre permet de restreindre par type de page (produit, catégorie, CMS, autre) ou par texte. Cliquer sur une URL ouvre sa vue détail : KPI de la page avec valeurs de la période précédente, requêtes ciblant cette URL, opportunités associées, et lien direct vers l’édition de l’entité PrestaShop correspondante.
Onglet Requêtes
Deux modes d’affichage :
- Vue groupée — une ligne par requête, agrégée toutes URL confondues. Idéale pour identifier vos termes principaux.
- Vue détaillée — une ligne par couple requête × URL. Indispensable pour analyser la cannibalisation.
Les positions sont affichées avec un code couleur : vert (1-3), bleu (4-10), jaune (11-20, boostables), gris (21+).
Opportunités SEO
Après chaque synchronisation, le module recalcule automatiquement quatre catégories d’opportunités :
- Top 11–20 boostables (striking distance) — requêtes positionnées entre 11 et 20 (seuils configurables) avec un minimum d’impressions. Le module calcule le gain de clics potentiel en simulant un passage en position 5.
- CTR sous la moyenne (top 10) — pages en top 10 dont le CTR réel est inférieur à 50 % du CTR attendu selon la courbe de référence intégrée (agrégée d’études Advanced Web Ranking, Sistrix, Backlinko).
- Cannibalisation — même requête remontant 2 URLs ou plus. Le module liste les URLs concurrentes.
- Perte de clics — pages ayant perdu plus de 25 % de clics vs la période précédente.
Chaque opportunité affiche un score de priorité, les métriques associées, et des suggestions d’optimisation adaptées au type de page (fiche produit, catégorie ou page CMS). Le workflow Ouverte / Traitée / Ignorée permet de suivre votre avancement. Le bouton Recalculer reforge toutes les opportunités à partir des données déjà en base, sans rappeler l’API Google.
Réglages des seuils
Dans Paramètres, trois seuils pilotent la détection :
- Impressions minimum (défaut 50) — en dessous, le couple requête × URL est ignoré par les détecteurs.
- Position min / max striking distance (défaut 11 / 20) — la fenêtre de positions considérée comme boostable.
Pour une petite boutique avec peu de trafic, abaissez le seuil d’impressions à 20-30. Pour un gros site, montez-le à 100+ pour ne remonter que les chantiers significatifs.
Dépannage
« Token expiré » ou erreur 401
Le refresh token est utilisé automatiquement toutes les heures. Si Google a révoqué l’accès (changement de mot de passe, longue inactivité, révocation manuelle), reconnectez le module via le bouton Se connecter à Google de l’écran Paramètres.
Aucun site dans la liste déroulante
Le compte Google connecté doit avoir accès à au moins une propriété Search Console (propriétaire ou utilisateur). Vérifiez sur search.google.com/search-console avec le même compte.
Erreur « redirect_uri_mismatch » lors de la connexion
L’URI de redirection déclarée dans Google Cloud Console doit correspondre exactement à celle affichée dans l’écran Paramètres du module (protocole https inclus, sans slash final surnuméraire).
Synchronisation très longue ou timeout
L’API pagine par lots de 25 000 lignes. Pour les gros sites : augmentez memory_limit à 512M, augmentez max_execution_time, et privilégiez le cron (qui n’a pas la limite de temps du navigateur).
URLs non résolues en entités PrestaShop
Le résolveur travaille sur le link_rewrite (slug d’URL simplifiée). Les URLs générées par des modules de routing tiers peuvent rester non liées : elles apparaissent avec le type « other » mais restent pleinement analysées.
Désinstallation
La désinstallation supprime les 4 tables SQL, les onglets d’administration et toutes les clés de configuration (y compris les tokens OAuth). Pensez à révoquer l’accès de l’application dans les paramètres de sécurité de votre compte Google si vous n’utilisez plus le module.