Python es una enorme herramienta para hacer de manera automática tareas repetitivas y conseguir mucho más información sobre sus datos.

En el artículo, va a aprender de qué manera hacer una herramienta para contrastar qué keywords están cerca de clasificarse en las situaciones uno a tres y va a recibir una alarma si existe la posibilidad de emplear esas keywords de manera natural en la página.

Es especial tanto para principiantes para expertos de Python y es una increíble introducción al empleo de Python para SEO.

Si deseas quedarte atrapado dentro, lo tienes. Petición simplificada libre para código Es simple de utilizar y no necesita experiencia en codificación.

Asimismo hay una Hoja de colaboración de Google plus si quiere buscar el código. Si puede seguir un portal de internet, ¡puede utilizar este script!

Este es un caso de muestra de lo que vamos a hacer el día de hoy:

Una hoja de cálculo de Excel que documenta las oportunidades de palabras clave por página generada con PythonAtrapa de pantalla de Microsoft Excel, octubre de 2021

Estas keywords se tienen la posibilidad de hallar en el título de la página y en H1, pero no en copia. Naturalmente, añadir estas keywords a su copia que existe sería una forma simple de acrecentar la importancia de estas keywords.

Al apuntar a los buscadores web y, naturalmente, integrar las keywords faltantes para las que un lugar ahora está clasificado, aumentamos la seguridad del motor de búsqueda para clasificar esas keywords mucho más arriba en los SERP.

Este informe se puede hacer de forma manual, pero transporta algo de tiempo.

Entonces, automatizaremos el desarrollo utilizando un script Python SEO.

Salir de la perspectiva

Aquí hay un caso de muestra de de qué manera se va a ver el resultado final tras realizar el informe:

Hoja de Excel que muestra un ejemplo de palabras clave que se pueden optimizar utilizando el informe de distancia de accidenteAtrapa de pantalla de Microsoft Excel, octubre de 2021

El resultado final toma las cinco ocasiones primordiales según el volumen de búsqueda de cada página y las clasifica horizontalmente, adjuntado con el volumen de búsqueda estimado.

Asimismo exhibe el volumen de búsqueda total de todas y cada una de las keywords que tiene una página a una distancia del resultado, tal como el total de keywords libres.

Las cinco keywords primordiales por volumen de búsqueda se comprueban por título, H1 o copia, y después se marcan como VERDADERO o FALSO.

¡O sea excelente para localizar victorias veloces! Sencillamente añada la keyword que falta de manera natural a la copia de su página, título o H1.

para empezar

La instalación es bastante fácil. Todo cuanto debemos llevar a cabo es seguir el lugar (idealmente con una extracción de copia adaptada que quiera contrastar) y un fichero exportado con todas y cada una de las keywords para las que se clasifica un ubicación.

Esta publicación lo guiará mediante la configuración, el código y lo mandará a una hoja de Google plus Colaboratory si solo desea quedarse atascado sin codificarlo usted mismo.

Para iniciar precisarás:

Lo llamé Kick Distance Report por el hecho de que apunta a keywords que son de forma fácil alcanzables caminando.

(Definimos la distancia para adivinar como una keyword que va de 4 a 20, pero la transformamos en una alternativa configurable si quiere determinar sus factores).

Pasmante informe recóndito de SEO: Primeros pasos

1. Escanee el ubicación de destino

  • Configure un extractor de copia de página personalizado (opcional, pero sugerido).
  • Filtrar páginas de rastreo.

2. Exporte todas y cada una de las keywords clasificadas del lugar usando su distribuidor favorito

  • Filtrar keywords activadas como link al ubicación.
  • Suprima las keywords que se disparan como una imagen.
  • Filtra las keywords de tu marca.
  • Utilice las dos exportaciones para hacer un increíble informe de distancia de keywords y escanear sus datos de Python.

Escaneo del ubicación

Escogí emplear Screaming Frog para conseguir ingreso inicial. Cualquier rastreador va a funcionar siempre y cuando la exportación CSV use exactamente los mismos nombres de columna o se cambie el nombre a fin de que coincida.

