Чтобы создать сайт на WordPress, нужны три вещи: домен (адрес сайта), хостинг с PHP и базой данных MySQL/MariaDB и сам движок WordPress. Дальше путь одинаковый: установить WordPress (автоустановщиком в панели хостинга или вручную), выбрать тему, поставить несколько нужных плагинов, создать первые страницы и меню, включить HTTPS и открыть сайт для поисковиков.
Содержание
- WordPress.org, WordPress.com и что из этого нужно
- Дорожная карта: от нуля до работающего сайта
- Шаг 1. Домен и хостинг
- Шаг 2. Установка WordPress
- Шаг 3. Базовые настройки в админке
- Шаг 4. Тема
- Шаг 5. Плагины: минимум под задачу
- Шаг 6. Первые страницы и меню
- Шаг 7. HTTPS, аналитика, индексация
- Безопасность и обновления
- Если не получилось
- Выводы
- Где применяется / связь с практикой
- FAQ
Ниже — дорожная карта до сайта-визитки из трех страниц, два способа установки и таблица типовых ошибок. Команды проверены 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: характеристика, преимущества и недостатки, здесь — только практика.
Дорожная карта: от нуля до работающего сайта
- Купить домен и хостинг, привязать домен к хостингу.
- Установить WordPress и войти в админку (
/wp-admin/). - Сделать базовые настройки: название, часовой пояс, постоянные ссылки.
- Выбрать и настроить тему.
- Поставить минимальный набор плагинов под задачи сайта.
- Создать страницы «Главная», «Услуги», «Контакты», назначить главную, собрать меню.
- Включить 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, аналитика, индексация
- Выпустите сертификат Let’s Encrypt в панели хостинга (на VPS — через certbot).
- Убедитесь, что
https://ваш-домен/открывается без предупреждения, и только потом в «Настройки -> Общие» поменяйте оба адреса сайта наhttps://. Если после этого админка перестала открываться, адреса возвращают из консоли:wp option update home 'http://ваш-домен'иwp option update siteurl 'http://ваш-домен'. - Включите 301-редирект с HTTP на HTTPS (часто это переключатель в панели).
- Подключите Яндекс Метрику: код счетчика вставляется плагином или в шапку через редактор сайта.
- Добавьте сайт в Яндекс Вебмастер и 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 нужен для дочерней темы, своего плагина и интеграций.



