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

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

Один репрезентативный URL для страницы категории
https://www.example.com/category.php?category=gummy-candies
Один репрезентативный URL для страницы отдельного продукта
https://www.example.com/product.php?item=swedish-fish
Нежелательное дублирование, вызванное фасеточной навигацией
Многочисленные URL для одной и той же статьи/продукта
Канонический:
example.com/product.php?item=swedish-fish
Дубликат:
example.com/product.php?item=swedish-fish&category=gummy-candies&price=5-10
Одна и та же страница товара для жевательного мармелада может быть доступна по нескольким 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). - Отрицательная ценность для пользователей.
- Никакой дополнительной ценности для пользователей Google, учитывая, что пользователи редко ищут «кислые жевательные конфеты
Худшие (недружественные для поиска) практики фасеточной навигации
Худшая практика № 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: Предложение дальнейшего уточнения (фильтрации) при нулевом количестве результатов.
Худшая практика:
Разрешение пользователям выбирать фильтры, когда для уточнения нет элементов.

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

Избегайте бесполезных 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.txtdisallowпредотвращает сканирование). Однако, разрешив их сканирование, вы можете объединить сигналы индексации от ненужных 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.
Как мы это применяем
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.
Связанные услуги