Flux RSS & Automatización

API Indexing Google: Guía Completa de Implementación

La API de Indexación de Google (Indexing API) es la herramienta más directa para solicitar la indexación de tus páginas. Originalmente diseñada para JobPosting y BroadcastEvent, muchos SEOs la utilizan estratégicamente para acelerar la indexación de cualquier tipo de contenido. En esta guía completa, aprenderás a configurarla, implementarla y optimizar su uso.

1. ¿Qué es la Indexing API de Google?

La Indexing API es una interfaz de programación que permite notificar directamente a Google sobre cambios en tus URLs. A diferencia del rastreo tradicional donde Google descubre contenido pasivamente, la API permite una comunicación proactiva.

Según la documentación oficial de Google, la API está diseñada principalmente para:

  • JobPosting: Ofertas de empleo con schema markup
  • BroadcastEvent: Eventos de transmisión en vivo

Uso extendido

Aunque oficialmente limitada a estos tipos de contenido, muchos profesionales SEO han documentado éxito usando la API para otros tipos de páginas. Google procesa las solicitudes aunque no garantiza indexación para contenido fuera del alcance oficial.

Ventajas sobre otros métodos

Puntos fuertes

  • Comunicación directa con Google (sin intermediarios)
  • Respuesta en minutos para contenido elegible
  • Capacidad de notificar eliminaciones de URLs
  • Verificación del estado de indexación vía API
  • Automatizable completamente
  • Gratuita dentro de los límites de cuota

2. Requisitos previos

Antes de comenzar la configuración, asegúrate de tener:

Requisitos técnicos

  • Cuenta de Google: Necesaria para acceder a Google Cloud Platform
  • Acceso a Search Console: Propiedad verificada del sitio web
  • Conocimientos básicos de programación: O acceso a un desarrollador
  • Servidor con capacidad de ejecutar scripts: PHP, Python, Node.js, etc.

Requisitos de contenido (oficial)

Para uso oficial de la API, tu contenido debe:

  • Contener schema markup de JobPosting o BroadcastEvent
  • Ser válido según las directrices de datos estructurados de Google
  • Estar en un sitio verificado en Search Console
200 URLs por día de cuota estándar

3. Configuración en Google Cloud Platform

La configuración en GCP es el paso más técnico. Sigue estos pasos cuidadosamente:

Paso 1: Crear proyecto en GCP

  1. Ve a console.cloud.google.com
  2. Haz clic en "Seleccionar proyecto" > "Nuevo proyecto"
  3. Nombra tu proyecto (ej: "indexacion-mi-sitio")
  4. Haz clic en "Crear"

Paso 2: Habilitar la Indexing API

  1. En el menú lateral, ve a "APIs y servicios" > "Biblioteca"
  2. Busca "Indexing API"
  3. Haz clic en "Web Search Indexing API"
  4. Haz clic en "Habilitar"

Paso 3: Crear cuenta de servicio

  1. Ve a "APIs y servicios" > "Credenciales"
  2. Haz clic en "Crear credenciales" > "Cuenta de servicio"
  3. Nombre: "indexacion-bot" (o el que prefieras)
  4. Haz clic en "Crear y continuar"
  5. Omite los roles opcionales, haz clic en "Continuar" y "Listo"

Paso 4: Generar clave JSON

  1. Haz clic en la cuenta de servicio creada
  2. Ve a la pestaña "Claves"
  3. Haz clic en "Agregar clave" > "Crear clave nueva"
  4. Selecciona "JSON" y haz clic en "Crear"
  5. Guarda el archivo JSON descargado de forma segura

Importante

El archivo JSON contiene credenciales sensibles. Nunca lo subas a repositorios públicos ni lo compartas. Guárdalo en un lugar seguro en tu servidor.

4. Vincular con Search Console

Para que la API funcione, debes dar permisos a la cuenta de servicio en Search Console:

Obtener el email de la cuenta de servicio

