Free cookie consent management tool by TermsFeedAktualizacja preferencji plików cookie

Google Indexing API para Magento 2

61,50 € 50,00 €
Instalacja COMPOSER
M2-GOOGLE-INDEXING-API

DEMO

username: indexing
hasło: M2Indexing

Requiere cambios en la plantilla
No
Pequeños cambios
Cambios significativos
Se requieren conocimientos de programación
No
Básico
Avanzado
Dificultad de configuración
Repercusión en el rendimiento
Compatibilidad con los estándares de Magento

Notificación más rápida a Google sobre los cambios en la tienda

El módulo Kowal Google Indexing API para Magento 2 ayuda a notificar a Google de forma más eficiente las URL que se han añadido, modificado o que deberían eliminarse del índice. En lugar de esperar únicamente a que el robot de Google vuelva a visitar la página de forma estándar, el administrador puede enviar las direcciones seleccionadas a una cola gestionada por Google Indexing API.

La solución resulta especialmente útil en tiendas donde cambian con frecuencia los contenidos, la oferta, la disponibilidad de productos, las páginas CMS, las landing pages o las entradas del blog. El módulo organiza todo el proceso: recopila direcciones desde distintos lugares de Magento, las verifica, elimina duplicados, controla los límites y guarda el historial de comunicación con Google.

Google Indexing API está destinada oficialmente sobre todo a sitios con datos estructurados JobPosting y BroadcastEvent. El envío de una URL mediante la API no garantiza la indexación, la posición en los resultados ni la aceptación de cada dirección por parte de Google. El módulo es una herramienta de apoyo para la notificación técnica de URL y no un sustituto de un SEO técnico correcto, sitemap XML, canonical, robots, hreflang y enlazado interno.

Ventajas principales

Mejor control sobre el envío de direcciones

El módulo ofrece al administrador un único lugar para gestionar las URL pendientes de envío a Google. Productos, categorías, páginas CMS, importación manual de URL y futuras fuentes pueden usar la misma cola. Gracias a ello, no es necesario crear integraciones separadas para cada tipo de contenido.

Menos trabajo manual tras los cambios en la tienda

Las direcciones pueden añadirse a la cola directamente desde el panel de administración de Magento. El módulo proporciona acciones masivas y botones en las pantallas de edición de las entidades seleccionadas, por lo que el administrador puede solicitar rápidamente la indexación de una sola página o de un grupo mayor de direcciones.

Uso más seguro de los límites de la API

Google Indexing API funciona con límites. El módulo tiene en cuenta los límites diarios y por minuto, el tamaño del lote procesado por cron y el retraso de envío. Así, las direcciones no se envían de forma caótica y es más fácil reducir el riesgo de consumir innecesariamente el límite disponible.

Menos duplicados y envíos repetidos

Antes de guardar una dirección, el módulo normaliza la URL, la valida y comprueba si esa misma dirección ya está esperando en la cola activa. Si ya existe un envío similar, el sistema puede actualizarlo o marcarlo como deduplicado. Esto reduce el desorden en la cola y disminuye el número de requests innecesarios a Google.

Mayor transparencia para el equipo

Cada envío tiene estado, origen, acción, prioridad, número de intentos, fecha de envío planificada e información sobre la respuesta de Google. El administrador ve qué direcciones están pendientes, cuáles se han enviado correctamente, cuáles requieren reintento y cuáles han terminado con un error permanente.

Diagnóstico de problemas más sencillo

El módulo guarda logs de la comunicación con Google API, incluido el tipo de request, la dirección del endpoint, el payload, el estado HTTP, el contenido de la respuesta y la duración. Esto facilita el análisis de errores relacionados con la configuración, los permisos, los límites o las propias URL notificadas.

Preparado para el crecimiento de la tienda

La arquitectura del módulo se basa en un scheduler y una cola compartidos. Las nuevas fuentes de URL no tienen que comunicarse directamente con Google. Basta con que envíen las direcciones a la cola y el procesador existente se encargará de la validación, la programación, los límites, los reintentos y el registro.

Cómo funciona el módulo en la práctica

El módulo actúa como una capa intermedia entre Magento y Google Indexing API.

  1. El administrador o la integración selecciona las URL que se van a enviar.
  2. El módulo normaliza y valida las URL, entre otros aspectos en cuanto a esquema, host y fuentes permitidas.
  3. Las direcciones válidas pasan a una cola central con el estado, la acción y la fecha de envío adecuados.
  4. El cron de Magento recoge periódicamente los registros listos para procesar.
  5. El procesador de la cola respeta los límites, prioridades, retrasos y bloqueos de registros.
  6. El módulo envía la notificación a Google Indexing API o realiza el procesamiento en modo dry-run.
  7. La respuesta de Google se guarda en el registro de la cola y en los logs de la API.
  8. En caso de errores temporales, el módulo puede programar un reintento con retraso.

Gracias a ello, el envío de URL no depende de un solo clic ni de un request directo desde el panel de administración. Todo el proceso se gestiona mediante cola, es auditable y más resistente a problemas temporales con la API.

Funciones principales

  • cola central de URL para distintas fuentes de contenido,
  • compatibilidad con las acciones URL_UPDATED y URL_DELETED,
  • importación manual de múltiples URL desde el panel de administración,
  • acciones masivas para productos y páginas CMS,
  • botones para solicitar la indexación en las pantallas de edición de producto, categoría y página CMS,
  • integración opcional con Amasty Blog como módulo independiente,
  • normalización y validación de URL,
  • whitelist de hosts permitidos,
  • compatibilidad con store view e identificación del origen del envío,
  • deduplicación de envíos activos,
  • retraso de envío, es decir, indexing lag,
  • prioridades y acción Transmit Now,
  • procesamiento mediante cron,
  • control del límite diario y por minuto,
  • reintento de errores temporales con retraso,
  • estados de la cola: scheduled, pending, processing, success, retry, failed_permanent, cancelled,
  • modo dry-run para pruebas seguras sin enviar requests reales,
  • logs de API y retención de logs,
  • test credentials y metadata en el asistente de configuración.

Para quién es este módulo

El módulo es adecuado para tiendas Magento 2 que:

  • actualizan con frecuencia su catálogo de productos,
  • publican o modifican muchas páginas CMS,
  • realizan acciones SEO sobre varios tipos de contenido,
  • necesitan controlar qué URL se han enviado a Google,
  • quieren reducir la gestión manual de los envíos,
  • trabajan en un entorno multistore o multilanguage,
  • necesitan una auditoría clara de los requests a Google.

Esta solución es especialmente valiosa para equipos de e-commerce, SEO y administración que quieren disponer de un proceso común y ordenado para notificar a Google los cambios en la tienda.

Ejemplos de uso

Productos nuevos o modificados

Tras añadir un producto nuevo o realizar un cambio importante en uno existente, el administrador puede enviar su dirección a la cola. El módulo se encargará de guardar el envío, aplicar el retraso adecuado, deduplicarlo y enviarlo posteriormente.

Actualización de páginas CMS y landing pages

Cuando el equipo de marketing publica una nueva campaña, promoción o página informativa, la URL puede añadirse a la cola sin trabajo manual fuera de Magento.

Organización de direcciones tras cambios en el sitio

El módulo no solo admite notificaciones de actualización, sino también la acción URL_DELETED. Gracias a ello, es posible informar a Google sobre direcciones que deberían eliminarse del índice, siempre que ese escenario sea conforme con las normas de uso de la API.

Acciones SEO masivas

Ante cambios más amplios en la tienda, como la actualización de muchos productos, la migración de contenidos o la renovación de categorías, el administrador puede usar acciones masivas y seguir el progreso en la cola.

Resultado de negocio

