Идет разработка CMS. Новости + форум. Возникла проблема, что не могу придумать оптимальный формат адресов. Важно и SEO и максимальная красота адреса.
Раньше на сайте все было так
site.ru/category1-category2/name-of-news
сейчас подумал и решил, что при смене категорий ссылки будут биться. Категория меняется не часто, но если добавить/удалить категорию, то ссылки побьются.
однако если я откажусь от категорий, я потеряю важные ключевики — названия категорий.
При этом если сделать URL вида:
site.ru/name-of-news
то может получиться, что через год у меня будет такая же новость с таким же текстом, и что тогда? Циферку в конец добавлять?
Думал думал и придумал, что можно сделать ссылку вида:
site.ru/123/name-of-news, где
123 — номер самого поста. Это вроде бы решает проблему с теоретической возможностью совпадения адреса, но вроде бы уже не так красиво…
Подскажите как быть? Какой вариант предпочтительнее? Может есть еще варианты, которые я упускаю?
через двоеточие порядковый номер темы? В чем плюсы такого решения? Как дальше предполагается ставиться ссылка на комментарий, если нужно сослать на него?
Комментарий через хеш-тэг, а двоеточие — просто парсить, легко отделять, не создается мнимая вложенность, как при «123/name-of-news» — в моем случае title и id на одном уровне.
В названии статьи вполне могут быть дефисы, поэтому заменяю пробелы на нижние прочерки и добавляю id через двоеточие.
Главное, в адрес добавить идентификатор новости в любом месте, тогда вы его сможете вычленить и использовать, а остальные части адреса будут просто для красоты, но реально ни на что не влиять, даже если категории изменятся.
делайте так: /news-name
А чтобы избежать коллизий — при сохранении на серверной стороне проверяете доступность имени, если не доступно — приписываете к slug-y timestamp, а для пользователей делаете ajax проверку доступности до сохранения.
Из вариантов могу предложить example.com/cat-name/123/news-name в качестве постоянной ссылки, причем с глобально-уникальными id. Это позволит при отсутствии категории (или её изменении) сделать редирект.
самый оптимальный вариант site.ru/name-of-news
для Seo очень важна вложенность. чем она меньше, тем быстрее и лучше всё проиндексируется.
Также для seo очень важно то, чтобы название новости писалось транслитом. Если такое название уже существует, то проще всего дописать порядковый номер, он меньше всего повлияет на видимость в поисковиках
На сколько вариант site.ru/123/name-of-news будет хуже с точки зрения SEO? Я понимаю, что нельзя сказать, что «на 18.4% хуже», но все таки…
Просто поразмыслив я склоняюсь именно к такому варианту.
1. строгая внутренняя логика привязанная к номеру поста в базе
2. весьма короткий, короче чем при использовании категорий-слов
3. мы не привязываемся к этим самым категориям
4. его парсить ИМХО будет проще
можете использовать site.ru/123-name-of-news вложенность будет минимальная +), парсить всегда будет легко, для этого и придумали регулярные выражения +).
Для форума соответственно будет site.ru/forum/123/name-of-topic
В теории эта система позволит в случае переименования топика обработать запрос к нему на основании номера поста и переправить к нужному посту.
Всё равно не понимаю, про что вы) Если не засовывать в адрес категории, то везде используется вариант site.com/123/name-of-news. Его плюсы в том, что и название видно, и при желании его отбросить легко (я, например, ненавижу такие длинные адреса с названием в нём). Если же номер писать после названия (хоть через слеш, хоть через двоеточие), то его отбросить уже не так легко. Проблемы же возникают при добавлении категории в адрес, о чём автор и пишет. Вот я и предлагаю делать для красоты адрес site.com/category/###/name-of-news (при желании сразу видно о чём новость и категорию, название опять можно отбросить и останется короткий site.com/music/123), но реально из этого адреса использовать только номер ###, чтобы, если категория изменится, эта неверная часть адреса ничего не поломала.
Я так понял, вы предлагаете указывать категорию в адресе.
предлагаю делать для красоты адрес site.com/category/###/name-of-news
Видимо, понял правильно. Суть в том, что если сменить название категории — то и общий адрес сменится, а значит, по старому адресу статья будет недоступна для поисковых систем. В таком случае изменения нужно постоянно мониторить и ставить редиректы.
нет вы не правильно поняли.
site.com/categoryXXX/001/name-of-news
site.com/categoryYYY/001/name-of-news
site.com/categoryZZZ/001/name-of-newsss
Ваша система должна привести всегда в новость с айди 001. Все остальное мишура.
Ну и не забыть каноникал тег в мета информацию добавить, чтобы поисковые системы не засчитали дубли.
охх… ну написал же, не использовать в скрипте на сайте ничего кроме номера ###, и название категории не использовать. Вот как на ебее, вы можете в адресе www.ebay.com/itm/xxx/140743743282 вместо xxx написать вообще что угодно, а открываться будет нужная страница. Остальные части в адресе только для пользователя, чтобы из адреса понять сразу категорию и название статьи.