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.
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".
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:
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".
Presionamos sobre "AGREGAR CLAVE" y "Crear clave nueva".
Abrirá una ventana para dejarnos elegir los formatos de la API Key. Seleccionamos "JSON" y pulsamos sobre "CREAR".
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.
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.
Pulsamos sobre "Añadir un propietario":
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
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.
Para ello, debemos escribir lo siguiente:
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.
En la consola, si todo ha ido bien, mostrará algo del tipo:
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.
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
- Í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_keySi 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/credentialsY 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:
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".
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".
Abrirá una ventana para dejarnos elegir los formatos de la API Key. Seleccionamos "JSON" y pulsamos sobre "CREAR".
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.
Pulsamos sobre "Añadir un propietario":
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
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.
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:- Google Indexing API with Python
- Guía de inicio rápido de la API Indexing.
- How You Can Get Google To Crawl Your Website Instantly (si usas Rank Math y WordPress).
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: