Секреты 301 редиректов: Как удалить товары на MODX без потери позиций!

301 редирект SEO Основы SEO

Как правильно удалять товары с сайта на MODX Evolution с помощью 301 редиректов

Удаление товаров с сайта — частая задача для интернет-магазинов, особенно если ассортимент меняется. Неправильное удаление может привести к потере трафика, снижению позиций в поисковых системах и появлению ошибок 404. В этой статье я расскажу, как корректно удалять товары с сайта на MODX Evolution, используя 301 редиректы, чтобы сохранить SEO-показатели и обеспечить удобство для пользователей. Также мы разберём, как решать проблемы с редиректами и как использовать curl для их проверки.

Почему важно правильно удалять товары?

Когда вы убираете товар из каталога, его страница может быть уже проиндексирована Google или Яндексом, а также содержать внешние ссылки. Простое удаление приведёт к ошибке 404, что:

  • Ухудшает пользовательский опыт (посетители видят «Страница не найдена»).
  • Снижает ссылочный вес (PageRank) для поисковиков.
  • Может привести к временному падению трафика.

Правильное удаление с использованием 301 редиректов помогает перенаправить пользователей и поисковые системы на релевантные страницы, сохраняя SEO-ценность и обеспечивая плавный переход.

Почему 301 редирект — лучший выбор?

301 редирект (постоянное перенаправление) сигнализирует поисковикам, что страница окончательно перемещена на новый адрес. Преимущества:

  • Передача SEO-веса: Google передаёт до 90–99% ссылочного веса на новую страницу.
  • Улучшение UX: Пользователи автоматически попадают на релевантную страницу.
  • Простота настройки: В MODX Evolution редиректы легко реализуются через .htaccess.

Альтернативы, такие как 302 редирект (временный) или 404/410, подходят реже, о чём мы поговорим ниже.

Шаги по удалению товаров на MODX Evolution

MODX Evolution — популярная CMS для интернет-магазинов, где товары обычно представлены как ресурсы с ЧПУ (человекопонятными URL). Вот пошаговый план удаления товаров с использованием 301 редиректов.

1. Определите целевые страницы для редиректа

Перед удалением товара решите, куда перенаправлять пользователей:

  • Похожий товар: Если товар снят с продажи, но есть аналог, перенаправляйте на его страницу. Например, /katalog/product1.html/katalog/product2.html.
  • Родительская категория: Если аналога нет, перенаправляйте на категорию. Например, /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/product.html/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html.
  • Главная страница: Используйте как последнее средство, если другие варианты не подходят, но это менее эффективно для SEO.

Составьте список пар «старый URL → новый URL». Например:

  • /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html.

2. Настройте 301 редиректы в .htaccess

В MODX Evolution редиректы обычно настраиваются в файле .htaccess, который находится в корне сайта. Добавляйте правила редиректа до основного правила ЧПУ MODX, чтобы они обрабатывались в первую очередь.

Пример: Удаляем несколько товаров из категории растительного молока и перенаправляем их на страницу категории.

# Редиректы для удалённых товаров
RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/kopiya-moloko-parmalat-bezlaktoznoe-1-8-11l-h-12sht.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]
RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]
RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/kopiya-rastitelnoe-moloko-5yes-soevoe-s-bananom-for-professionals-bez-sahara-tetra-pak.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

Если вы удаляете много товаров из одной категории, используйте регулярное выражение для упрощения:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/[^/]+\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

Это правило перенаправит все .html страницы в указанной категории на страницу категории.

Полный пример .htaccess:

AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /

# Защита от внутренних соединений Apache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Редирект для всех удалённых товаров в категории растительного молока
RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/[^/]+\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

# Исключения для директорий и файлов
RewriteRule ^(manager|assets|js|css|images|img)/.*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]

# ЧПУ для MODX
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

3. Удалите или скройте товары в MODX

  1. Зайдите в админ-панель MODX («Ресурсы»).
  2. Найдите товары по их URL (алиасу) или ID.
  3. Варианты действий:
    • Удаление: Полностью удалите ресурс, если уверены, что он не понадобится.
    • Скрытие: Снимите галочку «Опубликовано» (published=0), чтобы страница не отображалась, но оставалась в базе.
  4. Если используете плагин каталога (например, Shopkeeper), удалите товары через его интерфейс.
  5. Очистите кэш MODX: «Управление» → «Очистить кэш».

4. Проверьте редиректы с помощью curl

После настройки редиректов важно проверить, что они работают корректно. Один из лучших инструментов для этого — curl, утилита командной строки, которая позволяет отправлять HTTP-запросы и анализировать ответы сервера. Вот как использовать curl для проверки 301 редиректов:

Установка curl

  • Linux/Mac: Обычно curl уже установлен. Проверьте командой curl --version.
  • Windows: Установите curl через пакетный менеджер (например, Chocolatey) или используйте терминал PowerShell, где curl является псевдонимом для Invoke-WebRequest. Для точных результатов установите полноценный curl из официального сайта.

Проверка редиректа

Используйте флаг -I (или --head), чтобы получить только заголовки ответа сервера:

curl -I https://example.com/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html

Ожидаемый результат:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html
Server: Apache
Date: Sun, 18 May 2025 12:07:00 GMT
  • HTTP/1.1 301 Moved Permanently: Указывает, что редирект сработал.
  • Location: Показывает целевой URL, на который перенаправляется запрос.

Интерпретация результатов

  • 200 OK: Страница всё ещё существует (возможно, товар не удалён в MODX или редирект не сработал).
  • 404 Not Found: Страница удалена, но редирект не настроен.
  • 301 Moved Permanently: Редирект работает, проверьте Location, чтобы убедиться, что он ведёт на нужную страницу.
  • Chain of redirects: Если видите несколько 301 подряд, это указывает на цепочку редиректов, которую нужно устранить.

Дополнительные параметры curl

  • -L: Следовать за редиректами, чтобы увидеть конечную страницу:
    curl -IL https://example.com/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html
    

    Это покажет все шаги редиректа.

  • -v: Включить подробный вывод для диагностики:
    curl -Iv https://example.com/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html
    

Проверка в браузере

Для дополнительной уверенности откройте URL в режиме инкогнито, чтобы избежать кэша браузера. Если используете Cloudflare, очистите кэш («Caching» → «Purge Everything») перед проверкой.

5. Решение проблем с редиректами

Иногда редиректы не срабатывают. Например, при настройке редиректа для /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html правило в .htaccess не работало:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

Диагностика с помощью curl:
Мы использовали:

curl -I https://example.com/katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html

Если ответ возвращал 200 или 404, это указывало, что редирект не срабатывает.

Возможные причины:

  • Опечатка в URL: Алиас в MODX или запросе может отличаться (например, лишний дефис или кодировка символов). Проверьте точный алиас в админ-панели MODX.
  • Кэширование: Cloudflare, MODX или браузер могут кэшировать старый ответ (например, 404 или 200).
  • Конфликт правил: Другие правила в .htaccess или настройки хостинга могут перехватывать запрос.
  • Страница всё ещё существует: Если ресурс не удалён или опубликован в MODX, он обрабатывается CMS, а не .htaccess.

Решение: Мы заменили проблемное правило на регулярное выражение:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe.*\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

Это правило игнорирует часть URL после mindalnoe и перенаправляет любой .html файл, начинающийся с rastitelnoe-moloko-5yes-mindalnoe. После очистки кэша MODX и Cloudflare редирект заработал.

Рекомендации при проблемах:

  • Используйте curl -I для проверки статуса ответа и точного Location.
  • Очистите кэш браузера, MODX и Cloudflare.
  • Убедитесь, что проблемный ресурс удалён или не опубликован (published=0) в MODX.
  • Проверьте логи сервера (/var/log/apache2/error.log) на ошибки.
  • Если редиректы для многих товаров не срабатывают, используйте общее правило:
    RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/[^/]+\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]
    

Альтернативы 301 редиректу

В некоторых случаях 301 редирект может быть не лучшим решением:

  • 404 (Страница не найдена): Используйте, если нет релевантной страницы для перенаправления. MODX автоматически возвращает 404 для удалённых ресурсов, если настроена страница ошибки.
  • 410 (Удалено навсегда): Подходит для страниц, которые никогда не вернутся. Пример в .htaccess:
    RewriteRule ^katalog/bakaleya/old-product.html$ - [R=410,L]
    
  • Динамические редиректы через плагин: Плагин вроде Redirector позволяет управлять редиректами через админ-панель, что удобно для больших каталогов.

Когда использовать 404/410? Если товар не имеет аналогов и перенаправление на категорию нерелевантно, 410 лучше для SEO, так как явно говорит поисковикам, что страница удалена.

SEO-рекомендации

Чтобы минимизировать влияние удаления товаров на SEO:

  1. Обновите sitemap.xml: Исключите удалённые страницы и добавьте целевые (например, категории).
  2. Уведомите поисковики:
    • В Google Search Console используйте «Проверка URL» для запроса переиндексации старых URL.
    • В Яндекс.Вебмастере аналогично обновите индекс.
  3. Проверьте битые ссылки: Используйте Screaming Frog или Ahrefs, чтобы найти внешние ссылки на удалённые товары и обновить их.
  4. Мониторьте логи сервера: Ищите 404 ошибки, чтобы выявить пропущенные редиректы.

Пример из практики

На сайте интернет-магазина на MODX Evolution потребовалось удалить несколько товаров из категории растительного молока, например:

  • /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html
  • /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/kopiya-moloko-parmalat-bezlaktoznoe-1-8-11l-h-12sht.html

Все товары перенаправлялись на страницу категории /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html. Изначально одно из правил для миндального молока не срабатывало:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe-for-professionals-bez-sahara-tetra-pak.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

С помощью curl -I мы выяснили, что сервер возвращал 404 или 200, а не 301. Проблема была решена заменой на регулярное выражение:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/rastitelnoe-moloko-5yes-mindalnoe.*\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

В итоге использовали общее правило для всех товаров в категории:

RewriteRule ^katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko/[^/]+\.html$ /katalog/bakaleya/molochnaya-produkciya/rastitelnoe-moloko.html [R=301,L]

После настройки:

  1. Товары были удалены в админ-панели MODX.
  2. Кэш сайта и Cloudflare очищены.
  3. Редиректы протестированы через curl и браузер.
  4. Google Search Console уведомлена о новых редиректах.

Результат: трафик сохранился, пользователи попадали на страницу категории, а поисковики обновили индекс.

Заключение

Удаление товаров с сайта на MODX Evolution требует продуманного подхода, чтобы не потерять SEO-трафик и не ухудшить пользовательский опыт. 301 редиректы — наиболее эффективный способ перенаправить пользователей и поисковики на релевантные страницы. Используйте curl для проверки редиректов, а при проблемах — регулярные выражения и очистку кэша. Настраивайте редиректы через .htaccess, удаляйте товары в MODX, тестируйте изменения и уведомляйте поисковые системы. Следуя этим шагам, вы сохраните позиции сайта и обеспечите удобство для посетителей.

Есть вопросы или нужен пример для вашего сайта? Напишите в комментариях, и я помогу настроить редиректы или разобраться с MODX!

Блог [SEOjedi]
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.