Google Indexing API para Magento 2 - instalación y configuración
1. Información importante antes de la implantación
El módulo integra Magento 2 con Google Indexing API y permite añadir URL a una cola central de envíos. La cola es procesada por el cron de Magento, y cada envío se valida, se deduplica, está sujeto a límites y se registra.
Según la documentación de Google, Indexing API está destinada oficialmente principalmente a páginas con datos estructurados:
JobPosting,BroadcastEventincrustado enVideoObject.
El uso de la API para productos, categorías, páginas CMS o entradas de blog no garantiza la indexación ni la posición en los resultados de búsqueda. El módulo debe tratarse como una herramienta técnica para notificar URL y no como un sustituto del sitemap XML, canonical correctos, robots, hreflang, enlazado interno y la calidad general del SEO.
Materiales oficiales de 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. Requisitos
Antes de la instalación, asegúrate de que el entorno cumple los requisitos:
- Magento 2.4.x,
- PHP 8.1 o superior,
- Composer,
- cron de Magento en funcionamiento,
- posibilidad de instalar el paquete
google/apiclient, - acceso administrativo a Magento,
- proyecto de Google Cloud con Indexing API habilitada,
- propiedad en Google Search Console verificada para el dominio de la tienda,
- cuenta de servicio de Google añadida como propietaria en Google Search Console.
El módulo requiere el paquete:
google/apiclient:^2.16El paquete está declarado en el composer.json del módulo, por lo que Composer debería instalarlo automáticamente.
3. Instalación del módulo
3.1. Instalación mediante Composer desde un repositorio VCS
Si el módulo se instala desde un repositorio Git privado o público, añade el repositorio al proyecto Magento:
composer config repositories.kowal.google.indexing.api vcs https://github.com/kowalco/google-indexing-apiSi el repositorio es privado, configura el token de GitHub:
composer config --global --auth github-oauth.github.com Instala el paquete:
composer require kowal/module-google-indexing-apiActiva el módulo:
bin/magento module:enable Kowal_GoogleIndexingApiEjecuta la actualización del esquema de base de datos:
bin/magento setup:upgradeLimpia la caché:
bin/magento cache:flushEn modo producción, ejecuta además:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.2. Instalación local en app/code
Si el módulo se instala sin Composer como código local, colócalo en el directorio:
app/code/Kowal/GoogleIndexingApiA continuación, instala la dependencia Google API Client en el proyecto Magento:
composer require google/apiclient:^2.16Activa el módulo y ejecuta los comandos estándar de Magento:
bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flushPara producción:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.3. Verificación de la instalación
Comprueba si el módulo está activo:
bin/magento module:status Kowal_GoogleIndexingApiTras una instalación correcta, en el panel de administración deberían estar disponibles:
Stores > Configuration > Kowal > Google Indexing API,- menú de administración
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
En la base de datos deberían crearse las tablas:
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Preparación de Google Cloud y Search Console
4.1. Creación de un proyecto de Google Cloud
- Accede a Google Cloud Console.
- Crea un proyecto nuevo o selecciona un proyecto existente usado para la tienda.
- Habilita la API:
Indexing APISin la API habilitada, el módulo no podrá enviar notificaciones correctamente.
4.2. Creación de una cuenta de servicio
- En Google Cloud, ve a
IAM & Admin > Service Accounts. - Crea una nueva cuenta de servicio.
- Genera una clave en formato JSON.
- Descarga el archivo JSON y guárdalo de forma segura.
El módulo requiere que el JSON contenga al menos los campos:
type,project_id,private_key,client_email.
El campo type debe tener el valor:
service_account4.3. Añadir la cuenta de servicio como propietaria en Search Console
- Abre Google Search Console.
- Selecciona la propiedad correspondiente al dominio de la tienda.
- Asegúrate de que la propiedad está verificada.
- Añade la dirección
client_emaildel archivo JSON como propietaria de la propiedad.
Ejemplo de dirección de cuenta de servicio:
my-service-account@project-name.iam.gserviceaccount.comSi la cuenta de servicio no es propietaria de la propiedad en Search Console, Google puede devolver errores de permisos, por ejemplo, falta de confirmación de propiedad de la URL.
5. Configuración del módulo en Magento
La configuración se encuentra en:
Stores > Configuration > Kowal > Google Indexing APILa configuración admite los ámbitos de Magento:
- Default Config,
- Website,
- Store View.
Gracias a ello, es posible tener ajustes separados para diferentes tiendas o vistas de tienda, si el proyecto lo requiere.
6. Sección General
Enable
Por defecto:
NoActiva o desactiva el funcionamiento del módulo.
Cuando el campo tiene el valor No, el cron no procesa la cola. Las direcciones pueden existir en la base de datos, pero el procesador de la cola no las enviará a Google.
Recomendación:
- durante la primera configuración establece
Noo dejaDry Run = Yes, - tras las pruebas correctas establece
Yes.
Dry Run
Por defecto:
YesModo de prueba. Cuando Dry Run está activado, el módulo procesa los registros de la cola, guarda estados y logs, pero no envía una notificación real a Google.
Es el modo más seguro para la primera puesta en marcha, pruebas de configuración y comprobación de que las URL llegan a la cola según lo esperado.
Recomendación:
- realiza siempre las primeras pruebas con
Dry Run = Yes, - desactiva
Dry Runsolo después de verificar credentials, allowed hosts, cola y logs.
7. Sección Google Access Credentials
Credentials Source
Por defecto:
Encrypted configuration valueDefine de dónde obtiene el módulo el JSON de la cuenta de servicio de Google.
Opciones disponibles:
| Opción | Valor técnico | Descripción |
|---|---|---|
Encrypted configuration value | config | El JSON se pega en la configuración de Magento y se guarda como valor cifrado de sensitive config. |
Uploaded JSON file | file | El JSON se sube como archivo y se guarda fuera del directorio pub, en var/google-indexing. |
Recomendación:
- para implantaciones sencillas se puede usar el valor cifrado en la configuración,
- para entornos con control de acceso a archivos, puede resultar más cómodo subir el archivo JSON.
Service Account JSON
Visible cuando Credentials Source = Encrypted configuration value.
En este campo hay que pegar el contenido completo del archivo JSON de la cuenta de servicio de Google.
El módulo valida el JSON antes de guardarlo. Se comprueban:
- la validez del formato JSON,
- la presencia de los campos
type,project_id,private_key,client_email, - el valor
type = service_account.
El valor se guarda como configuración cifrada de Magento.
Service Account JSON File
Visible cuando Credentials Source = Uploaded JSON file.
Permite subir el archivo JSON de la cuenta de servicio de Google.
El módulo:
- acepta solo archivos con extensión
.json, - valida el contenido del archivo,
- comprueba los campos requeridos
type,project_id,private_key,client_email, - guarda el archivo fuera del directorio público, en
var/google-indexing, - intenta establecer permisos del archivo en
0600, si el controlador de archivos lo permite.
El archivo se guarda con un nombre dependiente del ámbito de configuración, por ejemplo, para el ámbito global:
var/google-indexing/service-account-default-0.jsonGoogle Cloud Project ID
Campo de texto para el identificador del proyecto de Google Cloud.
En la implementación actual del módulo, la autorización principal se basa en los datos del JSON de la cuenta de servicio. El campo Google Cloud Project ID cumple una función informativa y de organización de la configuración, especialmente cuando la tienda utiliza varios entornos o varios proyectos de Google Cloud.
Recomendación:
- introduce el valor
project_iddel archivo JSON, - usa proyectos de Google Cloud separados para entornos de producción y de pruebas, si esa separación forma parte del proyecto.
8. Sección Queue and Limits
Daily Publish Limit
Por defecto:
200Define el número máximo de envíos publish que el módulo puede realizar al día.
El limitador cuenta los requests de tipo:
publish,publish_dry_run.
Si se alcanza el límite, el procesador de la cola no recogerá más registros para enviar hasta la siguiente ventana diaria.
Recomendación:
- deja
200si el proyecto utiliza el límite onboarding predeterminado de Google, - aumenta el valor solo cuando el proyecto de Google Cloud tenga aprobado un límite superior,
- el valor
0bloquea el envío, ya que el número de slots disponibles será0.
Requests Per Minute Limit
Por defecto:
60Define el número máximo de requests publish por minuto.
El módulo compara este valor con el número de requests guardados en los logs del último minuto. Si se ha agotado el límite por minuto, el cron no procesará más registros en esa ejecución.
Recomendación:
- para una implantación típica, deja el valor por defecto,
- reduce el valor si quieres cargar la API de forma más conservadora,
- no establezcas
0, salvo que quieras detener temporalmente el envío.
Cron Batch Size
Por defecto:
20Define el número máximo de registros de la cola procesados en una sola ejecución del cron.
El número real de registros procesados también está limitado por:
Daily Publish Limit,Requests Per Minute Limit,- el número de registros listos para enviar,
- el estado y la fecha
scheduled_at.
Recomendación:
20es un valor inicial seguro,- con colas grandes se puede aumentar el valor, pero solo teniendo en cuenta los límites de Google.
Default Indexing Lag (minutes)
Por defecto:
15Define el retraso predeterminado entre añadir una URL a la cola y el momento a partir del cual puede enviarse.
El retraso ayuda a:
- reducir duplicados,
- evitar envíos tras cada pequeño cambio,
- dar al administrador tiempo para corregir contenidos,
- gestionar mejor el límite de la API.
En la implementación actual, este ajuste se utiliza cuando el envío no tiene su propio retraso.
Manual Form Indexing Lag (minutes)
Por defecto:
15Define el retraso para las URL añadidas mediante el formulario:
Google Indexing API > Import URLsSi el administrador pega manualmente una lista de URL, cada dirección válida se programará con este retraso.
Recomendación:
- establece
0si la importación manual debe entrar en la cola de inmediato, - deja
15si quieres mantener un margen para la deduplicación y el control de envíos.
Mass Action Indexing Lag (minutes)
Por defecto:
15Define el retraso para las URL añadidas mediante:
- acciones masivas de productos,
- acciones masivas de páginas CMS,
- botones para solicitar la indexación en las pantallas de edición de producto, categoría y página CMS.
Recomendación:
- para operaciones masivas, deja el valor
15o superior, - para tiendas pequeñas y trabajo administrativo manual puede considerarse un valor inferior.
Max Attempts
Por defecto:
5Define el número máximo de intentos de envío de un registro de cola.
Si Google devuelve un error temporal, el módulo establecerá el estado retry, siempre que el número de intentos sea inferior a Max Attempts. Al superar el límite, el registro recibirá el estado failed_permanent.
Errores tratados como temporales:
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Por defecto:
15Retraso básico antes del siguiente intento de envío tras un error temporal.
El cron utiliza un retraso creciente. El multiplicador depende del número de intentos y está limitado a un máximo de 24. Gracias a ello, los intentos posteriores no se realizan de forma demasiado agresiva.
Ejemplo para el valor 15:
| Intento | Retraso aproximado |
|---|---|
| 1 | 15 minutos |
| 2 | 30 minutos |
| 3 | 60 minutos |
| 4 | 120 minutos |
Allowed Source Types
Por defecto:
manual,product,category,cms_page,amasty_blog_postLista de tipos de origen permitidos, separados por comas.
Valores admitidos:
| Valor | Significado |
|---|---|
manual | URL añadida manualmente mediante el formulario de importación. |
product | URL de producto. |
category | URL de categoría. |
cms_page | URL de página CMS. |
amasty_blog_post | URL de entrada de Amasty Blog, si se utiliza un módulo de integración independiente. |
Si el tipo de origen no está en la lista, el scheduler omitirá el envío y lo marcará como skipped.
Recomendación:
- deja los valores predeterminados si la tienda utiliza todas las fuentes estándar,
- elimina las fuentes que no quieras permitir en la cola.
Allowed URL Hosts
Por defecto:
vacíoLista de hosts de URL permitidos, separados por comas.
Ejemplo:
example.com,www.example.comSi la lista está completada, el módulo aceptará solo direcciones pertenecientes a los hosts indicados. Si la URL tiene otro host, la validación devolverá el error:
host_not_allowedRecomendación:
- en producción, completa siempre esta lista,
- añade todos los hosts utilizados por la tienda, por ejemplo, el dominio principal, la versión
www, los dominios de store view y los dominios de idioma, - no añadas dominios de prueba a la configuración de producción.
Require HTTPS URLs
Por defecto:
YesObliga a que las URL notificadas utilicen el esquema https.
Si el campo está activado, una dirección con http será rechazada con el error:
https_requiredRecomendación:
- para tiendas en producción, deja
Yes, - usa
Nosolo en entornos de prueba excepcionales.
9. Sección Auto-Indexing
Enable Auto-Indexing
Por defecto:
NoEl campo está preparado para integraciones automáticas de guardado o eliminación de entidades y proveedores adicionales de URL.
En el alcance actual del módulo, están disponibles mecanismos manuales y administrativos para añadir URL a la cola, entre ellos importación de URL, Mass Actions y botones en formularios de edición.
Recomendación:
- deja
Nosi auto-indexing no se ha implantado en el proyecto, - actívalo solo cuando el proyecto incluya soporte para eventos automáticos de entidades que utilicen esta configuración.
10. Sección Logs
API Log Retention Days
Por defecto:
90Define el número de días durante los que se conservan los logs de la API.
El cron que limpia los logs se ejecuta cada día a las:
03:15Elimina las entradas más antiguas que el número de días establecido en este campo.
Recomendación:
90días es un valor razonable para diagnóstico,- con un gran número de requests se puede reducir la retención,
- en auditorías SEO se puede aumentar la retención, teniendo en cuenta el tamaño de la tabla de logs.
11. Asistente de instalación y configuración
El asistente se encuentra en:
Google Indexing API > Setup AssistantSu objetivo es comprobar rápidamente si la configuración en Magento y Google está lista para la primera prueba.
11.1. Sección Current Status
El asistente muestra el estado actual de los elementos más importantes:
| Campo | Significado |
|---|---|
Module | Informa si el módulo está activado en la configuración. |
Dry Run | Informa si está activo el modo de prueba sin envío real a Google. |
Credentials | Muestra si el módulo puede leer y parsear las credentials de Google. |
Service Account Email | Muestra el client_email del JSON de la cuenta de servicio. Esta dirección debe añadirse como propietaria en Search Console. |
Allowed Hosts | Muestra la lista de hosts permitidos en la configuración. |
Queue | Muestra el número de registros con estados scheduled, pending, retry y failed_permanent. |
Si Credentials tiene el estado Missing or invalid, hay que volver a la configuración y corregir el JSON o el archivo de credentials.
Si Allowed Hosts muestra Not configured, el módulo no restringe los hosts. Técnicamente puede funcionar, pero en producción se recomienda introducir explícitamente los hosts de la tienda.
11.2. Sección Setup Steps
El asistente muestra la lista de pasos necesarios antes del primer request real:
- Crear o seleccionar un proyecto de Google Cloud.
- Habilitar Indexing API y crear una JSON key para la cuenta de servicio.
- Pegar el JSON o subir el archivo JSON en la configuración de Magento.
- Añadir el service account email como propietario en Google Search Console.
- Ejecutar pruebas y luego importar una URL con
Dry Runactivado.
El asistente contiene enlaces a:
- Google Cloud para Indexing API,
- la configuración del módulo en Magento,
- Google Search Console.
11.3. Test Google Credentials
El botón:
Test Google Credentialscomprueba si Magento puede utilizar los datos de la cuenta de servicio para obtener un token OAuth para el alcance:
https://www.googleapis.com/auth/indexingUn resultado positivo significa que:
- el JSON es correcto,
- la clave privada puede utilizarse,
- Google ha emitido el token OAuth.
Un resultado negativo puede significar:
- JSON incorrecto,
private_keyerrónea o dañada,- falta de un campo requerido en el JSON,
- problema de comunicación con Google,
- uso de una clave que no es una clave de cuenta de servicio.
Esta prueba todavía no confirma que la cuenta de servicio tenga acceso de propietario al dominio en Search Console. Para ello hace falta la prueba de URL metadata o un envío real de una URL de prueba.
11.4. Test URL Metadata
El formulario:
Test URL Metadatapermite introducir una URL pública de un host permitido y realizar un request de metadata a Google Indexing API.
Antes de enviar el request, el módulo:
- normaliza la URL,
- comprueba si la URL es absoluta,
- comprueba el esquema
httpohttps, - si
Require HTTPS URLsestá activado, exigehttps, - comprueba
Allowed URL Hosts, si se han configurado.
Posibles resultados:
| Resultado | Significado |
|---|---|
| Éxito HTTP 2xx | Google ha devuelto metadata para la URL. |
| HTTP 404 | A menudo significa que la URL todavía no tiene un envío correcto previo mediante Indexing API. No necesariamente significa una configuración incorrecta. |
| Error de validación antes del request | La URL no cumple las condiciones del módulo, por ejemplo, host incorrecto, falta de HTTPS o dirección no absoluta. |
| Error HTTP distinto de 404 | Debe revisarse el mensaje de Google, los permisos de Search Console, las credentials y los límites. |
La prueba de metadata no crea un nuevo envío publish. Sirve para diagnosticar la conexión y el estado de la URL.
12. Primera puesta en marcha paso a paso
Orden recomendado para la primera puesta en marcha:
- Instala el módulo y ejecuta
setup:upgrade. - En Magento, ve a
Stores > Configuration > Kowal > Google Indexing API. - Establece
Enable = Yes. - Deja
Dry Run = Yes. - Selecciona la fuente de credentials.
- Pega el JSON de la cuenta de servicio o sube el archivo JSON.
- Rellena
Google Cloud Project IDcon el valorproject_iddel JSON. - Rellena
Allowed URL Hosts, por ejemplo,example.com,www.example.com. - Deja los límites predeterminados si Google no ha aprobado límites superiores.
- Guarda la configuración y limpia la caché.
- Ve a
Google Indexing API > Setup Assistant. - Comprueba si el asistente muestra las credentials como listas.
- Haz clic en
Test Google Credentials. - Añade el service account email como propietario en Google Search Console, si aún no se ha hecho.
- Ejecuta
Test URL Metadatapara una URL pública de un host permitido. - Ve a
Google Indexing API > Import URLs. - Añade una URL de prueba con la acción
URL_UPDATED. - Ejecuta el cron de Magento:
bin/magento cron:run- Comprueba
Google Indexing API > Indexing Queue. - Comprueba
Google Indexing API > API Logs. - Si todo funciona correctamente, desactiva
Dry Run. - Vuelve a añadir una URL de prueba y comprueba la respuesta real de Google.
13. Importación de URL desde el panel de administración
La importación manual se encuentra en:
Google Indexing API > Import URLsEl formulario contiene los campos:
| Campo | Descripción |
|---|---|
Action | Tipo de envío a Google: alta/actualización o eliminación. |
Store View | Store view al que debe asignarse el envío. También está disponible la opción global Use global/no store. |
URLs | Lista de URL absolutas, una dirección por línea. |
Acciones disponibles:
| Acción en el formulario | Valor API | Significado |
|---|---|---|
Submit URLs for indexing | URL_UPDATED | Informa a Google de que la URL se ha añadido o actualizado. |
Delete URLs from indexing | URL_DELETED | Informa a Google de que la URL se ha eliminado y puede retirarse del índice. |
Tras enviar el formulario, el módulo mostrará un resumen:
- añadidas,
- actualizadas,
- deduplicadas,
- incorrectas,
- omitidas.
Los primeros 10 mensajes de validación se muestran como notice en el panel de administración.
14. Cola de indexación
La cola se encuentra en:
Google Indexing API > Indexing QueueCada registro de la cola contiene, entre otros:
- URL,
- hash de la URL,
- store ID,
- website ID,
- tipo de origen,
- ID de la entidad de origen,
- origen del request,
- acción
URL_UPDATEDoURL_DELETED, - estado,
- prioridad,
- número de intentos,
- número máximo de intentos,
- fecha de envío planificada,
- fecha de procesamiento,
- último código de error,
- último motivo de error,
- último mensaje de error,
- respuesta de Google,
- información
created_by.
Estados de la cola
| Estado | Significado |
|---|---|
scheduled | La URL está programada, pero aún espera la fecha scheduled_at. |
pending | La URL está lista para ser procesada por el cron. |
processing | La URL se está procesando actualmente. |
success | Google devolvió una respuesta correcta. |
retry | Se produjo un error temporal y el registro espera un nuevo intento. |
failed_permanent | El envío terminó de forma definitiva o se superó el número máximo de intentos. |
cancelled | El registro fue cancelado manualmente. |
Acciones sobre los registros de la cola
| Acción | Funcionamiento |
|---|---|
Transmit Now | Marca el registro como urgente, lo bloquea, lo envía inmediatamente mediante el cliente de Google y guarda el resultado. |
Retry | Establece el registro como pending, limpia el bloqueo y programa un nuevo intento inmediato. |
Cancel | Establece el estado cancelled y limpia el bloqueo. |
Nota: Transmit Now realiza un request real si Dry Run = No. Con Dry Run = Yes se guardará un log de dry-run sin envío real a Google.
15. Cron
El módulo añade dos tareas cron en el grupo default.
Procesamiento de la cola
kowal_google_indexing_process_queuePlanificación:
*/5 * * * *La tarea ejecuta el procesador de la cola cada 5 minutos.
El procesador:
- Comprueba si el módulo está activado.
- Libera bloqueos antiguos de registros
processingcon más de 30 minutos. - Mueve los registros
scheduledapendingsischeduled_at <= now. - Comprueba los slots disponibles en los límites diario y por minuto.
- Recoge los registros
pendingyretry. - Los ordena según prioridad y fecha de envío planificada.
- Envía el request a Google o ejecuta dry-run.
- Guarda la respuesta, el estado y el log de API.
Limpieza de logs
kowal_google_indexing_cleanup_logsPlanificación:
15 3 * * *La tarea elimina los logs de API más antiguos que el número de días establecido en el campo:
API Log Retention Days16. Logs de API
Los logs están disponibles en:
Google Indexing API > API LogsEl log incluye:
- ID del registro de cola,
- store ID,
- tipo de request,
- URL del endpoint,
- payload,
- estado HTTP,
- body de la respuesta,
- duración del request,
- fecha de creación del log.
Tipos de request:
| Tipo | Significado |
|---|---|
publish | Envío real de la URL a Google. |
publish_dry_run | Procesamiento en modo dry-run sin request real a Google. |
metadata | Prueba de metadata para la URL. |
17. Mass Actions y botones administrativos
El módulo añade mecanismos para notificar URL desde el panel de administración.
Productos
En la rejilla de productos hay disponible una acción masiva que añade las URL de productos a la cola.
El módulo omite los productos:
- desactivados,
- no visibles individualmente.
Las URL se generan a partir de URL rewrites para los store view activos.
Páginas CMS
En la rejilla de páginas CMS hay disponible una acción masiva que añade las URL de las páginas a la cola.
El módulo omite las páginas inactivas.
Si una página CMS está asignada a todos los store view, el módulo resuelve las URL para todos los store view.
Producto, categoría y página CMS - botones en el formulario de edición
El módulo añade botones para solicitar la indexación en las pantallas de edición de:
- producto,
- categoría,
- página CMS.
El botón resuelve las URL de la entidad para el store view y las añade a la cola como URL_UPDATED.
18. Configuración inicial recomendada
Para la primera implantación en producción:
| Campo | Recomendación |
|---|---|
Enable | Yes después de guardar credentials y allowed hosts. |
Dry Run | Yes durante las pruebas, después No. |
Credentials Source | Encrypted configuration value o Uploaded JSON file, según la política del proyecto. |
Google Cloud Project ID | project_id del JSON. |
Daily Publish Limit | 200, salvo que Google haya aprobado un límite superior. |
Requests Per Minute Limit | 60 o menos en una implantación prudente. |
Cron Batch Size | 20. |
Default Indexing Lag | 15. |
Manual Form Indexing Lag | 0-15, según la forma de trabajo de los administradores. |
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 | Todos los hosts de producción de la tienda. |
Require HTTPS URLs | Yes. |
Enable Auto-Indexing | No, salvo que el proyecto implemente proveedores automáticos. |
API Log Retention Days | 90. |
19. Problemas habituales y diagnóstico
Credentials test failed
Comprueba:
- si el JSON es correcto,
- si el JSON procede de una cuenta de servicio,
- si contiene
private_keyyclient_email, - si el campo
typetiene el valorservice_account, - si el archivo JSON no se ha dañado al pegarlo.
Google devuelve un error de permisos
Comprueba:
- si el dominio está verificado en Search Console,
- si el
client_emailde la cuenta de servicio está añadido como propietario, - si la URL probada pertenece a la misma propiedad de Search Console,
- si estás utilizando el proyecto de Google Cloud correcto y el JSON correcto.
La URL es rechazada antes del envío
Comprueba el mensaje de validación:
| Mensaje | Causa |
|---|---|
empty_url | URL vacía. |
url_too_long | La URL tiene más de 2048 caracteres. |
url_not_absolute | La URL no tiene esquema o host. |
https_required | Se ha activado el requisito HTTPS y la URL usa HTTP. |
invalid_scheme | El esquema no es http ni https. |
host_not_allowed | El host de la URL no se encuentra en Allowed URL Hosts. |
La cola no se procesa
Comprueba:
- si
Enable = Yes, - si el cron de Magento está funcionando,
- si los registros tienen estado
pendingoretry, - si
scheduled_atno está en el futuro, - si los límites diarios o por minuto no se han agotado,
- si
Daily Publish LimityRequests Per Minute Limitno están configurados como0.
Los registros pasan a retry
Comprueba:
- el estado HTTP en el registro de la cola,
- el log de API,
- la respuesta de Google,
- si no se está produciendo el límite
429, - si no hay errores temporales
5xx, - si
Max AttemptsyRetry Delayestán configurados según lo esperado.
20. Integración opcional con Amasty Blog
La integración con Amasty Blog está prevista como un módulo independiente:
Kowal_GoogleIndexingApiAmastyBlogPaquete:
kowal/module-google-indexing-api-amasty-blogEste módulo no es necesario para el funcionamiento de la integración principal. Debe instalarse solo en proyectos que utilicen amasty/blog y necesiten una acción masiva para entradas del blog.




