WordPress не загружает изображения в медиабиблиотеку — как исправить | Мастерская — статьи по WordPress и серверам | de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

WordPress не загружает изображения в медиабиблиотеку — как исправить

WordPress: ошибки и фиксы · 2026-07-17 · 5 мин чтения

WordPress не загружает изображения в медиабиблиотеку — обычно из-за неверных прав на папки wp-content/uploads или ограничений PHP на размер файла. В большинстве случаев достаточно поправить права через FTP или увеличить upload_max_filesize в php.ini. Если не помогло — проблема в плагине, теме или конфигурации PHP на хостинге.

Почему WordPress не загружает изображения

Проблема проявляется по-разному: загрузка обрывается на 50-99%, файла нет в медиабиблиотеке, или появляется ошибка «HTTP error», «Не удалось создать каталог» или «Не хватает памяти». Вот 4 основные причины.

  1. Неверные права на папку uploads — самая частая причина после переезда сайта или смены хостинга. PHP не может создать подпапку под год/месяц, и WordPress молча обрывает загрузку.
  2. Маленький лимит PHP на загрузку файлов — типовая настройка на дешёвом хостинге: upload_max_filesize = 2M, post_max_size = 8M. Даже скриншот 1.5 MB может не пройти из-за накладных расходов.
  3. Конфликт плагинов или темы — особенно после обновления. Плагины кэширования (WP Rocket, LiteSpeed Cache), оптимизации изображений (Smush, EWWW, ShortPixel) и некоторые конструкторы тем могут блокировать стандартную загрузку.
  4. Ошибки конфигурации PHPmemory_limit ниже 128M, отключены gd или imagick, неверный max_execution_time. Часто встречается на старых серверах после миграции.

Как исправить — пошаговая инструкция

Шаг 1. Проверьте права на папку uploads

Подключитесь по FTP (FileZilla или любой клиент). Перейдите в /wp-content/uploads/.

Папка uploads должна иметь права 755 (drwxr-xr-x). Если видите 700 или 750 — проблема в этом.

В FileZilla: правый клик на папке uploads → File permissions → 755 → Recurse into subdirectories → Apply.

Если хостинг Beget с CloudLinux — уточните у поддержки: на некоторых тарифах включён fs_protect, который сбрасывает права. Решение — добавить правило в .htaccess или включить PHP-FPM в панели управления.

Важно! Не ставьте 777 — это дыра в безопасности. На некоторых хостингах (Timeweb, Reg.ru) 777 автоматически сбрасывается демоном безопасности.

Шаг 2. Увеличьте лимиты PHP

Создайте в корне сайта файл php.ini со следующим содержимым (или добавьте в существующий):

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300

На Beget и Timeweb свой php.ini не работает — нужно править через панель хостинга. На Beget: Сайты → Управление PHP → Версия PHP → Настройки PHP. На Timeweb: Хостинг → Управление сайтами → PHP-редактор. На Reg.ru: хостинг → PHP-настройки → Редактор php.ini.

Шаг 3. Настройка через .htaccess (альтернатива)

Если php.ini недоступен, добавьте в .htaccess в корне сайта:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value memory_limit 256M
php_value max_execution_time 300

Это работает, если хостинг разрешает переопределение PHP-директив через .htaccess. На Reg.ru работает, на Beget — только для PHP-FPM режима.

Шаг 4. Отключите плагины для проверки

Временно деактивируйте все плагины оптимизации изображений: Smush, ShortPixel, EWWW Image Optimizer, Imagify, WebP Express. Попробуйте загрузить картинку снова.

Если заработало — включайте плагины по одному, пока не найдёте виновника. Чаще всего проблема в плагинах кэширования: WP Rocket и LiteSpeed Cache.

Плагины кэширования блокируют загрузку, потому что пытаются принудительно очистить кэш после добавления файла. На WP Rocket: Settings → Cache → очистите кэш и включите «Separate cache for mobile». На LiteSpeed: Cache → Purge All — и настройте Purge Policy.

Шаг 5. Временно переключитесь на стандартную тему

Активируйте тему Twenty Twenty-Four (или другую стандартную). Если изображения начали загружаться — проблема в вашей теме. Обратитесь к разработчику или проверьте functions.php на наличие кастомных хуков на загрузку.

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

