В процессе работы с WordPress часто возникает необходимость изменить URL страницы или вовсе удалить ее, не используя сторонние плагины. Это может понадобиться для оптимизации структуры сайта, устранения устаревших страниц или исправления ошибок в ссылках. В этой статье подробно рассмотрим, как это сделать вручную, с примерами кода и рекомендациями, чтобы не повредить SEO и не вызвать ошибок на сайте.
Почему важно правильно менять или удалять URL страниц в WordPress
Некорректное удаление страниц или изменение их URL может привести к появлению "битых" ссылок, ухудшению пользовательского опыта и снижению позиций сайта в поисковых системах. Многие пытаются просто удалить страницу из админки, но при этом забывают настроить редиректы или обновить внутренние ссылки.
Поэтому правильный подход включает:
- Изменение URL через админку или программно;
- Настройку 301 редиректов для старых URL;
- Обновление ссылок на сайте;
- Очистку кэша и проверку индексации в поисковых системах.
Как изменить URL страницы в WordPress вручную
Самый простой способ изменить URL — это изменить ярлык (slug) на странице редактирования в админке. Но что делать, если нужно программно изменить URL или удалить страницу?
Изменение slug через функцию
Для изменения URL страницы программно можно использовать следующий код в файле functions.php вашей темы или в отдельном плагине:
function wpupdate_change_page_slug($old_slug, $new_slug) {
$page = get_page_by_path($old_slug);
if ($page) {
$page_id = $page->ID;
wpupdate_update_post_slug($page_id, $new_slug);
}
}
function wpupdate_update_post_slug($post_id, $new_slug) {
wp_update_post(array(
'ID' => $post_id,
'post_name' => $new_slug
));
}
// Пример вызова
wpupdate_change_page_slug('staryy-url', 'novyy-url');
Этот код находит страницу по старому ярлыку и изменяет его на новый. После выполнения нужно обновить постоянные ссылки в настройках WordPress.
Удаление страницы по URL
Если нужно удалить страницу по URL программно, можно сделать так:
function wpupdate_delete_page_by_slug($slug) {
$page = get_page_by_path($slug);
if ($page) {
wp_delete_post($page->ID, true); // true - удаление без возможности восстановления
}
}
// Пример вызова
wpupdate_delete_page_by_slug('udalit-stranitsu');
После удаления важно проверить, что ссылки на эту страницу больше не используются, и настроить редиректы при необходимости.
Настройка редиректов после изменения или удаления URL
Чтобы не потерять трафик и не получить ошибки 404, необходимо настроить 301 редиректы со старого URL на новый или на релевантную страницу.
Пример добавления редиректа в файл .htaccess
Если ваш сайт работает на Apache, добавьте в .htaccess следующие строки:
Redirect 301 /staryy-url/ https://wpupdate.ru/novyy-url/
Подставьте свои старые и новые URL. Это простой и надежный способ настроить перенаправления.
Редиректы с помощью PHP в functions.php
Можно настроить редирект программно на уровне WordPress:
function wpupdate_redirect_old_url() {
if (is_page('staryy-url')) {
wp_redirect(home_url('/novyy-url/'), 301);
exit;
}
}
add_action('template_redirect', 'wpupdate_redirect_old_url');
Этот метод полезен, если нет доступа к серверу или вы хотите управлять редиректами в коде.
Обновление внутренних ссылок и проверка работы
После изменения URL или удаления страниц убедитесь, что все внутренние ссылки на сайте обновлены. Для этого можно использовать поиск и замену в базе данных с помощью плагина Better Search Replace или аналогичных инструментов.
Также рекомендуется проверить сайт на наличие ошибок 404 с помощью инструментов Google Search Console или плагинов, например, Clearfy Pro, который помогает оптимизировать и контролировать сайт.
Советы по безопасному изменению URL страниц в WordPress
1. Всегда делайте бэкап сайта и базы данных перед внесением изменений.
2. Используйте редиректы 301 для сохранения SEO. Не оставляйте удаленные страницы без перенаправления.
3. Изменяйте URL только если это действительно необходимо, чтобы не создавать путаницу для пользователей и поисковиков.
4. После изменений обновляйте карту сайта и отправляйте ее в поисковые системы.
Следуя этим рекомендациям, вы сможете эффективно управлять URL страниц в WordPress без установки дополнительных плагинов, сохраняя при этом стабильность и SEO-показатели сайта.