Automatizar Comprobación de Enlaces Indexados en Google

Automatización SEO: Cómo comprobar los backlinks indexados en Google con Python

Una vez ejecutada la estrategia de linkbuilding, el siguiente paso implica lograr que Google descubra estos enlaces e los incluya en su índice de búsqueda. Este proceso se ha vuelto cada vez más complicado, ya que con los últimos Core Update y los Helpful Content Update, Google es mucho más restrictivo al indexar contenidos.

Por ello, es crucial generar contenidos que proporcionen valor al usuario y se alineen con la intención de búsqueda, ya que de lo contrario, es probable que Google opte por no indexar esas URL directamente.

Si en tu estrategia de linkbuilding has creado enlaces en perfiles de redes sociales, foros o plataformas web 2.0, habrás notado la dificultad para indexar este tipo de backlinks, a diferencia de las reseñas o notas de prensa que suelen indexarse rápidamente.

En este punto, es probable que estés utilizando alguna herramienta de pago o verificando manualmente si esos enlaces están indexados en Google, lo que eventualmente conlleva un coste o una inversión en tiempo. Con el objetivo de ahorrarte tanto dinero como tiempo, he desarrollado un script en Python que verifica directamente, a partir de una lista de URLs proporcionada en una hoja de cálculo, si estas están indexadas en Google o no.


import time

import openpyxl

from openpyxl import *

from selenium import webdriver

from seleniumwire import webdriver

from selenium.webdriver.firefox.options import Options

from random import randrange, choice

class IsIndexed():

    def tearDown(self):

        self.driver.quit()

    def check_link(self,url):

        option = Options()

        option.headless = True

        #Configuración de proxies opcional

        ''''

        proxies = ["196.196.47.165:12345","50.3.194.36:12345","165.231.98.15:12345","196.196.195.24:12345","196.196.47.21:12345"]

        proxy = choice(proxies)

        option = {

        'proxy': {

              'http': 'http://user:pass'+proxy+':puerto',

              'https': 'https://user:pass'+proxy+':puerto',

                'no_proxy': 'localhost,127.0.0.1' # excludes

        }}

        self.driver = webdriver.Firefox('/Users/rafavillaplana/AppData/Local/Programs/Microsoft VS Code/bin',seleniumwire_options=option)

        '''

        #Abrir el navegador con la URL de Google

        self.driver = webdriver.Firefox('/Users/rafavillaplana/AppData/Local/Programs/Microsoft VS Code/bin',options=option)

        self.driver.maximize_window()

        self.driver.get("https://www.google.es/")

        time.sleep(randrange(1,5))    

        #Aceptar las cookies                                

        element = self.driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[3]/span/div/div/div/div[3]/div[1]/button[2]/div")

        element.click()

        time.sleep(randrange(1,5))

        #Insertar en el campo de búsqueda site:url    

        element = self.driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/div/textarea")

        element.send_keys("site:"+url)

        time.sleep(randrange(1,5))

        #Realizar click botón Buscar con Google

        element = self.driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]")

        element.click()

        time.sleep(randrange(1,5))

        #Extraer URL del 1º resultado de las SERPs

        try:

            element = self.driver.find_element_by_xpath("/html/body/div[5]/div/div[12]/div/div[2]/div[2]/div/div/div[1]/div/div/div[1]/div/div/span/a")

            url_google=element.get_attribute('href')

            time.sleep(randrange(1,3))

            print('URL:'+ url_google)

        except:        

            try:    

                #Extraer URL del 2º resultado de las SERPs

                element = self.driver.find_element_by_xpath("/html/body/div[5]/div/div[12]/div/div[2]/div[2]/div/div/div/div/div/div/div[1]/div/div/span/a")

                url_google=element.get_attribute('href')

                time.sleep(randrange(1,3))

                print('URL:'+ url_google)

            except:

                #Extraer URL del 1º resultado de las SERPs (Anuncio)                                            

                element = self.driver.find_element_by_xpath("/html/body/div[5]/div/div[12]/div/div[2]/div[1]/div/div/ol/li/h3/a")

                url_google=element.get_attribute('href')

                time.sleep(randrange(1,3))

                print('URL:'+ url_google)

        if url == url_google:

            estado = "INDEXADO"

        else:

            print("No hay resultados en Google")

            estado = "NOINDEXADO"

        return estado

if __name__ == "__main__":

    link=IsIndexed()

    #Insetar ruta del archivo con lista de URL

    #path = input("Introduce ruta del archivo:")

    path = 'C:\\Users\\rafavillaplana\\Downloads\\links_status\\links_status.xlsx'

    #Abrir excel para leer URLs

    wb = openpyxl.load_workbook(filename = path)

    print("Abriendo Excel con listado de URLs")

    sheet_ranges = wb["Links"]

    #Recorrer listado de URLs

    for i in range(2, 1000):

        url = sheet_ranges[i][0]

        estado = sheet_ranges[i][1]

        if estado.value == "FINAL":

            break

        else:

            print("+++Comprobando si está indexado+++")

            time.sleep(randrange(1,5))

            #Comprobar si URL == URL en Google

            status = link.check_link(url.value)

            print (status)

            sheet_ranges.cell(row=i, column=2, value=status)

            #Guardar en el excel

            wb.save(path)

            #Cerrar el navegador

            link.tearDown()

Para ejecutar el script, simplemente debes crear una hoja de cálculo con dos columnas. En la primera columna, pega las URLs que deseas verificar para comprobar si están indexadas en Google. En la segunda columna, agrega la etiqueta «FINAL» en la siguiente fila después del listado de URLs a indexar.

Si al ejecutar el script no te funciona, revisa los XPath de los elementos con los que se interactua. Si Google cambia el código de su página principal de búsqueda, necesitarás ajustas las rutas de los XPath para que el script encuentre los elementos en el código.

Con esto, habrás completado todo el proceso. Una vez que el script haya finalizado su ejecución, en la hoja de cálculo encontrarás indicaciones en la segunda columna que te dirán si el backlink está «INDEXADO» o «NO INDEXADO».

Si encuentras útil esta automatización para simplificar tu trabajo, no dudes en compartirlo con tus compañeros. Además, si tienen alguna sugerencia de mejora para el script, estaré atento a tus comentarios.

Rafa Villaplana
SEO Manager en Linking & Growing | Web | + posts

Más de 10 años trabajando en proyectos SEO donde he conseguido aumentar las ventas a +100 empresas en 10 sectores distintos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio