Використання Python + Streamlit для пошуку ключових слів

Дізнайтеся, як використовувати сценарій Python + програму Streamlit, щоб визначати ключові слова на великі відстані – знання кодування не потрібні!

Python — чудовий інструмент для автоматизації повторюваних завдань, а також для отримання додаткового уявлення про дані.

У цій статті ви дізнаєтеся, як створити інструмент, щоб перевірити, які ключові слова близькі до рейтингу на позиціях від першої до третьої, і порадите, чи є можливість природного використання цих ключових слів на сторінці.

Він ідеально підходить як для початківців Python, так і для професіоналів і є чудовим вступом до використання Python для SEO .

Якщо ви просто хочете застрягти, для коду доступна зручна програма Streamlit . Це просто у використанні і не вимагає досвіду кодування.

Є також аркуш спільної роботи Google , якщо ви хочете покопатися з кодом. Якщо ви можете сканувати веб-сайт, ви можете використовувати цей скрипт!

Ось приклад того, що ми сьогодні будемо робити:

Знімок екрана з Microsoft Excel, жовтень 2021 рокуАркуш Excel, що документує ключові слова на сторінці, створені за допомогою Python

Ці ключові слова містяться в заголовку сторінки та H1, але не в копії. Природне додавання цих ключових слів до наявної копії було б простим способом підвищити релевантність цих ключових слів.

Беручи підказку від пошукових систем і, природно, включаючи будь-які відсутні ключові слова, за якими сайт уже ранжується, ми підвищуємо впевненість пошукових систем у рейтингу цих ключових слів вище в SERP.

Цей звіт можна створити вручну, але це займає досить багато часу.

Отже, ми збираємося автоматизувати процес за допомогою скрипту SEO Python.

Попередній перегляд результату

Ось зразок того, як виглядатиме кінцевий результат після запуску звіту:

Знімок екрана з Microsoft Excel, жовтень 2021 рокуАркуш Excel із зображенням та прикладом ключових слів, які можна оптимізувати за допомогою звіту про відстань удару

Остаточний результат використовує п’ять найкращих можливостей за обсягом пошуку для кожної сторінки та акуратно розміщує кожну горизонтально разом із приблизним обсягом пошуку.

Він також показує загальний обсяг пошуку всіх ключових слів на сторінці в межах видимої відстані, а також загальну кількість ключових слів у межах досяжності.

П’ять найпопулярніших ключових слів за обсягом пошуку потім перевіряються, щоб побачити, чи вони знайдені в заголовку, H1 або в копії, а потім позначаються прапорцем TRUE чи FALSE.

Це чудово для швидких виграшів! Просто додайте відсутнє ключове слово природним чином у копію сторінки, заголовок або H1.

Починаємо

Налаштування досить просте. Нам просто потрібен сканування сайту (в ідеалі зі спеціальним витягом для копії, яку ви хочете перевірити) і експортований файл усіх ключових слів, за якими сайт ранжується.

Ця публікація проведе вас через налаштування, код і буде посилання на аркуш Google Colaboratory, якщо ви просто хочете застрягти, не кодуючи його самостійно.

Для початку вам знадобиться:

  • Сканування сайту.
  • Експорт усіх ключових слів, за якими ранжується сайт.
  • Цей аркуш Google Colab або цей додаток Streamlit для змішування даних сканування та ключових слів

Ми назвали це звітом про відстань, оскільки він позначає ключові слова, які легко перебувають у межах видимої відстані.

(Ми визначили відстань удару як ключові слова, які займають позиції з 4 по 20, але зробили цю опцію налаштовуваною на випадок, якщо ви хочете визначити власні параметри.)

Звіт про оптимізацію пошукових систем: початок роботи

1. Скануйте цільовий веб-сайт

  • Встановіть спеціальний екстрактор для копії сторінки (необов’язково, але рекомендується).
  • Відфільтруйте сторінки розбиття на сторінки зі сканування.

