Шаг 080. Создаем единый SEO action plan

sqlГлава 6. Создаем новые таблицы из имеющихся

Что делаем

Создаем единый SEO action plan

Зачем SEO-специалисту

Объединяем несколько витрин в один план действий, чтобы SEO-анализ завершался списком задач.

Код. Вставьте 1 в 1

DROP TABLE IF EXISTS seo_action_plan;

CREATE TABLE seo_action_plan AS
SELECT page_id,
       url,
       'CTR' AS problem_group,
       recommended_action,
       'high' AS priority
FROM ctr_opportunities
UNION ALL
SELECT page_id,
       url,
       'Noindex with demand' AS problem_group,
       'Проверить необходимость noindex' AS recommended_action,
       'critical' AS priority
FROM noindex_with_demand
UNION ALL
SELECT page_id,
       url,
       'Backlink risk' AS problem_group,
       'Восстановить URL или настроить редирект' AS recommended_action,
       'critical' AS priority
FROM backlink_risks
UNION ALL
SELECT page_id,
       url,
       'Internal links' AS problem_group,
       recommended_action,
       'medium' AS priority
FROM internal_link_targets
UNION ALL
SELECT page_id,
       url,
       'Content refresh' AS problem_group,
       recommended_action,
       'medium' AS priority
FROM content_refresh_candidates;

Построчный разбор: что делает, для чего и как работает

Строка 1: DROP TABLE IF EXISTS seo_action_plan; — Удаляет старую учебную таблицу с таким именем, если она уже была создана раньше.
Строка 2: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 3: CREATE TABLE seo_action_plan AS — Создает новую таблицу из результата SELECT-запроса.
Строка 4: SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 5: url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 6: 'CTR' AS problem_group, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 7: recommended_action, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 8: 'high' AS priority — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 9: FROM ctr_opportunities — Указывает основную таблицу или источник данных для запроса.
Строка 10: UNION ALL — Добавляет строки второго SELECT к строкам первого SELECT без удаления дублей.
Строка 11: SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 12: url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 13: 'Noindex with demand' AS problem_group, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 14: 'Проверить необходимость noindex' AS recommended_action, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 15: 'critical' AS priority — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 16: FROM noindex_with_demand — Указывает основную таблицу или источник данных для запроса.
Строка 17: UNION ALL — Добавляет строки второго SELECT к строкам первого SELECT без удаления дублей.
Строка 18: SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 19: url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 20: 'Backlink risk' AS problem_group, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 21: 'Восстановить URL или настроить редирект' AS recommended_action, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 22: 'critical' AS priority — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 23: FROM backlink_risks — Указывает основную таблицу или источник данных для запроса.
Строка 24: UNION ALL — Добавляет строки второго SELECT к строкам первого SELECT без удаления дублей.
Строка 25: SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 26: url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 27: 'Internal links' AS problem_group, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 28: recommended_action, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 29: 'medium' AS priority — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 30: FROM internal_link_targets — Указывает основную таблицу или источник данных для запроса.
Строка 31: UNION ALL — Добавляет строки второго SELECT к строкам первого SELECT без удаления дублей.
Строка 32: SELECT page_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 33: url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 34: 'Content refresh' AS problem_group, — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 35: recommended_action, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 36: 'medium' AS priority — Это текстовое значение в INSERT или рассчитанная подпись для отчета.
Строка 37: FROM content_refresh_candidates; — Указывает основную таблицу или источник данных для запроса.

Что должно получиться

Появится таблица seo_action_plan с объединенным списком действий.

Если появилась ошибка

Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.