Почему робот Google запрашивает HTML с URL-адресов, предназначенных только для JSON?

На такой странице: https://medstro.com/groups/nejm-group-open-forum/discussions/61

У меня есть такой код:

$.getJSON("/newsfeeds/61?order=activity&type=discussion", function(response) {
  $(".discussion-post-stream").replaceWith($(response.newsfeed_html));
  $(".stream-posts").before($("<div class=\'newsfeed-sorting-panel generic-12\' data-id=\'61\'>\n<div class=\'newsfeed-type-menu generic-12\'>\n<ul class=\'newsfeed-sorting-buttons\'>\n<li>\n<span>\nShow\n<\/span>\n<\/li>\n<li>\n<select id=\"type\" name=\"type\"><option selected=\"selected\" value=\"discussion\">Show All (15)<\/option>\n<option value=\"discussion_answered\">Answered Questions (15)<\/option>\n<option value=\"discussion_unanswered\">Unanswered Questions (0)<\/option><\/select>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n"));
  Newsfeed.prepare_for_newsfeed_sort($(".newsfeed-sorting-panel"));
});

Робот Google решил, что хочет посмотреть, есть ли интересный HTML на /newsfeeds/61?order=activity&amp;type=discussion, Поэтому он пытается сканировать этот URL, запрашивающий HTML, и мое приложение сообщает об ошибке. "ActionView::MissingTemplate: отсутствует шаблон новостной ленты / показать..."

  1. почему робот Google пытается сканировать этот URL? Просто потому, что думает, что есть что-то интересное, и пытается все ползти? Или из-за чего-то не так в моем коде?
  2. Какой лучший способ справиться с этим в Rails? Я не хочу игнорировать все ошибки MissingTemplate, потому что могут быть случаи, которые сигнализируют о чем-то действительно неправильном в будущем. То же самое с игнорированием ошибок, созданных ботами. У меня есть другие варианты?

2 ответа

Предположительно он проанализировал этот URL из источника страницы и просто пытается просканировать ваш сайт.

Лучше всего сказать Google, что сканировать / не сканировать, используя файл sitemap.xml для вашего сайта и файл robots.txt.

Вы можете запретить роботу Google сканировать страницы с этими (или любыми) параметрами GET в файле robots.txt:

Disallow: /*?

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

Может быть, вы можете использовать одну из этих метатегов по вашему мнению: есть ли способ заставить роботов игнорировать определенный текст?

Эти метас говорят googlebot "не смотри здесь"

<!--googleoff: all-->

$.getJSON("/newsfeeds/61?order=activity&amp;type=discussion", function(response) {
$(".discussion-post-stream").replaceWith($(response.newsfeed_html));
$(".stream-posts").before($("<div class=\'newsfeed-sorting-panel generic-12\' data-id=\'61\'>\n<div class=\'newsfeed-type-menu generic-12\'>\n<ul class=\'newsfeed-sorting-buttons\'>\n<li>\n<span>\nShow\n<\/span>\n<\/li>\n<li>\n<select id=\"type\" name=\"type\"><option selected=\"selected\" value=\"discussion\">Show All (15)<\/option>\n<option value=\"discussion_answered\">Answered Questions (15)<\/option>\n<option value=\"discussion_unanswered\">Unanswered Questions (0)<\/option><\/select>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n"));
Newsfeed.prepare_for_newsfeed_sort($(".newsfeed-sorting-panel"));
});

<!--googleon: all>
Другие вопросы по тегам