Com visualitzar i personalitzar l’anàlisi de backlink amb Python


És probable que hàgiu utilitzat una de les eines més populars com Ahrefs o Semrush per analitzar els enllaços d’entrada del vostre lloc.

Aquestes eines rastregen el web per obtenir una llista de llocs que enllacen al vostre lloc web amb una puntuació de domini i altres dades que descriuen la qualitat dels vostres enllaços d’entrada.

No és cap secret això Els enllaços d’entrada tenen un paper important en l’algorisme de Googleaixí que té sentit com a mínim entendre el vostre propi lloc abans de comparar-lo amb la competència.

Tot i que l’ús d’eines us proporciona una visió de mètriques específiques, aprendre a analitzar els enllaços d’entrada pel vostre compte us ofereix més flexibilitat sobre què esteu mesurant i com es presenta.

I encara que podríeu fer la major part de l’anàlisi en un full de càlcul, Python té certs avantatges.

A part del gran nombre de files que pot gestionar, també pot mirar més fàcilment el costat estadístic, com ara les distribucions.

En aquesta columna, trobareu instruccions pas a pas sobre com visualitzar l’anàlisi bàsica dels enllaços d’entrada i personalitzar els vostres informes tenint en compte diferents atributs d’enllaç amb Python.

No Ocupant Seient

Escollirem un petit lloc web del sector del moble del Regne Unit com a exemple i farem una anàlisi bàsica amb Python.

Aleshores, quin és el valor dels enllaços d’entrada d’un lloc per al SEO?

En la seva manera més senzilla, diria qualitat i quantitat.

La qualitat és subjectiva per a l’expert però definitiva per a Google mitjançant mètriques com ara l’autoritat i la rellevància del contingut.

Començarem avaluant la qualitat de l’enllaç amb les dades disponibles abans d’avaluar la quantitat.

Hora de codificar.

import re
import time
import random
import pandas as pd
import numpy as np
import datetime
from datetime import timedelta
from plotnine import *
import matplotlib.pyplot as plt
from pandas.api.types import is_string_dtype
from pandas.api.types import is_numeric_dtype
import uritools  
pd.set_option('display.max_colwidth', None)
%matplotlib inline

root_domain = 'johnsankey.co.uk'
hostdomain = 'www.johnsankey.co.uk'
hostname="johnsankey"
full_domain = 'https://www.johnsankey.co.uk'
target_name="John Sankey"

Comencem important les dades i netejant els noms de les columnes perquè sigui més fàcil de manejar i més ràpid d’escriure per a les etapes posteriors.

target_ahrefs_raw = pd.read_csv(
    'data/johnsankey.co.uk-refdomains-subdomains__2022-03-18_15-15-47.csv')

Les llistes de comprensió són una manera potent i menys intensa de netejar els noms de les columnes.

target_ahrefs_raw.columns = [col.lower() for col in target_ahrefs_raw.columns]

La comprensió de la llista indica a Python que converteixi el nom de la columna en minúscules per a cada columna (“col”) a les columnes del marc de dades.

target_ahrefs_raw.columns = [col.replace(' ','_') for col in target_ahrefs_raw.columns]
target_ahrefs_raw.columns = [col.replace('.','_') for col in target_ahrefs_raw.columns]
target_ahrefs_raw.columns = [col.replace('__','_') for col in target_ahrefs_raw.columns]
target_ahrefs_raw.columns = [col.replace('(','') for col in target_ahrefs_raw.columns]
target_ahrefs_raw.columns = [col.replace(')','') for col in target_ahrefs_raw.columns]
target_ahrefs_raw.columns = [col.replace('%','') for col in target_ahrefs_raw.columns]

Tot i que no és estrictament necessari, m’agrada tenir una columna de recompte com a estàndard per a les agregacions i una columna de valor únic “projecte” si hagués de agrupar tota la taula.

target_ahrefs_raw['rd_count'] = 1
target_ahrefs_raw['project'] = target_name
target_ahrefs_raw
Anàlisi de backlink mitjançant Python Captura de pantalla de Pandas, març de 2022

Ara tenim un marc de dades amb noms de columnes nets.

El següent pas és netejar els valors reals de la taula i fer-los més útils per a l’anàlisi.

Feu una còpia del marc de dades anterior i doneu-li un nom nou.

target_ahrefs_clean_dtypes = target_ahrefs_raw

Netegeu la columna dofollow_ref_domains, que ens indica quants dominis de referència té l’enllaç del lloc.

En aquest cas, convertirem els guions en zeros i, a continuació, llançarem la columna sencera com un nombre sencer.

# referring_domains
target_ahrefs_clean_dtypes['dofollow_ref_domains'] = np.where(target_ahrefs_clean_dtypes['dofollow_ref_domains'] == '-',
                                                              0, target_ahrefs_clean_dtypes['dofollow_ref_domains'])
target_ahrefs_clean_dtypes['dofollow_ref_domains'] = target_ahrefs_clean_dtypes['dofollow_ref_domains'].astype(int)


# linked_domains
target_ahrefs_clean_dtypes['dofollow_linked_domains'] = np.where(target_ahrefs_clean_dtypes['dofollow_linked_domains'] == '-',
                                                           0, target_ahrefs_clean_dtypes['dofollow_linked_domains'])
target_ahrefs_clean_dtypes['dofollow_linked_domains'] = target_ahrefs_clean_dtypes['dofollow_linked_domains'].astype(int)

First_seen ens indica la data en què es va trobar l’enllaç per primera vegada.

Convertirem la cadena a un format de data que Python pugui processar i després l’utilitzarem per derivar l’antiguitat dels enllaços més endavant.

# first_seen
target_ahrefs_clean_dtypes['first_seen'] = pd.to_datetime(target_ahrefs_clean_dtypes['first_seen'], format="%d/%m/%Y %H:%M")

Convertir first_seen en una data també significa que podem realitzar agregacions de temps per mes i any.

Això és útil, ja que no sempre és el cas que els enllaços d’un lloc s’adquireixin diàriament, tot i que seria bo per al meu propi lloc si ho fes!

target_ahrefs_clean_dtypes['month_year'] = target_ahrefs_clean_dtypes['first_seen'].dt.to_period('M')

L’edat de l’enllaç es calcula agafant la data d’avui i restant la data first_seen.

A continuació, es converteix a un format de nombre i es divideix per un nombre enorme per obtenir el nombre de dies.

# link age
target_ahrefs_clean_dtypes['link_age'] = datetime.datetime.now() - target_ahrefs_clean_dtypes['first_seen']
target_ahrefs_clean_dtypes['link_age'] = target_ahrefs_clean_dtypes['link_age']
target_ahrefs_clean_dtypes['link_age'] = target_ahrefs_clean_dtypes['link_age'].astype(int)
target_ahrefs_clean_dtypes['link_age'] = (target_ahrefs_clean_dtypes['link_age']/(3600 * 24 * 1000000000)).round(0)
target_ahrefs_clean_dtypes

Anàlisi de backlinks dades ahrefsCaptura de pantalla de Pandas, març de 2022

Amb els tipus de dades netejats i creades algunes funcions de dades noves, la diversió pot començar!

Qualitat de l’enllaç

La primera part de la nostra anàlisi avalua qualitat de l’enllaçque resumeix tot el marc de dades mitjançant la funció descriure per obtenir estadístiques descriptives de totes les columnes.

target_ahrefs_analysis = target_ahrefs_clean_dtypes
target_ahrefs_analysis.describe()

taula de dades d'enllaç d'entrada de PythonCaptura de pantalla de Pandas, març de 2022

Així, a la taula anterior, podem veure la mitjana (mitjana), el nombre de dominis de referència (107) i la variació (el percentil 25 i així successivament).

