Blog Sobre mí Contacto Iniciar Sesión Registro

Cómo Crear un Script Python para Indexación Automática en Google

Indexar de forma automática URL en Google es un trabajo que nos ahorra mucho tiempo en SEO, y uno de los métodos más eficientes y rápidos es realizar la indexación mediante Google Indexing API. Para ello vamos a crear un Script de Python que nos ayudará y facilitará enviar al índice de Google las nuevas URLS que publicamos.
  • Índice de Script Python Python Google Indexing API:

Notas previas sobre el script de Python y la API de indexación en Google

Para realizar este script seo de indexación y llevar a cabo la automatización tenemos que tener un dominio añadido en Google Search Console (una propiedad creada en SC). Si necesitas saber cómo hacerlo, hay muchos tutoriales y guías de Google. Si está en este punto, seguramente este artículo para indexar automáticamente un grupo de url no es adecuado para ti. En cambio, si tienes conocimiento de Python y de SEO, vas a encontrar todo lo que necesitas para indexar el contenido en automático rápidamente.

Dar de alta el proyecto en Google Cloud Console

Para poder automatizar la indexación de nuestras url necesitamos tener creada una cuenta en Google Cloud Console, una plataforma para administrar proyectos Cloud de Google. Esto nos servirá para poder dar de alta nuevos servicios y proyectos para realizar nuestros Scripts de Python para SEO y así indexar nuestro nuevo contenido sin tener que usar el inspector de url Search Console. Este último es un proceso lento y muchas veces falla, así que con el Script de indexación evitaremos la pérdida de tiempo y agilizaremos el trabajo que más nos interesa, es decir, ser más productivos en SEO.

Dar de alta el proyecto de API

Tenemos ir a Google Cloud Platform para crear una nueva API: https://console.developers.google.com/flows/enableapi?apiid=indexing.googleapis.com&credential=client_key

Si es la primera vez que entras, acepta los términos y mostrará la siguiente pantalla: Pulsamos sobre "Crear Proyecto".

Esto abrirá una nueva ventana en donde tenemos que indicar los datos del nuevo proyecto en Google Cloud que usaremos para el script de indexación en Google. Puedes poner el nombre que desees. Yo añado Indexing API. La ubicación déjala tal y como está.

Haz click en "CREAR" y ya tienes tu primer proyecto creado.

Ahora hay que confirmar el proyecto para habilitar la API.

Pulsamos sobre "SIGUIENTE" y también sobre "HABILITAR".

Crear credenciales

Lo siguiente es añadir las credenciales, para ello, ir a: https://console.developers.google.com/apis/credentials

Y pulsar sobre "Administrar cuentas de servicio" .

Seguidamente presionar sobre "+CREAR CUENTA DE SERVICIO".

Mostrará una nueva pantalla en donde debemos escribir los detalles de la cuenta de servicio de esta forma:
Detalles de la creación de la cuenta de servicio en Google Cloud
Pulsamos sobre "CREAR Y CONTINUAR" y en la siguiente pantalla, asignamos el Rol: Propietario. "Continuar" y "Listo". Ya hemos creado nuestro proyecto y servicio "Indexing API".
Cuenta creada en Google Cloud Console

Crear API Keys

Para crear la clave de API necesitamos pulsar sobre el botón con tres puntitos situado a la derecha de la imagen anterior. Esto desplegará un menú, presionando sobre "Administrar claves".

Presionamos sobre "AGREGAR CLAVE" y "Crear clave nueva".
Crear nueva API Key Google Cloud
Abrirá una ventana para dejarnos elegir los formatos de la API Key. Seleccionamos "JSON" y pulsamos sobre "CREAR".
Crerar API key json Google Cloud
Después de presionar sobre "CREAR", se descargará el archivo .json con las credenciales de la cuenta. Guárdalos porque los necesitaremos más adelante.

Vincular Indexing API con Search Console

Para que la API de indexación pueda trabajar adecuadamente, es necesario que añadamos un nuevo propietario en Search Console.

Vamos a: https://www.google.com/webmasters/verification/home

Seleccionamos la propiedad con la que vamos a usar el script de Python y añadimos el nuevo propietario, que en este caso será la dirección de correo electrónico que generó la API de indexación.
Añadir propietario en Google Search Console Pulsamos sobre "Añadir un propietario":
Añadir nuevo propietario a una propiedad o dominio en Search Console
Debemos escribir la dirección de correo electrónico generada por la API. Esta la podemos ver en:
https://console.cloud.google.com/apis/api/indexing.googleapis.com

La copiamos y pegamos donde indica Search Console para crear un nuevo propietario de la API de indexación. Tendrá un formato similar a: .....iam.gserviceaccount.com
Añadir email Indexing API a Search Console
Y con esto ya hemos añadido la autorización para que en nuestros dominios añadidos en Search Console puedan usar la API de indexación que hemos creado previamente.

Probar credenciales API Indexing Google

Si hemos seguidos todos los pasos, ahora podremos usar la API y ahorrar mucho tiempo en el trabajo de SEO. Para verificar que todo funciona correctamente vamos a probar los credenciales.

Para ello, debemos escribir lo siguiente:
{
  "url": "https://www.dominio.com",     # Aquí el nombre del dominio
  "type": "URL_UPDATED"
}
Abre: https://developers.google.com/search/apis/indexing-api/v3/reference/indexing/rest/v3/urlNotifications/publish?hl=es

Que es una consola de API Indexing para poder probar código en tiempo real.

En "url" debemos escribir el nombre del dominio en el que hemos autorizado la API de indexación de Google. Presionamos sobre "EXECUTE" y si todo está bien, nos mostrará la respuesta "200 OK", que significa que funciona correctamente. Si da otro tipo de error es que las credenciales del api no son correctas o está sucediendo algún error. En las pruebas que he realizado con cuentas nuevas, puede tardar un rato en actualizarse, así que es posible que las primeras veces de error.

Script Python para indexación automática de URL

Lo siguiente es crear el código del script Python para indexación en Google:
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient.discovery import build
from googleapiclient.http import BatchHttpRequest
import httplib2
import json

# Lista de URL para indexar en Google.
requests = {
  'https://www.dominio.com/': 'URL_UPDATED',
  'https://www.dominio.com/url-1': 'URL_UPDATED',
  'https://www.dominio.com/url-2': 'URL_UPDATED'
}

# Archivo con las credenciales (.jon) descargado de API Indexing
JSON_KEY_FILE = "credentials.json"

SCOPES = [ "https://www.googleapis.com/auth/indexing"]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# Autorizar credenciales
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())

# Incialización del servicio de indexación en Google
service = build('indexing', 'v3', credentials=credentials)

def insert_event(request_id, response, exception):
    if exception is not None:
      print(exception)
    else:
      print(response)

batch = service.new_batch_http_request(callback=insert_event)

for url, api_type in requests.items():
    batch.add(service.urlNotifications().publish(
        body={"url": url, "type": api_type}))

batch.execute()
JSON_KEY_FILE = "credential.json": es el archivo con los datos de usuario o credenciales de la API de Google. Es el archivo .json que hemos descargado y que indiqué que guardaras. Debe estar en la misma carpeta que el script, o modificar la ruta en donde está guardado.

En la consola, si todo ha ido bien, mostrará algo del tipo:
# Salida por consola de la notificación de indexación en Google.
{'urlNotificationMetadata': {'url': 'https://www.dominio.com/', 'latestUpdate': {'url': 'https://www.dominio.com/', 'type': 'URL_UPDATED', 'notifyTime': '2023-02-09T13:26:49.804244870Z'}}}
{'urlNotificationMetadata': {'url': 'https://www.dominio.com/url-1/', 'latestUpdate': {'url': 'https://www.dominio.com/', 'type': 'URL_UPDATED', 'notifyTime': '2023-02-09T13:26:49.804244870Z'}}}
{'urlNotificationMetadata': {'url': 'https://www.dominio.com/url-2/', 'latestUpdate': {'url': 'https://www.dominio.com/', 'type': 'URL_UPDATED', 'notifyTime': '2023-02-09T13:26:49.804244870Z'}}}

Errores de indexación con API Indexing

Si recibimos algún error al ejecutar el script de indexación con Python, puede tratarse de lo siguiente:
  • Status code 403: Permiso denegado. Nivel de acceso insuficiente, API de indexación no habilitadas en la consola de desarrollador.
  • Status code 429: Recurso agotado. Limitación de tarifa porque se excedió la cuota.
  • Status code 403: Permiso denegado. Múltiples causas como nivel de acceso insuficiente, API de indexación no habilitada.
  • Status code 400: Argumento inválido. El cuerpo de la solicitud tiene algún problema. Compruebe si el formato es correcto.

Cuotas de indexación con API

Puedes comprobar las limitaciones de la api para indexar contenido aquí: cuotas de indexación.

Mostrará todos los detalles relevantes sobre el número de publicaciones enviadas en el día, las consultas generadas por minuto y el uso máximo de la API.
Cuota diaria y semanal de la API de indexación de Google
Seleccionando la cuota deseada, permite editarla e indicar otro límite. También es interesante la documentación oficial sobre los límite de Google Cloud: https://cloud.google.com/docs/quota?hl=es-419#viewing_your_quota_console

La URL no posiciona después de usar la API

Después de utilizar la API para indexar contenido en Google debemos esperar cierto tiempo para el cálculo de posiciones en los resultados de búsqueda. El envío masivo de URL no significa que desde el primer momento posicione, sino que, en su lugar, hemos notificado a Google la presencia de nuevo contenido. Por nuestra parte ahorramos tiempo para trabajar en otras cosas de seo en lugar de perderlo usando el inspector de url de Search Console.

Artículos relacionados

Para la elaboración de este script he usado diferentes artículos y conocimientos de Python, pero no sería posible sin el magnífico artículo de JC Chouinard en el que está basado. Su artículo es Google Indexing API With Python. Te recomiendo que sigas sus publicaciones ya que siempre aporta contenido de gran utilidad. Asimismo, también he usado otras fuentes como las siguientes:
Python para SEO

Comentarios del artículo "Cómo Crear un Script Python para Indexación Automática en Google"


¿Te ha gustado la información? Coméntanos tus opiniones, dudas y sugerencias:


Añade un comentario:

Tu dirección de correo electrónico no será publicada. | Registro requerido. | ¿Ya eres usuario? Login