Проверка загрузки
  1. Медиафайлы → Добавить новый. Выберите JPEG-файл 2-3 MB. Если загрузился без ошибки — проблема решена.
  2. Проверьте права на только что созданную подпапку: /wp-content/uploads/2026/07/. Права должны быть 755.
  3. Проверьте PHP-лимиты: Админка → Инструменты → Здоровье сайта → Информация → Сервер. Значения upload_max_filesize и post_max_size должны совпадать с теми, что вы задали.
  4. Загрузите PNG 5 MB и WebP 1 MB — проверьте все популярные форматы.

Когда эти способы не сработают

Если загрузка всё равно не работает после всех шагов — проверьте три дополнительных сценария.

Сценарий 1: Beget + CloudLinux + fs_protect. Включите PHP-FPM в панели Beget (Сайты → Управление → Режим PHP → PHP-FPM). После этого права на uploads можно не менять — PHP работает от вашего пользователя, а не от nobody.

Сценарий 2: Cloudflare проксирует загрузку. Cloudflare по умолчанию ограничивает размер запроса 100 MB, но для очень больших файлов (>50 MB) может обрывать соединение. Временно включите Development Mode или создайте Page Rule для example.com/wp-admin/* с отключением прокси (DNS only).

Сценарий 3: Закончилось место на диске. Проверьте через панель хостинга: Бегет → Диски, Timeweb → Файловый менеджер → статистика. Если места нет — удалите старые бэкапы или увеличьте тариф.

Сценарий 4: PHP модули не установлены. Без gd или imagick WordPress не может создать превью. Проверьте: Админка → Здоровье сайта. Если видите предупреждение про GD library — включите в панели хостинга или напишите в поддержку.

Частые вопросы

Почему WordPress пишет «HTTP error» при загрузке изображения?
HTTP error — общий ответ WordPress, когда не удалось обработать запрос. Причины: маленький upload_max_filesize, кончилась память PHP (memory_limit), проблемы с правами на папку uploads, или конфликт плагинов. Начните с проверки прав и увеличения PHP-лимитов — это решает 80% случаев.
Что делать, если изображение загружается, но в медиабиблиотеке показывает битую миниатюру?
Битая миниатюра — проблема с генерацией превью. Установите или включите PHP-модуль Imagick (рекомендуется) или GD. После этого установите плагин Regenerate Thumbnails и перегенерируйте все превью. На Beget Imagick включается в разделе PHP-расширения в панели.
Можно ли загружать изображения по FTP и добавить их в медиабиблиотеку?
Да, загрузите файлы в /wp-content/uploads/2026/07/ через FTP. Затем установите плагин Media from FTP (или Add From Server) и просканируйте папку — плагин добавит файлы в медиабиблиотеку с генерацией всех размеров превью. Удобно при массовой загрузке или проблемах с загрузчиком WordPress.
Почему WordPress не принимает WebP, если я его загружаю?
WordPress поддерживает WebP начиная с версии 5.8. Если не загружается — проверьте, поддерживает ли ваш хостинг WebP: нужен PHP-модуль GD 2.2.5+ или Imagick 7.0.10+. На старых тарифах Beget и Timeweb GD устаревший — запросите обновление через поддержку. Либо конвертируйте через плагины: WebP Express или ShortPixel.

Не можете загрузить изображения? Нужна помощь с настройкой WordPress?

Разберу проблему за 1 час — права, PHP, плагины, сервер. Работаю удалённо, чек по факту.

Написать в Написать в

Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

Исправлю ошибки WordPress, восстановлю сайт.

от 5.400 ₽/мес

Подробнее
Техническая оптимизация

Техническая оптимизация

Ускорю сайт, настрою кэш, устраню узкие места.

7.200

Подробнее

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

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

Чистка от вирусов WordPress

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

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

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия

Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев

Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич

Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов

Анастасия Виричева

Денис мастер своего дела, рекомендую его как специалиста.
Понимает, что нужно сделать и справляется с поставленной задачей в короткое время.

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева

Владимир

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

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир

Ксения Петровская

Денис оперативно ответил и помог решить проблему, которую я даже описать нормально не могла)) Мы сами что-то накрутили с корпоративной почтой — письма то уходили, то нет, в общем всё сломали.

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская

Александр Кривуля

Заказал у Дениса доработать сайт на WordPress. При этом трудно себе представлял, что сам хочу. Благодаря профессионализму Дениса и его умению всё грамотно и просто объяснять, предлагать разные варианты решений — цель была достигнута.

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля

Кондитер мания

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

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее