Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Лучшие (и 5 худших) методов фасетной навигации

Расширенная навигация, такая как фильтрация по цвету или ценовому диапазону, может быть полезна для ваших посетителей, но часто она не удобна для поиска, поскольку создает множество комбинаций URL-адресов с дублирующим контентом. При дублировании URL-адресов поисковые системы могут не так быстро сканировать новый или обновленный уникальный контент и / или они могут неточно индексировать страницу, поскольку сигналы индексации между дублирующимися версиями размыты. Чтобы уменьшить эти проблемы и сделать сайты с фасетной навигацией максимально удобными для поиска, мы хотели бы:

При выборе фильтров с фасетной навигацией может использоваться множество комбинаций URL-адресов, таких как 
https://www.example.com/category.php?category=gummy-candies&price=5-10&price=over-10
  • Приведите справочную информацию и возможные проблемы с фасетной навигацией
  • Выделите наихудшие практики
  • Делитесь лучшими практиками
  • Новые реализации фасетной навигации или редизайны
  • Существующие реализации фасетной навигации

Справочная информация

В идеальном состоянии уникальный контент — будь то отдельный продукт / статья или категория продуктов / статей — имел бы только один доступный URL. Этот URL-адрес должен содержать четкий путь перехода к контенту внутри сайта, доступный по щелчку на домашней странице или странице категории.

  • Четкий путь, ведущий ко всем страницам отдельных продуктов / статей
  • Один репрезентативный URL для страницы категории https://www.example.com/category.php?category=gummy-candies
  • Один репрезентативный URL для отдельной страницы продукта https://www.example.com/product.php?item=swedish-fish

Нежелательное дублирование, вызванное фасетной навигацией

  • Множество URL-адресов для одной и той же статьи / продукта
  • Canonical: example.com/product.php?item=swedish-fish
  • Дублировать: example.com/product.php?item=swedish-fish&category=gummy-candies&price=5-10

Одна и та же страница продукта swedish fish может быть доступна по нескольким URL.

  • Многочисленные страницы категорий, которые практически не представляют ценности для поисковиков и поисковых систем), как показано в следующей таблице:
URL
example.com/category.php?category=gummy-candies&taste=sour&price=5-10example.com/category.php?category=gummy-candies&taste=sour&price=over-10
ПроблемыНикакой дополнительной пользы для поисковиков Google, поскольку пользователи редко ищут «кислые мармеладные конфеты стоимостью от пяти до десяти долларов».Не имеет значения для поисковых систем (должен иметь 
код ответа 404).
Поисковые роботы, обнаруживающие тот же товар («фруктовый салат») на страницах родительской категории (либо «мармеладные конфеты», либо «кислые мармеладные конфеты»), не приносят дополнительной пользы.Отрицательное значение для поисковиков.
Отрицательное значение для владельца сайта, у которого сигналы индексации могут быть разбросаны между многочисленными версиями одной и той же категории.
Негативное значение для владельца сайта в отношении пропускной способности и потери возможностей поиска дублирующего контента, а не новых или обновленных страниц.

Наихудшие (не подходящие для поиска) методы фасетной навигации

Наихудшая практика № 1: нестандартная кодировка URL для параметров, таких как запятые или скобки, вместо key=value& пар.

Наихудшие практики:

example.com/category?[category:gummy-candy][sort:price-low-to-high][sid:789]
  • Пары ключ-значение отмечены : вместо =.
  • Несколько параметров, добавленных с [ ] вместо &.
example.com/category?category,gummy-candy,,sort,lowtohigh,,sid,789
  • Пары ключ-значение отмечены , вместо =.
  • Несколько параметров, добавленных с ,, вместо &.

Лучшие практики:

example.com/category?category=gummy-candy&sort=low-to-high&sid=789

В то время как пользователи могут расшифровывать нечетные параметры URL, такие как ,,, поисковые системы сталкиваются с трудностями при интерпретации параметров URL, когда они реализованы нестандартным образом. Инженер-программист из команды сканирования Google Мехмет Актуна говорит: «Использование нестандартной кодировки — это просто напрашиваться на неприятности». Вместо этого соединяйте пары ключ-значение знаком равенства (=) и добавляйте несколько параметров с помощью амперсанда (&).Худшая практика № 2: использование каталогов или путей к файлам вместо параметров для перечисления значений, которые не меняют содержимое страницы.Наихудшая практика:Где /c123/ — категория, /s789/ — идентификатор сеанса, который не изменяет содержимое страницы:

example.com/c123/s789/product?swedish-fish

Рекомендуемая практика:

Каталог, /gummy-candy/, вносит значимые изменения в содержимое страницы:

example.com/gummy-candy/product?item=swedish-fish&sid=789

Лучшие практики:

Параметры URL позволяют поисковым системам более гибко определять способы эффективного обхода.

example.com/product?item=swedish-fish&category=gummy-candy&sid=789

Автоматизированным программам, таким как поисковые роботы, сложно отличить полезные значения (например, gummy-candy) от бесполезных (например, sessionID), когда значения помещаются непосредственно в path. С другой стороны, параметры URL обеспечивают поисковым системам гибкость для быстрого тестирования и определения заданного значения не требует, чтобы поисковый робот получал доступ ко всем вариантам.

Общие значения, которые не изменяют содержимое страницы и должны указываться в качестве параметров URL, включают:

  • Идентификаторы сеанса
  • Идентификаторы отслеживания
  • Идентификаторы рефереров
  • Временная метка

Наихудшая практика № 3: преобразование пользовательских значений в (возможно, бесконечные) параметры URL, которые можно сканировать и индексировать, но бесполезны в результатах поиска.

Наихудшие практики:

Например, пользовательские значения, такие как долгота / широта или «дни назад», используются в качестве URL-адресов с возможностью обхода и индексации:

example.com/find-a-doctor?radius=15&latitude=40.7565068&longitude=-73.9668408
example.com/article?category=health&days-ago=7

Рекомендации:

example.com/find-a-doctor?city=san-francisco&neighborhood=soma
example.com/articles?category=health&date=january-10-2014

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

example.com/filtering/find-a-doctor?radius=15&latitude=40.7565068&longitude=-73.9668408
example.com/filtering/articles?category=health&days-ago=7

с robots.txt:

User-agent: *
Disallow: /filtering/

Худшая практика № 4: добавление параметров URL без логики.

Наихудшие практики:

example.com/gummy-candy/lollipops/gummy-candy/gummy-candy/product?swedish-fish
example.com/product?cat=gummy-candy&cat=lollipops&cat=gummy-candy&cat=gummy-candy&item=swedish-fish

Лучшая практика:

example.com/gummy-candy/product?item=swedish-fish

Посторонние параметры URL только увеличивают дублирование, снижая эффективность обхода и индексации. Поэтому подумайте об удалении ненужных параметров URL и выполнении «внутреннего обслуживания» вашего сайта перед созданием URL. Если для сеанса пользователя требуется много параметров, возможно, скройте информацию в файле cookie, а не добавляйте постоянно значения типа:

cat=gummy-candy&cat=lollipops&cat=gummy-candy&...

Худшая практика № 5: предлагать дальнейшую доработку (фильтрацию) при нулевых результатах.

Наихудшая практика:

Позволяет пользователям выбирать фильтры при отсутствии элементов для уточнения.

Лучшие практики:

Создавайте ссылки / URL-адреса только в том случае, если они выбраны пользователем правильно (элементы существуют). При нулевом количестве элементов параметры фильтрации отключаются серым цветом. Для дальнейшего улучшения удобства использования подумайте о добавлении количества элементов рядом с каждым фильтром.

Предотвращайте использование бесполезных URL-адресов и минимизируйте пространство для сканирования, создавая URL-адреса только при наличии продуктов. Это помогает пользователям оставаться активными на вашем сайте (меньше кликов по кнопке «Назад», когда нет доступных продуктов) и помогает свести к минимуму количество потенциальных URL-адресов, известных поисковым роботам. Более того, если страница не просто временно отсутствует, но и вряд ли когда-либо будет содержать полезный контент, рассмотрите возможность возврата 404 кода состояния. В 404 ответ вы можете включить полезное сообщение для пользователей с дополнительными возможностями навигации или окно поиска для поиска соответствующих продуктов.

У новых сайтов, которые рассматривают возможность внедрения фасетной навигации, есть несколько вариантов оптимизации «пространства обхода» (совокупности URL-адресов на вашем сайте, известных роботу Googlebot) для страниц с уникальным контентом, сокращения обхода дублирующих страниц и объединения сигналов индексации.

  • Определите, какие параметры URL требуются поисковым системам для обхода каждой отдельной страницы контента (например, определите, какие параметры требуются для создания хотя бы одного пути перехода к каждому элементу). Обязательные параметры могут включать item-idcategory-idpage и другие.
  • Определите, какие параметры будут полезны для поисковиков и их запросов, а какие, скорее всего, приведут только к дублированию при ненужном обходе или индексации. В примере с кондитерской я могу обнаружить, что параметр URL taste полезен для поисковиков по запросам типа «кислые мармеладные конфеты», которые могут показывать результат example.com/category.php?category=gummy-candies&taste=sour. Однако я могу считать, что этот параметр price вызывает только дублирование, например category=gummy-candies&taste=sour&price=over-10. Другие распространенные примеры:
  • Важные параметры для поисковиковitem-idcategory-idnamebrand и другие.
  • Ненужные параметрыsession-idprice-range и так далее.

Рассмотрите возможность реализации одного из нескольких вариантов конфигурации для URL-адресов, содержащих ненужные параметры. Просто убедитесь, что ненужные параметры URL никогда не требуются в поисковике или в пути перехода пользователя к каждому отдельному продукту!

Вариант 1rel="nofollow" внутренние ссылки

Сделайте все ненужные URL-адреса ссылками rel="nofollow". Этот параметр сводит к минимуму обнаружение обходом ненужных URL-адресов и, следовательно, сокращает потенциально взрывоопасное пространство для обхода (URL-адреса, известные обходу), которое может возникнуть при фасетной навигации. rel="nofollow" не предотвращает обход ненужных URL-адресов (только a robots.txt disallow предотвращает обход). Однако, разрешив их обход, вы можете объединить сигналы индексации с ненужных URL-адресов с URL-адресом, ценным для поиска, добавив rel="canonical" из ненужного URL-адреса к URL-адресу надмножества (например, example.com/category.php?category=gummy-candies&taste=sour&price=5-10 можете указать rel="canonical" к странице просмотра всего набора «кислые мармеладные конфеты» по адресу example.com/category.php?category=gummy-candies&taste=sour&page=all).

Вариант 2: Robots.txt disallow

Для URL-адресов с ненужными параметрами укажите /filtering/ каталог, который будет robots.txt запрещен. Это позволяет всем поисковым системам сканировать хороший контент, но предотвращает сканирование нежелательных URL-адресов. Например, если моими ценными параметрами были товар, категория и вкус, а ненужными параметрами были идентификатор сеанса и цена. У меня может быть URL:

example.com/category.php?category=gummy-candies

который может ссылаться на другой ценный параметр URL, такой как вкус:

example.com/category.php?category=gummy-candies&taste=sour

Кроме ненужных параметров, таких как цена, URL-адрес включает в себя предварительно определенный каталог, /filtering/:

example.com/filtering/category.php?category=gummy-candies&price=5-10

которые затем будут удалены robots.txt запрещены:

User-agent: *
Disallow: /filtering/

Вариант 3: Отдельные хостинги

Если вы не используете CDN (сайты, использующие CDN, не обладают такой гибкостью, которая легко доступна в инструментах для веб—мастеров), рассмотрите возможность размещения любых URL-адресов с ненужными параметрами на отдельном хостинге — например, создание основного хоста www.example.com и дополнительного хоста, www2.example.com. На дополнительном хостинге (www2) установите для скорости обхода в инструментах для веб-мастеров значение «low», сохраняя при этом скорость обхода основного хостинга как можно более высокой. Это позволит более полно сканировать URL-адреса основных хостов и уменьшит внимание робота Googlebot к вашим ненужным URL-адресам.

  • Убедитесь, что ко всем элементам на главном хостинге остается хотя бы один путь для клика.
  • основном хостинге (например, www2.example.com/category.php?category=gummy-candies&taste=sour&price=5-10 может указывать rel="canonical" на страницу просмотра всего надмножества «кислые мармеладные конфеты», www.example.com/category.php?category=gummy-candies&taste=sour&page=all).
  • Запрещайте переход по ссылкам, если в категории или фильтре нет товаров.
  • Добавьте логику в отображение параметров URL.
  • Удаляйте ненужные параметры, а не добавляйте значения постоянно. Избегайте:
example.com/product?cat=gummy-candy&cat=lollipops&cat=gummy-candy&item=swedish-fish
  • Улучшите индексацию отдельных страниц контента с помощью rel="canonical" предпочтительной версии страницы. rel="canonical" может использоваться для разных имен хостов или доменов.
  • Улучшить индексацию содержимого с разбиением на страницы (например, page=1 и page=2 категории «мармеладные конфеты») с помощью:
  • Убедитесь, что при использовании JavaScript для динамической сортировки / фильтрации / скрытия контента без обновления URL-адреса на вашем сайте все еще существуют URL-адреса, которые поисковики сочтут ценными, например, страницы основных категорий и товаров, которые можно сканировать и индексировать. Например, избегайте использования только домашней страницы (или одного URL—адреса) для всего вашего сайта с помощью JavaScript для динамического изменения содержимого с помощью пользовательской навигации — это, к сожалению, предоставит поисковикам только один URL-адрес для доступа ко всему вашему контенту. Кроме того, убедитесь, что динамическая фильтрация не влияет негативно на производительность, поскольку это может ухудшить взаимодействие с пользователем.
  • Включайте в карты сайта только канонические URL-адреса.

Рекомендации для существующих сайтов с фасетной навигацией

Во-первых, знайте, что рекомендации, перечисленные выше (например, rel="nofollow" для ненужных URL-адресов), по-прежнему применимы, если / когда вы сможете реализовать более масштабный редизайн. В противном случае, при существующей фасетной навигации, поисковые системы, вероятно, уже обнаружили большое пространство для обхода. Поэтому сосредоточьтесь на сокращении дальнейшего роста ненужных страниц, просматриваемых Googlebot, и консолидации сигналов индексации.

  • Используйте параметры (по возможности) со стандартной кодировкой и парами ключ-значение.
  • Убедитесь, что значения, которые не изменяют содержимое страницы, такие как идентификаторы сеанса, реализованы в виде стандартных пар ключ-значение, а не каталогов.
  • Запрещайте привязки с кликами, если для категории / фильтра существуют товары. Не разрешайте создавать клики или URL-адреса, если для фильтра не существует товаров.
  • Добавьте логику в отображение параметров URL. Удалите ненужные параметры, а не добавляйте значения постоянно. Например, избегайте:
example.com/product?cat=gummy-candy&cat=lollipops&cat=gummy-candy&item=swedish-fish

Улучшайте работу поисковиков, поддерживая согласованный порядок параметров, основанный на том, что параметры, важные для поиска, перечислены первыми (поскольку URL-адрес может отображаться в результатах поиска) и параметры, не относящиеся к поисковику, последними. Например, избегайте:

example.com/category?session-id=123&tracking-id=456&category=gummy-candies&taste=sour&

в пользу:

example.com/category.php?session-id=123&tracking-id=456&category=gummy-candies&taste=sour

Настройте Параметры URL инструментов для веб-мастеров если вы хорошо разбираетесь в поведении параметра URL на вашем сайте (убедитесь, что по-прежнему существует четкий путь перехода к каждому отдельному элементу / статье). Например, в разделе URL Parameters в инструментах для веб-мастеров вы можете указать имя параметра, влияние параметров на содержимое страницы и способ, которым вы хотели бы, чтобы Googlebot сканировал URL, содержащие параметр. В следующей таблице показано, как разные параметры влияют на параметры:


Название параметра
Как это влияет на контент?Что должен сканировать Googlebot?
trackingIdНет
Один репрезентативный URL
SortOrder
СортировкаТолько URL-адреса со значением = ‘LowToHigh’
SortByСортировка
Только URL-адреса со значением = ‘Price’
FilterByColorСужает возможностиНет URL-адресов
itemIdУказываетКаждый URL
page
Разбивка на страницы
Каждый URL
  • Убедитесь, что при использовании JavaScript для динамической сортировки, фильтрации и скрытия контента без обновления URL-адреса на вашем сайте все еще существуют URL-адреса, которые поисковики сочтут ценными, например, страницы основных категорий и товаров, которые можно сканировать и индексировать. Например, избегайте использования только домашней страницы (или одного URL—адреса) для всего вашего сайта с помощью JavaScript для динамического изменения содержимого с помощью пользовательской навигации — это, к сожалению, предоставит поисковикам только один URL-адрес для доступа ко всему вашему контенту. Кроме того, убедитесь, что динамическая фильтрация не влияет негативно на производительность, поскольку это может ухудшить взаимодействие с пользователем.
  • Улучшите индексацию отдельных страниц контента с помощью rel="canonical" предпочтительной версии страницы. rel="canonical" может использоваться для разных имен хостов или доменов.
  • Улучшить индексацию содержимого с разбиением на страницы (например, page=1 и page=2 категории «мармеладные конфеты») с помощью:
  • Включайте в карты сайта только канонические URL-адреса.

Помните, что, как правило, чем проще вы поддерживаете его, тем лучше. Вопросы? Пожалуйста, задавайте на нашем форуме для веб-мастеров.