Веб, списки и уникальность страниц

Относительно недавно, размышляя над антипаттернами юзабилити, там же я упоминал про такое явление как сдвиге идентификаторов элементов веб списках. Это довольно большая тема сама по себе и я раскрою её подробнее.

Вначале озвучу проблему: подавляющее число информационных систем никак не учитывают формы представления информации которую они предоставляют пользователям и не только им.

Рассмотрим несколько примеров.

Предположим есть веб сайт на котором размещаются новости и этих новостей может накопиться довольно немало со временем, для чего их список на сайте разбивается на страницы. Практически всегда список из этих страниц будет перевёрнутым, а то есть последние новости всегда будут на первой странице. Технически понятно отчего так происходит — программисты делают нумерацию списков практически всегда в сторону увеличения номеров страниц и внутри простореализуется сортировка по дате по убыванию. Но по смыслу и по форме представления — это неверно.

Для того чтобы далее было проще описать ситуацию я введу термин LISA (Last In. Shift All) -построение списка элементов при котором любой новый элемент становится первым сдвигает номера остальных.

Предположим, у нас уже есть 100 опубликованных новостей, 10 страниц по 10 новостей на одной странице. Что произойдёт после того как мы добавим ещё одну новость? Появится 11 страница и полностью изменится содержимое всех остальных 10 поскольку добавленная новость сдвинет все предыдущие на одну позицию в отсортированном списке.

Поисковые системы которые данный сайт индексируют потребуется обновить не только последнюю страницу с изменениями, но все 10 страниц. А ведь списки где элементов вовсе не 100, а тысячи и при подобном подходе с полным сдвигом всех элементов,поисковик будет переиндексировать все веб страницы списка, создавать дополнительную нагрузку на сайт, которой можно было бы избежать организовав представление информации иначе.

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

Примеров таких списков более чем множество. Даже Вордпресс на котором работает мой блог нумерует страницы считая последнюю первой.

Альтернативные решения по разделению таких списков могут быть разными. Например, при относительно небольшом числе новостей, они могут быть выделены по годам и месяцам, когда совсем мало, то только по годам, а также можно наконец и прийти к правильной нумерации страниц, например, как это сделано в каталоге nge.ru.

Возьмём другой пример — каталог организаций рассортированных в алфавитном порядке по имени. Организаций обычно бывает много, пусть у нас их будет порядка 2000 по 25 на странице, всего 80 страниц. Что происходит когда добавляется новая организация — технически, в базу попадает просто новая запись, но форма представления меняется таким образом что новая запись сдвигает все последующие за ней ровно на единицу и число сдвинутых записей зависит от имени новой. Такие формы списков можно назвать LISP (Last in. Shift part). Тем самым получая новый элемент списка мы можем предсказать каким будет сдвиг списка в целом, но мы не можем предсказать какой же элемент мы получим и как придётся сдвигать, не зная содержимого элемента. Понятно также что это распространяется не только для списков с алфавитной сортировкой по именам, а ко всем постраничным спискам с сортировкой отличающейся от сортировки по последнему идентификатору или по последней дате. В этом случае поисковые машины при повторном индексировании будут обходить уже не все страницы, а только затронутые сдвигом. На уникальность ссылки для пользователей влияние также будет зависеть от того как именно элемент сдвигает все остальные.

Надо отдать должное что в случае LISP списков, некоторые ресурсы предпринимают дополнительные усилия по по организации работы с ними. Например, список печатных СМИ на сайте Федерального агенства по печати и массовым коммуникациям отличается двойной сортировкой. На первом уровне записи рассортированы по первым буквам названий и лишь на втором они разбиты постранично в рамках выбранной буквы. Если, к примеру,  добавлять новое СМИ, то изменится не более чем страниц под определённую букву, это от 1 до 10 страниц, но не никак не несколько сотен.

Почему это вообще важно? Причины в проблемах для поисковиков и пользователях что я озвучил выше.

Например, если сейчас большая тройка поисковиков предлагает к использованию Sitemap’ы, то в будущем организация их работы с сайтами может быть расширена до рекомендаций по организации публикации информации таким образом чтобы индексирование сайта было бы оптимальным как по полноте, так и по времени и объёмам данных. Эти рекомендации помноженные на примеры реорганизации публикации списков могут оказаться весьма полезными и веб местерам желающих снизить нагрузку на свои сайты создаваемую поисковыми роботами. Пользователям же важно иметь возможность находить информацию и работать с ней в удобной и предсказуемой форме.

В дальнейшем, я считаю, что появятся средства автоматического построения наиболее оптимальных средств навигации по данными в рамках одного ресурса которые бы зависели от объёмов, характера и содержимого записей публикуемых в списках. Тем самым появится возможность определения навигационных моделей и навигационных индексов причём практически автоматически, без участия человека.

About This Author

  • suvit

    Иван, такой вопрос. Когда делать списки в правильном порядке неизбежна ситуация когда на начальной(последней странице будет один элемент). например кол-во элементов 13 с разбитием по 6 — разбивается на 1,6,6. Мое мнение что плохо показывать на начальной странице 1 элемент. И что делать проверять когда остаток равен 1 заносить его в предыдущий список — т.е. разбивать на 7,6?

  • http://ivan.begtin.name ivbeg

    Тут можно решить чуть проще. Первая страница — это на самом деле «страница последних новостей» или последних элементов. На ней могут быть элементы с 1 по 10, но далее мы переходим в архив и там на первой странице показываются как Вы и описали в режиме 7, 6.
    Тем самым у нас формируется 2 потока изменений. Одна страница меняется постоянно — это страница n последних новостей, в архиве же только добавляются новые страницы и меняется последняя.

    Собственно многие сайты так и делают, за исключением того что вместо обратной нумерации страниц они дробят новости по месяцам и датам. А модель схожа — «Текущие новости» и «Архив новостей»

Яндекс.Метрика