Зеркалом сайта называют копию с тем же содержимым на другом домене или сервере. Чтобы сделать его, скопируйте файлы и базу на второй сервер или домен, выберите главный адрес и объедините копии: в Яндексе через постраничный редирект 301 и «Переезд сайта», в Google через редирект 301 или rel="canonical". Для восстановления нужен бэкап, а для проверки изменений нужна закрытая паролем тестовая копия. Публичный второй адрес создаёт дубли страниц, поэтому настройки canonical, robots и доступа зависят от выбранного сценария.
Определите, какое зеркало вам нужно
Для восстановления выбирайте резервную копию, для проверки изменений закрытую тестовую среду, а для второго публичного адреса зеркало с выбранной главной версией. Ошибка на этом шаге опаснее ошибки в команде копирования: можно открыть поисковым роботам тестовую базу, отправить клиенту сообщение из копии или получить два публичных адреса с одинаковым содержимым.
- Резервная копия хранится вне публичного каталога и не открывается как сайт. Она нужна, чтобы вернуть файлы, базу и настройки после сбоя.
- Тестовая копия открывается в браузере на отдельном адресе, но доступ к ней закрыт. На ней проверяют дизайн, обновление движка и формы до боевой публикации.
- Публичное зеркало доступно всем на втором домене или поддомене. Если оно повторяет основной сайт, нужно выбрать главную версию и последовательно передать этот выбор поисковым системам.
Восстановление требует бэкапа, проверка изменений требует закрытой тестовой копии, а отказоустойчивость обычно лучше строить под одним основным доменом. Публичный дубль создавайте только при ясной причине и владельце синхронизации.
Если цель только вернуть сайт после ошибки, используйте инструкцию как сделать бэкап сайта и проверить восстановление. Архив без пробного восстановления не заменяется доступной копией на случайном поддомене.
Понимания, как это устроено, уже достаточно, чтобы начать. На бесплатном эфире сайт собирают за один вечер и показывают, как его выложить.
Посмотреть, как собратьСоставьте карту источника до копирования
До копирования запишите состав сайта и способ обновления каждой части: зеркало должно включать всё, от чего зависит работа страниц, форм и внешних сервисов. Для тестовой копии обезличьте базу и замените рабочие ключи тестовыми, а если это невозможно, защищайте окружение как рабочий сайт.
- Определите, где лежат код или файлы, база данных, загруженные изображения и конфигурация.
- Отметьте внешние сервисы: почту, формы, оплату, аналитику, карту, вход через соцсети и API.
- Запишите текущий основной домен и адрес будущей копии.
- Назначьте одну сторону источником изменений. Двустороннее редактирование без механизма слияния быстро создаёт расхождения.
- Подготовьте способ удаления копии и возврата DNS или конфигурации к исходному состоянию.
По теме: Как сделать образовательный сайт: уроки, доступ и прогресс
Сделайте закрытую тестовую копию
Для проверки дизайна, обновлений движка и форм создайте тестовую копию, которую не видят посторонние. Используйте функцию клонирования у хостинга, отдельное окружение проекта или развёртывание из того же репозитория. Не копируйте рабочие секреты в открытый файл и не включайте реальные отправки.
- Создайте отдельный адрес, каталог и базу. Не направляйте на них основной домен.
- Скопируйте файлы и согласованный снимок базы. Для постоянно меняющейся базы используйте штатный экспорт или механизм снимка хостинга.
- Замените адрес сайта в настройках копии, если движок хранит абсолютные ссылки.
- Отключите отправку писем, сообщений, оплат и вебхуков. Для теста используйте отдельные получатели и тестовый режим сервиса.
- Закройте адрес паролем на уровне веб-сервера или хостинга. Это важнее косметической ссылки «не публиковать» внутри панели.
- Добавьте
noindexкак дополнительную защиту и не включайте тестовые URL в sitemap или внутренние ссылки боевого сайта. - Откройте несколько разных страниц, войдите под тестовой учётной записью и проверьте форму без реальной операции.
Один robots.txt не скрывает страницу из результатов. По руководству Google по robots.txt, запрет обхода управляет доступом робота, но URL всё равно может быть найден по внешней ссылке. Для исключения страницы нужны noindex или защита паролем.
Чтобы Google увидел noindex, страница должна быть доступна роботу: запрет в robots.txt или пароль помешают ему прочитать метатег, как указано в документации Google о noindex. Для закрытой тестовой среды пароль остаётся основным барьером, а noindex служит запасной защитой на случай временного открытия.
Настройте публичное зеркало без конкуренции адресов
Для публичного зеркала выберите основной URL и направьте на него внутренние ссылки, sitemap и рекламные материалы. Публичный дубль имеет смысл только тогда, когда второй адрес действительно должен открываться посетителям; если отдельная страница на нём не нужна, обычно проще настроить постоянное перенаправление на основной адрес.
Если обе копии должны отвечать кодом 200, для Google добавьте на страницы зеркала rel="canonical" с абсолютным URL основной страницы с тем же содержимым. Google поддерживает такой сигнал между доменами. Перенаправление и rel="canonical" он считает сильными сигналами выбора основной версии, а включение URL в sitemap более слабым сигналом, согласно руководству по каноническим URL.
<head>
<title>Доставка цветов в Бишкеке | Лепесток</title>
<link rel="canonical" href="https://example.ru/dostavka/">
</head>
В этой схеме для Google поставьте на основной странице каноническую ссылку на неё саму, а на странице зеркала укажите тот же основной URL. Не направляйте все страницы зеркала на главную: товар, статья и контакты должны ссылаться на свои смысловые пары. JavaScript не должен менять каноническую ссылку после загрузки.
Яндекс не учитывает rel="canonical", ведущий на другой домен или поддомен: канонический адрес нужно указывать в пределах одного домена. Для второго домена используйте постраничный редирект 301 и «Переезд сайта». Исключение для www и адреса без www: Яндекс принимает rel="canonical" и воспринимает его как редирект.
- Не добавляйте URL публичного зеркала в основной sitemap.
- Не смешивайте адреса в меню, карточках, хлебных крошках и кнопках.
- Не публикуйте на зеркале более свежую версию, чем на выбранном основном сайте, если canonical указывает на старую страницу.
- Зафиксируйте, как и когда копия синхронизируется, и кто проверяет ошибки после обновления.
По теме: Как сделать социальный сайт: профили, лента и приватность
Как склеить зеркало в Яндекс Вебмастере
Для склейки в Яндексе выберите главный адрес, который должен участвовать в поиске; неглавные адреса с тем же контентом в поиске не участвуют. Яндекс называет их «главный и неглавные адреса сайта»; раньше использовалось название «главное зеркало». Сюда относятся варианты с www и без него, http и https, а также разные домены с одинаковым содержимым. Если оба домена отвечают кодом 200, Яндекс со временем может объединить их и выбрать главный автоматически. Адреса, которые не сгруппируются, могут конкурировать в выдаче.
Чтобы явно задать главный адрес, настройте постраничный редирект 301 и отправьте заявку через «Переезд сайта» в Яндекс Вебмастере, выполнив шаги в таком порядке:
- Добавьте оба адреса в Яндекс Вебмастер и подтвердите права на каждый.
- Проверьте доступность обоих адресов для робота и совпадение содержимого. Ответ сервера должен приходить не дольше 10 секунд: у будущего главного адреса код 200, у второго код 200 или редирект. В
robots.txtобоих сайтов разрешите индексирование для Яндекса; содержимое файлов должно совпадать. - Поставьте серверный редирект 301 со страниц второго адреса на аналогичные страницы главного. Справка также допускает 302. Главная должна вести на главную; не направляйте все внутренние страницы на неё.
- В Вебмастере выберите сайт, который должен стать неглавным: заявку отправляют с него. Откройте «Индексирование → Переезд сайта», введите главный адрес и нажмите «Сохранить».
- Ожидайте смены главного адреса в течение нескольких недель. Яндекс не гарантирует сохранение позиций и посещаемости.
Яндекс заменил директиву Host в robots.txt постраничным редиректом 301. Директива Host больше не задаёт главное зеркало.
Самое долгое в своём сайте это первый запуск: страницы, домен, публикация. На бесплатном вебинаре по вайбкодингу весь путь проходят вживую, от идеи, описанной словами, до работающего адреса. Опыт в программировании не нужен.
Пройти путь до сайтаЧто сделать в Google при смене домена или поддомена
При смене домена или поддомена настройте постоянный серверный редирект 301 со старых URL на новые и отправьте «Изменение адреса» (Change of Address) в Search Console для старого сайта. По инструкции Google о переезде, инструмент нужен только при переходе на другой домен или поддомен; при переходе с http на https и смене www на адрес без него он не требуется. Перед отправкой нужны права владельца на старый и новый ресурсы в одном аккаунте Google и работающий 301 с главной старого сайта на главную нового; инструмент принимает только ресурсы уровня домена. Редиректы держите как можно дольше, Google советует не меньше года.
Чтобы узнать, какой адрес Google считает каноническим, используйте инструмент проверки URL (URL Inspection) в Search Console. Указанный вами rel="canonical" передаёт выбор основной страницы как сигнал; после настройки проверьте, какой адрес выбрал Google.
По теме: Как сделать оценку сайта: матрица перед приёмкой
Проверьте зеркало до объявления готовности
До объявления готовности проверьте доступ, содержимое, поведение форм и правила индексации. Сходства первого экрана недостаточно.
- Откройте главную, внутреннюю страницу, изображение и страницу ошибки на адресе копии.
- Сравните заголовки, дату материала, меню и важные файлы с источником.
- Проверьте, что тестовая копия запрашивает пароль до загрузки HTML. В режиме без входа она не должна отдавать содержимое.
- Если публичное зеркало настроено для Google через
rel="canonical", откройте HTML и найдите одну абсолютную ссылкуrel="canonical"на правильную основную страницу. - При склейке через редирект откройте несколько внутренних страниц второго адреса и проверьте ответ через «Проверку ответа сервера» или
curl -I <адрес>: код 301, заголовокLocationведёт на аналогичную страницу главного адреса, без цепочек редиректов. - Откройте
/robots.txtи убедитесь, что правило соответствует выбранной схеме. Не рассчитывайте на него как на удаление URL из поиска. - Проверьте, что тестовые формы не отправляют реальные письма, заказы и сообщения.
- Измените безопасный тестовый текст в источнике, выполните штатную синхронизацию и убедитесь, что копия обновилась один раз.
- Удалите тестовый текст и повторите проверку. Это доказывает путь обновления и отката.
Фиксируйте источник версии, время копирования и проверенные страницы. Такой журнал дополняет процесс из статьи как управлять сайтом. Если перенаправление ведёт не туда, исправьте его по инструкции как настроить редирект 301.
Почему зеркало не работает или попало в поиск
Если зеркало открывается с ошибками, проверьте домен в настройках, внешние интеграции и источник данных. Если оно появилось в поиске, проверьте доступ робота и выбранный главный адрес.
- Копия открывается, но стили и картинки пропали: проверьте абсолютные пути, домен в настройках и права доступа к файлам.
- После входа перекидывает на основной домен: движок хранит базовый адрес или возвратный URL во внешнем сервисе.
- Из тестовой формы пришло настоящее письмо: внешние интеграции не были отключены. Остановите тест и замените ключи или получателей.
Если в поиске появился тестовый поддомен с рабочими данными, сразу закройте его паролем на уровне сервера. Робот получит отказ в доступе и не прочитает noindex; Google называет защиту паролем способом исключить страницу из поиска. Не оставляйте рабочие данные открытыми ради чтения метатега.
Если конфиденциальных данных нет и вы удаляете копию через noindex, оставьте страницы доступными роботу без пароля и запрета в robots.txt, пока он не переобойдёт их и не увидит метатег. В обоих случаях удалите публичные ссылки на тестовый поддомен.
Для Яндекса проверьте ответ сервера: по справке Яндекса об удалении страниц страницы с кодами 403, 404 или 410 выпадают из поиска после того, как робот увидит этот ответ. Пароль на уровне сервера обычно отдаёт код 401, которого в этом списке нет; если закрытые страницы держатся в поиске Яндекса, настройте для поддомена ответ 403 или 410. При удалении через noindex не закрывайте страницы в robots.txt, иначе робот не увидит метатег.
- Google выбрал зеркало основной версией: сравните canonical, перенаправления, внутренние ссылки и sitemap. Сигналы не должны спорить друг с другом.
- На двух копиях разные заказы: остановите запись во вторую базу и выберите один рабочий источник. Простое копирование не объединяет изменения.
Если Яндекс Вебмастер отклонил заявку на переезд, проверьте rel="canonical" на страницах будущего главного адреса: Яндекс советует удалить его и отправить заявку снова. Другие причины отказа: содержимое сайтов не совпадает, сайт недоступен, индексирование запрещено в robots.txt или заявка отправлена с будущего главного сайта вместо того, который должен стать неглавным.
Когда зеркало сайта не подходит
Зеркало со своей отдельной копией базы, которая обновляется независимо, не подходит для магазина, личного кабинета или сервиса с постоянными записями: заказы и аккаунты начнут расходиться. Нужна общая база для обоих серверов либо управляемая репликация. Несколько серверов с общей базой или закрытая тестовая копия этой проблемы не имеют. Зеркало также не ускоряет загрузку страниц: одинаково тяжёлая копия останется тяжёлой. Сначала измерьте страницу и сократите ресурсы, чтобы сделать сайт меньше и быстрее.
Для переключения между серверами без смены адреса нужна отдельная схема под одним доменом: DNS, сертификаты, данные, мониторинг и регулярная проверка переключения.
Частые вопросы
Зеркало и бэкап это одно и то же?
Нет. Бэкап хранит состояние для восстановления и обычно не открывается посетителям. Зеркало может работать как отдельный сайт, поэтому у него появляются риски доступа, отправок и индексации.
Достаточно ли закрыть тестовый сайт в robots.txt?
Нет. Запрет обхода не защищает данные и не гарантирует исчезновение URL из поиска. Закройте тестовую среду паролем, а noindex используйте как дополнительный слой.
Куда должен вести canonical на зеркале?
На основную страницу с тем же содержимым, что и страница зеркала, как в схеме Google с rel="canonical". Статья зеркала ведёт на основную статью, карточка товара на основную карточку; направлять все URL на главную не следует. Для зеркала на другом домене это сигнал для Google, а Яндексу нужны постраничный редирект 301 и «Переезд сайта».
Можно редактировать обе копии по очереди?
Только если у проекта есть механизм согласования изменений. Для обычного сайта назначьте один источник, а вторую сторону обновляйте из него. Иначе файлы и базы начнут расходиться.
Как понять, что зеркало действительно готово?
Выполните контрольное изменение, синхронизацию и откат. Затем проверьте разные типы страниц, доступ, формы, canonical и отсутствие тестовых URL в публичных ссылках.
Хотите собрать и опубликовать сайт так, чтобы понимать каждое изменение? На воркшопе вы пройдёте путь от структуры до рабочей версии и проверите результат в браузере.
Записаться на воркшоп