Blog

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

Среда, 12 февраля 2014 г.

Selecting filters with faceted navigation can cause many URL combinations
Выбор фильтров с помощью фасеточной навигации может приводить к созданию множества комбинаций URL, таких как
https://www.example.com/category.php?category=gummy-candies&price=5-10&price=over-10

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

Предыстория

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

  • Четкий путь, ведущий ко всем страницам отдельных продуктов/статей

    On the left is potential user navigation on the site (or, the click path), on the right are the pages accessed.

  • Один репрезентативный URL для страницы категории
    https://www.example.com/category.php?category=gummy-candies

    Category page for gummy candies

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

    One representative URL for individual product page

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

  • Многочисленные URL для одной и той же статьи/продукта

    • Канонический: example.com/product.php?item=swedish-fish

      Canonical URL for the same product

    • Дубликат:
      example.com/product.php?item=swedish-fish&category=gummy-candies&price=5-10

      Duplicate URL for the same product

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

  • Многочисленные страницы категорий, которые не представляют ценности (или почти не представляют ее) для пользователей и поисковых систем), как
    показано в следующей таблице:

    URLexample.com/category.php?category=gummy-candies&taste=sour&price=5-10example.com/category.php?category=gummy-candies&taste=sour&price=over-10
    category page for gummy candies in the price range $5-10category page for gummy candies that are over $10
    Проблемы
    • Никакой дополнительной ценности для пользователей Google, учитывая, что пользователи редко ищут «кислые жевательные конфеты
      ценой от пяти до десяти долларов».
    • Никакой дополнительной ценности для поисковых краулеров, которые находят тот же элемент («фруктовый салат»)
      со страниц родительских категорий (либо «жевательные конфеты», либо «кислые жевательные конфеты»).
    • Отрицательная ценность для владельца сайта, у которого сигналы индексирования могут размываться между многочисленными
      версиями одной и той же категории.
    • Отрицательная ценность для владельца сайта с точки зрения расхода пропускной способности и потери краулингового
      ресурса на дублирующийся контент вместо новых или обновленных страниц.
    • Ценности для поисковых систем нет (должен быть
      код ответа 404).
    • Отрицательная ценность для пользователей.

Худшие (недружественные для поиска) практики фасеточной навигации

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

Худшие практики:

  • Пары «ключ-значение», отмеченные знаком : вместо =.
  • Несколько параметров, добавленных через [ ] вместо &.
  • Пары «ключ-значение», отмеченные , вместо =.
  • Несколько параметров, добавленных через ,, вместо &.

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

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

Худшая практика № 2: Использование каталогов или путей к файлам вместо параметров для перечисления значений, которые не изменяют содержимое страницы.

Худшая практика:

Где /c123/ — это категория, /s789/ — это
идентификатор сеанса , который не
меняет содержимое страницы:

Хорошая практика:

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

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

URL-параметры предоставляют поисковым системам большую гибкость для определения того, как эффективно выполнять сканирование.

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

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

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

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

Худшие практики:

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

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

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

с помощью robots.txt:

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

Худшие практики:

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

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

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

Худшая практика № 5: Предложение дальнейшего уточнения (фильтрации) при нулевом количестве результатов.

Худшая практика:

Разрешение пользователям выбирать фильтры, когда для уточнения нет элементов.

category page that lets users select filters when zero items exist

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

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

categopry page that greys out filters if there aren't any items

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

Лучшие практики для новой реализации фасетной навигации или редизайна

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

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

    • Ценные параметры для пользователей: item-id, category-id,
      name, brand, и другие.
    • Ненужные параметры: session-id, price-range, и так далее.
  • Рассмотрите возможность реализации одного из нескольких вариантов конфигурации для URL-адресов, содержащих ненужные параметры. Просто убедитесь, что ненужные URL-параметры никогда не требуются в пути клика краулера или пользователя для достижения каждого отдельного продукта!

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

      Сделайте все ненужные URL ссылками с
      rel="nofollow".
      Этот вариант минимизирует обнаружение краулером ненужных URL и, следовательно, уменьшает потенциально взрывоопасное пространство сканирования (URL, известные краулеру), которое может возникнуть при фасетной навигации. rel="nofollow" не предотвращает сканирование ненужных URL (только 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-адресов. Например, если моими ценными параметрами были item, category и taste, а ненужными — session-id и price, у меня мог бы быть такой URL-адрес:

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

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

      который затем запрещен в robots.txt:

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

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

      • Убедитесь, что для всех элементов на основном хосте остается хотя бы один путь клика.
      • Если вы хотите объединить сигналы индексирования, рассмотрите возможность добавления
        rel="canonical" со вторичного хоста на 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.

    • Удаляйте ненужные параметры вместо того, чтобы постоянно добавлять значения. Избегайте:

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

  • Улучшите индексирование отдельных страниц контента с помощью
    rel="canonical"
    на предпочитаемую версию страницы. rel="canonical" может использоваться для разных хостов или доменов.
  • Улучшите индексирование разбитого на страницы контента (например, page=1 и page=2 категории «жевательные конфеты»):

    • Добавлением rel="canonical" со страниц отдельных компонентов в серии на страницу категории «просмотреть все» (например, page=1, page=2, и
      page=3 «жевательных конфет» с rel="canonical" на
      category=gummy-candies&page=all), гарантируя при этом хорошее качество взаимодействия с пользователем (например, быструю загрузку страницы).
    • Использование
      разметки пагинации с rel="next" и rel="prev"
      для объединения свойств индексирования, таких как ссылки, со страниц/URL-адресов компонентов для всей серии в целом.
  • Убедитесь, что если вы используете JavaScript для динамической сортировки/фильтрации/скрытия контента без обновления URL-адреса, на вашем сайте все равно существуют URL-адреса, которые пользователи сочтут ценными, например страницы основных категорий и товаров, которые можно сканировать и индексировать. Например, избегайте использования только главной страницы (или одного URL-адреса) для всего вашего сайта с JavaScript для динамического изменения контента при навигации пользователя — к сожалению, это предоставит пользователям только один URL-адрес для доступа ко всему вашему контенту. Кроме того, убедитесь, что производительность не ухудшается из-за динамической фильтрации, так как это может ухудшить пользовательский опыт.
  • Включайте только канонические URL-адреса в файлы Sitemap.

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

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

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

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

    вместо:

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

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

    • Добавление rel="canonical" со страниц отдельных компонентов серии на страницу категории «просмотреть все» (например, page=1, page=2, и
      page=3 категории “gummy candies” с rel="canonical" на
      category=gummy-candies&page=all), при этом убедившись, что пользовательский опыт остается хорошим (например, страница загружается быстро).
    • Использование разметки пагинации с rel="next" и rel="prev"
      для консолидации свойств индексации, таких как ссылки, со страниц/URL компонентов на всю серию в целом.
  • Включайте только канонические URL в sitemaps.

Помните, что обычно чем проще, тем лучше. Есть вопросы? Пожалуйста, задавайте их на нашем
Webmaster discussion forum.

Alien Road

Как мы это применяем

Google announcements age. We keep this post here for the record, and we note for clients whether the behaviour it describes still applies today or has since been superseded.

Связанные услуги

Поделиться