Привет! В NLnet Labs мы настраивали Discourse для наших продуктов (community.nlnetlabs.nl). Один из пользователей спросил, как получить RSS-ленту для конкретной темы (например, https://community.nlnetlabs.nl/c/cascade/10), поскольку его RSS-ридер не мог её найти.
Я попробовал открыть страницу конкретной темы в своём любимом RSS-ридере, и он нашёл две ленты: «NLnet Labs Community — Последние посты» (/posts.rss) и «NLnet Labs Community — Последние темы» (/latest.rss). Я знаю, что /c/cascade/10.rss — это корректная RSS-лента, но мой ридер не нашёл её автоматически. Это немного раздражает, так как нам теперь придётся самостоятельно сообщать эти URL-адреса.
Я занимался автоматическим обнаружением RSS-лент для своего личного сайта, поэтому имею некоторый опыт в этой области. Я проверил секцию <head> веб-страницы и заметил следующие ссылки:
<link rel="alternate" type="application/rss+xml" title="Последние посты" href="https://community.nlnetlabs.nl/posts.rss">
<link rel="alternate" type="application/rss+xml" title="Последние темы" href="https://community.nlnetlabs.nl/latest.rss">
<link rel="alternate nofollow" type="application/rss+xml" title="RSS-лента тем в категории 'Cascade'" href="https://community.nlnetlabs.nl/c/cascade/10.rss">
Таким образом, <head> действительно содержит третью ссылку на RSS-ленту для конкретной темы, но, похоже, некоторые RSS-ридеры не принимают атрибут rel="nofollow".
Конечно, я проверил MDN (HTML attribute: rel - HTML | MDN); nofollow описан следующим образом:
Указывает, что оригинальный автор или издатель текущего документа не поддерживает ссылочный документ.
А также:
Относится к
<form>,<a>и<area>, ключевое словоnofollowсообщает поисковым роботам игнорировать связь по ссылке. Отношение nofollow может указывать на то, что владелец текущего документа не поддерживает ссылочный документ. Это часто добавляется специалистами по поисковой оптимизации (SEO), которые притворяются, что их фермы ссылок не являются спам-страницами.
Я изучил исходный код Discourse на GitHub и с помощью поиска и команды git blame смог найти FEATURE: add nofollow to RSS alternate link in topics and categories by rr-it · Pull Request #16013 · discourse/discourse · GitHub. Похоже, здесь имелось в виду второе значение rel="nofollow". Судя по обсуждению, это полезно для приоритизации при сканировании сайта. Было дополнительное обсуждение по ссылке Search engines now blocked from indexing non-canonical pages - #4 by rrit, но я не смог понять, остаётся ли rel="nofollow" важным.
Я не нашёл обсуждения этой проблемы на Discourse Meta, хотя PR был объединён ещё в 2022 году. Очевидно, существует недопонимание в соглашениях относительно тегов <link> для RSS-лент между некоторыми RSS-ридерами и Discourse. Поэтому я задаю вопросы:
- Сохраняет ли
rel="nofollow"своё первоначальное назначение для улучшения приоритизации при сканировании сайта, или его заменили другие методы? - Поведение (то есть игнорирование ссылок с
rel="nofollow") при автоматическом обнаружении RSS-лент в ридерах кажется распространённым? Могут ли другие воспроизвести это? Мне неизвестен авторитетный стандарт автоматического обнаружения RSS-лент. - Есть ли готовность поддержать этот случай использования, чтобы RSS-ридеры могли автоматически находить нужные посты? Существование этих ссылок
<link>для конкретных тем, даже если мой ридер их не использует, заставляет меня так думать; возможно, потеря функциональности была просто упущена при добавленииrel="nofollow".
Команде разработчиков Discourse: спасибо за создание этого проекта!