2. Експортуйте всі ключові слова рейтингів сайту для використання вашого улюбленого постачальника

  • Відфільтруйте ключові слова, які ініціюються як посилання на сайт.
  • Видаліть ключові слова, які ініціюють як зображення.
  • Фільтруйте фірмові ключові слова.
  • Використовуйте обидва експорти, щоб створити відповідний звіт про відстань від ключового слова та сканувати дані за допомогою Python.

Сканування сайту

Я вирішив використовувати Screaming Frog, щоб отримати початкове сканування. Будь-який сканер працюватиме, якщо експорт CSV використовує ті самі назви стовпців або їх перейменовано відповідно до відповідності.

Сценарій очікує знайти такі стовпці в експорті CSV для сканування:

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

Налаштування сканування

Перше, що потрібно зробити, це перейти до основних налаштувань конфігурації в Screaming Frog:

Configuration > Spider > Crawl

Основні налаштування для використання:

Сканування внутрішніх посилань , Canonicals та налаштування розбиття на сторінки (Rel Next/Prev) .

(Сценарій працюватиме з усім іншим вибраним, але сканування займе більше часу!)

Скріншот із Screaming Frog, жовтень 2021 рокуРекомендовані параметри повзання кричащих жаб

Далі він переходить на вкладку Вилучення .

Configuration > Spider > Extraction

Скріншот із Screaming Frog, жовтень 2021 рокуРекомендовані налаштування сканування для вилучення кричащих жаб

Як мінімум, нам потрібно витягти заголовок сторінки, H1, і обчислити, чи сторінку можна індексувати, як показано нижче.

Індексація корисна, оскільки це простий спосіб для сценарію визначити, які URL-адреси потрібно перемістити за один раз, залишаючи лише ключові слова, які мають право рейтингу в SERP.

Якщо сценарій не може знайти стовпець індексації, він все одно працюватиме як звичайно, але не буде розрізняти сторінки, які можуть і не ранжувати.

Налаштування спеціального екстрактора для копіювання сторінки

Щоб перевірити, чи знайдено ключове слово в копії сторінки, нам потрібно встановити спеціальний екстрактор у Screaming Frog .

Configuration > Custom > Extraction

Назвіть екстрактор «Копія», як показано нижче.

Скріншот із Screaming Frog, жовтень 2021 рокуСпеціальне вилучення Screaming Frog Показ параметрів за замовчуванням для вилучення копії сторінки

Важливо: сценарій очікує, що екстрактор буде називатися «Копіювати», як зазначено вище, тому перевірте ще раз!

Нарешті, переконайтеся, що вибрано « Витягти текст », щоб експортувати копію як текст, а не HTML.

Є багато посібників із використання користувальницьких екстракторів в Інтернеті, якщо вам потрібна допомога з його налаштуванням, тому я не буду повторювати це знову тут.

Після встановлення вилучення настав час сканувати сайт та експортувати файл HTML у форматі CSV.

Експорт файлу CSV

Експортувати файл CSV так само просто, як змінити спадне меню, яке відображається під Внутрішнє, на HTML і натиснути кнопку Експорт.

Internal > HTML > Export

Скріншот із Screaming Frog, жовтень 2021 рокуScreaming Frog – експорт внутрішніх налаштувань HTML

Після натискання « Експортувати » важливо переконатися, що для типу встановлено формат CSV.

Екран експорту має виглядати так:

Скріншот із Screaming Frog, жовтень 2021 рокуНалаштування внутрішнього експорту HTML CSV Screaming Frog

Порада 1. Фільтрування сторінок розбиття на сторінки

Я рекомендую відфільтрувати сторінки з розбивкою на сторінки зі свого сканування, вибравши « Поважати наступне/попереднє » в розділі « Додаткові налаштування» (або просто видаливши їх із файлу CSV, якщо хочете).

Скріншот із Screaming Frog, жовтень 2021 рокуНалаштування Screaming Frog для поваги Rel / Prev

Порада 2. Збереження налаштувань сканування

Після того, як ви налаштували сканування, варто просто зберегти налаштування сканування (які також запам’ятають користувацьке вилучення).

Це заощадить багато часу, якщо ви захочете знову використовувати сценарій у майбутньому.

File > Configuration > Save As