La valoració mitjana del domini (equivalent a l’autoritat de domini de Moz) dels dominis de referència és de 27.

Això és bo?

En absència de dades de competidors per comparar en aquest sector del mercat, és difícil saber-ho. Aquí és on entra la vostra experiència com a professional de SEO.

Tanmateix, estic segur que tots podríem estar d’acord que podria ser més alt.

Quant més alt per fer un canvi és una altra qüestió.

qualificació del domini al llarg dels anysCaptura de pantalla de Pandas, març de 2022

La taula anterior pot ser una mica seca i difícil de visualitzar, de manera que traçarem un histograma per entendre de manera intuïtiva l’autoritat del domini de referència.

dr_dist_plt = (
    ggplot(target_ahrefs_analysis, aes(x = 'dr')) + 
    geom_histogram(alpha = 0.6, fill="blue", bins = 100) +
    scale_y_continuous() +   
    theme(legend_position = 'right'))
dr_dist_plt
gràfic de barres de dades d'enllaçSCreenshot de l’autor, març de 2022

La distribució està molt esbiaixada, cosa que demostra que la majoria dels dominis de referència tenen una qualificació d’autoritat de zero.

Més enllà de zero, la distribució sembla força uniforme, amb una quantitat igual de dominis a diferents nivells d’autoritat.

Enllaç d’edat és un altre factor important per al SEO.

Vegem la distribució a continuació.

linkage_dist_plt = (
    ggplot(target_ahrefs_analysis, 
           aes(x = 'link_age')) + 
    geom_histogram(alpha = 0.6, fill="blue", bins = 100) +
    scale_y_continuous() +   
    theme(legend_position = 'right'))
linkage_dist_plt
gràfic de barres per a l'edat de l'enllaçCaptura de pantalla de l’autor, març de 2022

La distribució sembla més normal encara que encara estigui esbiaixada, ja que la majoria dels enllaços són nous.

L’edat d’enllaç més comuna sembla ser d’uns 200 dies, que és menys d’un any, cosa que suggereix que la majoria dels enllaços s’han adquirit recentment.

Per interès, vegem com es correlaciona això amb l’autoritat del domini.

dr_linkage_plt = (
    ggplot(target_ahrefs_analysis, 
           aes(x = 'dr', y = 'link_age')) + 
    geom_point(alpha = 0.4, colour="blue", size = 2) +
    geom_smooth(method = 'lm', se = False, colour="red", size = 3, alpha = 0.4)
)

print(target_ahrefs_analysis['dr'].corr(target_ahrefs_analysis['link_age']))
dr_linkage_plt

0.1941101232345909
gràfic de dades de l'edat de l'enllaçCaptura de pantalla de l’autor, març de 2022

La trama (juntament amb la xifra de 0,19 impresa anteriorment) no mostra cap correlació entre els dos.

I per què n’hi hauria d’haver?

Una correlació només implicaria que els enllaços d’autoritat superior es van adquirir en la fase inicial de la història del lloc.

El motiu de la no correlació es farà més evident més endavant.

Ara veurem la qualitat de l’enllaç al llarg del temps.

Si haguéssim de traçar literalment el nombre d’enllaços per data, la sèrie temporal semblaria més aviat desordenada i menys útil com es mostra a continuació (no s’ha subministrat cap codi per representar el gràfic).

Per aconseguir-ho, calcularem una mitjana corrent de la qualificació del domini per mes de l’any.

Tingueu en compte la funció expanding( ), que indica a Pandas que incloguin totes les files anteriors amb cada fila nova.

target_rd_cummean_df = target_ahrefs_analysis
target_rd_mean_df = target_rd_cummean_df.groupby(['month_year'])['dr'].sum().reset_index()
target_rd_mean_df['dr_runavg'] = target_rd_mean_df['dr'].expanding().mean()
target_rd_mean_df
calcular una mitjana corrent de la qualificació del dominiCaptura de pantalla de Pandas, març de 2022

Ara tenim una taula que podem utilitzar per alimentar el gràfic i visualitzar-lo.

dr_cummean_smooth_plt = (
    ggplot(target_rd_mean_df, aes(x = 'month_year', y = 'dr_runavg', group = 1)) + 
    geom_line(alpha = 0.6, colour="blue", size = 2) +
    scale_y_continuous() +
    scale_x_date() +
    theme(legend_position = 'right', 
          axis_text_x=element_text(rotation=90, hjust=1)
         ))
dr_cummean_smooth_plt
visualitzant la valoració mitjana acumulada del dominiCaptura de pantalla de l’autor, març de 2022

Això és força interessant, ja que sembla que el lloc va començar atreure enllaços d’alta autoritat al principi del seu temps (probablement una campanya de relacions públiques per llançar el negoci).

Després es va esvair durant quatre anys abans de tornar a reprendre una nova adquisició d’enllaços d’enllaços d’alta autoritat.

Volum d’enllaços

Sona bé només escriure aquest títol!

Qui no voldria un gran volum d’enllaços (bons) al seu lloc?

La qualitat és una cosa; el volum és un altre, que és el que analitzarem a continuació.

Igual que l’operació anterior, utilitzarem la funció d’expansió per calcular una suma acumulada dels enllaços adquirits fins ara.

target_count_cumsum_df = target_ahrefs_analysis
target_count_cumsum_df = target_count_cumsum_df.groupby(['month_year'])['rd_count'].sum().reset_index()
target_count_cumsum_df['count_runsum'] = target_count_cumsum_df['rd_count'].expanding().sum()
target_count_cumsum_df
càlcul de la suma acumulada d'enllaçosCaptura de pantalla de Pandas, març de 2022

Aquestes són les dades, ara el gràfic.

target_count_cumsum_plt = (
    ggplot(target_count_cumsum_df, aes(x = 'month_year', y = 'count_runsum', group = 1)) + 
    geom_line(alpha = 0.6, colour="blue", size = 2) +
    scale_y_continuous() + 
    scale_x_date() +
    theme(legend_position = 'right', 
          axis_text_x=element_text(rotation=90, hjust=1)
         ))
target_count_cumsum_plt
gràfic de línies de la suma acumulada d'enllaçosCaptura de pantalla de l’autor, març de 2022

Veiem que els enllaços adquirits a principis del 2017 es van desaccelerar, però que s’han afegit de manera constant durant els propers quatre anys abans de tornar a accelerar-se al voltant del març del 2021.

De nou, seria bo correlacionar-ho amb el rendiment.

Portant-ho més enllà

Per descomptat, l’anterior és només la punta de l’iceberg, ja que és una simple exploració d’un lloc. És difícil inferir res útil per millorar la classificació en espais de cerca competitius.

A continuació es mostren algunes àrees per a l’exploració i anàlisi de dades.

  • Afegeix dades de compartició de xarxes socials als dos URL de destinació.
  • Correlacionar la visibilitat general del lloc amb la DR mitjana en execució al llarg del temps.
  • Traçat de la distribució de DR al llarg del temps.
  • Afegint dades de volum de cerca als noms d’amfitrió per veure quantes cerques de marca reben els dominis de referència com a mesura de la veritable autoritat.
  • Unir-se amb dades de rastreig als URL de destinació per comprovar la rellevància del contingut.
  • Velocitat de l’enllaç – la velocitat a la qual s’adquireixen nous enllaços de llocs nous.
  • Integrant totes les idees anteriors a la vostra anàlisi per comparar-lo amb els vostres competidors.

Estic segur que hi ha moltes idees que no s’enumeren més amunt, no dubteu a compartir-les a continuació.

Més recursos:


Imatge destacada: metamorworks/Shutterstock





Source link

Com visualitzar i personalitzar l’anàlisi de backlink amb Python