Я — чайник, а не сайт
Если кому-то скучно читать технические подробности, в самом низу поста есть краткий вывод.
Провластные российские СМИ пишут, будто Google убрал из выдачи сайт Министерства обороны РФ. Google утверждает, что никаких мер к сайту не принималось. Не надо верить словам, надо верить технике.
Разбор
Чтобы Google проиндексировал сайт, нужно, чтобы робот поисковой системы мог зайти на страницу и увидеть примерно то же, что и обычный человек. Дальше он индексирует страницу — то есть кладет ее в базу, из которой и извлекаются поисковые результаты.
Бывает, что робот — нежелательный гость. Тогда можно посоветовать ему не индексировать сайт (не запрещать, а именно посоветовать). Для этого вписывают рекомендацию в специальный файл robots.txt. Если хочешь заблокировать индексацию — надо в специальном теге на странице вписать директиву noindex или передать эту же директиву в заголовках HTTP-ответа (это служебная информация, которую видит браузер и робот, но не видит пользователь).
Действительно, если зайти в robots.txt, там нет запрета на индексацию, нет и директивы noindex на странице. Получается, правда за Минобороны, а Google врет? Давайте проверим напоследок заголовки. Для этого зайдем на сайт reqbin.com, который позволяет запустить из браузера программу curl, она позволяет скачивать сайты, щупать заголовки и вообще понимать, что происходит на сервере (вы можете скачать саму программу здесь).
Пощупаем заголовки какого-нибудь сайта и переключимся на вкладку Headers: curl -k https://google.com
Мы увидим множество непонятных строчек, а заодно размер страницы, время отклика и статус — 200 (OK) — то есть страница отдалась нормально.
Теперь пощупаем заголовки Министерства обороны: curl -k https://mil.ru
Date: Wed, 06 Apr 2022 07:32:43 GMT
Content-Length: 0
Connection: keep-alive
Server: Ministry of Defence of the Russian Federation
Во-первых, Content-Length — длина страницы — строго равна нулю. Индексировать нечего.
Во-вторых, страница возвращает необычный код 418. Не всякий специалист его знает — он расшифровывается 418 I'm a teapot (418 — я чайник). Этот код посвящен первоапрельской шутке 1998 года, вводящей стандарт гипертекстового протокола кофейников. Означает он лишь то, что сервер не может приготовить кофе, потому что он чайник. Нормальная, по-военному элегантная шутка.
В-третьих, код 418 возвращается для американских серверов, reqbin позволяет пощупать из Германии, и тогда сайт возвращает 200. Вероятно, американские пользователи особенно противны Минобороны, это легко понять, но что делать, если американский робот хочет добавить сайт в поисковый индекс, чтобы показывать его пользователям по всему миру? Он индексирует сайты, а не чайники.
Краткий вывод
Вебмастера сайта mil.ru заблокировали сами себя в Google, замаскировавшись под чайник для американских роботов, пытающихся получить доступ к контенту. Это не обязательно провокация — вполне возможно, что это часть защиты от DDoS-атак, но все равно выглядит максимально тупо.