Скріншот із Screaming Frog, жовтень 2021 рокуЯк зберегти файл конфігурації в Screaming frog

Експортування ключових слів

Щойно ми отримаємо файл сканування, наступним кроком буде завантаження улюбленого інструменту дослідження ключових слів та експорт усіх ключових слів, за якими ранжується сайт.

Мета тут — експортувати всі ключові слова, за якими ранжується сайт, відфільтровуючи фірмові ключові слова та будь-які, які ініціювали як посилання на сайт або зображення.

Для цього прикладу я використовую звіт про звичайні ключові слова в Ahrefs, але він так само добре працюватиме з Semrush, якщо це ваш улюблений інструмент.

У Ahrefs введіть домен, який ви хочете перевірити, у Site Explorer  і виберіть Органічні ключові слова.

Скріншот із Ahrefs.com, жовтень 2021 рокуНалаштування провідника сайту Ahrefs

Site Explorer > Органічні ключові слова

Скріншот із Ahrefs.com, жовтень 2021 рокуAhrefs – Як налаштувати експорт звичайних ключових слів для рейтингу сайту

Це відкриє всі ключові слова, за якими ранжується сайт.

Фільтрування посилань на сайти та посилань на зображення

Наступним кроком є відфільтрування будь-яких ключових слів, які ініціюються як посилання на сайт або пакет зображень.

Причина, чому нам потрібно відфільтрувати посилання на сайт, полягає в тому, що вони не впливають на рейтинг батьківської URL-адреси. Це пов’язано з тим, що лише батьківська сторінка технічно має рейтинг за ключовим словом, а не URL-адреси посилань на сайт, які відображаються під ним.

Відфільтрування посилань на сайт гарантує, що ми оптимізуємо правильну сторінку.

Скріншот із Ahrefs.com, жовтень 2021 рокуЗнімок екрана Ahrefs, що демонструє рейтинг сторінок для ключових слів посилань на сайт

Ось як це зробити в Ahrefs.

Скріншот із Ahrefs.com, жовтень 2021 рокуЗображення, що показує, як виключити зображення та посилання на сайти з експорту ключових слів

Нарешті, я рекомендую відфільтрувати будь-які фірмові ключові слова. Ви можете зробити це, відфільтрувавши вихідні дані CSV безпосередньо або попередньо відфільтрувавши за допомогою інструменту ключових слів за вашим вибором перед експортом.

Нарешті, під час експорту переконайтеся, що вибрали повний експорт і формат UTF-8 , як показано нижче.

Скріншот із Ahrefs.com, жовтень 2021 рокуЗображення, що показує, як експортувати ключові слова у форматі UTF-8 як файл csv

За замовчуванням скрипт працює з експортом ключових слів Ahrefs (v1/v2) та Semrush. Він може працювати з будь-яким файлом CSV з ключовим словом, якщо присутні назви стовпців, які очікує сценарій.

Обробка

Наведені нижче інструкції стосуються запуску таблиці Google Colaboratory для виконання коду.

Тепер для тих, хто віддає перевагу, є простіший варіант у вигляді програми Streamlit . Просто дотримуйтесь інструкцій, щоб завантажити файл сканування та ключового слова.

Тепер, коли у нас є експортовані файли, залишилося лише завантажити їх на аркуш Google Colaboratory для обробки.

Виберіть Runtime > Run all на верхній навігаційній панелі, щоб запустити всі клітинки на аркуші.

Знімок екрана з Colab.research.google.com, жовтень 2021 рокуЗображення, що показує, як запустити сценарій Python на дивовижну дистанцію з Google Collaboratory

Сценарій запропонує вам спочатку завантажити ключове слово CSV з Ahrefs або Semrush, а потім файл для сканування.

Знімок екрана з Colab.research.google.com, жовтень 2021 рокуЗображення, що показує, як завантажити файли csv до Google Collaboratory

Це воно! Сценарій автоматично завантажить CSV-файл, який можна використовувати для оптимізації сайту.

Знімок екрана з Microsoft Excel, жовтень 2021 рокуЗображення, що показує кінцевий результат Striking Distance

