Шаг 1: Проверить версию WordPress
Зайдите в WP Admin и откройте Консоль → Обновления (Dashboard → Updates). Версия WordPress должна быть 5.6 или выше — Application Passwords появились именно в этой версии и не требуют плагинов.
WordPress 6.4+ — наиболее стабильная работа Application Passwords. Версия 6.3.2 содержит баг аутентификации, обновитесь до 6.4 или выше.
Шаг 2: Создать Application Password
Application Password — это отдельный пароль для стороннего приложения. Он не совпадает с паролем вашего аккаунта WordPress.
- Зайдите в WP Admin (
https://ваш-сайт.ru/wp-admin) - В левом меню: Пользователи → Профиль (Users → Profile)
- Прокрутите страницу вниз до раздела «Application Passwords»
- В поле «New Application Password Name» введите:
SeoSmith - Нажмите кнопку «Add New Application Password»
- Скопируйте появившийся пароль вида
xxxx xxxx xxxx xxxx xxxx xxxx
Пароль показывается только один раз. Скопируйте его сразу — после закрытия окна он не восстанавливается. Если потеряли — создайте новый.
Роль пользователя должна быть Editor (Редактор) или Administrator. Роль Author не позволяет публиковать через REST API без дополнительных настроек.
Шаг 3: Проверить доступность REST API
Откройте в браузере:
https://ваш-сайт.ru/wp-json/wp/v2/users/me
Интерпретация ответа:
| Ответ | Значение |
|---|---|
401 Unauthorized | Хорошо — REST API работает, просто нужна авторизация |
| JSON с данными пользователя | Хорошо — API полностью открыт |
403 Forbidden | Плагин безопасности блокирует REST API — см. шаг «Проблемы» |
404 Not Found | REST API отключён — см. шаг «Проблемы» |
Шаг 4: Настроить сервер для передачи Authorization
Это самый важный шаг. Большинство серверов по умолчанию не передают заголовок Authorization в PHP — WordPress просто не видит пароль и отказывает в доступе. Нужно добавить одну строчку в конфиг сервера.
Apache (большинство хостингов, cPanel, Beget, Reg.ru)
Откройте файл .htaccess в корне сайта WordPress и добавьте в самое начало, после строки RewriteEngine On:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Если строка RewriteEngine On уже есть в файле — добавьте только две строки RewriteCond и RewriteRule сразу после неё.
Файл находится в корневой папке WordPress (там же где wp-config.php). В cPanel: File Manager → выбрать сайт → включить «Show Hidden Files» → найти .htaccess.
Nginx
Если сервер использует Nginx + PHP-FPM, добавьте в конфиг виртуального хоста внутри блока location ~ \.php$:
fastcgi_param HTTP_AUTHORIZATION $http_authorization;
После изменения перезагрузите Nginx:
sudo nginx -s reload
Nginx + Apache (связка)
Если Nginx стоит перед Apache как reverse proxy, добавьте в конфиг Nginx в блок location /:
proxy_set_header Authorization $http_authorization;
Шаг 5: Ввести данные в SeoSmith
- Откройте SeoSmith и перейдите в нужный проект
- В левом меню выберите Интеграции
- В карточке WordPress заполните поля:
- URL сайта —
https://ваш-сайт.ru(без слеша в конце, обязательно https) - Логин WordPress — ваш username (не email), тот что используете для входа в WP Admin
- Application Password — пароль из шага 2 (пробелы можно оставить)
- URL сайта —
- Нажмите «Сохранить»
- Нажмите «Проверить подключение»
Если всё настроено правильно — статус сменится на «Подключено ✓». После этого в карточке каждой статьи появится кнопка «Опубликовать в WordPress».
Решение типичных проблем
Раздела «Application Passwords» нет в профиле
Причина: тема или плагин отключают эту функцию через фильтр. Проверьте файл functions.php вашей темы на наличие строки:
add_filter('wp_is_application_passwords_available', '__return_false');
Если она есть — удалите её или замените на __return_true.
Плагины безопасности блокируют REST API
| Плагин | Где включить |
|---|---|
| Wordfence | Wordfence → Firewall → All Options → REST API → Allow |
| Shield Security | Shield → Config → WordPress Tweaks → отключить «Disable WP REST API» |
| All In One WP Security | WP Security → Miscellaneous → выключить «Disable WP REST API for non-logged in users» |
| iThemes Security | Security → Settings → WordPress Tweaks → REST API → Default Access |
Сайт за htaccess Basic Auth
Если весь сайт защищён паролем через .htaccess (стандартная защита dev-среды), WordPress блокирует создание Application Passwords. Отключите Basic Auth для REST API endpoint:
<FilesMatch "^index\.php$"> AuthType None Require all granted </FilesMatch>