x
 
Алексей Бабиев
23 апреля 2013

Здравствуйте, господа советчики!

В категории category есть статья article. Её адрес — http://blog.ru/category/article/. Читатель набирает в браузере: http://blog.ru/article/.

Как поступить правильно по отношению к читателю и поисковикам?
1) редиректить сразу на http://blog.ru/category/article/
2) дать страницу 404, где предложить перейти по ссылке http://blog.ru/category/article/
3) вывести статью по адресу http://blog.ru/article/, несмотря на то, что она живёт по вышеуказанному адресу

Я склоняюсь к первому варианту, но сомнения грызут таки.



Когда нет сомнений в том, что именно искал человек, стоит сразу редиректить.

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

Если показать ошибку 404, многие даже не заметят, что там есть какая-то ссылка на что-то полезное, и сразу закроют страницу. Поисковики тем более не догадаются, что на самом деле страница найдена, и надо просто перейти по ссылке.

Если открыть искомую страницу по неправильному адресу, получится, что у вас на сайте есть две страницы с одинаковым содержимым. Это усложняет поддержку, поскольку целая куча вещей спроектирована из расчёта на то, что у любой страницы есть канонический адрес (например, кеширование, социолайки).

Убедитесь, что используете код 301 Moved Permanently, а не 302 Found (см. рекомендации Гугля и Яндекса).

Интерфейс и информация — дисциплина Школы дизайнеров. Набор открыт. Чем раньше поступите, тем ниже стоимость и выше шанс на бесплатное место.
 

Поделиться
Отправить

Комментарии

Виталий Кузнецов
23 апреля 2013

Столкнулся с подобной ситуацией про проектировании нового социального сервиса на основе данных из имеющихся социалок.

Пользователь вводит от корня /user_nickname и конечно же он может быть в паре разных социалок.

Было решено сделать для подобных случаев отдельную страницу с предложением выбора нужного профиля.

Пользователям понравилось очень это решение.

Александр Кравчук
23 апреля 2013

Здравствуйте, Алексей!

На Вордпрессе есть такая нескладуха: адреса blog.ru и blog.ru/category/article/ есть, а промежуточного blog.ru/category/ — как бы и нет (получим 404).

Я вижу решение так:
1. Для начала избавляемся от несуществующего адреса и восстанавливаем иерархию:
blog.ru/
blog.ru/design/
blog.ru/design/article/

Теперь /design/ — уже не технический адрес, а реальная категория с именем.

2. Переназываем все дубликаты и учим ЦМС не допускать такого безобразия впредь.

3. Отправляем читателей на нужный урл через 301-й редирект.

P. S. На ту же тему: http://alexkravchuk.com/web/url-wordpress/

Иван Титов
23 апреля 2013

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

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

Дмитрий Сержантов
23 апреля 2013

Про редиректы полностью согласен, но какова вероятность что среднестатистический пользователь будет что-то набирать в адресной строке браузера?

Половина народа чтобы перейти на сайт mail.ru сначала заходят на Яндекс или Гугл и в поисковой строке набирают «mail.ru», вторая половина делает визуальные закладки и переходит по ним.

Явная тенденция к использованию адресной строки как поля формы поискового запроса, а значит это уже вопрос к поисковику, какую страницу он посчитает релевантной (явно не 404).

Денис Братчук
23 апреля 2013

Илья, страницу можно смело открывать по неправильному адресу, указав правильный (канонический) в мета-теге canonical. Но я бы тоже сразу редиректил, просто потому, что это технически значительно проще, чем обрабатывать выдачу страницы по двум принципиально разным адресам, и все редиректы будут видны в одном месте (например, в htaccess-файле).

Егор Стремоусов
23 апреля 2013

Алексей, какой-то странный у вас читатель, если до сих пор набирает адрес статьи вручную. Советую ориентироваться только на предпочтения поисковых машин.

С другой стороны вы затронули важную тему 404-й страницы. А нужна ли вовсе такая страница людям? Какую пользу она несёт? Не является ли она всего лишь следствием несовершенства устаревающего протокола ХТТП? Почему дизайнеры с таким же рвением не разрабатывают другие коды? Где все эти красивые 500-е и 403-и страницы?

Мне кажется, что в этом плане современному вебу пора перестать слепо следовать традициям.

Александр Качкаев
24 апреля 2013

Ещё полезно дополнять адрес страницы через тот же 301-й редирект, если он неполный. Например, было /blog/category/artic, сделалось /blog/category/article/. Если вариантов несколько — ХТТП 300 + список.

Этот трюк спасает от последствий работы некачественных парсеров, которые не воспринимают некоторые символы в урлах и обрезают ссылки. Например, /blog/misc/sex,drugs,r&r → [/blog/misc/sex],drugs,r&r.

То же с убиранием лишних символов из адреса. Нередко парсеры прихватывают идущие за урлом точки, запятые, закрывающиеся скобки и т. д., тем самым делая ссылки нерабочими. Этим, кстати, грешит РСС в Дизайн-собаке. Обойти этот косяк — в прямых интересах тех, на кого ссылаются.


Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

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

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

3 1




Недавно всплыло

Поделитесь соображениями, как работать, путешествуя 8 Как написать хорошее резюме? 7 Защититься от случайного нажатия «Сдаться» 1 Что вы думаете о способе указывать цвету прозрачность в шестнадцатеричном виде вместо более традиционного RGBA? 3