Как удалить из URL параметр tpclid (например "?tpclid=faceb")?

В интерфейсе Вебмастера обнаружил множество ссылок следующего вида: <br/>
  • 30 марта 2026 г. 11:00
Ответы на вопрос 2
Можно поступить несколькими способами — лучше сочетать исправление источника (генерации ссылок) + серверный редирект/каноникализацию, чтобы не плодить индексируемые дубликаты.

Короткий план действий
1. Найти и исправить источник появления tpclid (шаблоны ссылок, соцвиджеты, UTM-генераторы и т. п.).  
2. На сервере сделать редирект с URL с tpclid на тот же URL без этого параметра (301).  
3. Добавить rel="canonical" на страницу на URL без tpclid.  
4. Обновить sitemap и внутренние ссылки, при необходимости — в Вебмастере/Google Search Console указать, что параметр не важен.

Примеры реализаций

1) Apache (.htaccess) — удалить tpclid и сохранить остальные параметры:
RewriteEngine On
# если есть tpclid в query string — убираем его, сохраняем остальные параметры
RewriteCond %{QUERY_STRING} (?:^|&)tpclid=[^&]+&?(.*)$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1 [R=301,L]

Пояснение: %1 содержит всё, что было после tpclid; если ничего не осталось, результат будет без query string.

2) Nginx — пример с извлечением остальных параметров:
# в блок server
if ($args ~* "^(.*?)(?:&?tpclid=[^&]*)(?:&(.*))?$") {
    set $args_new $1$2;
}
if ($arg_tpclid) {
    return 301 $scheme://$host$uri?$args_new;
}

Проверьте на тестовом хосте — обработка args в nginx чувствительна к кавычкам/регекспам.

3) PHP (быстрое решение на уровне приложения):
if (isset($_GET['tpclid'])) {
    $params = $_GET;
    unset($params['tpclid']);
    $query = http_build_query($params);
    $url = 'https://' . $_SERVER['HTTP_HOST'] . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    if ($query) $url .= '?' . $query;
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $url");
    exit;
}

4) JavaScript — убрать параметр в адресной строке без перезагрузки (когда редирект нежелателен):
if (location.search.includes('tpclid=')) {
  const params = new URLSearchParams(location.search);
  params.delete('tpclid');
  const newUrl = location.pathname + (params.toString() ? '?' + params.toString() : '') + location.hash;
  history.replaceState(null, '', newUrl);
}

SEO-рекомендации
- Сделайте 301-редирект — это сигнал поисковикам, что правильный URL без tpclid.  
- Добавьте rel="canonical" на страницу, указывающий на версию без tpclid.  
- Исправьте все внутренние ссылки/шаблоны, которые генерируют tpclid, — это уменьшит количество лишних редиректов и дублей.  
- Обновите sitemap.xml.  
- В Google Search Console / Яндекс.Вебмастер можно попытаться указать, что параметр не влияет на содержание (если доступно), но серверный редирект надежнее.

Если хотите — пришлите пример проблемной ссылки (полный URL) и укажите сервер (Apache/Nginx) или CMS — подготовлю конкретный рабочий код под ваш случай.
это не битрикс генерит, а внешние трекинговые системы цепляют GET-параметр при переходе на сайт. Яндекс потом видит каждый такой урл как отдельную страницу. <br/> <br/> В robots.txt добавь: <br/> <code>Clean-param: tpclid</code> <br/> <br/> Дубли постепенно уйдут из индекса.
Похожие вопросы