Abre el archivo JSON descargado y busca el campo "client_email". Tendrá un formato como:

indexacion-bot@tu-proyecto.iam.gserviceaccount.com

Añadir como propietario en Search Console

  1. Ve a Google Search Console
  2. Selecciona tu propiedad
  3. Ve a "Configuración" > "Usuarios y permisos"
  4. Haz clic en "Añadir usuario"
  5. Pega el email de la cuenta de servicio
  6. Selecciona permiso "Propietario"
  7. Haz clic en "Añadir"

Nota

El permiso de "Propietario" es necesario para que la API pueda enviar solicitudes de indexación. Permisos menores no funcionarán.

5. Implementación del código

Ahora que la configuración está lista, veamos cómo implementar las llamadas a la API.

Ejemplo en Python

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Configuración
SCOPES = ["https://www.googleapis.com/auth/indexing"]
JSON_KEY_FILE = "ruta/a/tu/archivo-credenciales.json"

def indexar_url(url, tipo="URL_UPDATED"):
    """
    Envía una solicitud de indexación a Google.
    tipo puede ser: URL_UPDATED o URL_DELETED
    """
    credentials = service_account.Credentials.from_service_account_file(
        JSON_KEY_FILE, scopes=SCOPES
    )

    service = build('indexing', 'v3', credentials=credentials)

    body = {
        'url': url,
        'type': tipo
    }

    response = service.urlNotifications().publish(body=body).execute()
    return response

# Uso
resultado = indexar_url("https://tusitio.com/nueva-pagina")
print(resultado)

Ejemplo en PHP

<?php
require_once 'vendor/autoload.php';

$client = new Google_Client();
$client->setAuthConfig('ruta/a/tu/archivo-credenciales.json');
$client->addScope('https://www.googleapis.com/auth/indexing');

$service = new Google_Service_Indexing($client);

function indexarUrl($service, $url, $tipo = 'URL_UPDATED') {
    $notification = new Google_Service_Indexing_UrlNotification();
    $notification->setUrl($url);
    $notification->setType($tipo);

    try {
        $response = $service->urlNotifications->publish($notification);
        return $response;
    } catch (Exception $e) {
        return ['error' => $e->getMessage()];
    }
}

// Uso
$resultado = indexarUrl($service, 'https://tusitio.com/nueva-pagina');
print_r($resultado);
?>

Ejemplo en Node.js

const {google} = require('googleapis');

const keyFile = 'ruta/a/tu/archivo-credenciales.json';
const scopes = ['https://www.googleapis.com/auth/indexing'];

async function indexarUrl(url, tipo = 'URL_UPDATED') {
    const auth = new google.auth.GoogleAuth({
        keyFile: keyFile,
        scopes: scopes,
    });

    const indexing = google.indexing({version: 'v3', auth});

    const response = await indexing.urlNotifications.publish({
        requestBody: {
            url: url,
            type: tipo
        }
    });

    return response.data;
}

// Uso
indexarUrl('https://tusitio.com/nueva-pagina')
    .then(result => console.log(result))
    .catch(error => console.error(error));

Sin complicaciones técnicas

RSS AutoIndex integra la Indexing API automáticamente. Solo conecta tu feed RSS y nosotros gestionamos las llamadas a la API.

Automatizar ahora

6. Límites y gestión de cuota

La Indexing API tiene límites de uso que debes conocer y respetar.

Cuotas estándar

Métrica Límite Período
Solicitudes de publicación 200 Por día
Solicitudes de estado 200 Por día
Solicitudes por minuto 600 Por minuto
Solicitudes batch 100 URLs Por solicitud

Solicitar aumento de cuota

Si necesitas más de 200 URLs/día, puedes solicitar un aumento:

  1. Ve a la consola de GCP
  2. Selecciona tu proyecto
  3. Ve a "IAM y administración" > "Cuotas"
  4. Busca "Indexing API"
  5. Solicita aumento justificando el uso

