Google Indexing API pour Magento 2
- Compatibilité
- 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.7, 2.3.6, 2.3.5, 2.3.4
Description / Google Indexing API pour Magento 2
MAGENTO 2 · SOUMISSIONS D’URL · FILE D’ATTENTE · GOOGLE API
Gérez les soumissions d’URL dans une seule file d’attente Magento.
Kowal Google Indexing API
Collectez les adresses depuis le panneau d’administration et les intégrations, contrôlez les doublons, la planification et les limites d’envoi. Conservez l’historique des réponses de Google et distinguez clairement l’acceptation de la soumission de l’indexation de la page.
Dry Run · Retry et logs · Périmètre de l’API défini par Google
COMMENT CELA FONCTIONNE EN PRATIQUE
01 · Vous configurez l’accès et le périmètre
Vous vérifiez le compte de service, les hôtes et les Store View autorisées.
02 · Vous ajoutez des adresses à la file d’attente
Vous utilisez l’import, les actions de masse ou les boutons.
03 · Vous suivez le traitement
Cron gère l’envoi, les limites, le résultat et les nouvelles tentatives.
Qu’apporte ce module à votre boutique ?
Découvrez les fonctionnalités, les usages et les paramètres du module.
Informer Google plus rapidement des changements dans la boutique
Le module Kowal Google Indexing API pour Magento 2 aide à soumettre plus efficacement à Google les URL qui ont été ajoutées, modifiées ou qui doivent être supprimées de l’index. Au lieu d’attendre uniquement la revisite standard de la page par le robot Google, l’administrateur peut transmettre les adresses choisies à une file d’attente gérée par Google Indexing API.
Cette solution est particulièrement utile dans les boutiques où les contenus, l’offre, la disponibilité des produits, les pages CMS, les landing pages ou les articles de blog changent fréquemment. Le module structure tout le processus : il collecte les adresses depuis différents emplacements de Magento, les vérifie, supprime les doublons, contrôle les limites et enregistre l’historique des communications avec Google.
Google Indexing API est officiellement destinée aux pages contenant des données structurées
JobPostingetBroadcastEvent. La soumission d’une URL via l’API ne garantit ni l’indexation, ni la position dans les résultats, ni l’acceptation de chaque adresse par Google. Le module est un outil de support pour la soumission technique d’URL, et non un substitut à un SEO technique correct, aux sitemap XML, canonical, robots, hreflang et au maillage interne.
Un meilleur contrôle des soumissions d’adresses
Le module offre à l’administrateur un emplacement unique pour gérer les URL en attente d’envoi à Google. Les produits, catégories, pages CMS, imports manuels d’URL et futures sources peuvent utiliser la même file d’attente. Il n’est donc pas nécessaire de créer des intégrations séparées pour chaque type de contenu.
Moins de travail manuel après les changements dans la boutique
Les adresses peuvent être ajoutées à la file d’attente directement depuis le panneau d’administration Magento. Le module met à disposition des actions de masse et des boutons sur les écrans d’édition de certaines entités, afin que l’administrateur puisse demander rapidement l’indexation d’une page individuelle ou d’un groupe d’adresses plus important.
Une utilisation plus sûre des limites de l’API
Google Indexing API fonctionne avec des limites. Le module prend en compte les limites quotidiennes et par minute, la taille du lot traité par cron ainsi que le délai d’envoi. Les adresses ne sont ainsi pas envoyées de manière chaotique et il est plus facile de réduire le risque de consommation inutile de la limite disponible.
Moins de doublons et de soumissions répétées
Avant d’enregistrer une adresse, le module normalise l’URL, la valide et vérifie si la même adresse n’attend pas déjà dans la file active. Si une soumission similaire existe déjà, le système peut la mettre à jour ou la marquer comme dédupliquée. Cela réduit le désordre dans la file d’attente et diminue le nombre de requests inutiles vers Google.
Plus de transparence pour l’équipe
Chaque soumission possède un statut, une source, une action, une priorité, un nombre de tentatives, une date d’envoi planifiée ainsi que des informations sur la réponse de Google. L’administrateur voit quelles adresses sont en attente, lesquelles ont été envoyées correctement, lesquelles nécessitent une nouvelle tentative et lesquelles se sont terminées par une erreur permanente.
Un diagnostic plus simple des problèmes
Le module enregistre les logs de communication avec Google API, notamment le type de request, l’adresse de l’endpoint, le payload, le statut HTTP, le contenu de la réponse et la durée. Cela facilite l’analyse des erreurs liées à la configuration, aux autorisations, aux limites ou aux URL soumises elles-mêmes.
Prêt pour la croissance de la boutique
L’architecture du module repose sur un scheduler et une file d’attente communs. Les nouvelles sources d’URL n’ont pas besoin de communiquer directement avec Google. Il suffit qu’elles transmettent les adresses à la file d’attente, et le processeur existant se charge de la validation, du calendrier, des limites, des nouvelles tentatives et de la journalisation.
Comment le module fonctionne en pratique
Le module agit comme une couche intermédiaire entre Magento et Google Indexing API.
- L’administrateur ou l’intégration choisit les URL à soumettre.
- Le module normalise et valide les URL, notamment selon le schéma, l’hôte et les sources autorisées.
- Les adresses correctes sont envoyées vers la file d’attente centrale avec le statut, l’action et la date d’envoi appropriés.
- Cron Magento récupère périodiquement les enregistrements prêts à être traités.
- Le processeur de file respecte les limites, priorités, délais et verrous d’enregistrements.
- Le module envoie la soumission à Google Indexing API ou effectue le traitement en mode dry-run.
- La réponse de Google est enregistrée dans l’enregistrement de file d’attente ainsi que dans les logs API.
- En cas d’erreurs temporaires, le module peut planifier une nouvelle tentative avec délai.
Ainsi, l’envoi des URL ne dépend pas d’un simple clic ni d’un request direct depuis le panneau d’administration. Tout le processus est mis en file, auditable et plus résistant aux problèmes temporaires avec l’API.
Fonctionnalités principales
- file d’attente centrale d’URL pour différentes sources de contenu,
- prise en charge des actions
URL_UPDATEDetURL_DELETED, - import manuel de plusieurs URL depuis le panneau d’administration,
- actions de masse pour les produits et les pages CMS,
- boutons de soumission d’indexation sur les écrans d’édition de produit, de catégorie et de page CMS,
- intégration optionnelle avec Amasty Blog sous forme de module séparé,
- normalisation et validation des URL,
- whitelist des hôtes autorisés,
- prise en charge des store view et identification de la source de la soumission,
- déduplication des soumissions actives,
- délai d’envoi, c’est-à-dire indexing lag,
- priorités et action
Transmit Now, - traitement par cron,
- contrôle des limites quotidiennes et par minute,
- nouvelles tentatives différées pour les erreurs temporaires,
- statuts de file d’attente :
scheduled,pending,processing,success,retry,failed_permanent,cancelled, - mode dry-run pour des tests sûrs sans envoyer de requests réels,
- logs API et rétention des logs,
- test credentials et metadata dans l’assistant de configuration.
À qui s’adresse ce module
Le module convient aux boutiques Magento 2 qui :
- mettent fréquemment à jour leur offre produit,
- publient ou modifient de nombreuses pages CMS,
- mènent des actions SEO sur plusieurs types de contenus,
- ont besoin de contrôler quelles URL ont été soumises à Google,
- souhaitent réduire la gestion manuelle des soumissions,
- travaillent dans un environnement multistore ou multilanguage,
- ont besoin d’un audit lisible des requests envoyés à Google.
Cette solution est particulièrement utile pour les équipes e-commerce, SEO et administratives qui souhaitent disposer d’un processus commun et structuré pour soumettre à Google les changements de la boutique.
Produits nouveaux ou modifiés
Après l’ajout d’un nouveau produit ou une modification importante d’un produit existant, l’administrateur peut transmettre son adresse à la file d’attente. Le module prend en charge l’enregistrement de la soumission, le délai approprié, la déduplication et l’envoi ultérieur.
Mise à jour des pages CMS et des landing pages
Lorsque l’équipe marketing publie une nouvelle campagne, une promotion ou une page d’information, l’URL peut être ajoutée à la file d’attente sans travail manuel en dehors de Magento.
Organisation des adresses après les changements sur le site
Le module prend en charge non seulement les soumissions de mise à jour, mais aussi l’action URL_DELETED. Il est ainsi possible de transmettre à Google des informations sur les adresses qui devraient être supprimées de l’index, à condition que le scénario soit conforme aux règles d’utilisation de l’API.
Actions SEO de masse
Lors de changements importants dans la boutique, comme la mise à jour de nombreux produits, la migration de contenus ou le rafraîchissement des catégories, l’administrateur peut utiliser les actions de masse et suivre l’avancement dans la file d’attente.
Impact métier
La mise en œuvre du module donne à l’équipe un meilleur contrôle sur la soumission technique des changements à Google. Au lieu d’actions dispersées, manuelles et difficiles à vérifier, un processus unique est créé : l’adresse arrive dans la file d’attente, passe la validation, est envoyée dans le respect des limites, et le résultat est visible dans le panneau d’administration.
La valeur principale du module est de structurer le travail autour de l’indexation : moins de requests aléatoires, moins de doublons, un meilleur diagnostic et une responsabilité plus claire sur ce qui a été soumis à Google.
Périmètre officiel de Google Indexing API
Selon la documentation Google , l’API est destinée aux pages avec JobPosting ou BroadcastEvent intégré dans VideoObject. Les pages ordinaires de produits, catégories, CMS et articles de blog ne font pas partie du périmètre officiellement pris en charge, même si le module peut techniquement mettre leurs URL en file d’attente.
Une réponse HTTP 200 et le statut success indiquent que la soumission a réussi. Metadata confirme la notification, et non la date d’indexation ou de suppression de la page. Pour URL_DELETED, l’adresse doit renvoyer 404/410 ou contenir noindex.
Assistant de configuration et premier lancement
Stores → Configuration → Services → Google Indexing API couvre le compte de service, les hôtes, Store View, les limites et dry-run. Vous avez besoin d’une API active dans Google Cloud, d’une propriété Search Console vérifiée et des autorisations appropriées pour le compte de service.
Marketing → Google Indexing API donne accès à Setup Assistant, Indexing Queue et Import URLs. Commencez par dry-run ainsi que les tests credentials et metadata, vérifiez cron, puis activez l’envoi réel pour le périmètre approprié.
Intégration Amasty Blog et nouvelles sources
La prise en charge de l’action de masse pour Amasty Blog est un package séparé kowal/module-google-indexing-api-amasty-blog. Le module principal ne nécessite pas Amasty Blog.
Une nouvelle source peut transmettre l’URL, l’action URL_UPDATED ou URL_DELETED, la source, l’entité et le store ID via IndexingRequestSchedulerInterface. La file d’attente commune prend en charge la planification, la validation, la déduplication et les nouvelles tentatives.
Installation via Composer
Package kowal/module-google-indexing-api, module Kowal_GoogleIndexingApi. Après avoir configuré l’accès au dépôt Kowal, installez le package, activez le module, mettez Magento à jour et videz le cache. En production, prévoyez la compilation et le déploiement du contenu statique conformément au processus de la boutique.
De la configuration au résultat
1. Vous configurez l’accès et le périmètre
Vous vérifiez le compte de service, les hôtes et les Store View autorisées.
2. Vous ajoutez des adresses à la file d’attente
Vous utilisez l’import, les actions de masse ou les boutons.
3. Vous suivez le traitement
Cron gère l’envoi, les limites, le résultat et les nouvelles tentatives.
Contrôle du déroulement des soumissions
Vous importez les adresses autorisées par les règles de l’API et les vérifiez d’abord en dry-run. Dans la file d’attente, vous contrôlez la source, l’action et l’heure planifiée.
Après l’activation de l’envoi, vous analysez la réponse et les retry. Le statut success confirme l’acceptation du request, et non l’apparition de la page dans les résultats Google.
Structurez les soumissions et le diagnostic API
Vous souhaitez adapter le module à votre boutique ? Demandez la mise en œuvre de Kowal Google Indexing API et discutez de la configuration ou des extensions nécessaires.
Caractéristiques
| Addtocart Description | DÉMOnom d’utilisateur : indexing |
|---|---|
| Compatibilité avec le modèle | Luma / Blank, KOWAL |
Notice d'installation du module
Google Indexing API pour Magento 2 - installation et configuration
1. Informations importantes avant le déploiement
Le module intègre Magento 2 à Google Indexing API et permet d’ajouter des URL à une file d’attente centrale de soumissions. La file d’attente est traitée par cron Magento, et chaque soumission est validée, dédupliquée, soumise aux limites et journalisée.
Conformément à la documentation Google, Indexing API est officiellement destinée principalement aux pages contenant des données structurées :
JobPosting,BroadcastEventintégré dansVideoObject.
L’utilisation de l’API pour les produits, catégories, pages CMS ou articles de blog ne garantit ni indexation ni position dans les résultats de recherche. Le module est un outil technique de soumission d’URL, pas un remplacement des sitemaps XML, canonical corrects, robots, hreflang, liens internes et de la qualité SEO générale.
Ressources officielles Google :
- https://developers.google.com/search/apis/indexing-api/v3/quickstart
- https://developers.google.com/search/apis/indexing-api/v3/prereqs
- https://developers.google.com/search/apis/indexing-api/v3/using-api
- https://developers.google.com/search/apis/indexing-api/v3/quota-pricing
2. Prérequis
Avant l’installation, assurez-vous que l’environnement répond aux exigences :
- Magento 2.4.x,
- PHP 8.1 ou plus récent,
- Composer,
- cron Magento fonctionnel,
- possibilité d’installer le package
google/apiclient, - accès administrateur à Magento,
- projet Google Cloud avec Indexing API activée,
- propriété dans Google Search Console vérifiée pour le domaine de la boutique,
- compte de service Google ajouté comme propriétaire dans Google Search Console.
Le module nécessite le package :
google/apiclient:^2.16
Le package est déclaré dans lecomposer.jsondu module, Composer devrait donc l’installer automatiquement.
3. Installation du module
3.1. Installation via Composer
Ajoutez le dépôt Composer Kowal au projet Magento :
Les identifiants d’accès au dépôt Composer, c’est-à-dire l’adresse e-mail du client et le token de licence, vous seront envoyés par e-mail après l’achat. Ils sont également disponibles dans l’espace client après connexion sur kowal.store. Remplacez TWOJ_EMAIL_KLIENTA par l’adresse e-mail de votre compte et TWOJ_TOKEN par le token reçu. Exécutez les commandes dans le répertoire racine de Magento.
composer config repositories.kowal composer https://repo.kowal.store
Configurez les identifiants d’accès au dépôt Composer Kowal :
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"
Installez le package :
composer require kowal/module-google-indexing-api
Activez le module :
bin/magento module:enable Kowal_GoogleIndexingApi
Effectuez la mise à jour du schéma de base de données :
bin/magento setup:upgrade
Videz le cache :
bin/magento cache:flush
En mode production, exécutez également :
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush
3.2. Installation locale dansapp/code
Si le module est installé sans Composer comme code local, placez-le dans le répertoire :
app/code/Kowal/GoogleIndexingApi
Installez ensuite la dépendance Google API Client dans le projet Magento :
composer require google/apiclient:^2.16
Activez le module et exécutez les commandes Magento standard :
bin/magento module:enable Kowal_GoogleIndexingApi
bin/magento setup:upgrade
bin/magento cache:flush
Pour la production :
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush
3.3. Vérification de l’installation
Vérifiez que le module est actif :
bin/magento module:status Kowal_GoogleIndexingApi
Après une installation correcte, les éléments suivants doivent être disponibles dans le panneau d’administration :
Stores > Configuration > Kowal > Google Indexing API,- menu d’administration
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
Les tables suivantes doivent être créées dans la base de données :
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Préparation de Google Cloud et Search Console
4.1. Création du projet Google Cloud
- Accédez à Google Cloud Console.
- Créez un nouveau projet ou sélectionnez un projet existant utilisé pour la boutique.
- Activez l’API :
Indexing API
Sans API activée, le module ne pourra pas envoyer correctement les soumissions.
4.2. Création du compte de service
- Dans Google Cloud, accédez à
IAM & Admin > Service Accounts. - Créez un nouveau compte de service.
- Générez une clé au format JSON.
- Téléchargez le fichier JSON et conservez-le en lieu sûr.
Le module exige que le JSON contienne au minimum les champs :
type,project_id,private_key,client_email.
Le champtype doit avoir la valeur :
service_account
4.3. Ajout du compte de service comme propriétaire dans Search Console
- Ouvrez Google Search Console.
- Sélectionnez la propriété correspondant au domaine de la boutique.
- Assurez-vous que la propriété est vérifiée.
- Ajoutez l’adresse
client_emaildu fichier JSON comme propriétaire de la propriété.
Exemple d’adresse de compte de service :
my-service-account@project-name.iam.gserviceaccount.com
Si le compte de service n’est pas propriétaire de la propriété Search Console, Google peut renvoyer des erreurs d’autorisation, par exemple absence de confirmation de propriété de l’URL.
5. Configuration du module dans Magento
La configuration se trouve dans :
Stores > Configuration > Kowal > Google Indexing API
La configuration prend en charge les scopes Magento :
- Default Config,
- Website,
- Store View.
Cela permet d’avoir des paramètres séparés pour différentes boutiques ou vues boutique si le projet l’exige.
6. Section General
Enable
Par défaut :
No
Active ou désactive le fonctionnement du module.
Lorsque le champ vautNo, cron ne traite pas la file d’attente. Les adresses peuvent exister dans la base, mais le processeur de file ne les enverra pas à Google.
Recommandation :
- lors de la première configuration, définissez
Noou laissezDry Run = Yes, - après des tests réussis, définissez
Yes.
Dry Run
Par défaut :
Yes
Mode de test. LorsqueDry Runest activé, le module traite les enregistrements de la file, enregistre les statuts et les logs, mais n’envoie pas de soumission réelle à Google.
C’est le mode le plus sûr pour le premier lancement, les tests de configuration et la vérification que les URL arrivent dans la file d’attente comme prévu.
Recommandation :
- effectuez toujours les premiers tests avec
Dry Run = Yes, - désactivez
Dry Rununiquement après avoir vérifié credentials, allowed hosts, la file d’attente et les logs.
7. Section Google Access Credentials
Credentials Source
Par défaut :
Encrypted configuration value
Définit d’où le module récupère le JSON du compte de service Google.
Options disponibles :
| Option | Valeur technique | Description |
|---|---|---|
Encrypted configuration value |
config |
Le JSON est collé dans la configuration Magento et enregistré comme valeur sensitive config chiffrée. |
Uploaded JSON file |
file |
Le JSON est téléversé comme fichier et enregistré hors du répertoirepub, dansvar/google-indexing. |
Recommandation :
- pour les déploiements simples, vous pouvez utiliser la valeur chiffrée dans la configuration,
- pour les environnements avec contrôle d’accès aux fichiers, l’upload du fichier JSON peut être plus pratique.
Service Account JSON
Visible lorsqueCredentials Source = Encrypted configuration value.
Dans ce champ, collez le contenu complet du fichier JSON du compte de service Google.
Le module valide le JSON avant l’enregistrement. Sont vérifiés :
- validité du format JSON,
- présence des champs
type,project_id,private_key,client_email, - valeur
type = service_account.
La valeur est enregistrée comme configuration Magento chiffrée.
Service Account JSON File
Visible lorsqueCredentials Source = Uploaded JSON file.
Permet de téléverser le fichier JSON du compte de service Google.
Le module :
- n’accepte que les fichiers avec l’extension
.json, - valide le contenu du fichier,
- vérifie les champs requis
type,project_id,private_key,client_email, - enregistre le fichier hors du répertoire public, dans
var/google-indexing, - tente de définir les permissions du fichier sur
0600, si le pilote de fichiers le permet.
Le fichier est enregistré avec un nom dépendant du scope de configuration, par exemple pour le scope global :
var/google-indexing/service-account-default-0.json
Google Cloud Project ID
Champ texte pour l’identifiant du projet Google Cloud.
Dans l’implémentation actuelle du module, l’autorisation principale repose sur les données du JSON du compte de service. Le champGoogle Cloud Project IDa une fonction informative et d’organisation de la configuration, en particulier lorsque la boutique utilise plusieurs environnements ou plusieurs projets Google Cloud.
Recommandation :
- saisissez la valeur
project_iddu fichier JSON, - utilisez des projets Google Cloud séparés pour les environnements de production et de test si cette séparation est prévue dans le projet.
8. Section Queue and Limits
Daily Publish Limit
Par défaut :
200
Définit le nombre maximal de soumissions publish que le module peut effectuer en une journée.
Le limiter compte les requests de type :
publish,publish_dry_run.
Si la limite est utilisée, le processeur de file ne récupérera pas d’autres enregistrements à envoyer jusqu’à la prochaine fenêtre quotidienne.
Recommandation :
- laissez
200si le projet utilise la limite d’onboarding Google par défaut, - augmentez la valeur uniquement si le projet Google Cloud dispose d’une limite plus élevée approuvée,
- le réglage
0bloque l’envoi, car le nombre de slots disponibles sera0.
Requests Per Minute Limit
Par défaut :
60
Définit le nombre maximal de requests publish par minute.
Le module compare cette valeur avec le nombre de requests enregistrés dans les logs de la dernière minute. Si la limite par minute est atteinte, cron ne traitera pas d’autres enregistrements lors du passage donné.
Recommandation :
- pour un déploiement typique, laissez la valeur par défaut,
- diminuez la valeur si vous souhaitez solliciter l’API de manière plus conservatrice,
- ne définissez pas
0, sauf si vous souhaitez arrêter temporairement les envois.
Cron Batch Size
Par défaut :
20
Définit le nombre maximal d’enregistrements de file d’attente traités lors d’un passage cron.
Le nombre réel d’enregistrements traités est également limité par :
Daily Publish Limit,Requests Per Minute Limit,- le nombre d’enregistrements prêts à être envoyés,
- le statut et la date
scheduled_at.
Recommandation :
20est une valeur de départ sûre,- pour les grandes files d’attente, la valeur peut être augmentée, mais uniquement en tenant compte des limites Google.
Default Indexing Lag (minutes)
Par défaut :
15
Définit le délai par défaut entre l’ajout d’une URL à la file d’attente et le moment à partir duquel elle peut être envoyée.
Le délai aide à :
- réduire les doublons,
- éviter l’envoi après chaque petite modification,
- donner à l’administrateur le temps de corriger le contenu,
- mieux gérer la limite API.
Dans l’implémentation actuelle, ce paramètre est utilisé lorsque la soumission n’a pas son propre délai.
Manual Form Indexing Lag (minutes)
Par défaut :
15
Définit le délai pour les URL ajoutées via le formulaire :
Google Indexing API > Import URLs
Si l’administrateur colle manuellement une liste d’URL, chaque adresse valide sera planifiée avec ce délai.
Recommandation :
- définissez
0si l’import manuel doit arriver immédiatement dans la file d’attente, - laissez
15si vous souhaitez conserver une marge pour la déduplication et le contrôle des soumissions.
Mass Action Indexing Lag (minutes)
Par défaut :
15
Définit le délai pour les URL ajoutées via :
- actions de masse sur les produits,
- actions de masse sur les pages CMS,
- boutons de soumission d’indexation sur les écrans d’édition de produit, catégorie et page CMS.
Recommandation :
- pour les opérations de masse, laissez la valeur
15ou plus, - pour les petites boutiques et le travail administratif manuel, une valeur plus faible peut être envisagée.
Max Attempts
Par défaut :
5
Définit le nombre maximal de tentatives d’envoi d’un enregistrement de file d’attente.
Si Google renvoie une erreur temporaire, le module définira le statutretry, à condition que le nombre de tentatives soit inférieur àMax Attempts. Après dépassement de la limite, l’enregistrement recevra le statutfailed_permanent.
Erreurs considérées comme temporaires :
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Par défaut :
15
Délai de base avant la tentative d’envoi suivante après une erreur temporaire.
Cron utilise un délai croissant. Le multiplicateur dépend du nombre de tentatives et est plafonné à24. Ainsi, les tentatives suivantes ne sont pas effectuées de manière trop agressive.
Exemple pour la valeur15:
| Tentative | Délai approximatif |
|---|---|
| 1 | 15 minutes |
| 2 | 30 minutes |
| 3 | 60 minutes |
| 4 | 120 minutes |
Allowed Source Types
Par défaut :
manual,product,category,cms_page,amasty_blog_post
Liste des types de sources autorisés, séparés par des virgules.
Valeurs prises en charge :
| Valeur | Signification |
|---|---|
manual |
URL ajoutée manuellement via le formulaire d’import. |
product |
URL produit. |
category |
URL catégorie. |
cms_page |
URL de page CMS. |
amasty_blog_post |
URL d’article Amasty Blog, si le module d’intégration séparé est utilisé. |
Si le type de source ne figure pas dans la liste, le scheduler ignorera la soumission et la marquera commeskipped.
Recommandation :
- laissez les valeurs par défaut si la boutique utilise toutes les sources standard,
- supprimez les sources que vous ne souhaitez pas autoriser dans la file d’attente.
Allowed URL Hosts
Par défaut :
puste
Liste des hôtes URL autorisés, séparés par des virgules.
Exemple :
example.com,www.example.com
Si la liste est renseignée, le module n’acceptera que les adresses appartenant aux hôtes indiqués. Si l’URL a un autre hôte, la validation renverra l’erreur :
host_not_allowed
Recommandation :
- en production, renseignez toujours cette liste,
- ajoutez tous les hôtes utilisés par la boutique, par exemple le domaine principal, la version
www, les domaines de store view et les domaines linguistiques, - n’ajoutez pas de domaines de test à la configuration de production.
Require HTTPS URLs
Par défaut :
Yes
Impose que les URL soumises utilisent le schémahttps.
Lorsque le champ est activé, une adresse avechttp sera rejetée avec l’erreur :
https_required
Recommandation :
- pour les boutiques de production, conservez
Yes, Noà utiliser uniquement dans des environnements de test exceptionnels.
9. Section Auto-Indexing
Enable Auto-Indexing
Par défaut :
No
Le champ est prévu pour les intégrations automatiques d’enregistrement ou de suppression d’entités et des providers d’URL supplémentaires.
Dans le périmètre actuel du module, des mécanismes manuels et administratifs d’ajout d’URL à la file d’attente sont disponibles, notamment l’import d’URL, les Mass Actions et les boutons sur les formulaires d’édition.
Recommandation :
- laissez
Nosi auto-indexing n’a pas été déployé dans le projet, - activez-le seulement lorsque le projet inclut la prise en charge d’événements automatiques d’entités utilisant cette configuration.
10. Section Logs
API Log Retention Days
Par défaut :
90
Définit le nombre de jours de conservation des logs API.
Le cron de nettoyage des logs s’exécute chaque jour à :
03:15
Il supprime les entrées plus anciennes que le nombre de jours défini dans ce champ.
Recommandation :
90jours est une valeur raisonnable pour le diagnostic,- en cas de grand nombre de requests, la rétention peut être réduite,
- pour les audits SEO, la rétention peut être augmentée en tenant compte de la taille de la table de logs.
11. Assistant d’installation et de configuration
L’assistant se trouve dans :
Google Indexing API > Setup Assistant
Son objectif est de vérifier rapidement si la configuration côté Magento et Google est prête pour le premier test.
11.1. Section Current Status
L’assistant affiche l’état actuel des éléments les plus importants :
| Le champ | Signification |
|---|---|
Module |
Indique si le module est activé dans la configuration. |
Dry Run |
Indique si le mode de test sans envoi réel à Google est actif. |
Credentials |
Indique si le module peut lire et parser les credentials Google. |
Service Account Email |
Afficheclient_emaildu JSON du compte de service. Cette adresse doit être ajoutée comme propriétaire dans Search Console. |
Allowed Hosts |
Affiche la liste des hôtes autorisés dans la configuration. |
Queue |
Affiche le nombre d’enregistrements dans les statutsscheduled,pending,retryetfailed_permanent. |
SiCredentialsa le statutMissing or invalid, retournez dans la configuration et corrigez le JSON ou le fichier credentials.
SiAllowed HostsafficheNot configured, le module ne limite pas les hôtes. Techniquement, cela peut fonctionner, mais en production il est recommandé d’indiquer explicitement les hôtes de la boutique.
11.2. Section Setup Steps
L’assistant affiche la liste des étapes nécessaires avant le premier request réel :
- Création ou sélection d’un projet Google Cloud.
- Activation d’Indexing API et création d’une JSON key pour le compte de service.
- Collage du JSON ou téléversement du fichier JSON dans la configuration Magento.
- Ajout du service account email comme propriétaire dans Google Search Console.
- Lancement des tests, puis import d’une URL avec
Dry Run.
L’assistant contient des liens vers :
- Google Cloud pour Indexing API,
- la configuration du module dans Magento,
- Google Search Console.
11.3. Test Google Credentials
Bouton :
Test Google Credentials
vérifie si Magento peut utiliser les données du compte de service pour obtenir un token OAuth pour le scope :
https://www.googleapis.com/auth/indexing
Un résultat positif signifie que :
- le JSON est valide,
- la clé privée peut être utilisée,
- Google a délivré un token OAuth.
Un résultat négatif peut indiquer :
- un JSON invalide,
- un élément incorrect ou endommagé :
private_key, - un champ requis manquant dans le JSON,
- un problème de communication avec Google,
- une clé qui n’est pas celle d’un compte de service.
Ce test ne confirme pas encore que le compte de service possède l’accès propriétaire au domaine dans Search Console. Un test URL metadata ou la soumission réelle d’une URL de test est nécessaire.
11.4. Test URL Metadata
Formulaire :
Test URL Metadata
permet de saisir une URL publique depuis un hôte autorisé et d’effectuer un request metadata vers Google Indexing API.
Avant d’envoyer le request, le module :
- normalise l’URL,
- vérifie que l’URL est absolue,
- vérifie le schéma
httpouhttps, - avec
Require HTTPS URLsactivé, exigehttps, - vérifie
Allowed URL Hostssi ceux-ci ont été configurés.
Résultats possibles :
| Résultat | Signification |
|---|---|
| Succès HTTP 2xx | Google a renvoyé les metadata pour l’URL. |
| HTTP 404 | Signifie souvent que l’URL n’a pas encore fait l’objet d’une soumission efficace antérieure via Indexing API. Cela ne signifie pas nécessairement une mauvaise configuration. |
| Erreur de validation avant la requête | L’URL ne respecte pas les conditions du module, par exemple mauvais hôte, absence de HTTPS ou adresse non absolue. |
| Erreur HTTP autre que 404 | Vérifiez le message Google, les autorisations Search Console, les credentials et les limites. |
Le test metadata ne crée pas de nouvelle soumission publish. Il sert au diagnostic de la connexion et du statut de l’URL.
12. Première exécution étape par étape
Ordre recommandé pour le premier lancement :
- Installez le module et exécutez
setup:upgrade. - Dans Magento, accédez à
Stores > Configuration > Kowal > Google Indexing API. - Définissez
Enable = Yes. - Laissez
Dry Run = Yes. - Choisissez la source des credentials.
- Collez le JSON du compte de service ou téléversez le fichier JSON.
- Renseignez
Google Cloud Project IDavec la valeurproject_iddu JSON. - Renseignez
Allowed URL Hosts, par exempleexample.com,www.example.com. - Laissez les limites par défaut si Google n’a pas approuvé de limites plus élevées.
- Enregistrez la configuration et videz le cache.
- Accédez à
Google Indexing API > Setup Assistant. - Vérifiez que l’assistant affiche les credentials comme prêts.
- Cliquez sur
Test Google Credentials. - Ajoutez le service account email comme propriétaire dans Google Search Console si cela n’a pas encore été fait.
- Exécutez
Test URL Metadatapour une URL publique d’un hôte autorisé. - Accédez à
Google Indexing API > Import URLs. - Ajoutez une URL de test avec l’action
URL_UPDATED. - Lancez cron Magento :
bin/magento cron:run
Google Indexing API > Indexing Queue.Google Indexing API > API Logs.Dry Run.13. Import d’URL depuis l’administration
L’import manuel se trouve dans :
Google Indexing API > Import URLs
Le formulaire contient les champs :
| Le champ | Description |
|---|---|
Action |
Type de soumission à Google : ajout/mise à jour ou suppression. |
Store View |
Store view à laquelle la soumission doit être associée. Une option globaleUse global/no store. |
URLs |
Liste d’URL absolues, une adresse par ligne. |
Actions disponibles :
| Action dans le formulaire | Valeur API | Signification |
|---|---|---|
Submit URLs for indexing |
URL_UPDATED |
Indique à Google que l’URL a été ajoutée ou mise à jour. |
Delete URLs from indexing |
URL_DELETED |
Indique à Google que l’URL a été supprimée et peut être retirée de l’index. |
Après l’envoi du formulaire, le module affiche un résumé :
- ajoutées,
- mises à jour,
- dédupliquées,
- invalides,
- ignorées.
Les 10 premiers messages de validation sont affichés comme notice dans le panneau d’administration.
14. File d’indexation
La file d’attente se trouve dans :
Google Indexing API > Indexing Queue
Chaque enregistrement de la file contient notamment :
- URL,
- hash de l’URL,
- store ID,
- website ID,
- type de source,
- ID de l’entité source,
- origine du request,
- action
URL_UPDATEDouURL_DELETED, - statut,
- priorité,
- nombre de tentatives,
- nombre maximal de tentatives,
- date d’envoi planifiée,
- date de traitement,
- dernier code d’erreur,
- dernière raison d’erreur,
- dernier message d’erreur,
- la réponse Google,
- information
created_by.
Statuts de la file d’attente
| Statut | Signification |
|---|---|
scheduled |
L’URL est planifiée, mais attend encore la datescheduled_at. |
pending |
L’URL est prête à être traitée par cron. |
processing |
L’URL est en cours de traitement. |
success |
Google a renvoyé une réponse de succès. |
retry |
Une erreur temporaire s’est produite et l’enregistrement attend une nouvelle tentative. |
failed_permanent |
L’envoi a échoué définitivement ou le nombre maximal de tentatives a été dépassé. |
cancelled |
L’enregistrement a été annulé manuellement. |
Actions sur les enregistrements de file d’attente
| Action | Fonctionnement |
|---|---|
Transmit Now |
Marque l’enregistrement comme urgent, le verrouille, l’envoie immédiatement via le client Google et enregistre le résultat. |
Retry |
Définit l’enregistrement commepending, supprime le verrou et planifie immédiatement une nouvelle tentative. |
Cancel |
Définit le statutcancelledet supprime le verrou. |
Remarque :Transmit Noweffectue un request réel siDry Run = No. AvecDry Run = Yes, un log dry-run sera enregistré sans envoi réel à Google.
15. Cron
Le module ajoute deux tâches cron dans le groupedefault.
Traitement de la file d’attente
kowal_google_indexing_process_queue
Planification :
*/5 * * * *
La tâche lance le processeur de file toutes les 5 minutes.
Le processeur :
- Vérifie si le module est activé.
- Libère les anciens verrous des enregistrements
processingdatant de plus de 30 minutes. - Déplace les enregistrements
scheduledverspendingsischeduled_at <= now. - Vérifie les slots disponibles dans les limites quotidienne et par minute.
- Récupère les enregistrements
pendingetretry. - Les trie par priorité et date d’envoi planifiée.
- Envoie le request à Google ou effectue un dry-run.
- Enregistre la réponse, le statut et le log API.
Nettoyage des logs
kowal_google_indexing_cleanup_logs
Planification :
15 3 * * *
La tâche supprime les logs API plus anciens que le nombre de jours défini dans le champ :
API Log Retention Days
16. Logs API
Les logs sont disponibles dans :
Google Indexing API > API Logs
Le log comprend :
- ID de l’enregistrement de file,
- store ID,
- type de request,
- URL de l’endpoint,
- payload,
- statut HTTP,
- body de la réponse,
- durée du request,
- date de création du log.
Types de requests :
| Type | Signification |
|---|---|
publish |
Soumission réelle de l’URL à Google. |
publish_dry_run |
Traitement en mode dry-run sans request réel vers Google. |
metadata |
Test metadata pour l’URL. |
17. Mass Actions et boutons d’administration
Le module ajoute des mécanismes de soumission d’URL depuis le panneau d’administration.
Produits
Sur la grille des produits, une action de masse permet d’ajouter les URL des produits à la file d’attente.
Le module ignore les produits :
- désactivés,
- non visibles individuellement.
Les URL sont générées à partir des URL rewrites pour les store view actives.
Pages CMS
Sur la grille des pages CMS, une action de masse permet d’ajouter les URL des pages à la file d’attente.
Le module ignore les pages inactives.
Si la page CMS est affectée à toutes les store view, le module résout les URL pour toutes les store view.
Produit, catégorie et page CMS - boutons sur le formulaire d’édition
Le module ajoute des boutons de soumission d’indexation sur les écrans d’édition :
- produit,
- catégorie,
- page CMS.
Le bouton résout les URL de l’entité pour les store view et les ajoute à la file d’attente commeURL_UPDATED.
18. Configuration initiale recommandée
Pour un premier déploiement en production :
| Le champ | Recommandation |
|---|---|
Enable |
Yesaprès l’enregistrement des credentials et allowed hosts. |
Dry Run |
Yespendant les tests, puisNo. |
Credentials Source |
Encrypted configuration valueouUploaded JSON file, selon la politique du projet. |
Google Cloud Project ID |
project_iddu JSON. |
Daily Publish Limit |
200, sauf si Google a approuvé une limite plus élevée. |
Requests Per Minute Limit |
60ou moins pour un déploiement prudent. |
Cron Batch Size |
20. |
Default Indexing Lag |
15. |
Manual Form Indexing Lag |
0-15, selon la méthode de travail des administrateurs. |
Mass Action Indexing Lag |
15. |
Max Attempts |
5. |
Retry Delay |
15. |
Allowed Source Types |
manual,product,category,cms_page,amasty_blog_post. |
Allowed URL Hosts |
Tous les hôtes de production de la boutique. |
Require HTTPS URLs |
Yes. |
Enable Auto-Indexing |
No, sauf si le projet déploie des providers automatiques. |
API Log Retention Days |
90. |
19. Problèmes courants et diagnostic
Credentials test failed
Vérifiez :
- si le JSON est correct,
- si le JSON provient d’un compte de service,
- s’il contient
private_keyetclient_email, - si le champ
typea la valeurservice_account, - si le fichier JSON n’a pas été endommagé lors du collage.
Google renvoie une erreur d’autorisation
Vérifiez :
- si le domaine est vérifié dans Search Console,
- si
client_emaildu compte de service est ajouté comme propriétaire, - si l’URL testée appartient à la même propriété Search Console,
- si vous utilisez le bon projet Google Cloud et le bon JSON.
L’URL est rejetée avant l’envoi
Vérifiez le message de validation :
| Message | Cause |
|---|---|
empty_url |
URL vide. |
url_too_long |
L’URL dépasse 2048 caractères. |
url_not_absolute |
L’URL n’a pas de schéma ou d’hôte. |
https_required |
L’exigence HTTPS est activée et l’URL utilise HTTP. |
invalid_scheme |
Le schéma n’est nihttpnihttps. |
host_not_allowed |
L’hôte de l’URL ne figure pas dansAllowed URL Hosts. |
La file d’attente n’est pas traitée
Vérifiez :
- si
Enable = Yes, - si cron Magento fonctionne,
- si les enregistrements ont le statut
pendingouretry, - si
scheduled_atn’est pas dans le futur, - si les limites quotidienne ou par minute ne sont pas utilisées,
- si
Daily Publish LimitetRequests Per Minute Limitne sont pas définis sur0.
Les enregistrements passent enretry
Vérifiez :
- le statut HTTP dans l’enregistrement de file,
- le log API,
- la réponse Google,
- s’il n’y a pas de limite
429, - s’il n’y a pas d’erreurs temporaires
5xx, - si
Max AttemptsetRetry Delaysont définis selon vos attentes.
20. Intégration facultative avec Amasty Blog
L’intégration avec Amasty Blog est prévue comme module séparé :
Kowal_GoogleIndexingApiAmastyBlog
Package :
kowal/module-google-indexing-api-amasty-blog
Ce module n’est pas requis pour le fonctionnement de l’intégration principale. Il ne doit être installé que dans les projets qui utilisentamasty/blog et ont besoin d’une action de masse pour les articles de blog.