El script espera localizar las próximas columnas en la exportación CSV escaneada:

"Address", "Title 1", "H1-1", "Copy 1", "Indexability"

Configuración de ingreso a escaneo

La primera cosa que debemos llevar a cabo es proceder a los cambios de configuración primordiales en Screaming Frog:

Configuración > Araña > Escanear

Los primordiales cambios a usar son:

Escanear links internos, cánones, Y Página (Rel Siguiente / Previo) colocación.

(La secuencia de comandos va a funcionar con cualquier otra cosa que escoja, ¡pero va a llevar mucho más tiempo llenar el escaneo!)

Configuración de escaneo recomendada para la rana aulladoraAtrapa de pantalla de Screaming Frog, octubre de 2021

entonces esta encendido Extracción línea.

Configuración > Araña > Extracción

Configuración de inicio de sesión de rastreo recomendada para ranas aulladorasAtrapa de pantalla de Screaming Frog, octubre de 2021

Por lo menos, requerimos obtener el título de la página, H1, y calcular si la página es indexable, como se expone ahora.

La indexación es útil pues es una forma simple a fin de que el script identifique las dirección de Internet que se tienen la posibilidad de remover de una vez, dejando solo las keywords que se tienen la posibilidad de clasificar en las SERP.

Si el script no puede localizar la columna indexable, proseguirá andando comunmente, pero no distinguirá entre las páginas que se tienen la posibilidad de clasificar y las que no se tienen la posibilidad de clasificar.

Modificar un extractor de copia de página personalizado

Para contrastar si se halló una keyword en la copia de la página, debemos modificar un extractor personalizado en Screaming Frog.

Configuración> Personalizado> Obtener

Asigne un nombre al extractor «Copiar» como se expone ahora.

Rana aulladora personalizada Muestra las opciones predeterminadas para extraer una copia de la páginaAtrapa de pantalla de Screaming Frog, octubre de 2021

Esencial: El script espera que el extractor se llame «Copiar» como se señala arriba, ¡conque compruébelo!

Al final, asegúrese Obtener artículo se escoge para exportar la copia como artículo, no como HTML.

Existen muchas guías para utilizar tiradores customizados on line, si precisa asistencia para modificar uno, entonces no volveré aquí.

Cuando se configura la extracción, es hora de seguir el ubicación y exportar el fichero HTML en formato CSV.

Exportación de ficheros CSV

Exportar el fichero CSV es tan simple como cambiar el menú desplegable que se expone en De adentro A HTML y presionando el botón Exportar.

De adentro> HTML> Exportar

Screaming Frog - Exportar configuraciones HTML internasAtrapa de pantalla de Screaming Frog, octubre de 2021

Tras clickear ExportarEs esencial cerciorarse de que el tipo esté configurado en formato CSV.

La pantalla de exportación debería verse de esta forma:

Configuración interna de exportación HTML CSV de Screaming FrogAtrapa de pantalla de Screaming Frog, octubre de 2021

Consejo 1: filtre las páginas de paginación

Te invito a que filtres las páginas que escaneas eligiendo entre las páginas Respetar lo siguiente/previo bajo la Adelantado configuración (o sencillamente elimínelos del fichero CSV si lo elige).

Configuración de Screaming Frog para ajustarse a Rel / PrevAtrapa de pantalla de Screaming Frog, octubre de 2021

Consejo 2: Guarde la configuración de ingreso para escaneo

Cuando haya configurado su escaneo, merece la pena almacenar su configuración de escaneo (que asimismo recordará su extracción adaptada).

Esto le ahorrará bastante tiempo si quiere regresar a usar el script más adelante.

Fichero > Configuración > Almacenar como

Cómo guardar un archivo de configuración en Screaming FrogAtrapa de pantalla de Screaming Frog, octubre de 2021

Exportar keywords

Cuando disponemos el fichero de comienzo de sesión del rastreador, el próximo paso es cargar su herramienta de investigación de keywords preferida y exportar todas y cada una de las keywords para las que se clasifica un lugar.

La meta aquí es exportar todas y cada una de las keywords para las que se clasifica un lugar, descartando las keywords de marca y cualquier cosa que se haya habilitado como link de ubicación o imagen.

Para este caso, estoy empleando el informe de keywords orgánicas en Ahrefs, pero va a funcionar igualmente bien con Semrush si esa es su herramienta preferida.

En Ahrefs, ingresa el dominio que quieres registrar Explorador de sitios y escoge Keywords orgánicas.

Configuración del Explorador de sitios de AhrefsAtrapa de pantalla de Ahrefs.com, octubre de 2021

Site Explorer> Keywords orgánicas

Ahrefs: cómo clasificar la configuración para exportar palabras clave orgánicas a un sitioAtrapa de pantalla de Ahrefs.com, octubre de 2021

Esto mostrará todas y cada una de las keywords para las que está clasificado el ubicación.

Filtrado de links de ubicación y links de imagen

El próximo paso es filtrar las keywords activadas, como links de ubicación o packs de imágenes.

La razón por la cual requerimos filtrar los links de ubicación es que no tienen predominación en la clasificación de las dirección de Internet primordiales. Esto se origina por que solo la página primordial está clasificada técnicamente para la keyword, no las dirección de Internet de link de ubicación que se detallan debajo.

Filtrar los links de lugar garantizará que se optimice la página adecuada.

Captura de pantalla de Ahrefs que muestra la clasificación de páginas para palabras clave de enlace de sitioAtrapa de pantalla de Ahrefs.com, octubre de 2021

Aquí se enseña de qué manera llevarlo a cabo en Ahrefs.

Imagen que muestra cómo excluir imágenes y enlaces de sitio de una exportación de palabras claveAtrapa de pantalla de Ahrefs.com, octubre de 2021

Por último, te invito a que filtres las keywords de tu marca. Puede llevarlo a cabo filtrando de manera directa el resultado CSV o filtrando antes en la herramienta de keywords de su decisión antes de exportar.

Por último, en el momento en que exporte, asegúrese de escoger Exportación completa Y UTF-8 formato como se expone ahora.

Imagen que muestra cómo exportar palabras clave UTF-8 como un archivo CSVAtrapa de pantalla de Ahrefs.com, octubre de 2021

De manera ya establecida, el script marcha con exportaciones de keywords Ahrefs (v1 / v2) y Semrush. Puede marchar con cualquier fichero CSV de keyword siempre y cuando estén presentes los nombres de columna aguardados del script.

bajo procesamiento

Las próximas normas son para realizar una hoja de Google plus Colaboratory para realizar el código.

En este momento existe una alternativa mucho más fácil para los que lo prefieran con apariencia de Petición simplificada. Sencillamente prosiga las normas provistas para cargar el fichero con el rastreador y las keywords.

En este momento que hemos exportado nuestros ficheros, todo cuanto debemos realizar es subirlos a Hoja de colaboración de Google plus para procesar.

Para elegir Tiempo de ejecución> Realizar todo desde la navegación en la parte de arriba para realizar todas y cada una de las celdas de el papel.

Imagen que muestra cómo sacudir de forma remota el script de Python desde Google CollaboratoryAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021

El script le solicitará que cargue primero la keyword CSV de Ahrefs o Semrush, entonces el fichero de escaneo.

Imagen que muestra cómo subir archivos CSV a Google CollaboratoryAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021

¡Eso es todo! El script descargará de manera automática un fichero CSV disponible que puede emplear para mejorar su lugar.

Imagen que muestra la salida final de la distancia de bateoAtrapa de pantalla de Microsoft Excel, octubre de 2021

Cuando esté familiarizado con todo el desarrollo, utilizar el script es muy sencilla.

Desglose y explicación del código.

Si está aprendiendo Python SEO y está entusiasmado en lo que hace el código para generar el informe, ¡esté atento a la presentación del código!

Disponer bibliotecas

Instalamos el panda para realizar rodar la bola.

!pip install pandas

Importar módulos

Entonces requerimos importar los módulos precisos.

import pandas as pd
from pandas import DataFrame, Series
from typing import Union
from google plus.colab import archivos

Detallar las cambiantes

En este momento es el instante de detallar las cambiantes.

El script considera todas y cada una de las keywords entre las situaciones 4 y 20 libres.

Modificar las cambiantes aquí le dejará determinar su rango si lo quiere. Merece la pena presenciar con la configuración para conseguir el más destacable resultado viable para sus pretensiones.

# equipo all cambiantes here
min_volume = 10  # equipo the minimum search volume
min_position = 4  # equipo the minimum position  / default = 4
max_position = 20 # equipo the maximum position  / default = 20
drop_all_true = True  # If all checks (h1/title/copy) are true, remove the recommendation (Nothing to do)
pagination_filters = "filterby|page|p="  # filter patterns used to detect and drop paginated pages

Cargue el fichero CSV de exportación con keywords

El próximo paso es leer la lista de keywords en el fichero CSV.

Está configurado para admitir un informe de Ahrefs (V1 y V2) y una exportación de Semrush.

Este código se lee en el fichero CSV en un Pandas DataFrame.

upload = archivos.upload()
upload = list(upload.keys())[0]
df_keywords = pd.read_csv(
    (upload),
    error_bad_lines=False,
    low_memory=False,
    encoding="utf8",
    dtype=,
)
print("Uploaded Keyword CSV Archivo Successfully!")

Si todo salió según lo premeditado, va a ver una perspectiva del DataFrame desarrollado por la keyword CSV Export.

El marco de datos que muestra la carga exitosa del archivo de exportación de palabras claveAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021

Cargue el fichero CSV de exportación de escaneo

Cuando se han importado las keywords, es hora de cargar el fichero de ingreso para escanear.

This fairly fácil piece of code reads in the crawl with some fallo handling option and creates a Pandas DataFrame named df_crawl.

upload = archivos.upload()
upload = list(upload.keys())[0]
df_crawl = pd.read_csv(
    (upload),
        error_bad_lines=False,
        low_memory=False,
        encoding="utf8",
        dtype="str",
    )
print("Uploaded Crawl Dataframe Successfully!")

En el momento en que el fichero CSV haya terminado de cargarse, va a ver una perspectiva del DataFrame.

Imagen que muestra un marco del archivo escaneado cargado correctamenteAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021

Limpie y estandarice sus datos de keywords

El próximo paso es cambiar el nombre de las columnas para asegurar la estandarización entre los modelos de exportación de ficheros más habituales.

Esencialmente, ponemos en buen estado la keyword DataFrame y la filtramos utilizando los límites establecidos por las cambiantes.

df_keywords.rename(
    columns=,
    inplace=True,
)

# keep only the following columns from the keyword dataframe
cols = "dirección de Internet", "Keyword", "Volume", "Position"
df_keywords = df_keywords.reindex(columns=cols)

try:
    # clean the data. (v1 of the ahrefs keyword export combines strings and ints in the volume column)
    df_keywords["Volume"] = df_keywords["Volume"].str.replace("0-10", "0")
except AttributeError:
    pass

# clean the keyword data
df_keywords = df_keywords[df_keywords["URL"].notna()]  # remove any missing values
df_keywords = df_keywords[df_keywords["Volume"].notna()]  # remove any missing values
df_keywords = df_keywords.astype()  # change data type to int
df_keywords = df_keywords.sort_values(by="Volume", ascending=False)  # sort by highest vol to keep the top opportunity

# make new dataframe to merge search volume back in later
df_keyword_vol = df_keywords[["Keyword", "Volume"]]

# drop rows if minimum search volume doesn't match specified criteria
df_keywords.loc[df_keywords["Volume"] < min_volume, "Volume_Too_Low"] = "drop"
df_keywords = df_keywords[~df_keywords["Volume_Too_Low"].isin(["drop"])]

# drop rows if minimum search position doesn't match specified criteria
df_keywords.loc[df_keywords["Position"] <= min_position, "Position_Too_High"] = "drop"
df_keywords = df_keywords[~df_keywords["Position_Too_High"].isin(["drop"])]
# drop rows if maximum search position doesn't match specified criteria
df_keywords.loc[df_keywords["Position"] >= max_position, "Position_Too_Low"] = "drop"
df_keywords = df_keywords[~df_keywords["Position_Too_Low"].isin(["drop"])]

Limpie y estandarice sus datos de comienzo de sesión rastreando

Ahora, debemos adecentar y estandarizar nuestros principios de sesión de rastreo.

Esencialmente, solo empleamos la reindexación para sostener las columnas «Dirección», «Indexabilidad», «Título de la página», «H1-1» y «Copia 1», descartando el resto.

Utilizamos la columna «Indexabilidad» a mano para sostener solo las filas que son indexables. Esto suprimirá las dirección de Internet preceptivas, los redireccionamientos, etcétera. Sugiero activar esta alternativa al escanear.

Por último, estandarizamos los nombres de las columnas a fin de que sea un tanto mucho más satisfactorio trabajar con ellas.

# keep only the following columns from the crawl dataframe
cols = "Address", "Indexability", "Title 1", "H1-1", "Copy 1"
df_crawl = df_crawl.reindex(columns=cols)
# drop non-indexable rows
df_crawl = df_crawl[~df_crawl["Indexability"].isin(["Non-Indexable"])]
# standardise the column names
df_crawl.rename(columns=, inplace=True)
df_crawl.head()

Asocia tus keywords

Conforme nos aproximamos al resultado final, debemos agrupar nuestras keywords para calcular la posibilidad total para cada página.

Aquí, calculamos cuántas keywords están en una distancia triunfadora para cada página, adjuntado con el volumen de búsqueda mezclado.

# groups the URLs (remove the dupes and combines stats)
# make a copy of the palabras clave dataframe for grouping - this ensures stats perro be merged back in later from the OG df
df_keywords_group = df_keywords.copy()
df_keywords_group["KWs in Striking Dist."] = 1  # used to count the number of palabras clave in striking distance
df_keywords_group = (
    df_keywords_group.groupby("dirección de Internet")
    .agg()
    .reset_index()
)
df_keywords_group.head()
DataFrame que muestra cuántas palabras clave se encontraron a una distancia del hitAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021

Una vez completado, va a ver una perspectiva de la Marco de datos.

Vea sus keywords en líneas lindantes

Usamos los datos organizados como base para el resultado final. Utilizamos Pandas.unstack para remodelar el DataFrame para enseñar keywords al estilo de una exportación de GrepWords.

DataFrame que muestra una vista grepword de palabras clave dispuestas horizontalmenteAtrapa de pantalla de Colab.research.google plus.com, octubre de 2021
# create a new df, mezcle the merged data with the original data. display in adjacent rows ala grepwords
df_merged_all_kws = df_keywords_group.merge(
    df_keywords.groupby("dirección de Internet")["Keyword"]
    .apply(lambda x: x.reset_index(drop=True))
    .unstack()
    .reset_index()
)

# sort by biggest opportunity
df_merged_all_kws = df_merged_all_kws.sort_values(
    by="KWs in Striking Dist.", ascending=False
)

# reindex the columns to keep just the top five palabras clave
cols = "dirección de Internet", "Volume", "KWs in Striking Dist.", 0, 1, 2, 3, 4
df_merged_all_kws = df_merged_all_kws.reindex(columns=cols)

# create union and rename the columns
df_striking: Union[Series, DataFrame, None] = df_merged_all_kws.rename(
    columns=
)

# merges striking distance df with crawl df to merge in the title, h1 and category description
df_striking = pd.merge(df_striking, df_crawl, on="dirección de Internet", how="inner")

Detallar el orden final de las columnas y también insertar columnas de remplazo

Al final, establezcamos el orden final de las columnas y combinemos los datos iniciales de keywords.

¡Existen muchas columnas para organizar y hacer!

# equipo the final column order and merge the keyword data in

