Почему робот 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&type=discussion
, Поэтому он пытается сканировать этот URL, запрашивающий HTML, и мое приложение сообщает об ошибке. "ActionView::MissingTemplate: отсутствует шаблон новостной ленты / показать..."
- почему робот Google пытается сканировать этот URL? Просто потому, что думает, что есть что-то интересное, и пытается все ползти? Или из-за чего-то не так в моем коде?
- Какой лучший способ справиться с этим в Rails? Я не хочу игнорировать все ошибки MissingTemplate, потому что могут быть случаи, которые сигнализируют о чем-то действительно неправильном в будущем. То же самое с игнорированием ошибок, созданных ботами. У меня есть другие варианты?
2 ответа
Предположительно он проанализировал этот URL из источника страницы и просто пытается просканировать ваш сайт.
Лучше всего сказать Google, что сканировать / не сканировать, используя файл sitemap.xml для вашего сайта и файл robots.txt.
Вы можете запретить роботу Google сканировать страницы с этими (или любыми) параметрами GET в файле robots.txt:
Disallow: /*?
Нет ничего плохого в том, что боты пытаются найти новые ссылки на вашей странице. Они делают свою работу.
Может быть, вы можете использовать одну из этих метатегов по вашему мнению: есть ли способ заставить роботов игнорировать определенный текст?
Эти метас говорят googlebot "не смотри здесь"
<!--googleoff: all-->
$.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"));
});
<!--googleon: all>