Директива Clean-param для Яндекса: как правильно использовать с примерами

Clean-param – это директива, описывающая в файле Robots.txt динамические параметры страниц, которые отдают одинаковое их содержимое при разных УРЛ-адресах. Данная директива используется только для роботов Яндекса.

Динамическими параметрами могут выступать:

  1. Идентификаторы пользователей.
  2. Идентификаторы сессий.
  3. Индивидуальные префиксы, меняющие URL, но сохраняющие прежнее содержимое.
  4. UTM-метки и многое другое.

Из-за дублей основная страница не сможет высоко ранжироваться в поисковой выдаче, но благодаря robots.txt можно исключить все GET-параметры или UTM-метки, используя указание Clean-param. Поисковики перестанут индексировать дублирующийся контент по множеству раз, а обход сайта станет более эффективным, снизится нагрузка на сервер, увеличится краулинговый бюджет.

Пример использования Clean-param в robots.txt

Допустим, на вашем сайте есть 3 страницы с одинаковым содержанием:

  1. http://site.ru/folder/page.php?get=1&r_id=985
  2. http://site.ru/folder/page.php?get=2&r_id=985
  3. http://site.ru/folder/page.php?get=3&r_id=985

Все эти страницы одинаковые по содержимому, но они имеют в своем URL разный параметр get=, который в данном случае применяется для отслеживания сайта, с которого пользователь сделал запрос и перешел на страницу. Получается, что он меняет URL, но содержимое остается таким же, поэтому все три URL-адреса ведут на ту же страницу http://site.ru/folder/page.php?r_id=985.

Во избежание обхода роботов всех трех страниц, в robots.txt нужно прописать Clean-param:

User-agent: *
Disallow:
Clean-param: get /folder/page.php

Данные инструкции указывают всем роботам поисковых систем объединить все URL страницы к единой ссылке:

http://site.ru/folder/page.php?r_id=985

Если на веб-ресурсе есть доступ к данной странице, то робот проиндексирует именно ее.

Синтаксис директивы Clean-param

Clean-param: p0[&p1&p2&..&pn] [path]

В поле [&p1&p2&..&pn] идет перечисление параметров через символ &, которые роботу не стоит индексировать. В поле [path] прописывается префикс пути страниц, для которых используется директива.

На заметку. Правило Clean-param межсекционное и нет разницы, где именно его прописывать в robots.txt. Если вы укажите несколько правил, поисковый бот учтет каждую из них.

Допускается в префиксе содержание регулярного выражения в формате, схожем с файлом robots. Но у него есть некоторые ограничения. Допускается написание лишь таких символов: A-Za-z0-9.-/*_.

Учтите, что символ “*” интерпретируется аналогично, как и в файле Robots: в конце префикса дописывают *.

Пример:

Clean-param: s /forum/showthread.php

Указание выше сообщает, что параметр s ничего не значит для УРЛ-адресов, начинающихся с /forum/showthread.php. Если не указать второе поле, а только s, директива используется для всех страниц веб-ресурса.

Отмечу, что регистр учитывается. Также есть лимит на объем директивы: 500 символов – максимально допустимая длина.

Примеры:

Clean-param: abc /forum.showthread.php
Clean-param: sid&sort /forum/*.php
Clean-param: someTrash&otherTrash

Дополнительные примеры использования Clean-param

Для адресов типа:

  • www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
  • www.site1.ru/forum/showthread.php?s=1e71c4427317a117a&t=8243

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: s /forum/showthread.php

Для адресов типа:

  • www.site2.ru/index.php?page=1&sid=2564126ebdec301c607e5df
  • www.site2.ru/index.php?page=1&sid=974017dcd170d6c4a5d76ae

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: sid /index.php

Если таких параметров несколько:

  • www.site1.ru/forum_old/showthread.php?s=681498605&t=8243&ref=1311
  • www.site1.ru/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: s&ref /forum*/showthread.php

Если параметр используется в нескольких скриптах:

  • www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
  • www.site1.ru/forum/index.php?s=1e71c4427317a117a&t=8243

Robots.txt будет содержать:

User-agent: *
Disallow:
Clean-param: s /forum/index.php
Clean-param: s /forum/showthread.php

Я всегда стараюсь следить за актуальностью информации на сайте, но могу пропустить ошибки, поэтому буду благодарен, если вы на них укажете. Если вы нашли ошибку или опечатку в тексте, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Подписаться
Уведомить о
guest
14 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Артем
20.08.2021 07:18

Если прописать Clean-param: ? / будет работать? Задача закрыть все url у которых на конце идет ?……….

Андрей
Андрей
20.08.2021 13:08
Ответить на  Артем

Тоже интересует данный вопрос)))

jQuery
jQuery
24.08.2021 16:29

Вопрос
У меня на сайте на всех страницах товара — ?amp это несколько тысяч.
Какой синтаксис для массовых операций для Clean-param

Вячеслав
18.10.2021 00:47

Подскажите, пожалуйста, как мне почистить ссылки, которые сайт наспамил за годы
https://site.com/search/?tags=control%2Cscripts%2Ccommunication

Sen
Sen
12.01.2022 03:02
Ответить на  Вячеслав

Clean-param: tags /search/

Андрей
Андрей
03.02.2022 13:18

Здравствуйте! Подскажите пожалуйста, как прописать элемент get-параметров содержащих точку с запятой? (пример: ?amp&nw=1636993975000)

Dima
Dima
25.07.2022 18:43
Ответить на  Андрей

как то удалось решить проблему?

сергей
сергей
06.02.2022 12:44

Подскажите как прописать Clean-param к таким ссылка

param_f_spisok_1[1]=1807

Dima
Dima
25.07.2022 18:44
Ответить на  сергей

Тот же вопрос… удалось решить???

nomelodic
nomelodic
25.11.2022 11:36
Ответить на  Dima

«Такие ссылки действительно хранятся в базе робота в закодированном виде: скобки [ и ] кодируются в виде %5B и %5D соответственно. Поэтому в директиве Clean-param их нужно указывать в таком же виде.»

Если что, это ответ от саппорта Яндекса

арс
арс
26.07.2022 14:46

подскажите правильно я это прописал
User-agent: *

Allow: /
Disallow: /__404$
Disallow: /ustanovka-konditsionerov$
Disallow: /sitesearch.html$
Disallow: /sitesearch
Disallow: /html/
Disallow: /widgets/
User-agent: Yandex
Clean-param: etext
Sitemap: https://khv-dom.ru/sitemap.xml

Последний раз редактировалось 3 месяцев назад Александр Неткела ем
Аида
Аида
10.10.2022 10:34

https://сайт/
https://сайт/?id=31

https://сайт/?id=36
https://сайт/?id=36&L=1

Подскажите как прописать Clean-param

dmiry
dmiry
04.07.2023 18:15
Ответить на  Аида

Clean-param: id

Андрей
Андрей
25.11.2023 13:58

Может кто знает как правильно прописать?
гет параметр path
https://fishtrail.by/index.php?route=product/product&path=18_83&product_id=3028
страницы с гет параметрами
https://fishtrail.by/index.php?route=product%2Fproduct&product_id=3028

Последний раз редактировалось 3 месяцев назад Александр Неткела ем

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: