Как глобально отключить все RSS-каналы

Здравствуйте,

При проведении SEO-аудита нашего сайта, часть которого работает на Discourse, выяснилось, что Googlebot тратит значительную часть бюджета сканирования на RSS-каналы. Это происходит, несмотря на то, что стандартный файл robots.txt для Discourse запрещает доступ к этим URL, и несмотря на наличие заголовка noindex в HTTP-ответе для этих RSS-адресов.

Интересует, существует ли ненавязчивый способ полностью отключить эти RSS-каналы на моём сайте. Я не предполагаю, что ими пользуются многие (попробую это подтвердить). Однако мой вопрос остаётся актуальным.

Спасибо за любую помощь в этом вопросе!

–Hugh

1 лайк

На данный момент нет галочки для отключения этих лент.

Если вы разбираетесь в nginx, вы можете создать блок location, который будет соответствовать .rss, возвращать 404 и разместить это в соответствующем разделе app.yml.

1 лайк

Разве отправка 404 не будет ещё хуже для SEO?

2 лайка

Почему бы не заблокировать их с помощью nginx?

Фактически ли Google извлекает эти страницы, или же URL просто отображаются в Google Search Console как «проиндексированы, но заблокированы robots.txt»?

Я не вижу заголовков noindex в RSS-каналах, но если URL заблокирован robots.txt и имеет заголовок robots, краулер может никогда не увидеть заголовок robots.

[Я удалил вывод curl -I, потому что он не использовал GET, поэтому заголовок robots отсутствовал.]

Редактирование: Я только что проверил RSS-каналы с помощью GET-запроса, так как думал, что заголовок x-robots-noindex присутствует в RSS-каналах, и он там есть, но только при GET-запросе.

Теперь я вспоминаю, что делал на своём основном форуме. Google Search Console предупреждал об индексации URL RSS-каналов, хотя они были заблокированы, поэтому я разблокировал каналы в robots.txt, так как это предотвращает получение Googlebot URL и просмотр заголовка noindex. Я почти уверен, что это устранит предупреждения, но не знаю, остановит ли это Googlebot от обхода этих URL.

# Disallow: /t/*/*.rss
# Disallow: /c/*.rss

Меня немного беспокоит, что краулерам сообщается о наличии RSS-каналов (с помощью link, см. ниже), а затем возвращается 404, когда боты пытаются получить эти URL. Это может заставить машину подумать, что на сайте есть техническая проблема, снижая его оценочное качество (независимо от того, как поисковые системы определяют качество или определяют, может ли сайт быть неработоспособным для пользователей).

$ curl -s https://meta.discourse.org/latest | grep -i rss    
    <link rel="alternate" type="application/rss+xml" title="Latest posts" href="https://meta.discourse.org/posts.rss" />
    <link rel="alternate" type="application/rss+xml" title="Latest topics" href="https://meta.discourse.org/latest.rss" />
   ...
1 лайк

Да, мне не нравится решение с ошибкой 404. Оно, похоже, посылает Google плохой сигнал и является довольно грубым способом достичь того, что я хочу. На самом деле я хочу, чтобы ссылок не было на странице, а не чтобы ссылки вели в никуда.

Отвечая на ваш вопрос: в Search Console RSS-ленты помечены как «Исключены тегом ‘noindex’». Неясно, означает ли это, что Google потратил время на их загрузку и затем исключил, или они были исключены до загрузки, в котором случае влияние на бюджет сканирования, вероятно, меньше.

В логах nginx может быть информация о том, сколько RSS-URL они запрашивают. Я только что проверил свои, и Googlebot сканирует RSS-каналы, но я сам попросил его сделать это, так как разблокировал его в robots.txt.