• 06 Апр 2025

Если в ссылках на ресурсе используются GET параметры, то поисковый робот, может их обработать нестандартно, убрав лишнее. К примеру, сайт, написанный на Next.js имеет множество prefetch ссылок, в результате чего в индексацию попадают страницы с отсутствующими параметрами в URL. Например, https://devmastery.ru/seo и https://devmastery/seo?. Это считается дублями страниц.

Дубли страниц создают серьезные проблемы для поисковых систем, поскольку они не могут определить, какая версия контента является основной и наиболее релевантной для пользователей. Когда несколько URL-адресов содержат одинаковый или очень похожий контент, поисковые роботы тратят ресурсы на их индексацию, вместо того чтобы анализировать уникальные и полезные страницы. Это приводит к размыванию "веса" страниц — ссылочная масса и релевантность распределяются между дублями, из-за чего ни одна из них не может занять высокие позиции в выдаче. 

Большинство статей в сети предлагают бороться с этим путем настройки редиректа. Через apache, nginx, или внутренний роутер ресурса. Однако, есть гораздо более эффективный и не затратный способ.

Официальный ответ Яндекса:

Чтобы запретить индексировать такие страницы, в файле в robots.txt укажите директиву:
Disallow: *?$

Флаг $ указывает на конец регулярного выражения, поэтому все ссылки, где знак вопроса не находится в самом конце успешно попадут в выдачу. Если вам необходимо их обработать тоже, то для этого есть другие инструменты, либо запретить их полную индексацию, убрав данный флаг, либо настроить rel="canonical".

В итоге, для решения проблемы дублей страниц, необязательно модифицировать исходный код, достаточно изменить один файл. Резюмирую вышесказанное, директива в файле robots.txt будет выглядеть так:

User-agent: *
Disallow: *?$