Estrategias de optimización de cuota

  • Priorizar URLs importantes: Usa la cuota para contenido nuevo de alto valor
  • Batch requests: Agrupa hasta 100 URLs por solicitud
  • Evitar duplicados: No envíes la misma URL múltiples veces
  • Monitorizar uso: Revisa las métricas en GCP regularmente

7. Casos de uso avanzados

Más allá del uso básico, la Indexing API ofrece funcionalidades avanzadas.

Batch requests (solicitudes por lotes)

Envía múltiples URLs en una sola petición HTTP:

# Python - Batch request
def indexar_batch(urls):
    credentials = service_account.Credentials.from_service_account_file(
        JSON_KEY_FILE, scopes=SCOPES
    )

    batch = []
    for url in urls:
        batch.append({
            'url': url,
            'type': 'URL_UPDATED'
        })

    # Implementar batch HTTP request
    # Ver documentación de Google para detalles específicos
    pass

Verificar estado de indexación

La API también permite consultar el estado de una URL:

def obtener_estado(url):
    credentials = service_account.Credentials.from_service_account_file(
        JSON_KEY_FILE, scopes=SCOPES
    )
    service = build('indexing', 'v3', credentials=credentials)

    response = service.urlNotifications().getMetadata(
        url=url
    ).execute()

    return response

Notificar eliminación de URLs

Cuando eliminas contenido, notifica a Google para acelerar la desindexación:

resultado = indexar_url("https://tusitio.com/pagina-eliminada", "URL_DELETED")

Integración con CI/CD

Automatiza la indexación en tu pipeline de despliegue:

# .github/workflows/deploy.yml
- name: Notificar nuevas URLs a Google
  run: |
    python scripts/indexar_nuevas_urls.py
  env:
    GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }}

8. Errores comunes y soluciones

Estos son los errores más frecuentes al usar la Indexing API y cómo resolverlos:

Error 403: Forbidden

Causa: La cuenta de servicio no tiene permisos de propietario en Search Console.

Solución: Verifica que añadiste el email correcto con permiso de "Propietario".

Error 429: Too Many Requests

Causa: Has excedido la cuota diaria o por minuto.

Solución: Espera al día siguiente o solicita aumento de cuota.

Error 400: Invalid URL

Causa: La URL no pertenece a un dominio verificado o tiene formato incorrecto.

Solución: Verifica que la URL es correcta y que el dominio está verificado en Search Console.

Error de autenticación

Causa: Credenciales JSON inválidas o expiradas.

Solución: Regenera las credenciales en GCP y actualiza el archivo JSON.

Monitoreo recomendado

Implementa logging de todas las llamadas a la API para detectar errores temprano y optimizar tu uso de la cuota.

Conclusión

La Indexing API de Google es una herramienta poderosa para acelerar la indexación de tu contenido. Aunque oficialmente limitada a JobPosting y BroadcastEvent, su implementación correcta puede beneficiar a cualquier sitio web con contenido que requiera indexación rápida.

Puntos clave para recordar:

  • Configuración inicial: Requiere proyecto GCP, cuenta de servicio y vinculación con Search Console
  • Límites de cuota: 200 URLs/día estándar, ampliable bajo solicitud
  • Uso estratégico: Prioriza contenido nuevo de alto valor
  • Monitorización: Registra todas las llamadas y respuestas
  • Automatización: Integra con tu flujo de publicación para máxima eficiencia

Combinada con otras técnicas como PubSubHubbub y sitemaps optimizados, la Indexing API forma parte de una estrategia de indexación robusta que puede reducir significativamente el tiempo entre publicación y aparición en resultados de búsqueda.

Deja que nosotros gestionemos la API

RSS AutoIndex usa la Indexing API automáticamente para acelerar la indexación de tu contenido. Sin configuración técnica, sin preocuparte por cuotas.

Crear cuenta gratis