Мы используем плагин RSS (или ручное копирование) для наших постов в блоге, чтобы создавать их как якорь обсуждения в категории. Google не любит такой «скопированный» контент и угрожает навредить SEO-репутации блога.
Конечно, мы можем запретить индексирование Дискаурса (или категории) поисковиком Google, но есть ли у кого-то опыт в том, как определить, что это сделано намеренно? Что-то вроде «этот поддомен принадлежит блогу, мы не пытаемся создавать фермы ссылок» или что-то в этом роде? Если да, то как это реализовать в настройках Дискаурса?
Кажется, я помню, что с помощью rel=nofollow или аналогичных тегов можно хотя бы решить проблему ферм обратных ссылок (не уверен насчёт дублирования контента). Есть ли, возможно, заголовок «это копия», который отображается для Google?
Я сослался на документацию, потому что не уверен в случае включения настройки embed set canonical url, когда активна настройка embed truncate. При включении embed truncate на самом деле доступен для индексации Google только фрагмент оригинальной статьи на Discourse. Полная статья отображается во фрейме (iframe), если пользователь нажмет кнопку «Показать полный пост». Я почти уверен, что содержимое iframe не индексируется Google. Первый пункт в статье «5 распространённых ошибок» как раз касается этой проблемы.
Спасибо за подсказку, Саймон! Действительно, canonical, похоже, именно то, о чём я думал. Я попробовал, но это не сработало как надо: он вставляет canonical-URL, указывающий на саму страницу, а не на источник RSS:
Попробуйте просмотреть исходный код страницы, а не использовать инспектор браузера. Я думаю, вы увидите, что канонический URL установлен на URL поста в RSS при просмотре исходного кода страницы, а при просмотре HTML через инспектор браузера он установлен на URL темы Discourse. Если это так, вы не должны получать предупреждения о дублировании контента для тем из RSS.
Вот что я вижу (при включённой опции embed set canonical url), когда просматриваю тему, полученную из RSS-ленты Discourse, через инспектор браузера:
Я считаю, что настройка работает как ожидается с точки зрения того, что видят поисковые роботы, но она меня запутала. Проблема, похоже, в том, что Discourse перезаписывает атрибут канонического URL с помощью JavaScript, когда страница открывается с включённым JavaScript. Для справки, это происходит здесь:
Я не думаю, что сейчас возможно установить выделенную ссылку для тем, созданных из RSS-лент. Я не эксперт по SEO, но считаю, что установка или неустановка этого параметра не окажет никакого влияния на SEO.
Я использовал curl -i | grep canon и увидел неправильный URL тега (и отсутствие заголовка), но могу попробовать снова с другим User-Agent (хотя это немного странно) — приходилось несколько раз пересоздавать посты, так что, возможно, я запутался. Буду обновлять информацию здесь.
Верно, featured-ссылка не предназначена для SEO, но у меня было внутреннее желание сделать ссылку на блог более заметной. И поскольку это один и тот же URL…
(Но похоже, что я получаю более длинный список требований, так что, возможно, мне придётся форкнуть rss-poll (к сожалению, похоже, что основная работа выполняется не в самом плагине). Расширяется ли также код для встраивания?
Для темы, созданной из RSS-ленты, с включённой опцией embed set canonical url, я ожидал, что curl -i вернёт URL элемента RSS в качестве канонического URL. Это работает, когда я тестирую это на своём локальном сайте.
Предполагая, что у вас есть доступ к консоли Rails для Discourse, вы можете проверить, что происходит, найдя тему, а затем проверив её свойство topic_embed. Например:
t = Topic.find 495
t.topic_embed
или просто:
TopicEmbed.find_by(topic_id: 495)
Должен быть возвращён объект TopicEmbed. Его свойство embed_url — это то, что Discourse должен использовать для установки канонического URL темы.
Я сам задавался этим вопросом. Это было бы сложнее, чем внесение изменений в плагин RSS, поскольку встраивание является частью основного кода Discourse.