Automatizar Comprobación de Enlaces Indexados en Google

Si trabajas en el mundo de SEO y más específicamente en estrategias de SEO Off Page, definir una estrategia de linkbuilding es uno de los pilares fundamentales para conseguir aumentar la autoridad de un sitio Web en Google.

Una vez ejecutada la estrategia de linkbuilding, el siguiente paso es conseguir que Google descubra esos enlaces y los indexe en su buscador. Esto es una tarea cada vez más difícil, ya que con las últimas Core Update así como el Helpful Content Update, Google es mucho más restrictivo a la hora de indexar contenidos.

Para ello, debes generar contenidos que aporten valor para el usuario y respondan a la intención de búsqueda, sino seguramente Google directamente no indexe esas URLs. Si en tu estrategia de linkbuilding generaste enlaces en perfiles de redes sociales, foros o webs 2.0, te habrás dado cuenta de la dificultad para indexar este tipo de backlinks, nada que ver con reseñas o notas de prensa que normalmente indexan rápidamente.

Llegado este punto, seguramente estés usando alguna herramienta de pago o comprobando manualmente si esos enlaces están indexados en Google, lo cual al final te cuesta dinero o tienes que invertir tiempo en ello. Para ahorrarte ese dinero o tiempo que estás invirtiendo, he creado un script en Python que directamente comprueba para un listado de URLs que le pasan con una hoja de cálculo si estás están indexadas en Google.

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):
      try:  
            option = Options()

            option.headless = True
            
            \'\'\'\'
            #Configuración de proxies opcional
            proxies = [\"195.196.47.165:12345\",\"60.3.194.36:12345\",\"170.231.98.15:12345\",\"190.196.195.24:12345\",\"195.196.47.21:12345\"]

            proxy = choice(proxies)

            option = {
            \'proxy\': { 
                \'http\': \'http://user:pass@\'+proxy+\':port\',
                \'https\': \'https://user:pass@\'+proxy+\':port\',
                \'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[2]/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]/input\")
            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
            element = self.driver.find_element_by_xpath(\"/html/body/div[7]/div/div[11]/div[1]/div[2]/div[2]/div/div/div/div/div/div/div[1]/div/a\")
            url_google=element.get_attribute(\'href\')
            time.sleep(randrange(1,3))
            print(\'URL:\'+ url_google)

            if url == url_google:
                estado = \"INDEXADO\"
            else:
                estado = \"NOINDEXADO\"

            return estado

      except:
            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)
    sheet_ranges = wb[\"Links\"]

    #Recorrer listado de URLs
    for i in range(2, 100):
        url = sheet_ranges[i][0]
        estado = sheet_ranges[i][1]
        if estado.value == \"FINAL\":
            break
        else:
            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 solo tienes que crearte una hoja de cálculo con 2 columnas, en la 1º columna tienes que pegar las URLs que quieres comprobar si están indexadas en Google y en la 2º columna añadir la etiqueta FINAL en la siguiente fila después del listado de URLs a indexar.

Y con esto ya estaría todo, cuando termine la ejecución el script, en la hoja de cálculo tendrás indicado en la 2º columna si el backlink está INDEXADO o NO INDEXADO.

Si te ha parecido interesante para automatizar tu trabajo, comparte con tus compañeros y si tenéis alguna idea de mejora para el script os leo en los comentarios.

 

rafa villaplana
SEO Manager en Rafa Villaplana | Web | + posts

Más de 10 años trabajando en proyectos SEO donde he conseguido aumentar las ventas a +100 empresas en más de 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