PINQ - Запитани набори от данни. Търсене на аспекти. Inline Facet Index JQuery UI Slider Patch: Настройка на пренасочване

( "заявка": ( "и": [ ( "условия": ("държава": ["be", "fr"])), ( "условия": ("категория": ["книги", "филми" "]) ) ] ))

За броячи можем да използваме вградените агрегати от Elasticsearch. Всеки от двата аспекта се съхранява като едно поле в индекса, така че можем да използваме агрегиране на термини във всяко от тези полета. Агрегирането ще върне брояч за стойността на това поле.

( "заявка": ( "и": [ ( "условия": ("държава": ["be", "fr"])), ( "условия": ("категория": ["книги", "филми" "]) ) ]), "агрегации": ( "държави": ( "термини": ("поле": "държава")), "категории": ( "термини": ("поле": "категория") ) ) )

Ако изпълните тази заявка, ще забележите, че броячите са деактивирани. Двете неизбрани държави, Португалия и Бразилия, имат брой 0. Въпреки че има действителни резултати, ако искаме да ги изберем (поради вътрешния край на ИЛИ). Това е така, защото по подразбиране Elasticsearch извършва своите агрегации върху набора от резултати. Това означава, че ако изберете Франция, другите филтри по държави ще имат резултат 0, тъй като наборът от резултати съдържа само елементи от Франция.

За да коригираме това, трябва да инструктираме Elasticsearch да извърши агрегирането на целия набор от данни, като игнорира заявката. Можем да направим това, като дефинираме нашите клъстери като глобални.

( "заявка": ( "и": [ ( "условия": ("държава": ["be", "fr"])), ( "условия": ("категория": ["книги", "филми" "]) ) ]), "агрегации": ( "всички_продукти": ( "глобално": (), "агрегации": ( "държави": ( "условия": ("поле": "държава")), " категории": ("термини": ("поле": "категория") ) ) ) ) )

Ако просто направихме това, нашите броячи винаги ще бъдат едни и същи, защото те винаги ще разчитат на целия набор от данни, независимо от нашите филтри. Нашите агрегати трябва да станат малко по-сложни, за да работи това, трябва да добавим филтри към тях. Всяко агрегиране трябва да разчита на набор от данни с всички приложени филтри, с изключение на своя собствен. Така че агрегирането за акаунт във Франция разчита на набора от данни с приложен филтър за категория, но не и филтъра за държава:

( "заявка": ( "и": [ ( "условия": ("държава": ["be", "fr"])), ( "условия": ("категория": ["книги", "филми" "]) ) ]), "агрегации": ( "всички_продукти": ( "глобално": (), "агрегации": ( "държави": ( "филтър": ( "и": [ ( "условия": ( "category": ["books","movies"]) ) ] ), "aggregations": ( "filtered_countries": ( "terms": ("field": "country") ) ) ), "categories": ( "filter": ( "and": [ ( "terms": ("country": ["be","fr"]) ) ] ), "aggregations": ( "filtered_categories": ( "terms": (" поле": "категория") ) ) ) ) ) ) )

( "взе": 153, "timed_out": невярно, "_shards": ( "общо": 5, "успешно": 5, "неуспешно": 0), "попадения": ( "общо": 3, "max_score ": 0, "hits": ["..."] ), "aggregations": ( "all_products": ( "doc_count": 21, "filtred category": ( "doc_count": 13, "categories": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "key": "films", "doc_count": 6), ( "key": "music", "doc_count": 4), ( "key": "книги", "doc_count": 3 ) ] ) ), "filtered_countries": ( "doc_count": 15, "countries": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "key": "fr", "doc_count": 6), ( "key": "br", "doc_count": 4), ( "key": "be", "doc_count": 3), ( "key": "pt", "doc_count": 2 ) ] ) ) ) ) )

yii2 рамка

$terms = QueryHelper::terms("categories.name" , "my category" ) ; $nested = QueryHelper:: вложен ("string_facet" , QueryHelper:: филтър ([ QueryHelper:: термин ("string_facet.facet_name" , [ "value" => $id , "boost" => 1 ] ), QueryHelper:: термин ("string_facet.facet_value" , ​​​​[ "value" => $value , "boost" => 1 ] ) , ] ) ) ; $filter = QueryHelper:: трябва ($вложено) ;

Фасетираната навигация е проблем за всички сайтове за електронна търговия. Прекомерният брой страници, които се използват за различни вариации на един и същи елемент, представлява заплаха за ефективността на търсенето. Това може да повлияе негативно върху SEO и потребителски опит. Какво е фасетна навигация и как да я подобрим, разказаха експерти от блога SEO Hacker.

Фасетна навигация: определение

Този тип навигация обикновено се намира в страничните ленти на сайтове за електронна търговия, съдържа филтри и аспекти - опции, които потребителят конфигурира по желание. позволява на клиентите на онлайн магазини да търсят желан продукт, използвайки комбинация от атрибути, които ще филтрират продуктите, докато потребителите намерят това, от което се нуждаят.

Фасетите и филтрите са различни. Ето разликата:

  • Фасетите са индексирани категории. Те помагат за прецизиране на продуктовите списъци и действат като разширение на основните категории. Фасетите добавят уникална стойност за всеки избор, който потребителят прави. Тъй като фасетите са индексирани, те трябва да изпращат подходящи сигнали до търсачката, като гарантират, че страницата съдържа всички важни атрибути.

  • Филтрите се използват за сортиране и прецизиране на елементи в списъците. Те са необходими за потребителите, но не и за търсачките. Филтрите не се индексират, защото те не променят съдържанието на страницата, те просто го сортират в различен ред. Това води до множество URL адреси с дублирано съдържание.

Потенциални проблеми

Всяка възможна комбинация от аспекти има свой собствен уникален URL адрес. Това може да причини някои проблеми по отношение на SEO. Ето основните от тях:

  • Дублирано съдържание.
  • Разходване на бюджет за сканиране.
  • Премахнете разликите във връзката.

С нарастването на вашия сайт расте и броят на дублиращите се страници. Входящите връзки може да водят до различни дублирани страници. Това намалява стойността на връзките и ограничава възможностите за класиране на страницата.

Освен това увеличава вероятността от канибализация. ключови думи. Няколко страници се опитват да се класират за едни и същи ключови думи, което води до по-малко стабилно и по-ниско класиране. Този проблем може да бъде избегнат, ако всяка ключова дума е насочена само към една страница.

Решения за фасетна навигация

Когато избирате решение на проблема с фасетната навигация, имайте предвид крайната си цел: увеличаване на броя на индексираните страници или намаляване на броя на страниците, които не искате да бъдат индексирани. Ето някои решения, които може да са ви полезни:

AJAX

Ако използвате AJAX, нов URL адрес не се създава, когато потребителят кликне върху аспект или филтър. Тъй като няма да има уникални URL адреси за всяка възможна комбинация от аспекти, проблемът с дублираното съдържание, канибализацията на ключови думи и разходите за индексиране е потенциално елиминиран.

AJAX може да бъде ефективен само преди стартирането на сайт за електронна търговия. Не се използва за решаване на проблемите на вече съществуващи ресурси. Освен това този метод изисква определени разходи от ваша страна.

noindex таг

Тагът noindex се използва, за да каже на ботовете да изключат определена страница от индекса. Така че няма да се покаже в резултатите. Търсене в Google. Това намалява количеството дублирано съдържание, което се появява в индекса и резултатите от търсенето.

Това няма да реши проблемите с бюджета за обхождане, защото ботовете все още ще посещават страницата ви. Освен това не помага за разпределянето на стойността на връзката.

rel=каноничен атрибут

С този атрибут вие казвате на Google, че имате една основна предпочитана страница за индексиране и класиране и че всички други версии на съдържание от тази страница са просто дубликати, които не е необходимо да бъдат индексирани.

София Ибрагимова

Маркетинг на съдържание

Ако една и съща страница на вашия сайт може да бъде достъпна от множество URL адреси, роботите на търсачката ще третират всеки URL като отделна страница. Ботовете ще решат, че съдържанието на вашия сайт не е уникално и това ще повлияе негативно на класирането и ще понижи позицията ви в SERP. За да избегнете това, укажете главната канонична страница, като вмъкнете следната последователност от знаци в блока HEAD:

Можете да използвате канонични страници, за да решите проблема с дублиращото се съдържание, а връзката за споделяне ще бъде обединена с основната ви страница. Но има шанс ботовете все още да обхождат дублиращи се страници и това е загуба на бюджет за обхождане.

Robots.txt

Затварянето на някои от страниците от индексиране ви позволява да постигнете добри резултати. Това е просто, бързо и надежден начин. Най-удобно е да зададете персонализирана опция, за да посочите всички възможни комбинации от аспекти и филтри, които искате да блокирате. Включете го в края на всеки URL адрес, който искате да скриете (http://адрес на цялата страница/robots.txt) или използвайте мета маркера Robots в областта HEAD на кода на страницата.

Когато променяте URL адреса, трябва да запомните, че са необходими 3-4 седмици на роботите, за да забележат тези промени и да реагират на тях.

Тук също има определени проблеми. Стойността на връзките ще бъде ограничена, а също и блокираният URL може да бъде индексиран поради наличието на външни връзки.

Google Search Console

Това е чудесен начин временно да коригирате проблемите си, докато работите върху изграждането на по-добра и лесна за използване навигационна система. Можете да използвате конзолата Търсене в Googleза да кажете на търсачките как да обхождат вашия сайт.

  • Впиши се сметкаконзола и изберете секцията "Сканиране" (Обхождане):

  • Кликнете върху бутона „URL параметри“:

  • Посочете ефекта на всеки от вашите параметри върху страницата и как Google трябва да третира тези страници.

Не забравяйте, че този метод скрива само дублирано съдържание от роботите на Google. Страниците на Bing и Yahoo ще продължат да се показват.

Как да подобрим фасетната навигация

Нека разгледаме накратко всички методи, които ви позволяват да създадете правилната фасетирана навигация:

  • Използване на AJAX
  • Премахнете или скрийте връзки към категории или филтрирайте страници, които нямат съдържание.
  • Позволете индексиране на определени комбинации от аспекти, които имат голям обем на търсене на трафик
  • Установете йерархия на сайта чрез навигационни трохи в категории и подкатегории.
  • Създаване на канонични (основни) страници за дублирано съдържание.
  • Консолидиране на свойствата за индексиране от компонентни страници към целия ред с помощта на маркиране на страница с rel = "next" и rel = "prev" .

Заключение

Всяко от споменатите решения има своите предимства и недостатъци. Няма универсално решение, всичко зависи от спецификата на вашия бизнес и конкретния случай. Оптимизираната фасетна навигация ще позволи на вашия сайт да насочва към по-широк набор от ключови думи. За да избегнете риск, уверете се, че навигацията не само отговаря на изискванията на роботите за търсене, но и е удобна по отношение на потребителското изживяване.

Съвременният човек се опитва да отделя все по-малко време за покупки. Бавните продуктови каталози отблъскват клиентите, магазинът губи клиенти и част от печалбата. Направете своя онлайн магазин по-привлекателен с технологиите фасетиран Фасетиран – т.е. предварително зададени.Търсене. Създавайте фасетни индексии значително ускоряват търсенето на продукти и работата на целия каталог.

Забележка:Фасетната търсачка е достъпна от версия 15.0.1 на модула Информационни блоковеи интегриран с компонент Компонент- това е програмен код, проектиран във визуална обвивка, която изпълнява специфична функция на всеки модул за показване на данни в публичната част. Можем да вградим този блок от код в страниците на сайта, без да пишем код директно. интелигентен филтър Компонентът подготвя филтър за избор от инфоблока и показва филтърната форма за филтриращи елементи. Компонентът трябва да бъде свързан преди изходния компонент на каталожния елемент, в противен случай списъкът с елементи няма да бъде филтриран. Компонентът е стандартен, включен в комплекта за разпространение на модула и съдържа три шаблона: .по подразбиране, визуален_хоризонталени визуален_вертикален. (Последните два модела не се поддържат и са оставени от съображения за съвместимост.)

AT визуален редакторкомпонентът е разположен по пътя Съдържание > Каталог > Интелигентен филтър.

Компонентът принадлежи към модула Информационни блокове.

Научете повече за фасетното търсене

Да творим фасетни индексив няколко прости стъпки:

Трябва ли да пресъздам фасетирани индекси?

Фасетираните индекси се пресъздават автоматично или трябва да ги пресъздадете ръчно, в зависимост от извършените действия:

Автоматично Добавени нови или редактирани съществуващи продукти.
не създавайтенови имоти.
Ръчно Системата ще ви подкани със съобщение в горната част на страниците
административна част.
Добавен нов или редактиран секции на директория.
Когато добавяте нова собственост или изтривате собственост от интелигентен филтър.
При разтоварване на стоки, например от 1C, ако стоките създавамнови имоти.

Фасетното търсене подобрява работата на продуктовия каталог. За да го използвате трябва:

  1. Създаване на фасетирани индекси за продуктовия каталог;
  2. Следете за предупреждение за необходимостта от ръчно възстановяване на индекси.

В днешния урок ще се опитаме да пресъздадем симулирано фасетно (фасетно) търсене с помощта на Javascript. Искам да кажа, че вече знаете какво е фасетно търсене, като прочетете този урок, в противен случай го потърсете в Google или проверете в Amazon или моята демонстрация.

Първо имаме нужда от библиотеката github.com/eikes/facetedsearch. Изтеглете го и включете файла facetedsearch.js в нашия проект. Ще ни трябват и библиотеките jQuery и Underscore.

Опровержение:Разбирам, че JQ вече не е торта, но като го използвате като обичайна синтактична захар, можете да го нарежете на по-познати библиотеки или ванилен JS.

Така че първо, нека направим просто маркиране със свързани зависимости:

документ

// Това е мястото, където ще изведем фасетираните филтри
// И тук ще бъдат нашите елементи

Сега трябва да опишем настройките на нашето приложение и да създадем шаблон за показване на елементи от масив, които ще сортираме с помощта на фасети:

Е, всъщност създайте самия JSON масив с елементи, които да се показват в нашето фасетно търсене в JS:

Var items = [ ( "firstname": "Mary", "lastname": "Smith", "imageURL": "http://lorempixel.com/150/150/cats/2", "description": "Sed Ea Amet. Stet Voluptua. Nonumy Magna Takimata ", "категория": "Мишка", "език": ["Smalltalk", "XSLT"], "континент": "Африка" ​​), ( "първо име": "Патриша ", "lastname": "Johnson", "imageURL": "http://lorempixel.com/150/150/cats/3", "description": "Ut Takimata Sit Aliquyam Labore Aliquyam Sit Sit Lorem Amet. Ipsum Rebum ." , "категория": "Лъв", "континент": "Северна Америка"), ... ];

Даден масивБих го поставил в отделен JS файл, който да се формира динамично, от базата данни, например.

Това е всичко, получаваме фасетно търсене в JavaScript и можем да го персонализираме. След това предоставям преведената документация на библиотеката, където можете да надникнете в тригерите, от които се нуждаете.

Документация

Функции

Двете функции се експортират в пространството от имена на jQuery.

facetelize Използва се за инициализиране на фасетно търсене с дадените настройки.

facetUpdate Може да се използва, ако искате да промените състоянието на търсене на фасет отвън.

Настройки на обекта

елементи: масив от елементи, които да бъдат филтрирани и сортирани в процеса.

аспекти: Обект, чиито ключове съответстват на ключовете и стойностите на елемента, е заглавието за този аспект. Елементите ще бъдат филтрирани въз основа на това каква стойност имат за тези ключове.

orderByOptions: Подобно на фасетите, но тези двойки ключ/стойност се използват само за сортиране. Когато ключът RANDOM е активиран, резултатите могат да бъдат рандомизирани.

facetSelector: Това е селекторът, който се използва за намиране на DOM възела, от който са избрани филтрите за аспекти.

resultSelector: Това е селекторът, който се използва за намиране на DOM възела, където се показват резултатите.

resultTemplate: Низ, който се използва от машината за шаблони Underscore за изобразяване на всеки елемент от масива items. Към всеки елемент, който може да се използва и в шаблон, се добавят следните атрибути: batchItemNr, batchItemCount и totalItemCount.

състояние: Този обект запазва текущите филтри, сортира: currentResult и други. Можете да предоставите низ orderBy или обект за филтри, за да ги конфигурирате предварително.

enablePagination: Булева стойност за активиране на страница или бутон "зареждане на още", вярно по подразбиране.

paginationCount: Ако странирането е активирано, задава броя на елементите на страница, по подразбиране е 50.

facetSortOption: Използвайте тази функция, за да промените реда на фасетните елементи. Взема обект, където ключовете съответстват на имената и стойностите на фасети, в масив от стойности на фасети, които могат да бъдат подредени в реда, в който искате да ги видите. Този пример ще сортира континентите в различен ред, елементите, които не са включени в масива, ще бъдат добавени по азбучен ред:

FacetSortOption: ("континент": ["Северна Америка", "Южна Америка"])

Има още няколко шаблона, моля, вижте изходния код на facetedsearch.js, за да видите всички налични опциишаблон.

Разработки

Можете да се свържете с някои събития, които трябва да изпращат известия, когато е извършено някакво действие. За да направим това, използваме системата за събития jQuery:

facetuicreated: Можете да свържете тази функция към DOM елемента settings.facetSelector, който трябва да бъде уведомен, когато потребителският интерфейс е създаден.

facetedsearchresultupdate: Можете да свържете тази функция към DOM елемента settings.resultSelector, за да бъдете уведомени за резултатите от актуализацията.

facetedsearchfacetclick: Това събитие се задейства, когато се щракне върху фасет и се задейства върху елемента settings.facetSelector. Което получава ИД на фасет като аргумент.

facetedsearchorderby: Това събитие се задейства, когато върху елемента за сортиране се щракне върху елемента settings.facetSelector. Получава ID реда като аргумент.

$(settings.resultSelector).bind("facetedsearchresultupdate", function()( // направи нещо, може би ));

В тази статия (ниво уебмастър - напреднали), ще говорим за, пресичащи се по различни начини, т.нар. фасетна навигация. За да опростите усвояването на материала, препоръчвам да прегледате статията в Уикипедия „Класификация на аспектите“ и публикациите на английски език(но със снимки!) „Проектирайте по-добра фасетна навигация за вашите уебсайтове“.

Фасетната навигация, филтрирана по цвят или ценови диапазон, може да бъде полезна за вашите посетители, но често е вредна за търсенето, като създава множество адресни комбинации с дублирано съдържание. Поради дубликати търсачките няма да могат бързо да сканират сайта за актуализации на съдържанието, което съответно се отразява на индексирането. За да минимизираме този проблем и да помогнем на уеб администраторите да направят фасетираната навигация удобна за търсене, бихме искали да:

Идеален за потребители и търсене в Google

Ясен път към страниците с продукти/статии:

Представяне на URL адреса за страницата на категорията:
http://www.example.com/category.php?category=гумени-бонбони

Представяне на URL адрес за конкретен продукт:
http://www.example.com/product.php?item=swedish-fish

Нежелани дубликати, причинени от фасетна навигация

Една и съща страница е достъпна от различни уеб адреси:

Канонична страница



URL: example.com/product.php? елемент=шведска риба

Дублирана страница



URL:example.com/product.php? item=swedish-fish&category=гумени-бонбони&price=5-10


категория=гумени-бонбони&вкус=кисело&цена=5-10

Грешки:

  • Няма смисъл за Google, тъй като потребителите рядко търсят [$9:55 мармалад].
  • Няма смисъл роботите да намират същия артикул („плодова салата“) от страниците на родителска категория („Gummi“ или „Sour Gummy“).
  • Отрицателна точка за собственика на сайта, тъй като заявките за индексиране се разреждат с множество версии на една и съща категория.
  • Отрицателна точка за собственика на сайта, защото това е безполезна и ненужна тежест честотна лентасайт
Празни страници:


URL: example.com/category.php? категория=гумени-бонбони&вкус=кисело&цена=над-10

Грешки:

  • Неправилно даден код за търсачки (в този случай страницата трябва да дава код 404)
  • Празна страница за потребители


Най-лошите (неудобни за търсене) решения за фасетна навигация

Пример #1: В URL адреса се използват нестандартни параметри: запетаи и скоби, вместо ключ=стойност&:

  • example.com/category? [ категория:гумени-бонбони ][ sort:price-low-to-high ][ sid:789 ]
  • example.com/category?category, гумени бонбони, sort, lowtohigh, sid, 789
Как да:
example.com/category? category=гумени-бонбони&sort=ниско към високо&sid=789

Пример #2: Използване на директории или файлови пътища вместо опции в списъци със стойности, които не променят съдържанието на страницата:
example.com/c123/s789/product?swedish-fish
(където /c123/ е категорията, /s789/ е идентификаторът на сесията, който не променя съдържанието на страницата)

Добро решение:

  • example.com /гумени-бонбони/ product?item=swedish-fish&sid=789(директорията, /gummy-candy/, променя съдържанието на страницата по смислен начин)
Най-доброто решение:
  • example.com/product?item=swedish-fish& category=гумени-бонбони&sid=789 (URL параметрите дават повече гъвкавост на търсачките, за да определят как да обхождат ефективно)
Трудно е за роботите да разграничат полезните стойности (напр. "gummy-candy") от безполезните стойности (напр. "SESSIONID"), когато тези стойности са поставени директно в пътя на връзката. От друга страна, URL параметрите осигуряват гъвкавостта на търсачките бързо да проверяват и определят кога дадена стойност не изисква достъп на робот до всички варианти.

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

  • Сесиен идентификатор
  • ID проследяване
  • Идентификатори на референт
  • Времеви отпечатъци
Пример #3: Преобразувайте генерирани от потребителите стойности (евентуално безкрайни) в URL параметри, които могат да се обхождат и индексират, но са безполезни за търсене.
Използване на незначителни данни, генерирани от потребителите на сайта (като географска дължина/широчина или „преди дни“) в обходени и индексирани URL адреси:
  • example.com/find-a-doctor? радиус=15&ширина=40.7565068&дължина=-73.9668408
  • example.com/article?category=health&преди дни=7
Как да:
  • example.com/find-a-doctor? city=san-francisco&neighborhood=soma
  • example.com/articles?category=health& дата=януари-10-2014
Вместо да позволявате на потребителя да генерира стойности за генериране на обхождащи URL адреси (което води до безкрайни възможности с много малка стойност за посетителите), по-добре е да публикувате категория на страницата за най-популярните стойности и може да се включи допълнителна информация, за да стане страницата по- ценна от обикновената страница за търсене с резултати. Като алтернатива можете да обмислите поставянето на генерирани от потребителя стойности в отделна директория и след това да използвате robots.txt, за да деактивирате обхождането от тази директория.
  • example.com /филтриране/ find-a-doctor?radius=15&latitude=40.7565068&longitude=-73.9668408
  • example.com /филтриране/статии?category=health&days-ago=7
И в robots.txt:
Потребителски агент: *
Забрана: /филтриране/

Пример #4. Добавяне на URL параметри без логика.

  • example.com /гумени-бонбони/близалки/гумени-бонбони/гумени бонбони/продукт?шведска риба
  • example.com/product? cat=гумени-бонбони&cat=близалки&cat=гумени-бонбони&cat=гумени-бонбони&item=шведска-риба
Добро решение:
  • example.com /гумени-бонбони/ product?item=swedish-fish
Най-доброто решение:
  • example.com/product? item=swedish-fish&category=гумени-бонбони
Извънредните URL параметри само увеличават дублирането и в резултат на това сайтът се обхожда и индексира по-малко ефективно. Следователно е необходимо да се отървете от ненужните URL параметри и периодично да почиствате нежеланите връзки, преди да генерирате нови URL адреси. Ако за потребителската сесия са необходими много параметри, е възможно информацията да се скрие в бисквитки, вместо постоянно да се добавят стойности, т.к. cat=гумени-бонбони&cat=близалки&cat=гумени-бонбони& ...

Пример #5: Предложете допълнителни уточнения (филтриране), когато има нулеви резултати.

Зле:
Позволете на потребителите да избират филтри, когато има нулеви елементи за прецизиране.


Прецизиране до страница с нула резултати (например цена=над-10), което разочарова потребителите и предизвиква ненужни заявки за търсачките.

Как да:
Създавайте връзки само когато има елементи, които потребителят да избира. Ако резултатът е нула, маркирайте връзката като "сива" (т.е. невъзможна за кликване). За да подобрите допълнително използваемостта, обмислете включването на индикатор за брой артикули до всеки филтър.


Показването на страница с нула резултати (например цена=над-10) не е разрешено, освен това е забранено на потребителите да правят ненужни кликвания и търсачките не обхождат това полезна страница.

Необходимо е да се предотвратят ненужните URL адреси и да се минимизира пространството на посетителите, като се генерират URL адреси само когато продуктите са налични. Това ще помогне на потребителите да останат ангажирани с вашия сайт (по-малко кликвания върху бутона за връщане назад, когато не е намерен продукт), ще намали броя на възможните URL адреси, известни на търсачките. Освен това, ако страницата не е просто „временно изчерпана“, но е малко вероятно някога да съдържа подходяща информация, помислете дали да й дадете код за отговор 404. На страницата 404 можете да проектирате полезно съобщение за потребителите с повече опции за навигация или поле за търсене, така че потребителите да могат да намерят свързани продукти.

За нови сайтове, чиито уеб администратори обмислят внедряване на фасетна навигация, има няколко опции за оптимизиране на обхождането (съвкупността от адреси на вашия сайт, известни на Googlebot) на страници с уникално съдържание и намаляване на индексирането от търсачката на дублиращи се страници (консолидиране на сигнали за индексиране).

Определете какви URL параметри са необходими на търсачките, за да обхождат всяка отделна страница със съдържание (т.е. определете какви параметри са необходими, за да създадете поне един път на кликване до всеки елемент). Задължителните параметри могат да включват item-id, category-id, page и др.

Определете кои параметри ще бъдат полезни за посетителите с техните заявки и кои е по-вероятно да причинят дублиране при обхождане и индексиране. В примера със сладкарски изделия (мармалад) URL параметърът „вкус“ може да бъде полезен за потребителите със заявките в примера вкус=кисел . Логично е обаче параметърът "цена" да се счита за причиняващ ненужно дублиране категория=гумени-бонбони&вкус=кисело& цена=над-10 . Други често срещани примери:

  • Ценни параметри за търсачките: item-id, category-id, name, brand ...
  • Ненужни параметри: идентификатор на сесията, ценови диапазон ...
Помислете за прилагане на една от няколко опции за конфигурация за URL адреси, които съдържат ненужни параметри. Просто се уверете, че „ненужните“ URL параметри наистина не са необходими за обхождане от роботите или за потребителя да намери всеки отделен продукт!

Вариант 1: и вътрешни връзки

Маркирайте всички ненужни URL адреси с . Това ще намали разходите за труд робот за търсенеи предотвратяване на спад на скоростта на сканиране. Трябва да управлявате глобално обхождането чрез robots.txt (Бележка на преводача: вижте статията „“).
Използвайте атрибута rel="canonical", за да отделите страниците за индекса за търсене от страниците, които не са необходими там (например на страницата цена=5-10 можете да напишете атрибута rel="canonical", указващ категорията на всички кисели мармалади example.com/category.php?category=гумени-бонбони&вкус=кисел& страница=всички ).

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

URL адресите с ненужни параметри се включват в директорията /filtering/, която ще бъде затворена в robots.txt (забрана disallow). Това ще позволи на всички търсачки да обхождат само "правилната" вътрешна връзка (съдържание) на сайта, но ще блокират обхождането на нежелани URL адреси наведнъж. Например ( example.com/category.php?category=гумени-бонбони), ако ценните параметри са артикул, категория и вкус, а идентификаторът на сесията и цената са излишни, тогава URL адресът за вкус ще бъде:
example.com/category.php?category=гумени-бонбони& вкус=кисел, но всички ненужни параметри, като например цена, URL ще включва в предварително дефинирана директория - /филтриране/:
example.com /филтриране/ category.php?category=гумени-бонбони&price=5-10,
който след това ще бъде забранен чрез robots.txt:
Потребителски агент: *
Disallow: /филтриране/

Вариант 3: Отделни хостове

Уверете се, че най-добрите решения, изброени по-горе (например за ненужни адреси) все още се прилагат. Иначе търсачките вече са формирали голяма линк маса в индекса. Така вашата работа ще бъде насочена към намаляване на по-нататъшния растеж. ненужни страницигледано с робот на googleи консолидиране на индексиращи сигнали.

Използвайте параметри със стандартно кодиране и формат ключ=стойност.

Уверете се, че стойностите, които не променят съдържанието на страницата, като идентификатори на сесии, са внедрени като ключ=стойност, а не като директории.

Не позволявайте кликвания и не генерирайте URL адреси, когато няма елементи за филтриране.

Добавете логика към съпоставянето на URL параметри: премахнете ненужните параметри, вместо да добавяте стойности през цялото време (напр. избягвайте генерирането на връзка като тази: example.com/product?cat=gummy-bonbon&cat=lollipops &cat=gummy-candy&item=swedish-fish).

Съхранявайте ценни параметри в URL адреса, като ги посочите първи (тъй като URL адресите се виждат в резултатите от търсенето) и по-малко подходящи параметри накрая (като ID на сесията).
Избягвайте тази структура на връзката: example.com/category.php? session-id=123&tracking-id=456&category=гумени-бонбони&вкус=кисел
Коригирайте URL настройките в Инструменти за уеб администратори, ако имате ясна представа как работят връзките на вашия сайт.

Уверете се кога използвайки JavaScriptза динамичен контролсъдържание (сортиране/филтриране/скриване) без актуализиране на URL адреса, на вашия сайт има реални уеб адреси, които имат стойност за търсене, като основните категории и продуктови страници, които могат да се обхождат и индексират. Опитайте се да не използвате само начална страница(т.е. един URL) за целия ви сайт и чрез JavaScript за динамична промяна на съдържанието на навигацията - това, за съжаление, ще даде на потребителите само един URL адрес в търсенето. Също така се уверете, че производителността не се влияе от динамичното филтриране най-лошата страна, тъй като ще попречи на потребителя да работи със сайта.

Подобрете индексирането на различни страници с едно и също съдържание, като посочите атрибута rel="canonical" на привилегированата версия на страницата. Атрибутът rel="canonical" може да се използва в рамките на един или повече домейни.

Оптимизирайте индексирането на "страницирано" съдържание (напр. page=1 и page=2 от категорията "гумени бонбони") чрез (или):

  • Добавете атрибут rel="canonical" към поредица от страници, като посочите каноничната категория с параметъра "view-all" (напр. page=1, page=2 и page=3 от категорията "гумени бонбони" с rel=” каноничен” на категория=гумени-бонбони&страница=всички), като се уверите, че страницата е подходяща за потребителите и се зарежда бързо.
  • Използвайте маркиране на страници rel="next" и rel="prev", за да посочите връзката между отделните страници (вижте "Пагинация с rel="next" и rel="prev" ").
Включете само канонични връзки в картите на сайта.