Якщо ви ознайомилися з усім процесом, використовувати сценарій буде дуже просто.

Розбивка та пояснення коду

Якщо ви вивчаєте Python для SEO і цікавитесь, що код робить для створення звіту, залиштеся, щоб ознайомитися з покроковим керівництвом по коду!

Встановіть бібліотеки

Давайте встановимо панд, щоб м’яч покотився.

!pip install pandas

Імпортуйте модулі

Далі нам потрібно імпортувати необхідні модулі.

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

Встановіть змінні

Тепер настав час встановити змінні.

Сценарій розглядає будь-які ключові слова між позиціями 4 і 20 як на відстані удару.

Зміна змінних тут дозволить вам визначити свій власний діапазон, якщо потрібно. Варто поекспериментувати з налаштуваннями, щоб отримати найкращий результат для ваших потреб.

# set all variables here
min_volume = 10  # set the minimum search volume
min_position = 4  # set the minimum position  / default = 4
max_position = 20 # set 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

Завантажте файл CSV для експорту ключових слів

Наступним кроком є читання списку ключових слів із файлу CSV.

Він налаштований для прийняття звіту Ahrefs (V1 і V2), а також експорту Semrush.

Цей код зчитується з файлу CSV у Pandas DataFrame.

upload = files.upload()
upload = list(upload.keys())[0]
df_keywords = pd.read_csv(
    (upload),
    error_bad_lines=False,
    low_memory=False,
    encoding="utf8",
    dtype={
        "URL": "str",
        "Keyword": "str",
        "Volume": "str",
        "Position": int,
        "Current URL": "str",
        "Search Volume": int,
    },
)
print("Uploaded Keyword CSV File Successfully!")

Якщо все пішло за планом, ви побачите попередній перегляд DataFrame, створеного на основі експорту ключового слова CSV. 

Знімок екрана з Colab.research.google.com, жовтень 2021 рокуФрейм даних, що показує успішне завантаження файлу експорту ключового слова

Завантажте файл CSV для експорту сканування

Після імпортування ключових слів настав час завантажити файл сканування.

Цей досить простий фрагмент коду зчитується під час сканування з певною опцією обробки помилок і створює Pandas DataFrame з ім’ям df_crawl.

This fairly simple piece of code reads in the crawl with some error handling option and creates a Pandas DataFrame named df_crawl.

upload = files.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!")

Після завершення завантаження файлу CSV ви побачите попередній перегляд DataFrame.

Знімок екрана з Colab.research.google.com, жовтень 2021 рокуЗображення, що показує кадр даних файлу сканування, який успішно завантажується

Очистіть та стандартизуйте дані про ключові слова

Наступним кроком є перейменування назв стовпців, щоб забезпечити стандартизацію між найбільш поширеними типами експорту файлів.

По суті, ми переводимо ключове слово DataFrame у гарний стан і фільтруємо за допомогою обмежень, визначених змінними.

df_keywords.rename(
    columns={
        "Current position": "Position",
        "Current URL": "URL",
        "Search Volume": "Volume",
    },
    inplace=True,
)

# keep only the following columns from the keyword dataframe
cols = "URL", "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({"Volume": int})  # 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"])]

Очистіть та стандартизуйте дані сканування

Далі нам потрібно очистити та стандартизувати дані сканування.

По суті, ми використовуємо переіндексацію лише для збереження стовпців «Адреса», «Індексація», «Назва сторінки», «H1-1» і «Копія 1», а решту відкидаємо.

Ми використовуємо зручний стовпець «Індексація», щоб зберігати лише рядки, які підлягають індексації. Це призведе до видалення канонізованих URL-адрес, переспрямування тощо. Я рекомендую ввімкнути цю опцію під час сканування.

Нарешті, ми стандартизуємо назви стовпців, щоб з ними було трохи приємніше працювати.

# 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={"Address": "URL", "Title 1": "Title", "H1-1": "H1", "Copy 1": "Copy"}, inplace=True)
df_crawl.head()

Згрупуйте ключові слова

