wpurok.ru wordpress WPUrok

Как решить проблему неработающих ссылок в WooCommerce после изменения домена

Диагностика проблемы с неработающими ссылками в WooCommerce после смены домена

После смены домена в WordPress-магазине на WooCommerce часто возникает ситуация, когда ссылки на товары, категории или страницы корзины перестают работать, выдавая ошибку 404 или перенаправляя на старый домен. Это связано с тем, что в базе данных и настройках сайта остались старые URL, а также с тем, что постоянные ссылки (permalinks) не были корректно обновлены.

Основные симптомы:

  • Страницы товаров возвращают ошибку 404;
  • Категории товаров не открываются;
  • Ссылки на корзину или оформление заказа ведут на старый домен;
  • В админке WooCommerce видны ссылки со старым доменом.

Пошаговое решение: обновление ссылок и очистка кэша

1. Проверка настроек WordPress и WooCommerce

Перейдите в Настройки > Общие и убедитесь, что значения Адрес WordPress (URL) и Адрес сайта (URL) обновлены на новый домен.

2. Обновление постоянных ссылок

Перейдите в Настройки > Постоянные ссылки и нажмите кнопку Сохранить изменения без изменений. Это сбросит и обновит правила URL в .htaccess.

3. Массовая замена URL в базе данных

Для корректной замены всех ссылок со старого домена на новый в базе данных используйте WP-CLI или плагин Clearfy Pro с функцией Search and Replace.

Пример команды WP-CLI:

wp search-replace 'https://staryj-domain.ru' 'https://novyj-domain.ru' --skip-columns=guid --all-tables

Опция --skip-columns=guid важна, чтобы не менять ссылки в поле GUID, что может повредить RSS-ленты.

4. Очистка кэша

Если на сайте установлен кеширующий плагин (например, WP Super Cache, W3 Total Cache), необходимо выполнить полную очистку кэша.

Также, если используется серверное кэширование (например, Redis, Memcached), очистите его через панель управления или SSH.

5. Проверка .htaccess и настроек сервера

Убедитесь, что в .htaccess нет правил, жестко указывающих старый домен. Если есть, замените их или удалите.

Проверка результата после внедрения

  • Откройте в браузере страницу любого товара и убедитесь, что она открывается без ошибки 404.
  • Проверьте, что ссылки в меню категорий ведут на новый домен.
  • Перейдите на страницу корзины и оформления заказа, проверьте адрес в адресной строке.
  • В админке в списке товаров проверьте, что ссылки отображаются с новым доменом.

Частые ошибки и как их исправить

  • Ошибка: После замены URL некоторые страницы все равно ведут на старый домен.
    Причина: Кэш браузера или плагинов не очищен.
    Решение: Очистите кэш браузера, а также кэш плагинов и сервера.
  • Ошибка: При выполнении search-replace сломались ссылки RSS и GUID.
    Причина: Замена в поле GUID.
    Решение: Используйте параметр --skip-columns=guid при WP-CLI или исключите поле GUID в плагинах.
  • Ошибка: Ссылки WooCommerce ведут на старый домен, хотя WordPress настроен правильно.
    Причина: Неверные настройки в базе данных WooCommerce.
    Решение: Проверьте таблицы wp_options (опции woocommerce_cart_page_id, woocommerce_checkout_page_id) и обновите при необходимости.

Практические советы по безопасности и производительности

  • Перед массовой заменой URL обязательно сделайте резервную копию базы данных.
  • Для больших сайтов используйте WP-CLI — это быстрее и надежнее, чем плагины.
  • После смены домена настройте 301 редиректы со старого домена на новый, чтобы сохранить SEO и не потерять посетителей.
  • Если используете CDN, обновите настройки, чтобы он работал с новым доменом.
  • Проверяйте, что SSL-сертификат корректно установлен на новом домене, иначе WooCommerce и WordPress могут выдавать предупреждения безопасности.

Сравнение вариантов обновления URL

МетодПлюсыМинусыРекомендации
WP-CLI search-replaceБыстро, полно, контролируемоТребует доступа к серверу и навыковДля опытных пользователей и больших сайтов
Плагин Clearfy ProУдобный интерфейс, дополнительные функции очисткиНагрузка на сайт, не всегда безопасно для больших БДДля небольших сайтов и тех, кто не владеет терминалом
Ручная замена через phpMyAdminПрямой контроль над запросамиРиск ошибок, требует SQL-знанийТолько при полном понимании SQL и структуры БД

Пример кода для обновления URL в пользовательских мета-данных

function update_custom_meta_urls( $old_url, $new_url ) {
    global $wpdb;
    $meta_keys = [ '_custom_link', '_product_url' ]; // Пример ключей мета-данных
    foreach ( $meta_keys as $key ) {
        $wpdb->query( $wpdb->prepare(
            "UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key = %s",
            $old_url, $new_url, $key
        ));
    }
}
// Использование
update_custom_meta_urls('https://staryj-domain.ru', 'https://novyj-domain.ru');

Этот код можно разместить в functions.php темы или в отдельном плагине для однократного запуска.

Как проверить ссылки программно через WP-CLI

wp post list --post_type=product --fields=ID,post_title
# Затем для каждого ID проверить мета-поля или контент на наличие старого домена
wp post meta get 123 _custom_link
# или
wp post get 123 --field=post_content | grep 'staryj-domain.ru'
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее