Шаг 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.

  1. Зайдите в WP Admin (https://ваш-сайт.ru/wp-admin)
  2. В левом меню: Пользователи → Профиль (Users → Profile)
  3. Прокрутите страницу вниз до раздела «Application Passwords»
  4. В поле «New Application Password Name» введите: SeoSmith
  5. Нажмите кнопку «Add New Application Password»
  6. Скопируйте появившийся пароль вида 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 FoundREST 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 сразу после неё.

Где найти .htaccess

Файл находится в корневой папке 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

  1. Откройте SeoSmith и перейдите в нужный проект
  2. В левом меню выберите Интеграции
  3. В карточке WordPress заполните поля:
    • URL сайтаhttps://ваш-сайт.ru (без слеша в конце, обязательно https)
    • Логин WordPress — ваш username (не email), тот что используете для входа в WP Admin
    • Application Password — пароль из шага 2 (пробелы можно оставить)
  4. Нажмите «Сохранить»
  5. Нажмите «Проверить подключение»

Если всё настроено правильно — статус сменится на «Подключено ✓». После этого в карточке каждой статьи появится кнопка «Опубликовать в WordPress».

Решение типичных проблем

Раздела «Application Passwords» нет в профиле

Причина: тема или плагин отключают эту функцию через фильтр. Проверьте файл functions.php вашей темы на наличие строки:

add_filter('wp_is_application_passwords_available', '__return_false');

Если она есть — удалите её или замените на __return_true.

Плагины безопасности блокируют REST API

ПлагинГде включить
WordfenceWordfence → Firewall → All Options → REST API → Allow
Shield SecurityShield → Config → WordPress Tweaks → отключить «Disable WP REST API»
All In One WP SecurityWP Security → Miscellaneous → выключить «Disable WP REST API for non-logged in users»
iThemes SecuritySecurity → 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>