cols = [
    "URL",
    "Title",
    "H1",
    "Copy",
    "Striking Dist. Vol",
    "KWs in Striking Dist.",
    "KW1",
    "KW1 Vol",
    "KW1 in Title",
    "KW1 in H1",
    "KW1 in Copy",
    "KW2",
    "KW2 Vol",
    "KW2 in Title",
    "KW2 in H1",
    "KW2 in Copy",
    "KW3",
    "KW3 Vol",
    "KW3 in Title",
    "KW3 in H1",
    "KW3 in Copy",
    "KW4",
    "KW4 Vol",
    "KW4 in Title",
    "KW4 in H1",
    "KW4 in Copy",
    "KW5",
    "KW5 Vol",
    "KW5 in Title",
    "KW5 in H1",
    "KW5 in Copy",
]

# re-index the columns to place them in a logical order + inserts new blank columns for kw checks.
df_striking = df_striking.reindex(columns=cols)

Conjuntar los datos de keywords para cada columna

Este código fusiona los datos de volumen de keywords en el DataFrame. Es aproximadamente el semejante de una función BUSCARV de Excel.

# merge in keyword data for each keyword column (KW1 - KW5)
df_striking = pd.merge(df_striking, df_keyword_vol, left_on="KW1", right_on="Keyword", how="left")
df_striking['KW1 Vol'] = df_striking['Volume']
df_striking.drop(['Keyword', 'Volume'], axis=1, inplace=True)
df_striking = pd.merge(df_striking, df_keyword_vol, left_on="KW2", right_on="Keyword", how="left")
df_striking['KW2 Vol'] = df_striking['Volume']
df_striking.drop(['Keyword', 'Volume'], axis=1, inplace=True)
df_striking = pd.merge(df_striking, df_keyword_vol, left_on="KW3", right_on="Keyword", how="left")
df_striking['KW3 Vol'] = df_striking['Volume']
df_striking.drop(['Keyword', 'Volume'], axis=1, inplace=True)
df_striking = pd.merge(df_striking, df_keyword_vol, left_on="KW4", right_on="Keyword", how="left")
df_striking['KW4 Vol'] = df_striking['Volume']
df_striking.drop(['Keyword', 'Volume'], axis=1, inplace=True)
df_striking = pd.merge(df_striking, df_keyword_vol, left_on="KW5", right_on="Keyword", how="left")
df_striking['KW5 Vol'] = df_striking['Volume']
df_striking.drop(['Keyword', 'Volume'], axis=1, inplace=True)

Limpie mucho más sus datos

Los datos necesitan una limpieza agregada para llenar los valores vacíos (NaN) como cadenas vacías. Esto optimización la legibilidad del resultado final al hacer celdas en blanco, en vez de celdas con valores de cadena NaN.

Entonces transformamos las columnas a minúsculas a fin de que coincidan en el momento en que verificamos si una keyword de destino se expone en una columna cierta.

# replace nan values with empty strings
df_striking = df_striking.fillna("")
# drop the title, h1 and category description to lower case so kws perro be matched to them
df_striking["Title"] = df_striking["Title"].str.lower()
df_striking["H1"] = df_striking["H1"].str.lower()
df_striking["Copy"] = df_striking["Copy"].str.lower()

Verifica si la keyword hace aparición en el título / H1 / Copiar y devuelve verdadero o falso

Este código corrobora si la keyword de destino está en el título de la página / H1 o en la copia.

Señalará verdadero o falso, en dependencia de si se halló una keyword en los elementos de la página.

