SEOFAQ Telegram, маркетинг и SEO Канал SEOFAQT в мессенджере Telegram

Все чаты#техничка И снова про роботс


#техничка

И снова про роботс

Столкнулся тут на днях с такой задачкой

Есть сайт и у него страницы пагинации такого типа

/accessories?page=2

и есть мусорные страницы сортировки

/accessories?page=1&sort=p.price&order=ASC

Собственно задача простая

- разрешить страницы пагинации к индексации

- запретить страницы сортировки

Имеем в роботс 2 такие строчки

Diallow: /*?* запрещает все страницы с get параметрами

и

Allow: /*?page=* разрешает индексацию страниц пагинаций

Казалось бы просто добавляем

Disallow: /*order=*

и тем самым запрещаем страницы сортировки

но это не сработало...

а вот такая строка

Disallow: /*&order=* сработала

Если кто не заметил, то добавился всего 1 символ & (амперсанд).

Тут я завис. Ведь, как известно, * обозначает любой символ, в том числе и &

Так почему же Disallow: /*order=* не работает

а Disallow: /*&order=* работает?

Найти решение помогла поддержка Я.Вебмастера за что им большое спасибо, далее цитата

"На ситуацию, возникающую при добавлении символа & в правило, влияет один нюанс: директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от меньшего к большему). В директиве Disallow: /*order=* меньше символов, чем в директиве Allow: /*?page=*, поэтому приоритет остается за директивой Allow, а если добавить символ &, то у директивы Disallow будет больше символов. Если удалить директиву Allow, то запрет вида Disallow: /*order=* тоже будет работать."

Вот такая вот простая и красивая отгадка.

Если 2 директивы противоречат друг друга, одна разрешает, а другая запрещает, то приоритет отдается той, у которой больше длина префикса URL.

Как говорится век живи - век учись)

Источник новости https://t.me/dgnzru/1035...


Похожие вопросыПохожие вопросы