Запрет индексации https версии сайта посредством .htaccess

В один прекрасный день вы заметили, что проиндексированных Яндексом (реже гуглом) страниц вашего сайта стало вдвое больше, чем существующих, причем в индексе помимо http теперь и https версия вашего сайта, которая совершенно не предназначена для пользователей и является копией основного сайта? Это вы вовремя спохватились. Еще немного, и Яндекс может принять https за основную версию сайта, а http сделает зеркалом или просто может начать выбрасывать дубли страниц сайта по http. Сайт станет хуже ранжироваться со всеми вытекающими последствиями. Уже? Ну, это тоже не беда и один из моих сайтов прошел через это.

Ищем ответа у самого Яндекса - находим лишь то, что https версию сайта можно удалить, воспользовавшись инструментом "удаление url", но для этого сайт должен либо выдавать ошибку 404, либо быть запрещенным к индексации с помощью robots.txt.

Практически то же находим и у Гугла: Для каждого порта должен быть создан собственный файл robots.txt. В частности, если используются протоколы http и https, для каждого из них потребуются отдельные файлы robots.txt. Например, чтобы разрешить поисковому роботу Google индексировать все страницы http и запретить сканировать https, файлы robots.txt должны выглядеть так, как описано ниже.

Для протокола http (http://server.ru/robots.txt):

User-agent: *
Allow: /

Для протокола https (https://server.ru/robots.txt):

User-agent: *
Disallow: / 

Но как сделать запрет индексации, если http и https версии сайта читаются из одной папки?

Поможет в этом файл .htaccess в корне сайта. Помимо основного, разрешающего индексацию robots.txt, создаем текстовый файл для https с содержанием, полностью запрещающим индексацию:

User-agent: *
Disallow: / 

Назовем этот файл https.txt  В .htaccess добавим строки:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^robots.txt$ https.txt

Что в этом случае происходит при обращении поискового бота к сайту: если он зашел по http протоколу - выдается настоящий robots.txt, если по https - robots.txt подменяется файлом https.txt

Проблема решена. Для скорейшего исчезновения https версии сайта из индекса можно удалить ее посредством инструментов поисковиков "удаление url". Вся https версия сайта будет запрещена к индексации и удалена из индекса примерно в течение недели после манипуляций.