df_striking["KW1 in Title"] = df_striking.apply(lambda row: row["KW1"] in row["Title"], axis=1)
df_striking["KW1 in H1"] = df_striking.apply(lambda row: row["KW1"] in row["H1"], axis=1)
df_striking["KW1 in Copy"] = df_striking.apply(lambda row: row["KW1"] in row["Copy"], axis=1)
df_striking["KW2 in Title"] = df_striking.apply(lambda row: row["KW2"] in row["Title"], axis=1)
df_striking["KW2 in H1"] = df_striking.apply(lambda row: row["KW2"] in row["H1"], axis=1)
df_striking["KW2 in Copy"] = df_striking.apply(lambda row: row["KW2"] in row["Copy"], axis=1)
df_striking["KW3 in Title"] = df_striking.apply(lambda row: row["KW3"] in row["Title"], axis=1)
df_striking["KW3 in H1"] = df_striking.apply(lambda row: row["KW3"] in row["H1"], axis=1)
df_striking["KW3 in Copy"] = df_striking.apply(lambda row: row["KW3"] in row["Copy"], axis=1)
df_striking["KW4 in Title"] = df_striking.apply(lambda row: row["KW4"] in row["Title"], axis=1)
df_striking["KW4 in H1"] = df_striking.apply(lambda row: row["KW4"] in row["H1"], axis=1)
df_striking["KW4 in Copy"] = df_striking.apply(lambda row: row["KW4"] in row["Copy"], axis=1)
df_striking["KW5 in Title"] = df_striking.apply(lambda row: row["KW5"] in row["Title"], axis=1)
df_striking["KW5 in H1"] = df_striking.apply(lambda row: row["KW5"] in row["H1"], axis=1)
df_striking["KW5 in Copy"] = df_striking.apply(lambda row: row["KW5"] in row["Copy"], axis=1)

Remover valores verdadero/falso si no hay keywords

Esto borrará los valores verdadero/falso en el momento en que no haya keywords lindantes.

# delete true / false values if there is no keyword
df_striking.loc[df_striking["KW1"] == "", ["KW1 in Title", "KW1 in H1", "KW1 in Copy"]] = ""
df_striking.loc[df_striking["KW2"] == "", ["KW2 in Title", "KW2 in H1", "KW2 in Copy"]] = ""
df_striking.loc[df_striking["KW3"] == "", ["KW3 in Title", "KW3 in H1", "KW3 in Copy"]] = ""
df_striking.loc[df_striking["KW4"] == "", ["KW4 in Title", "KW4 in H1", "KW4 in Copy"]] = ""
df_striking.loc[df_striking["KW5"] == "", ["KW5 in Title", "KW5 in H1", "KW5 in Copy"]] = ""
df_striking.head()

Remover líneas si todos y cada uno de los valores == Verdadero

Esta alternativa configurable es verdaderamente útil para achicar la proporción de tiempo de control de calidad requerido para el entregable al remover la keyword de ocasión del entregable si está en las tres columnas.

def true_dropper(col1, col2, col3):
    drop = df_striking.drop(
        df_striking[
            (df_striking[col1] == True)
            & (df_striking[col2] == True)
            & (df_striking[col3] == True)
        ].index
    )
    return drop

if drop_all_true == True:
    df_striking = true_dropper("KW1 in Title", "KW1 in H1", "KW1 in Copy")
    df_striking = true_dropper("KW2 in Title", "KW2 in H1", "KW2 in Copy")
    df_striking = true_dropper("KW3 in Title", "KW3 in H1", "KW3 in Copy")
    df_striking = true_dropper("KW4 in Title", "KW4 in H1", "KW4 in Copy")
    df_striking = true_dropper("KW5 in Title", "KW5 in H1", "KW5 in Copy")

Descarga el fichero CSV

El último paso es bajar el fichero CSV y también comenzar el desarrollo de optimización.

df_striking.to_csv('Palabras clave in Striking Distance.csv', index=False)
archivos.download("Palabras clave in Striking Distance.csv")

Conclusión

Si busca ganancias veloces para cualquier página web, el increíble informe de distancia es una manera verdaderamente simple de hallarlas.

No se deje mentir por la proporción de pasos. No es tan complejo como semeja. Es tan fácil como escanear y exportar keywords en el papel de Google plus Colab proveída o utilizar la app Streamlit.

¡Los desenlaces terminantemente merecen la pena!

Mucho más elementos:


Imagen mostrada: aurielaki / Shutterstock

Fuente: searchenginejournal

Hashtags: #Utilizando #Python #Streamlit #para #conseguir #pasmantes #ocasiones #expresiones #clave #recónditas