La implantación del módulo proporciona al equipo un mayor control sobre la notificación técnica de cambios a Google. En lugar de acciones dispersas, manuales y difíciles de verificar, se crea un único proceso: la dirección entra en la cola, pasa la validación, se envía respetando los límites y el resultado queda visible en el panel de administración.

El valor principal del módulo es organizar el trabajo en torno a la indexación: menos requests aleatorios, menos duplicados, mejor diagnóstico y una responsabilidad más clara sobre lo que se ha enviado a Google.

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,
  • BroadcastEvent incrustado en VideoObject.

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:

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.16

El 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-api

Si 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-api

Activa el módulo:

bin/magento module:enable Kowal_GoogleIndexingApi

Ejecuta la actualización del esquema de base de datos:

bin/magento setup:upgrade

Limpia la caché:

bin/magento cache:flush

En modo producción, ejecuta además:

bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush

3.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/GoogleIndexingApi

A continuación, instala la dependencia Google API Client en el proyecto Magento:

composer require google/apiclient:^2.16

Activa el módulo y ejecuta los comandos estándar de Magento:

bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flush

Para producción:

bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush

3.3. Verificación de la instalación

Comprueba si el módulo está activo:

bin/magento module:status Kowal_GoogleIndexingApi

Tras 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

  1. Accede a Google Cloud Console.
  2. Crea un proyecto nuevo o selecciona un proyecto existente usado para la tienda.
  3. Habilita la API:
Indexing API

Sin la API habilitada, el módulo no podrá enviar notificaciones correctamente.

4.2. Creación de una cuenta de servicio

  1. En Google Cloud, ve a IAM & Admin > Service Accounts.
  2. Crea una nueva cuenta de servicio.
  3. Genera una clave en formato JSON.
  4. 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_account

4.3. Añadir la cuenta de servicio como propietaria en Search Console

  1. Abre Google Search Console.
  2. Selecciona la propiedad correspondiente al dominio de la tienda.
  3. Asegúrate de que la propiedad está verificada.
  4. Añade la dirección client_email del archivo JSON como propietaria de la propiedad.

Ejemplo de dirección de cuenta de servicio:

my-service-account@project-name.iam.gserviceaccount.com

Si 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 API

La 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:

No

Activa 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 No o deja Dry Run = Yes,
  • tras las pruebas correctas establece Yes.

Dry Run

Por defecto:

Yes

Modo 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 Run solo después de verificar credentials, allowed hosts, cola y logs.

7. Sección Google Access Credentials

Credentials Source

Por defecto:

Encrypted configuration value

Define de dónde obtiene el módulo el JSON de la cuenta de servicio de Google.

Opciones disponibles:

OpciónValor técnicoDescripción
Encrypted configuration valueconfigEl JSON se pega en la configuración de Magento y se guarda como valor cifrado de sensitive config.
Uploaded JSON filefileEl 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.json

Google 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_id del 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:

200

Define 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 200 si 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 0 bloquea el envío, ya que el número de slots disponibles será 0.

Requests Per Minute Limit

Por defecto:

60

Define 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:

20

Define 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:

  • 20 es 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:

15

Define 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:

15

Define el retraso para las URL añadidas mediante el formulario:

Google Indexing API > Import URLs

Si el administrador pega manualmente una lista de URL, cada dirección válida se programará con este retraso.

Recomendación:

  • establece 0 si la importación manual debe entrar en la cola de inmediato,
  • deja 15 si quieres mantener un margen para la deduplicación y el control de envíos.

Mass Action Indexing Lag (minutes)

Por defecto:

15

Define 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 15 o superior,
  • para tiendas pequeñas y trabajo administrativo manual puede considerarse un valor inferior.

Max Attempts

Por defecto:

5

Define 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:

15

Retraso 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:

IntentoRetraso aproximado
115 minutos
230 minutos
360 minutos
4120 minutos

Allowed Source Types

Por defecto:

manual,product,category,cms_page,amasty_blog_post