Коли ми наближаємося до кінцевого результату, необхідно згрупувати наші ключові слова разом, щоб обчислити загальну можливість для кожної сторінки.

Тут ми обчислюємо, скільки ключових слів знаходиться на відстані від кожної сторінки, а також загальний обсяг пошуку.

# groups the URLs (remove the dupes and combines stats)
# make a copy of the keywords dataframe for grouping - this ensures stats can 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 keywords in striking distance
df_keywords_group = (
    df_keywords_group.groupby("URL")
    .agg({"Volume": "sum", "KWs in Striking Dist.": "count"})
    .reset_index()
)
df_keywords_group.head()
Знімок екрана з Colab.research.google.com, жовтень 2021 рокуDataFrame, що показує, скільки ключових слів було знайдено на відстані удару

Після завершення ви побачите попередній перегляд DataFrame.

Відображення ключових слів у сусідніх рядках

Ми використовуємо згруповані дані як основу для кінцевого результату. Ми використовуємо Pandas.unstack для зміни форми DataFrame для відображення ключових слів у стилі експорту GrepWords.

Знімок екрана з Colab.research.google.com, жовтень 2021 рокуDataFrame, що показує тип grepwords для ключових слів, розміщених горизонтально
# create a new df, combine the merged data with the original data. display in adjacent rows ala grepwords
df_merged_all_kws = df_keywords_group.merge(
    df_keywords.groupby("URL")["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 keywords
cols = "URL", "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={
        "Volume": "Striking Dist. Vol",
        0: "KW1",
        1: "KW2",
        2: "KW3",
        3: "KW4",
        4: "KW5",
    }
)

# 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="URL", how="inner")

Установіть остаточний порядок стовпців та вставте стовпці-заповнювачі

Нарешті, ми встановлюємо остаточний порядок стовпців і об’єднуємо вихідні дані ключового слова.

Є багато стовпців для сортування та створення!

# set 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)

Об’єднати дані ключового слова для кожного стовпця

Цей код об’єднує дані обсягу ключового слова назад у DataFrame. Це більш-менш еквівалент функції VLOOKUP 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)

Ще трохи очистіть дані

Дані потребують додаткового очищення, щоб заповнити порожні значення (NaNs) у вигляді порожніх рядків. Це покращує читабельність кінцевого результату, створюючи порожні клітинки замість клітинок, заповнених значеннями рядка NaN.

Далі ми перетворюємо стовпці в нижній регістр, щоб вони збігалися під час перевірки, чи є цільове ключове слово в певному стовпці.

# replace nan values with empty strings
df_striking = df_striking.fillna("")
# drop the title, h1 and category description to lower case so kws can 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()

Перевірте, чи з’являється ключове слово в заголовку/H1/Copy та поверніть True чи False

Цей код перевіряє, чи знайдено цільове ключове слово в заголовку сторінки/H1 або в копії.

Залежно від того, чи було знайдено ключове слово в елементах на сторінці, він буде позначено прапорцем true чи false.

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)

Видаліть значення True/False, якщо немає ключового слова

Це видалить значення true/false, якщо поруч немає ключового слова.

# 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()

Скиньте рядки, якщо всі значення == True

Ця опція, що налаштовується, дійсно корисна для скорочення часу QA, необхідного для остаточного результату, шляхом видалення ключового слова «можливість» з кінцевого результату, якщо воно знайдено в усіх трьох стовпцях.

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")

Завантажте файл CSV

Останній крок – завантажити файл CSV і почати процес оптимізації.

df_striking.to_csv('Keywords in Striking Distance.csv', index=False)
files.download("Keywords in Striking Distance.csv")

Висновок

Якщо ви шукаєте швидкі виграші для будь-якого веб-сайту, звіт про відстань до удару – це дійсно простий спосіб їх знайти.

Не дозволяйте кількості кроків обдурити вас. Це не так складно, як здається. Це так само просто, як завантажити сканування та експорт ключових слів у доданий аркуш Google Colab або за допомогою програми Streamlit.

Переклад статті здійснило Маркетингове агенство “sti1ist” оригінал статті Searchenginejournal

Cлідкувати за sti1ist: