Как создать сайт на WordPress: пошагово от хостинга до первых страниц

Как создать сайт на WordPress: пошагово от хостинга до первых страниц Полезное

Чтобы создать сайт на WordPress, нужны три вещи: домен (адрес сайта), хостинг с PHP и базой данных MySQL/MariaDB и сам движок WordPress. Дальше путь одинаковый: установить WordPress (автоустановщиком в панели хостинга или вручную), выбрать тему, поставить несколько нужных плагинов, создать первые страницы и меню, включить HTTPS и открыть сайт для поисковиков.

Ниже — дорожная карта до сайта-визитки из трех страниц, два способа установки и таблица типовых ошибок. Команды проверены 24.09.2026 на WordPress 7.1.2, PHP 8.3, MariaDB 10.11 и WP-CLI 2.12 (Ubuntu 24.04).

WordPress.org, WordPress.com и что из этого нужно

  • WordPress (WordPress.org) — бесплатная CMS с открытым кодом. Ее ставят на свой хостинг, доступны любые темы и плагины.
  • WordPress.com — сервис компании Automattic: сайт живет на их серверах, ставить ничего не нужно, но возможности зависят от тарифа.
  • Тема — оформление и шаблоны страниц; плагин — расширение функций (формы, SEO, кеш).
Вариант Что делаете сами Подходит для Ограничения
WordPress.com Регистрация и контент Блог, проба без технических шагов Свои плагины и темы — на старших тарифах, бесплатно — адрес на поддомене
Хостинг с автоустановщиком Домен, тариф, установка в пару кликов Визитка, блог, небольшой бизнес-сайт Ресурсы и версии PHP задает хостинг
VPS + WP-CLI Сервер, веб-сервер, БД, обновления ОС Разработчик, нестандартная нагрузка Безопасность сервера — полностью ваша задача

Дальше речь о втором и третьем вариантах. Плюсы и минусы самой CMS разобраны в статье WordPress: характеристика, преимущества и недостатки, здесь — только практика.

Дорожная карта: от нуля до работающего сайта

  1. Купить домен и хостинг, привязать домен к хостингу.
  2. Установить WordPress и войти в админку (/wp-admin/).
  3. Сделать базовые настройки: название, часовой пояс, постоянные ссылки.
  4. Выбрать и настроить тему.
  5. Поставить минимальный набор плагинов под задачи сайта.
  6. Создать страницы «Главная», «Услуги», «Контакты», назначить главную, собрать меню.
  7. Включить HTTPS, подключить аналитику и Яндекс Вебмастер, открыть сайт для индексации.

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

Шаг 1. Домен и хостинг

Домен покупают у регистратора, хостинг — у провайдера (часто это одна компания). В тарифе смотрите на проверяемые параметры, а не на слово «WordPress» в названии:

  • PHP — WordPress рекомендует актуальную ветку (8.3 и новее), минимально допустимая для WordPress 7.1 — 7.4;
  • MySQL 8.0+ или MariaDB 10.11+ (рекомендация wordpress.org; на старых MySQL 5.5.5+ WordPress запускается, но эти версии без поддержки);
  • бесплатный сертификат Let’s Encrypt для HTTPS;
  • автоматические резервные копии, которые можно восстановить самому;
  • доступ по SSH (нужен для WP-CLI, на простых тарифах его бывает нет).

Домен направляют на хостинг через DNS: NS-серверы хостинга или A-запись с IP сервера. Изменения DNS расходятся от минут до суток.

Шаг 2. Установка WordPress

Вариант А: автоустановщик в панели хостинга

В панели хостинга есть раздел установки CMS (Softaculous, «Установка приложений» и т.п.): выбираете WordPress, домен, язык, логин администратора, а база и wp-config.php создаются сами. Логин не делайте admin — его первым пробуют боты; пароль — сгенерированный, в менеджере паролей.

Вариант Б: VPS и WP-CLI

WP-CLI — официальная утилита командной строки WordPress. Скрипт создает базу, ставит WordPress на русском, отключает редактор файлов в админке и создает три страницы. Веб-сервер и PHP уже настроены, каталог сайта принадлежит пользователю, от которого идет запуск (не root). Домен, логины и e-mail — пример.

#!/usr/bin/env bash
# Установка WordPress через WP-CLI. Проверено: Ubuntu 24.04, PHP 8.3, MariaDB 10.11, WP-CLI 2.12, WordPress 7.1.2
set -euo pipefail
SITE_DIR="${SITE_DIR:-/var/www/example.com}"
SITE_URL="${SITE_URL:-https://example.com}"
DB_PASS="$(openssl rand -hex 16)"   # пароль БД попадет в wp-config.php, а не в историю команд

sudo mysql -e "CREATE DATABASE wp_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_user'@'localhost';"

cd "$SITE_DIR"
wp core download
wp config create --dbname=wp_site --dbuser=wp_user --dbpass="$DB_PASS"
wp config set DISALLOW_FILE_EDIT true --raw
wp core install --url="$SITE_URL" --title="Студия Пример" \
  --admin_user=site_owner --admin_email=owner@example.com --skip-email
wp language core install ru_RU --activate
wp option update timezone_string 'Europe/Moscow'
wp rewrite structure '/%postname%/'
wp plugin delete hello
wp post delete 1 2 --force   # демо-запись и демо-страница

HOME_ID=$(wp post create --post_type=page --post_title='Главная' --post_name=glavnaya --post_status=publish --porcelain)
wp post create --post_type=page --post_title='Услуги' --post_name=uslugi --post_status=publish
wp post create --post_type=page --post_title='Контакты' --post_name=kontakty --post_status=publish
wp option update show_on_front page
wp option update page_on_front "$HOME_ID"
  • База создается в utf8mb4, у wp_user права только на свою базу, а не на весь сервер.
  • wp core install без --admin_password генерирует пароль и один раз печатает строку Admin password: ... — сразу сохраните его.
  • DISALLOW_FILE_EDIT убирает из админки редактор файлов тем и плагинов. Это закрывает самый простой путь дописать PHP-код через угнанную учетку, но не запрещает установку плагинов (для этого есть DISALLOW_FILE_MODS, она же отключает обновления из админки).
  • --post_name задает латинский адрес. Без него «Услуги» в проверке получили адрес /%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8/ — рабочий, но неудобный.
  • Язык ставится отдельной командой: wp core download --locale=ru_RU в проверке вернул The requested locale (ru_RU) was not found., хотя перевод для 7.1.2 есть.

Проверка результата:

wp core version
wp post list --post_type=page --fields=ID,post_title,post_name,post_status
wp option get blog_public
7.1.2
ID  post_title  post_name   post_status
4   Главная glavnaya    publish
5   Услуги  uslugi  publish
6   Контакты    kontakty    publish
3   Privacy Policy  privacy-policy  draft
1

blog_public = 1 — сайт открыт для поисковиков. Черновик Privacy Policy WordPress создает сам (заголовок английский, так как язык включен после установки) — о нем в шаге 6.

Шаг 3. Базовые настройки в админке

Если ставили автоустановщиком, пройдите вручную то, что в скрипте сделано командами:

  • «Настройки -> Общие»: название сайта, часовой пояс;
  • «Настройки -> Постоянные ссылки»: вариант «Название записи» (адреса вида /uslugi/ вместо /?p=5);
  • «Настройки -> Чтение»: пункт «Видимость для поисковых систем».

Галочку «Попросить поисковые системы не индексировать сайт» ставят на время сборки и забывают снять. С ней WordPress в проверке добавил на страницы <meta name='robots' content='noindex, nofollow' /> и убрал ссылку на карту сайта из robots.txt.

Шаг 4. Тема

По умолчанию в WordPress 7.1 активна Twenty Twenty-Five. Это блочная тема: шапка, подвал и шаблоны меняются мышкой в «Внешний вид -> Редактор». У классических тем вместо этого «Внешний вид -> Настроить» и раздел «Меню».

Тему берите из каталога («Внешний вид -> Темы») или у разработчика с поддержкой, смотрите дату последнего обновления. «Взломанные» платные темы с чужих сайтов не ставьте — в них часто встроен вредоносный код. PHP-шаблоны правьте только в дочерней теме: обновление родительской перезапишет правки в ее файлах.

Шаг 5. Плагины: минимум под задачу

Каждый плагин — чужой PHP-код с доступом ко всему сайту: ставьте под конкретную задачу, неиспользуемые удаляйте.

Задача Что поставить Когда можно не ставить
SEO-заголовки и описания Один из: Yoast SEO, All in One SEO, Rank Math Карта сайта /wp-sitemap.xml есть и в ядре
Форма обратной связи Contact Form 7, WPForms Хватает e-mail и телефона текстом
Кеширование Плагин под хостинг (например, LiteSpeed Cache на LiteSpeed) Хостинг кеширует сам
Резервные копии UpdraftPlus или бэкапы хостинга Бэкапы хостинга хранятся отдельно и восстановление проверено
Защита входа Двухфакторная аутентификация (Two Factor и аналоги) —

Два SEO-плагина сразу не ставьте — метатеги задублируются.

Шаг 6. Первые страницы и меню

Страницы (Главная, Услуги, Контакты) — постоянное содержимое. Записи — лента материалов по датам с рубриками, как в блоге; визитке они нужны, только если будут новости.

  • «Страницы -> Добавить страницу»: заголовок, текст блоками, в настройках справа — адрес (ярлык) латиницей.
  • «Настройки -> Чтение»: главной назначить статическую страницу «Главная».
  • Меню: в блочной теме — блок «Навигация» в редакторе сайта. В проверке он по умолчанию вывел опубликованные страницы, «Услуги» и «Контакты» попали в меню сами.

Если формы собирают имя, телефон или e-mail, нужна политика обработки персональных данных. Черновик есть в «Настройки -> Приватность», но текст шаблонный и требует адаптации под законодательство вашей страны.

Шаг 7. HTTPS, аналитика, индексация

  1. Выпустите сертификат Let’s Encrypt в панели хостинга (на VPS — через certbot).
  2. Убедитесь, что https://ваш-домен/ открывается без предупреждения, и только потом в «Настройки -> Общие» поменяйте оба адреса сайта на https://. Если после этого админка перестала открываться, адреса возвращают из консоли: wp option update home 'http://ваш-домен' и wp option update siteurl 'http://ваш-домен'.
  3. Включите 301-редирект с HTTP на HTTPS (часто это переключатель в панели).
  4. Подключите Яндекс Метрику: код счетчика вставляется плагином или в шапку через редактор сайта.
  5. Добавьте сайт в Яндекс Вебмастер и Google Search Console, подтвердите права и укажите карту https://ваш-домен/wp-sitemap.xml.

Предупреждение браузера о смешанном содержимом значит, что в контенте остались ссылки http://; их меняют wp search-replace 'http://ваш-домен' 'https://ваш-домен' после резервной копии, сначала с флагом --dry-run, который только показывает число замен.

Безопасность и обновления

Обновляйте ядро, темы и плагины, перед крупным обновлением делайте копию; ненужное удаляйте, а не отключайте; всем администраторам — двухфакторный вход. Копию базы через WP-CLI кладите в каталог вне корня сайта, чтобы ее нельзя было скачать по URL:

mkdir -p ~/backups && chmod 700 ~/backups
wp db export ~/backups/wp_site-$(date +%F-%H%M%S).sql

В дампе есть хеши паролей пользователей, поэтому каталог закрыт правами 700. Файлы wp-content копируются отдельно. Храните копии не только на этом сервере и хотя бы раз проверьте восстановление на тестовом сайте.

Если не получилось

Симптом Частая причина Что сделать
«Error establishing a database connection», HTTP 500 Неверные DB_* в wp-config.php или СУБД не запущена Сверить с данными базы в панели, wp db check
«На сайте возникла критическая ошибка.» Фатальная ошибка PHP в плагине или теме, часто после обновления Журнал ошибок (ниже), отключить виновника
Главная открывается, остальные страницы — 404 Веб-сервер не передает запросы в index.php Apache: разрешить .htaccess (AllowOverride); nginx: try_files $uri $uri/ /index.php?$args;
Сайт не появляется в поиске Включен запрет индексации «Настройки -> Чтение», <meta name='robots'> в коде
После HTTPS — бесконечный редирект Редирект задан в двух местах Оставить один источник

Ошибка базы в проверке пришла на английском, хотя сайт русский: перевод подгружается после подключения к базе. Журнал ошибок PHP пишите в файл вне корня сайта, в каталог, куда может писать пользователь PHP. Простой mkdir -p /var/www/logs от пользователя сайта в проверке упал с Permission denied: /var/www принадлежит root, а без каталога журнал молча не пишется, при этом WP_DEBUG_DISPLAY false скрывает ошибки и со страницы:

# /var/www принадлежит root: каталог создаем через sudo и отдаем пользователю PHP
# (www-data - типично для Ubuntu; на вашем сервере смотрите user в пуле PHP-FPM)
sudo install -d -m 2770 -o www-data -g "$(id -gn)" /var/www/logs
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG /var/www/logs/example.com-debug.log
wp config set WP_DEBUG_DISPLAY false --raw

Откройте проблемную страницу и посмотрите tail -n 5 /var/www/logs/example.com-debug.log; посетители ошибок не увидят благодаря WP_DEBUG_DISPLAY false. Если в админку не попасть, wp plugin deactivate --all и включение по одному находят виновника. После диагностики верните WP_DEBUG в false.

Выводы

  • Для своего сайта нужны домен, хостинг с PHP и MySQL/MariaDB и WordPress с WordPress.org; WordPress.com — другой продукт с ограничениями по тарифу.
  • Установка — автоустановщиком в панели или через WP-CLI; логин администратора не admin, пароль сгенерированный.
  • Сразу после установки: часовой пояс, постоянные ссылки «Название записи», латинские адреса страниц, статическая главная.
  • Плагинов — минимум под задачи; один SEO-плагин, копии вне сервера, двухфакторный вход.
  • Перед запуском проверьте HTTPS, снятый запрет индексации и карту сайта в Яндекс Вебмастере.

Где применяется / связь с практикой

Освойте тему на практике

Сайт на WordPress собирается без программирования, но своя логика — нестандартная форма, интеграция с CRM или 1С, дочерняя тема, свой плагин — это уже разработка на PHP: хуки, база, безопасность, производительность. Эти навыки системно разбирают на курсе «PHP-разработчик. Продвинутый уровень». Бесплатно посмотреть формат занятий можно на открытых уроках Otus.

FAQ

Можно ли сделать сайт на WordPress бесплатно?
Движок бесплатный, платить придется за хостинг и домен. Без затрат — WordPress.com с адресом на поддомене или локальная установка для обучения.

Можно ли перенести сайт с WordPress.com на свой хостинг?
Да: контент выгружается через «Инструменты -> Экспорт» и загружается на новом сайте; тему и настройки придется повторить.

Нужно ли знать PHP, чтобы сделать сайт на WordPress?
Для визитки или блога на готовой теме — нет. PHP нужен для дочерней темы, своего плагина и интеграций.

OTUS Журнал
Скидка 5% 12-19 октября на курсы (popup)
Бесплатные открытые уроки (поп-ап)