Ещё одна проблема, которую я обнаружил сегодня. Это особенно плохая практика с точки зрения SEO и социальных сетей.
Название слага темы меняется, как только меняется заголовок.
Это серьёзное нарушение принципов SEO.
Представьте: у вас есть тема, которая получила много обратных ссылок или стала вирусной в социальных сетях.
Теперь пользователь с правами TL3 находит опечатку в заголовке и исправляет его.
Слаг также меняется, а вместе с ним и канонический URL.
Все обратные ссылки теряются, и тема мгновенно перестаёт становиться вирусной, так как прежний URL теперь выдаёт ошибку 404.
Названия слага должны фиксироваться после публикации темы.
Только администраторы и модераторы должны иметь возможность изменять слаг темы, и при этом должно выводиться предупреждение. То есть, когда администратор или модератор меняет заголовок, должны быть предложены варианты: изменить только заголовок или изменить и заголовок, и слаг.
Обновление: Я только что узнал, что Discourse автоматически возвращает 301 вместо 404 при изменении слага. Это частично решает проблему. Тем не менее, я всё же предпочёл бы фиксированный слаг.
Да, это редирект 301, но я бы всё же предпочёл «замороженные» слаг-адресы. Google, возможно, согласится с этим. Но если пользователь TL3 устроит настоящий переполох… не знаю. Я как администратор сайта не хотел бы такого.
Для большинства социальных сетей изменение URL означает потерю метрик вовлечённости для этого URL. Редирект 301 здесь не поможет; в таких случаях требуются более сложные подходы:
Это не нарушение правил SEO. Вы описываете крайне надуманную ситуацию. Если вы опасаетесь, что пользователи TL3 будут так поступать, сделайте TL3 недоступным в вашем конкретном экземпляре.
Это также не баг: перенаправление и обновление слайгов не являются случайностью, система была спроектирована работать именно так.
Отчёт об ошибке означает, что что-то сломано и препятствует нормальному/типичному использованию Discourse.
Что явно не соответствует действительности в приведённом выше случае.
Я согласен с тем, что полезно иметь настройку, позволяющую нам (как администраторам) создавать неизменяемые (frozen) слаг-адреса.
Предложенное @Stephen решение заключалось в том, чтобы запретить некоторым пользователям обновлять свои заголовки. Однако я считаю, что предоставление пользователям возможности улучшать свои заголовки — это хорошая идея.
Даже будучи администратором, я постоянно реорганизую информацию и переименовываю элементы, поэтому я не считаю, что «запрет на переименование заголовков» является хорошим решением.
Альтернативные идеи
Было бы замечательно, если бы администраторы могли задавать слаг-адрес для публикации. В этом случае, даже если заголовок темы изменится, слаг останется коротким и простым.
Это, конечно, должно стать дополнением к текущей перенаправлению 301, поскольку, экспериментируя с ним, я обнаружил, что оно работает, если в конце URL сохраняется часть /[#number].
Я поддерживаю запрос @Terrapop; считаю, что это отличный вариант для администраторов, который поможет избежать проблем в долгосрочной перспективе.
Несправедливо характеризовать мой комментарий как решение — как было отмечено в ответе с правкой, это на самом деле не проблема. Перенаправление делает изменения в слайге по сути бессмысленными.
Фиксация слайгов предполагает, что исходный заголовок и соответствующая ему человеко-читаемая часть URL каким-то образом превосходят переименованную версию. Если это действительно так, то зачем вообще позволять пользователям переименовывать темы? Именно в этом и заключалась моя позиция.
Предположим на мгновение, что переименование тем действительно полезно. Почему бы не применить то же улучшение к человеко-читаемому URL?
Во многих отношениях переименование темы и изменение URL не являются серьезной проблемой, так как происходит корректное перенаправление. Маршрутизация тем основана на идентификаторе темы, поэтому даже если вы введете https://meta.discourse.org/t/donk/162580, вы все равно попадете на эту тему. Этот идентификатор темы не изменится ни при каких действиях пользователей на сайте.
Если бы URL возвращал ошибку 404, это, безусловно, создало бы проблемы для SEO и социальных сетей, но этого не происходит — происходит перенаправление, и Google корректно обновит URL.
Мы рекомендуем всем менеджерам сообществ обновлять заголовки, чтобы они точно отражали содержание обсуждения. Это полезно как для SEO (поскольку главным фактором ранжирования является соответствие поискового запроса содержанию страницы), так и для обнаружения и участия в обсуждении внутри самого сообщества.
Потому что URL-адреса сейчас показываются не так часто? И потому что Discourse вообще не использует красивые URL (как это можно сделать, например, в WordPress)?
Раньше читаемые человеком URL были своего рода SEO-хайпом, и, конечно, они помогали пользователю понять, чего ожидать. Но сегодня большинство платформ используют подход, аналогичный Onebox здесь. URL больше не важны для пользователя.
Как работает автоматическая перенаправление при переименовании заголовков? Это настройка, которую нужно конфигурировать вручную? Сейчас переименование постов, похоже, ломает ссылки.
Только что провел серию тестов, и теперь всё работает, как и ожидалось. Возможно, тогда это была ошибка с моей стороны, или, может быть, я удалял серию цифр в конце поста.
Существует ли ограничение на количество сохраняемых изменений заголовка темы, или любое изменение темы перенаправляется?
Хранилища нет, даже создания перенаправления не происходит. Имя темы полностью игнорируется, когда в URL указан ID темы, поэтому переименования бесплатны.