Utilice Python para analizar y pivotar archivos SEO
Publicado: 2021-08-10Una gran fuente de datos para cualquier gran profesional de SEO son los datos de rastreo del motor de búsqueda que se encuentran dentro de los archivos de registro. Puede analizar los archivos de registro para saber exactamente cómo los motores de búsqueda están rastreando y entendiendo su sitio web. Esto le da una idea que ninguna herramienta de SEO de terceros puede ofrecer. Si desea ahorrar tiempo y dinero, intente automatizar el análisis, la validación y la rotación de los datos del archivo de registro para SEO con Python. En este artículo, lo guiaremos a través de los pasos sobre cómo analizar y pivotar archivos SEO con Python.

¿Por qué debería usar Python para analizar y pivotar archivos SEO?
Python es un lenguaje de programación multipropósito que tiene una amplia variedad de aplicaciones cuando se trata de datos, desarrollo web y ejecución de algoritmos. El uso de Python para analizar y pivotar sus datos de SEO desde archivos de registro le ayuda a:
- Valide sus conclusiones brindándole evidencia concreta de cómo los motores de búsqueda están rastreando y viendo su sitio web.
- Priorice sus hallazgos ayudándole a ver la escala de un problema y cuánto puede ayudar solucionarlo
- Encuentre cualquier otro problema que no pueda ver en otras fuentes de datos
Aunque existen varios beneficios de usar datos de archivos de registro, muchos expertos en SEO se mantienen alejados de ellos por una variedad de razones. Por un lado, encontrar los datos generalmente significa pasar por un equipo de desarrollo, lo que puede llevar mucho tiempo. Además, los archivos sin procesar pueden ser grandes y difíciles de entender, lo que dificulta el análisis de los datos. Finalmente, el costo de las herramientas diseñadas para simplificar el proceso puede ser demasiado alto.
Si bien todas estas son preocupaciones válidas, hay otra forma. Si tiene algún conocimiento de lenguajes de codificación y secuencias de comandos , puede automatizar el proceso. Lo guiaremos a través de los pasos sobre cómo usar Python para analizar los registros del servidor para SEO.
Cómo utilizar Python para analizar y pivotar archivos SEO
Antes de comenzar, deberá considerar qué formato desea utilizar para analizar los datos del archivo de registro. Tiene varias opciones, como Apache, Nginx e IIS. Además, muchos sitios web utilizan ahora proveedores de CDN, como Cloudflare, Cloudfront y Akamai, para ofrecer contenido desde la ubicación de borde más cercana a un usuario.
En este artículo, nos centraremos en el formato de registro combinado. Esto se debe a que el formato de registro combinado es el predeterminado para Nginx y, por lo general, la opción en los servidores Apache.
Si no sabe con qué tipo de formato está tratando, existen servicios como Builtwith y Wappalyzer que pueden informarle sobre la pila tecnológica de un sitio web.
Si aún no está seguro, simplemente abra uno de los archivos sin formato. Haga una referencia cruzada de los comentarios proporcionados con información sobre campos específicos.
También deberá considerar qué motor de búsqueda desea incluir. En este artículo, nos centraremos en Google, porque Google es el motor de búsqueda más dominante con más del 92% de la cuota de mercado global .

1. Identificar archivos y determinar formatos
Para realizar un análisis SEO consecuente, necesitará un mínimo de aproximadamente 100,000 solicitudes y entre dos y cuatro semanas de datos para un sitio web típico. Debido al tamaño de los archivos, los registros generalmente se dividen en días individuales. Lo más probable es que reciba varios archivos para procesar.
Como no sabe con cuántos archivos tratará a menos que los combine antes de ejecutar el script, el primer paso es generar una lista de todos los archivos en nuestra carpeta usando el módulo glob. Luego, puede devolver cualquier archivo que coincida con un patrón que especifiquemos. El siguiente código coincidirá con cualquier archivo TXT:
import glob
archivos = glob.glob ('* txt.')
Sin embargo, no todos los archivos son TXT. Los archivos de registro pueden venir en varios tipos de formatos de archivo. Es posible que ni siquiera reconozca la extensión del archivo.
También es posible que los archivos que reciba se dividan en varias subcarpetas y no queremos perder el tiempo copiándolos en una única ubicación. Afortunadamente, glob admite tanto búsquedas recursivas como operadores comodín . Eso significa que puede generar una lista de todos los archivos dentro de una subcarpeta o subcarpetas secundarias.
archivos = glob.glob ('** / *. *', recursivo = Verdadero)
A continuación, desea identificar qué tipos de archivos están dentro de su lista. Para hacer esto, se puede detectar el tipo MIME del archivo específico. Esto le indica con qué tipo de archivo está tratando, sin importar la extensión.
Puede hacer esto usando python-magic, un envoltorio alrededor de la biblioteca libmagic C, y creando una función simple.
pip instalar python-magic
pip instalar libmagic
importar magia
def tipo_archivo (ruta_archivo):
mime = magic.from_file (file_path, mime = True)
devolver mimo
A continuación, puede utilizar la comprensión de listas para recorrer sus archivos y aplicar la función, creando un diccionario para almacenar tanto los nombres como los tipos.
file_types = [file_type (file) for file in files]
file_dict = dict (zip (archivos, tipos de archivos))
Finalmente, use una función y un bucle while para extraer una lista de archivos que devuelvan un tipo de texto / plano MIME y excluyan cualquier otra cosa.
descomprimido = []
def file_identifier (archivo):
para clave, valor en file_dict.items ():
si archivo en valor:
descomprimido.append (clave)

while file_identifier ('texto / plano'):
file_identifier ('texto / plano') en file_dict

2. Extraiga las solicitudes del motor de búsqueda
Después de filtrar los archivos en su carpeta o carpetas, su siguiente paso es filtrar los archivos en sí mismos extrayendo solo las solicitudes que le interesan.
Esto elimina la necesidad de combinar los archivos usando utilidades de línea de comandos como GREP o FINDSTR, y le ahorra tiempo buscando el comando correcto.
En este caso, dado que solo desea solicitudes de Googlebot, buscará "Googlebot" para que coincida con todos los agentes de usuario relevantes.
Puede usar la función abierta de Python para leer y / o escribir su archivo y el módulo de expresiones regulares de Python, RE, para realizar la búsqueda.
3. Solicitudes de análisis
Hay varias formas de analizar las solicitudes. Por el bien de este artículo, usaremos el analizador CSV incorporado de Pandas y algunas funciones básicas de procesamiento de datos para:
- Elimina columnas innecesarias
- Dar formato a la marca de tiempo
- Crea una columna con URL completas
- Cambiar el nombre y reordenar las columnas restantes
En lugar de codificar un nombre de dominio, puede utilizar la función de entrada para solicitar al usuario y guardarlo como una variable.
4. Validar solicitudes
Es muy sencillo falsificar los agentes de usuario del motor de búsqueda, lo que hace que la validación de solicitudes sea una parte vital del proceso, lo que le impide sacar conclusiones incorrectas al analizar sus propios rastreos de terceros.
Para hacer esto, necesita instalar una biblioteca llamada dnspython y realizar un DNS inverso. Puede usar pandas para eliminar IP duplicadas y ejecutar las búsquedas en el DataFrame más pequeño. Luego, vuelva a aplicar los resultados y filtre las solicitudes no válidas.
Este enfoque aumenta enormemente la velocidad de las búsquedas y valida millones de solicitudes en solo minutos.

5. Girar los datos
Después de la validación, tiene un conjunto de datos limpio y fácil de entender. Puede comenzar a pivotar estos datos para analizar puntos de interés más fácilmente.
Puede comenzar con una simple agregación utilizando las funciones groupby y agg de Pandas para realizar un recuento del número de solicitudes para diferentes códigos de estado.
status_code = logs_filtered.groupby ('Código de estado'). agg ('tamaño')
Para replicar el tipo de recuento que usa en Excel, debe especificar una función agregada de 'tamaño', no de 'recuento'. Si usa count, invocará la función en todas las columnas dentro del DataFrame, y los valores nulos se manejan de manera diferente. Restablecer el índice restaurará los encabezados de ambas columnas, y la última columna puede cambiarse de nombre a algo más relevante.
Si desea una manipulación de datos más avanzada, las tablas dinámicas integradas de Pandas ofrecen una funcionalidad comparable a Excel, lo que hace posibles agregaciones complejas con una sola línea de código. En su nivel más básico, la función requiere un DataFrame e índice especificados (o índices si se requiere un índice múltiple) y devuelve los valores correspondientes.
Para mayor especificidad, se pueden declarar los valores requeridos y se pueden aplicar agregaciones (suma, media, etc.) utilizando el parámetro aggfunc. El parámetro de columnas también puede ayudarlo a mostrar valores horizontalmente para una salida más clara.
Incorporación de rangos
Para puntos de datos como bytes, que pueden tener muchos valores numéricos diferentes, querrá agrupar los datos. Para hacerlo, defina sus intervalos dentro de una lista y luego use la función de corte para ordenar los valores en bins, especificando np.inf para capturar cualquier cosa sobre el valor máximo declarado.
6. Exportar
Finalmente, necesita exportar sus datos de registro y pivotes. Para facilitar el análisis, querrá exportar sus datos a un archivo de Excel en lugar de CSV. Los archivos XLSX admiten varias hojas, lo que significa que puede combinar todos los DataFrames en un solo archivo. Puedes lograr esto usando para sobresalir. Deberá especificar un objeto ExcelWriter porque está agregando más de una hoja al mismo libro. Además, cuando está exportando una gran cantidad de pivotes, ayuda a simplificar las cosas almacenando DataFrames y nombres de hojas en un diccionario y usando un bucle for.
Tenga en cuenta que el límite de filas de Excel es 1.048.576. Dado que está exportando todas las solicitudes, esto puede causar problemas si tiene muestras grandes. Los archivos CSV no tienen límite, por lo que se puede emplear una instrucción if para agregar una exportación CSV como respaldo. Luego, si la longitud del DataFrame del archivo de registro es superior a 1.048.576, se exportará como CSV. Esto evita que el script falle y aún combina los pivotes en una sola exportación.

Análisis y pivote de archivos SEO con SEO Design Chicago
Aunque usar Python para analizar y pivotar archivos SEO es una habilidad útil, también es difícil de dominar. Si necesita ayuda con sus archivos de SEO, comuníquese hoy mismo con los expertos en datos de SEO de SEO Design Chicago para obtener ayuda.
Preguntas frecuentes:
- ¿Qué es Python?
- ¿Cómo utilizo Python para analizar y pivotar mis archivos SEO?
- ¿Por qué debería usar Python para analizar y pivotar mis archivos SEO?
- ¿Cómo extraigo las solicitudes del motor de búsqueda usando Python?
- ¿Necesito saber cómo codificar para analizar y pivotar mis archivos SEO?