Lista de tipos de origen permitidos, separados por comas.

Valores admitidos:

ValorSignificado
manualURL añadida manualmente mediante el formulario de importación.
productURL de producto.
categoryURL de categoría.
cms_pageURL de página CMS.
amasty_blog_postURL 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ío

Lista de hosts de URL permitidos, separados por comas.

Ejemplo:

example.com,www.example.com

Si 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_allowed

Recomendació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:

Yes

Obliga 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_required

Recomendación:

  • para tiendas en producción, deja Yes,
  • usa No solo en entornos de prueba excepcionales.

9. Sección Auto-Indexing

Enable Auto-Indexing

Por defecto:

No

El 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 No si 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:

90

Define 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:15

Elimina las entradas más antiguas que el número de días establecido en este campo.

Recomendación:

  • 90 dí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 Assistant

Su 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:

CampoSignificado
ModuleInforma si el módulo está activado en la configuración.
Dry RunInforma si está activo el modo de prueba sin envío real a Google.
CredentialsMuestra si el módulo puede leer y parsear las credentials de Google.
Service Account EmailMuestra el client_email del JSON de la cuenta de servicio. Esta dirección debe añadirse como propietaria en Search Console.
Allowed HostsMuestra la lista de hosts permitidos en la configuración.
QueueMuestra 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:

  1. Crear o seleccionar un proyecto de Google Cloud.
  2. Habilitar Indexing API y crear una JSON key para la cuenta de servicio.
  3. Pegar el JSON o subir el archivo JSON en la configuración de Magento.
  4. Añadir el service account email como propietario en Google Search Console.
  5. Ejecutar pruebas y luego importar una URL con Dry Run activado.

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 Credentials

comprueba si Magento puede utilizar los datos de la cuenta de servicio para obtener un token OAuth para el alcance:

https://www.googleapis.com/auth/indexing

Un 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_key erró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 Metadata

permite 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 http o https,
  • si Require HTTPS URLs está activado, exige https,
  • comprueba Allowed URL Hosts, si se han configurado.

Posibles resultados:

ResultadoSignificado
Éxito HTTP 2xxGoogle ha devuelto metadata para la URL.
HTTP 404A 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 requestLa URL no cumple las condiciones del módulo, por ejemplo, host incorrecto, falta de HTTPS o dirección no absoluta.
Error HTTP distinto de 404Debe 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:

  1. Instala el módulo y ejecuta setup:upgrade.
  2. En Magento, ve a Stores > Configuration > Kowal > Google Indexing API.
  3. Establece Enable = Yes.
  4. Deja Dry Run = Yes.
  5. Selecciona la fuente de credentials.
  6. Pega el JSON de la cuenta de servicio o sube el archivo JSON.
  7. Rellena Google Cloud Project ID con el valor project_id del JSON.
  8. Rellena Allowed URL Hosts, por ejemplo, example.com,www.example.com.
  9. Deja los límites predeterminados si Google no ha aprobado límites superiores.
  10. Guarda la configuración y limpia la caché.
  11. Ve a Google Indexing API > Setup Assistant.
  12. Comprueba si el asistente muestra las credentials como listas.
  13. Haz clic en Test Google Credentials.
  14. Añade el service account email como propietario en Google Search Console, si aún no se ha hecho.
  15. Ejecuta Test URL Metadata para una URL pública de un host permitido.
  16. Ve a Google Indexing API > Import URLs.
  17. Añade una URL de prueba con la acción URL_UPDATED.
  18. Ejecuta el cron de Magento:
bin/magento cron:run
  1. Comprueba Google Indexing API > Indexing Queue.
  2. Comprueba Google Indexing API > API Logs.
  3. Si todo funciona correctamente, desactiva Dry Run.
  4. 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 URLs

El formulario contiene los campos:

CampoDescripción
ActionTipo de envío a Google: alta/actualización o eliminación.
Store ViewStore view al que debe asignarse el envío. También está disponible la opción global Use global/no store.
URLsLista de URL absolutas, una dirección por línea.

