Как перенести сайт на wordpress? инструкция по переезду сайта на wordpress

Универсальное резервное копирование сайта WordPress

Покажу на примере, как сделать полную резервную копию сайта WordPress. Сначала копия самого сайта, потом, копия базы данных.


Копия каталогов и файлов сайта

Чтобы сделать копию файлов сайта понадобится программа FTP клиент, установленная на компьютер. Это универсальный вариант работы с удаленными серверами со своего компьютера.

В качестве FTP клиента рекомендую программы:

  • FileZilla (https://filezilla.ru/)
  • WinSCP (https://winscp.net/eng/docs/lang:ru)

Для входа на свой сервер по FTP соединению, у тебя должен быть пароль доступа и логин. Эти данные можно узнать или получить в административной панели хостинга.

Для примера, я покажу, как копировать файлы, используя программу WinSCP.

  • Открой программу;
  • В окне входа, нажми «Новое соединение»;

В форме соединения выбери:

  • Протокол передачи: если есть возможность, выбирай безопасный протокол SFTP;
  • Имя хоста: имя FTP используемого твоим хостингом;
  • Имя пользователя: пользователь FTP;
  • Пароль: пароль для работы с FTP;
  • Порт: по умолчанию для протокола передачи FTP порт 21, для протокола SFTP 22-й порт.

Примечание: данные по работе с FTP ты можешь посмотреть в своём аккаунте на хостинге или узнать у тех. поддержки.

После введенных данных, соединение лучше сохранить, чтобы пользоваться быстрой авторизацией в дальнейшем.

После соединения откроется окно, в правой стороне которого будут файлы сервера, в том числе, сайта. В левой стороне будут диски твоего компьютера.

Для копирования сайта создай в нужном месте новую папку, например, «Резерв сайта …».

Далее, необходимо выделить все папки и файлы корневого каталога сайта и перетащить их в созданную папку «Резерв сайта …».

Обрати внимание, потому что это важно. После завершения копирования, нужно сравнить скопированные каталоги с оригиналом. Для этого есть кнопка или используй сочетание клавиш Shift+F2

Для этого есть кнопка или используй сочетание клавиш Shift+F2.

All-in-One WP Migration

All-in-One WP Migration

Этот плагин, скорее относиться к группе Migrate. Экспортирует ваш веб-сайт WordPress, включая базу данных, мультимедийные файлы, плагины и темы формируя файл формата .

В процессе экспорта существует возможность создать неограниченное количество правил для таблиц в вашей базе данных. Есть возможность задать правила, что копировать, а что исключить из копии. Копия остается на сервере в каталоге с названием типа .

Восстановление сайта через вкладку «Импорт» плагина в консоли. Файл копии нужно загрузить на сайт, предварительно скачав её на компьютер. Объем загрузки будет ограничен правилом вашего сервера. По сути этот плагин расширенная версия инструмента Экспорт-Импорт системы.

Недостатки: нет русского языка, выбор фильтров требует дополнительных знаний. Нельзя использовать удаленные хранилища;

Достоинства: высокая скорость копирования.

Процесс переноса

Предварительные работы

В самом начале я бы рекомендовал сделать некоторую предварительную подготовку к процессу переноса, которая включает в себя, так сказать, обычную «чистку сайта». Она заключается в удалении всего лишнего и ненужного, что накопилось за время обслуживания сайта и будет замедлять процесс копирования файлов.

Желательно удалить все неактивные темы из папки wp-content/themes, оставив лишь используемую

Это можно сделать через админ панель, а также с помощью вашего файлового менеджера, напрямую удалив темы из вышеуказанной папки; Далее нужно навести порядок в плагинах, удалив все неиспользуемые и деактивировать на время переноса активные. Установить или активировать любой плагин можно уже на новом домене; Обратите внимание на внесённые Вами изменения в файлах. Например, если Вы вносили изменения в файл .htaccess, чтобы защитить изображения от хотлинка и не уберете на время этот код — будете иметь проблемы с отображением всех картинок на новом домене или хостинге. Если есть необходимость и желание, можно разобраться с медиа файлами, удалить дубли и ненужные изображения.

Перенос файлов

Следующий этап — это перенос всех файлов сайта на сервер нового домена. Разумеется, этот домен у вас подготовлен, все технические вопросы по регистрации и привязке домена решены. Так как копирование файлов сайта напрямую с сервера на сервер пока не придумали, нам придется выполнить эту операцию в два этапа:

  1. Запускаем файловый менеджер (я использую Total Commander), соединяемся с FTP-сервером, открываем папку с названием своего сайта и производим копирование всех файлов в отдельную папку на жестком диске компьютера. Это обычная процедура копирования файлов. Единственное условие — нужно следить за правильной передачей файлов, чтобы не случилось ошибок в результате обрыва связи с сервером, нестабильного интернет-соединения или по другим причинам. Если что-либо пойдет не так, файлы нужно перекачать;
  2. Далее, как требует сценарий, нужно все эти файлы закачать на сервер нового домена. Здесь тоже все понятно и нет ничего сложного.

Перенос базы данных

А пока продолжим перенос прежним методом и сейчас выполним ответственную операцию перемещения БД (базы данных MySQL) старого домена на новый. Но прежде, нужно создать новую БД. Для этого заходим в личный кабинет своего хостинга и в разделе «Управление MySQL» выполняем процедуру создания новой БД:

Входим в БД старого домена, кликнув мышкой на вкладке Базы данных и выбираем название БД переносимого сайта:

Для создания дампа БД, жмём на вкладку Экспорт и в открывшемся окне жмем ОК:

Файл с расширением .sql сохраняем на компьютере.

Редактирование файла БД


Далее нужно выполнить обратную процедуру загрузки сохраненного дампа БД уже во вновь созданную базу. Но прежде, необходимо сделать замену названия домена со старого на новое. Это делается просто. Открываем файл .sql в Notepad++ (именно в нем, так как он позволяет совершать тотальную замену символов и слов). Скачать Notepad++ можно в Интернет, набрав соответствующий запрос в адресной строке браузера. Выставляем кодировку UTF-8 без BOM, жмем на вкладку Поиск и выбираем ссылку Замена, Открывается окно:

В строку Найти вводим название старого домена, а в строку Заменить на.., соответственно, нового. Все настройки нужно выставить, как на скриншоте. После нажатия кнопки Заменить всё произойдет массовая замена всех имеющихся названий старого доменного имени на новые. Внизу можно увидеть, что наш Notepad++ успешно выполнил 3503 замены. Это значение может быть любым и зависит от количества страниц и плагинов, размещенных на вашем сайте.

Это все изменения, которые нужно сделать и сейчас нужно обновленный файл БД загрузить в новую базу. Для этого открываем новую БД (на своём хостинге или на другом) и производим импорт данных, нажав на вкладку Импорт и выбрав наш измененный файл .sql:

База данных обновлена, но, чтобы было корректное подключение к ней, в файле wp-config необходимо прописать имя базы данных, имя пользователя и пароль новой базы. Для этого открываем файл wp-config в известном нам Notepad++ и редактируем его:

Заключительные работы

Если на вашем сайте есть файл robots.txt, что крайне желательно, внесите изменения и в него. Там все сводится к замене названий домена в двух местах (host и sitemap).

Проверьте и при необходимости, внесите изменения в файл .htaccess.

Замените коды счетчиков посещений.

Добавьте новый сайт в инструменты для вебмастеров Яндекса и Google и подтвердите права. Проверьте и добавьте файл sitemap.xml.

Откройте в браузере админ панель сайта по новому адресу домена, войдите по старому логину и паролю. Проверьте корректность работы админ-панели и сайта.

И это ВСЁ! Сайт успешно перенесен на новый домен.

Копия базы данных

Копии папок и файлов сайта не имеют особого значения, без базы данных сайта. Копия базы данных делается из phpmyadmin.

Phpmyadmin это специальный скрипт, установленный на твоем сервере, для удобного управления твоими базами данных.

Войти на вкладку авторизации в phpmyadmin нужно из административной панели хостинга. В зависимости от типа панели это будут ссылки (кнопки):

  • DirectAdmin: «Управление базами данных»;
  • CPanel: «MySQL Databases»;
  • ICPmanager: «Инструменты-Базы данных».

Панель phpmyadmin очень проста в работе, но требует привыкания. Слева панели список служебных и твоих баз данных. Верху кнопки управления базой данных. Чтобы сделать копию базы данных ты должен сделать следующее:

  • Открой базу данных, которую нужно скопировать. Для этого в списке баз, щёлкни по её названию;
  • Проконтролируй название базы данных верху страницы;
  • Щёлкни кнопку «Экспорт» в верхнем меню, выделять ничего не нужно;

На следующей странице, прежде, чем скачать файл базы данных, ты должен сначала выбрать метод экспорта. Здесь два варианта «Быстрый…» и «С настройками». В варианте с настройками есть возможность выбрать сжатия файла БД.

Быстрая копия БДКопия БД с настройками

Выбери формат файла (2), в котором будет скачиваться база данных. Для этого есть пункт «Формат». По умолчанию стоит формат SQL, он и нужен.

Если копируешь базу с настройками, то нужно выбрать вариант сжатия. Для безопасности рекомендую делать копию в нескольких вариантах сжатия, например, без сжатия и в формате zip.

Остальные настройки трогать не нужно.

Завершаем процесс, нажатием кнопки действия, «ОК» или «Вперёд» внизу страницы. Ошибиться трудно, поэтому я уверен, копия БД сохраниться на твоём компьютере.

Как сохранить наработки SEO после переноса на новый домен

Теперь, когда вы поняли, что просто так делать перенос сайта WordPress не стоит, давайте пройдёмся по процессу переноса на новый домен с профессиональным подходом, чтобы выжить в сражении за показатели SEO. Начнём? Тогда вот кратко несколько базовых действий:

  • Создайте полный бэкап своего старого сайта
  • Подготовьте новый домен
  • Перенесите свой сайт на новый домен
  • Внесите изменения в файл .htaccess
  • Поправьте неработающие ссылки
  • Оповестите Google
  • Отправьте новую карту сайта
  • Измените домен в Google Analytics

Создание полного бэкапа старого сайта

Хорошей привычкой является хранение полного бэкапа своего сайта, независимо от того собираетесь ли вы делать перенос сайта WordPress. Сейчас мы не будет вдаваться в подробности этого процесса, так как у нас уже есть прекрасное руководство на тему Как сделать бэкап WordPress сайта.

Прежде, чем вы перейдёте на новый домен, создайте полный бэкап, на случай, если что-то пойдёт не так.

Подготовьте новый домен

Предполагаем, что вы уже купили новый домен. Если ваш домен никогда не был зарегистрирован, можете пропустить этот шаг.

Возможно вы купили домен и хотите сделать переадресацию на этот новый домен. Но насколько новый домен в хорошем состоянии?

Чтобы убедиться, что вы не получите никаких штрафов или иных неприятностей, проверьте свой новый домен при помощи Google для веб-мастеров (Google Webmasters Tools — GWT).

Как? Добавьте новый домен в GWT и проверьте раздел Меры, принятые вручную. Если здесь нет сообщений о совершённых действиях, значит двигайтесь дальше смело.

Если здесь будут сообщения о мерах, принятых вручную, нужно подать заявку на пересмотр (англ.).

Перенос сайта WordPress на новый домен


Если у вас уже есть доменное имя связанное с хостингом, вы шагнули на километр дальше по сравнению с тем состоянием, когда у вас только куплен домен

Обращаем на это внимание, потому что перенос сайта с oldurl.com на newurl.com не означает процедуру «копировать/вставить»

Вам может также пригодится руководство о том, как изменять NS-сервера для домена.

Существует удобные плагины для работы с переносом базы данных, такие как Duplicator или All-in-One WP migration. Также рекомендуем посмотреть руководство WordPress migration tutorial(англ.). В нём рассказано как перенести сайт WordPress на другой хостинг.

Добавление правила перенаправления в файл .htaccess

Лучшая часть этого руководства, по созданию редиректа безопасного для SEO – добавление кода в файл .htaccess.

Если вы сохраняете структуру ссылок сайта WordPress (то есть oldurl.com/page-one-story перенаправляете на newurl.com/page-one-story), перенаправление трафика лучше всего сделать через файл .htaccess на вашем веб-сервере.

Внутри каталога WordPress на вашем старом сайте, найдите файл .htaccess и добавьте следующий код внизу:

#Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newurl.com/$1 

Замените http://www.newurl.com в коде выше на адрес своего нового домена. Это известно, как 301 редирект, который говорит Google и вашим пользователям, что вы переместили сайт с oldurl.com на newurl.com. 

С этим кодом, кто угодно переходящий на URL-адрес на вашем старом сайте будет перенаправлен на соответствующий URL-адрес на вашем новом сайте. Если этого не произойдёт, значит ваше перенаправление (редирект) установлено неверно.

Вы можете перенаправить любую страницу отдельно, добавляя следующий код в файл .htaccess:

Redirect 301 /oldurl.com/page http://www.newurl.com/page

Замените oldurl.com/page и newurl.com/page на ваш старый и новый URL страниц соотвественно.

Исправление неработающих (битых) ссылок

После смены домена или, иначе говоря, перемещения вашего сайта на новый домен, некоторые ссылки на сайте не будут работать, такие ссылки ещё называют битыми. Ссылки на внутренние страницы, например, могут всё ещё иметь старый домен, что будет возвращать не очень приятную для посетителей ошибку 404.Также вы можете унаследовать битые ссылки со старого сайта, если вы до этого никогда не делали испрвлений.

Говоря о ссылках, подразумеваем, что нужно обновить их везде, где они только есть. Например, исправить URL в своих профилях социальных сетей, что просто, как 1-2-3.

Перенос сайта WordPress на хостинг

1. Заходим в панель администратора хостинга, на который будем переносить сайт. Домен для сайта на этот момент уже должен быть зарегистрирован, а сайт добавлен в панель хостинга. Если Вы еще не добавили сайт в панели, перейдите в Мои сайты -> Добавить сайт.

2. Далее нужно создать новую базу данных для сайта. Для этого в панели хостинга переходим в Базы данных -> Создать базу данных.

Указываем имя новой базе данных и нажимаем кнопку «Создать»

После создания Вы увидите логин, хост и пароль к базе данных. Эти данные пригодятся Вам далее, при изменении файла wp-config.php.

3. Теперь нужно изменить файл конфигурации wp-config.php. Напомню, что данный файл находится в корневой папке сайта (на локальном сервере).

Откройте файл wp-config.php и измените данные о базе данных на те, которые Вы получили в предыдущем шаге. Вам нужно указать новое имя базы данных, имя пользователя, пароль и имя сервера (хост).

Вот так будет выглядеть файл конфигурации wp-config.php после заполнения:

Данные для заполнения мы получили после создания базы данных на хостинге

4. Далее делаем копию базы данных сайта находящегося на локальном сервере (http://localhost/Tools/phpMyAdmin/). Подробнее о том как сделать резервную копию базы данных мы говорили в одном из прошлых уроков.

5. Созданную в предыдущем шаге копию базы нужно загрузить (импортировать) на хостинг. Для этого заходим в панель управления хостингом и находим настройки базы данных. В них запускаем phpMyAdmin и импортируем базу данных сайта. Аналогичную процедуру делают при восстановлении сайта из резервной копии базы данных.

Изменяем строчки siteurl и home на адрес вашего сайта

7. Одним из последних этапов переноса будет загрузка файлов сайта на сервер хостинга. Загрузить файлы можно с помощью файл-менеджера на хостинге или с помощью FTP-соединения. Вам нужно загрузить все файлы сайта WordPress, включая измененный ранее файл конфигурации wp-config.php.

После загрузки файлов на сервер можно считать что перенос сайта на хостинг почти завершен!

Важно! Обязательно!

8. После переноса базы данных и файлов на хостинг нужно обновить ссылки на сайте. Без этого все URL-ы останутся старыми (с локального сервера)! О том, как это сделать быстро и правильно я объясню в следующем уроке. Выношу этот урок специально отдельно, чтобы тем людям, которые переносили сайт не по этой инструкции было легче найти нужную информацию.


Читайте далее:

Обновление ссылок после переноса сайта на хостинг

Вариант 4 – Дублирование страницы и записи WordPress без плагина

Примечание: Настоятельно рекомендуем вам сделать бэкап вашего сайта перед редактирование любых файлов WordPress.

/*
 * Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
 */
function rd_duplicate_post_as_draft(){
  global $wpdb;
  if (! ( isset( $_GET) || isset( $_POST)  || ( isset($_REQUEST) && 'rd_duplicate_post_as_draft' == $_REQUEST ) ) ) {
    wp_die('No post to duplicate has been supplied!');
  }
 
  /*
   * Nonce verification
   */
  if ( !isset( $_GET ) || !wp_verify_nonce( $_GET, basename( __FILE__ ) ) )
    return;
 
  /*
   * get the original post id
   */
  $post_id = (isset($_GET) ? absint( $_GET ) : absint( $_POST ) );
  /*
   * and all the original post data then
   */
  $post = get_post( $post_id );
 
  /*
   * if you don't want current user to be the new post author,
   * then change next couple of lines to this: $new_post_author = $post->post_author;
   */
  $current_user = wp_get_current_user();
  $new_post_author = $current_user->ID;
 
  /*
   * if post data exists, create the post duplicate
   */
  if (isset( $post ) && $post != null) {
 
    /*
     * new post data array
     */
    $args = array(
      'comment_status' => $post->comment_status,
      'ping_status'    => $post->ping_status,
      'post_author'    => $new_post_author,
      'post_content'   => $post->post_content,
      'post_excerpt'   => $post->post_excerpt,
      'post_name'      => $post->post_name,
      'post_parent'    => $post->post_parent,
      'post_password'  => $post->post_password,
      'post_status'    => 'draft',
      'post_title'     => $post->post_title,
      'post_type'      => $post->post_type,
      'to_ping'        => $post->to_ping,
      'menu_order'     => $post->menu_order
    );
 
    /*
     * insert the post by wp_insert_post() function
     */
    $new_post_id = wp_insert_post( $args );
 
    /*
     * get all current post terms ad set them to the new post draft
     */
    $taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
    foreach ($taxonomies as $taxonomy) {
      $post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
      wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
    }
 
    /*
     * duplicate all post meta just in two SQL queries
     */
    $post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
    if (count($post_meta_infos)!=0) {
      $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
      foreach ($post_meta_infos as $meta_info) {
        $meta_key = $meta_info->meta_key;
        if( $meta_key == '_wp_old_slug' ) continue;
        $meta_value = addslashes($meta_info->meta_value);
        $sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
      }
      $sql_query.= implode(" UNION ALL ", $sql_query_sel);
      $wpdb->query($sql_query);
    }
 
 
    /*
     * finally, redirect to the edit post screen for the new draft
     */
    wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
    exit;
  } else {
    wp_die('Post creation failed, could not find original post: ' . $post_id);
  }
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
 
/*
 * Add the duplicate link to action list for post_row_actions
 */
function rd_duplicate_post_link( $actions, $post ) {
  if (current_user_can('edit_posts')) {
    $actions = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
  }
  return $actions;
}
 
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

Хотя этот фрагмент работает только для дублирования записей, вы можете переключиться на дублирование страниц WordPress, заменив последнюю строку на эту:

add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Если вы нажмете эту кнопку, WordPress создаст копию страницы или записи и сохранит её как черновик.

Шаг 5. Перенаправление всего поддоменного трафика на корневой домен

Переместив се файлы, давайте перенаправим весь трафик с поддомена на корневой домен.

Для этого перейдите в папку поддомена и убедитесь, что все скрытые файлы отображаются.

В настройках FTP-клиента есть функция, позволяющая всегда отображать скрытые файлы, так что включите ее. В FileZilla ее можно включить, пройдя по маршруту Server > Force Showing Hidden Files.

Если вы используете cPanel File, то в правом верхнем углу экрана щелкните по кнопке «Настройки». Появится всплывающее окно, в котором нажмите по «Show hidden files». Сохраните изменения.

Если в вашей папке поддомена уже есть файл .htaccess, то удалите его и создайте новый. Внутрь нового файла вставьте следующий код:

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^yoursubdomain\.example\.com$ RewriteRule ^(.*)$ «http://example.com/$1» </IfModule>

1 2 3 4 5 6

<IfModule mod_rewrite.c>

RewriteEngineOn

RewriteBase/

RewriteCond%{HTTP_HOST}^yoursubdomain\.example\.com$NC

RewriteRule^(.*)$»http://example.com/$1″R=301,L

</IfModule>

Не забудьте поменять «yoursubdomain» на реальное имя вашего поддомена, а  «example.com» — на имя домена.

Обратите внимание, что напротив строки RewriteRule урл прописан без префикса www. Если вы хотите видеть www в имени своего основного сайта, то просто пропишите этот префикс

Сохраните изменения и загрузите файл .htaccess на сервер.

Вот и все! Вы успешно перенесли свой сайт с поддомена на корневой домен. Можете зайти на сайт и проверить, все ли правильно работает.

Надеюсь, эта статья была вам интересна и полезна.  Возможно, вам также будет интересно почитать WordPress SEO плагины для новичков.

Как сделать копию базы данных

Любой сайт состоит из двух частей: каталога сайта и базы данных. База данных сайта это набор таблиц взаимосвязанных между собой и с каталогом сайта. По сути база данных это текстовой файл, правда, созданный в специальном формате SQL (Structured Query Language Data – Файл запросов к базе данных).

Резервное копирование базы данных сайта заключается в создании и копировании файла sql базы данных в явном или сжатом форматах.

Для удобного создания резерва базы данных на любом хостинге используется скрипт управления базами данных, называемый phpMyAdmin. Его функционал позволяет очень просто сделать резерв базы данных. Но вначале в phpMyAdmin нужно попасть.

Занимаясь администрированием сайта, вы должны иметь доступ в административную панель своего хостинга. У хостеров наиболее популярные панели администрирования: DirectAdmin, CPanel, ISPmanager Lite. Вход в phpMyAdmin этих панелей несколько отличается.

  • DirectAdmin. Вход в phpMyAdmin в группе «Дополнительные опции» на кнопке «phpMyAdmin»
  • CPanel. Вход в phpMyAdmin в меню «DATABASES» на кнопке с картинкой «phpMyAdmin»
  • ISPLite Вход в phpMyAdmin в меню «Дополнительные приложения» ссылка phpMyAdmin.

Форма авторизации в phpMyAdmin везде стандартная и выглядит так.

Чтобы войти вам нужно ввести логин, совпадающий с именем пользователя базы данных, и пароль доступа, который вы задавали при создании базы данных.

Так выглядит страница phpMyAdmin с раскрытой структурой базы данных сайта.

Резервное копирование WordPress — база данных

Далее всё просто. Чтобы сделать резервную копию базы данных, не выделяя никакие чекбоксы, нажимаете кнопку «Экспорт» в верхнем сайдбаре (фото сверху).

На следующей странице выбираем степень сжатия и жмем кнопку действия внизу страницы. Копию базы данных сохраняем на своём компьютере или переносном носителе.

Полный лист Экспорта базы данных

Важно! Для страховки рекомендую делать резервы базы данных в нескольких форматах sql, sql.zip, sql.gzip

Как видите, в создании копии базы данных нет ничего сложного.


С этим читают