Можно поступить несколькими способами — лучше сочетать исправление источника (генерации ссылок) + серверный редирект/каноникализацию, чтобы не плодить индексируемые дубликаты.
Короткий план действий
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 — подготовлю конкретный рабочий код под ваш случай.