Acciones disponibles:

Acción en el formularioValor APISignificado
Submit URLs for indexingURL_UPDATEDInforma a Google de que la URL se ha añadido o actualizado.
Delete URLs from indexingURL_DELETEDInforma 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 Queue

Cada 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_UPDATED o URL_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

EstadoSignificado
scheduledLa URL está programada, pero aún espera la fecha scheduled_at.
pendingLa URL está lista para ser procesada por el cron.
processingLa URL se está procesando actualmente.
successGoogle devolvió una respuesta correcta.
retrySe produjo un error temporal y el registro espera un nuevo intento.
failed_permanentEl envío terminó de forma definitiva o se superó el número máximo de intentos.
cancelledEl registro fue cancelado manualmente.

Acciones sobre los registros de la cola

AcciónFuncionamiento
Transmit NowMarca el registro como urgente, lo bloquea, lo envía inmediatamente mediante el cliente de Google y guarda el resultado.
RetryEstablece el registro como pending, limpia el bloqueo y programa un nuevo intento inmediato.
CancelEstablece 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_queue

Planificación:

*/5 * * * *

La tarea ejecuta el procesador de la cola cada 5 minutos.

El procesador:

  1. Comprueba si el módulo está activado.
  2. Libera bloqueos antiguos de registros processing con más de 30 minutos.
  3. Mueve los registros scheduled a pending si scheduled_at <= now.
  4. Comprueba los slots disponibles en los límites diario y por minuto.
  5. Recoge los registros pending y retry.
  6. Los ordena según prioridad y fecha de envío planificada.
  7. Envía el request a Google o ejecuta dry-run.
  8. Guarda la respuesta, el estado y el log de API.

Limpieza de logs

kowal_google_indexing_cleanup_logs

Planificació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 Days

16. Logs de API

Los logs están disponibles en:

Google Indexing API > API Logs

El 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:

TipoSignificado
publishEnvío real de la URL a Google.
publish_dry_runProcesamiento en modo dry-run sin request real a Google.
metadataPrueba 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:

CampoRecomendación
EnableYes después de guardar credentials y allowed hosts.
Dry RunYes durante las pruebas, después No.
Credentials SourceEncrypted configuration value o Uploaded JSON file, según la política del proyecto.
Google Cloud Project IDproject_id del JSON.
Daily Publish Limit200, salvo que Google haya aprobado un límite superior.
Requests Per Minute Limit60 o menos en una implantación prudente.
Cron Batch Size20.
Default Indexing Lag15.
Manual Form Indexing Lag0-15, según la forma de trabajo de los administradores.
Mass Action Indexing Lag15.
Max Attempts5.
Retry Delay15.
Allowed Source Typesmanual,product,category,cms_page,amasty_blog_post.
Allowed URL HostsTodos los hosts de producción de la tienda.
Require HTTPS URLsYes.
Enable Auto-IndexingNo, salvo que el proyecto implemente proveedores automáticos.
API Log Retention Days90.

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_key y client_email,
  • si el campo type tiene el valor service_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_email de 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:

MensajeCausa
empty_urlURL vacía.
url_too_longLa URL tiene más de 2048 caracteres.
url_not_absoluteLa URL no tiene esquema o host.
https_requiredSe ha activado el requisito HTTPS y la URL usa HTTP.
invalid_schemeEl esquema no es http ni https.
host_not_allowedEl 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 pending o retry,
  • si scheduled_at no está en el futuro,
  • si los límites diarios o por minuto no se han agotado,
  • si Daily Publish Limit y Requests Per Minute Limit no están configurados como 0.

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 Attempts y Retry Delay está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_GoogleIndexingApiAmastyBlog

Paquete:

kowal/module-google-indexing-api-amasty-blog

Este 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.

Write Your Own Review
You're reviewing:Google Indexing API para Magento 2
Productos