Как удалить старый slug в WordPress
Добрый день! Уважаемые читатели блога. Я продолжаю цикл статей, где я стараюсь делиться опытом по оптимизации работы блога, скорости и внедрение разных улучшений призванных привнести улучшения. В сегодняшней ситуации я разберу, что такое slug, как он работает, для чего он нужен, можно ли его отключить и главное будет ли от этого положительный эффект. Так же рассмотрим, что еще в базе данных WordPress можно почистить и ускорить.
Что такое slug
В WordPress "slug" — это часть URL, которая идентифицирует конкретный пост, страницу или категорию. Slug обычно состоит из латинских букв, цифр и дефисов, и он используется для создания удобочитаемых и SEO-дружественных адресов страниц. Если показать нагляднее, то в WordPress он задается вот тут.
Если вы поменяете данный кусочек URL на новый, то WordPress при обращении на старое значение slug, будет вас перекидывать на новое значение, делая такой редирект. Можете посмотреть как это работает, перейдя по адресу:
/kak-nastroit-kms-dlya-aktivatsii-windows-10-2014-r2/ в итоге вас перекинет на /kak-nastroit-kms-server-v-active-directory/
На сколько полезны или вредны старые slug
С точки зрения SEO, наверное, хорошо. что если на вас указали ссылку с неточностью, то ваш движок сайта попытается все же отправить пользователя на нужны адрес, а может и отправить на совершенно левый. Из-за этого вес страниц может распределяться неправильно и появляться дубли страниц.
Со временем количество неактуальных slug может быть существенным, что приведет к замусориванию базы данных, и как следствие снижение скорости работы сайта. Как по мне лучше человеку отдать код 404 если страницы нет, а не перекидывать его неизвестно куда.
Напомню ранее мы уже производили тюнинг WordPress, чтобы он отсекал несуществующие суффиксы, но вот те которые могли остаться из-за slug в базе данных нужно дочистить
Как очистить базу данных от старых ссылок через phpMyAdmin
Думаю это самый правильный метод, так как мне не придется устанавливать сторонние плагины. Иду в веб-панель на своем хостинге. Находим там базу данных "wp_postmeta" и делаем к ней SQL запрос.
SELECT * FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug'
На выходе вы получите свой список.
Обратите внимание, что здесь очень много старых обрезанных адресов. С ними я боролся уже в статье "Страница с переадресацией в Search Console"
тут я вам советую все изучить и посмотреть. что из этих старых slug вам нужно, а что уже неактуально. после чего произведите чистку. Это можно сделать точечно выбрав нужные
Подтверждаем удаление записей.
Если хотите удалить все одним запросом, то выполните такую команду;
DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug'
Если нужно удалить определенный slug, можно воспользоваться такой конструкцией:
DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug' AND `meta_value` = 'текст slug"
Как очистить старые slug с помощью плагинов
Существует плагин "Slugs Manager: Delete Old Permalinks from WordPress Database", который может проанализировать ваш сайт на предмет старых slug, после чего удалить. Данный метод подходит если у вас нет доступа к phpMyAdmin.
Ссылка на плагин - https://ru.wordpress.org/plugins/remove-old-slugspermalinks/
Установка и активация плагина тривиальная.
Далее в разделе "Инструменты" находим менеджер ярлыков. Тут вы сразу увидите список всех устаревших slug и куда они ведут.
Если хотите, то можно настроить поиск старых slug по расписанию, у плагина есть такой функционал.
Как полностью отключить функцию wp_old_slug
Чтобы полностью отключить сохранение старых slug, вы можете воспользоваться вот такой функцией в файле
Disable "old slug" redirection remove_action( 'template_redirect', 'wp_old_slug_redirect' );
Я это прописываю в файле profunctions.php, так как для этого использую специальный плагин. Для включения удаляем строку указанную выше.
Как еще улучшить работу сайта WordPress
Проведите анализ других баз данных. например у меня есть плагин Hide My WP, то там есть таблица hmwp_ip_countries. У меня в ней за годы использования записалось больше миллиона записей. Из содержимого там мало что интересного.
Можно сделать SQL запрос, и удалить например все. что старее 2025 года. Посмотреть текущие записи можно запросом.
SELECT *
FROM wp_hmwp_ip_countries
WHERE created < '2025-01-01';
Чтобы удалить эти записи выполните запрос:
DELETE FROM wp_hmwp_ip_countries
WHERE created < '2025-05-25';
В итоге я смог улучшить скорость загрузки сайта, освободить дисковое пространство, одни плюсы.
Какой эффект оптимизации старых slug
Тут буду добавлять информацию, но предварительно вижу. что количество редиректов, которые видит Google уменьшилось.
Скорость ответа для ботов Google так же стала быстрее
Буду дальше наблюдать. На этом у меня все, с вами был Иван Сёмин. автор и создатель портала Pyatilistnik.org.