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