15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
28.10.2024

Изображения не отображаются на вашем сайте: причины, способы устранения и лучшие практики

Сломанные изображения — это не просто косметическая проблема: они незаметно подрывают доверие пользователей, увеличивают показатель отказов и посылают негативные сигналы поисковым системам. Независимо от того, ведёте ли вы блог на WordPress, интернет-магазин или пользовательское веб-приложение, сбои при загрузке изображений могут сделать ваш сайт непрофессиональным и привести к реальным потерям трафика и дохода.

Хорошая новость? Подавляющее большинство проблем с отображением изображений вызвано небольшим набором хорошо известных первопричин, и каждая из них устранима. Это исчерпывающее руководство охватывает все распространённые причины, по которым изображения не загружаются, предлагает конкретные решения для каждой из них и показывает, как предотвратить повторение этих проблем — всё в рамках современной среды хостинга на Linux.

Почему сломанные изображения — это серьёзная проблема

Прежде чем переходить к исправлениям, стоит понять всю серьёзность последствий сломанных изображений:

  • Ущерб для SEO: Поисковые роботы индексируют содержимое изображений. Отсутствующие изображения означают потерю сигналов alt-текста, нарушение структурированных данных и снижение оценки качества контента.
  • Core Web Vitals: Сбои при загрузке изображений могут нарушить показатели Largest Contentful Paint (LCP) и Cumulative Layout Shift (CLS) — оба напрямую влияют на ваши позиции в Google.
  • Пользовательский опыт: Значок сломанного изображения — это немедленный сигнал доверия о том, что с вашим сайтом что-то не так.
  • Коэффициент конверсии: Для сайтов электронной коммерции изображения товаров, которые не загружаются, могут напрямую убивать продажи.

Если вы используете правильно настроенную среду VPS Хостинга с хранилищем NVMe и root-доступом, у вас есть все инструменты для быстрой и окончательной диагностики и устранения этих проблем.

11 наиболее распространённых причин, по которым изображения не отображаются (и как исправить каждую из них)

1. Неверный путь к файлу или сломанные ссылки

Это самая частая причина сломанных изображений в интернете. Если атрибут src в вашем HTML или значение url() в вашем CSS указывает на место, где файл не существует, браузер просто не может получить изображение.

Как это выглядит:

<!-- Broken: wrong directory -->
<img src="/img/photo.jpg" alt="Team photo">

<!-- Correct: actual file lives in /images/ -->
<img src="/images/photo.jpg" alt="Team photo">

Как исправить:

  1. Откройте инструменты разработчика браузера (нажмите F12) и перейдите на вкладку Network.
  2. Отфильтруйте по «Img» и перезагрузите страницу. Любое изображение, возвращающее статус 404 Not Found, имеет сломанный путь.
  3. Сопоставьте путь в вашем HTML/CSS с реальной структурой файлов на сервере, используя FTP-клиент (например, FileZilla) или файловый менеджер панели управления хостингом.
  4. Исправьте путь в коде или переместите файл в ожидаемое место.

Совет профессионала: По возможности используйте корневые относительные пути (например, /images/photo.jpg) вместо относительных (например, ../images/photo.jpg). Корневые относительные пути однозначны вне зависимости от расположения страницы в структуре каталогов.

2. Проблемы с регистром символов на серверах Linux

Это ловушка, в которую попадают разработчики, создающие сайты на Windows или macOS (файловые системы без учёта регистра) и затем развёртывающие их на сервере Linux (который строго учитывает регистр).

На сервере Linux:

    Photo.jpg и photo.jpg — это два совершенно разных файла.
    Ссылка в HTML на photo.jpg вернёт 404, если реальный файл называется Photo.jpg.
    
    Как исправить:
    
    Установите соглашение об именовании и придерживайтесь его. Отраслевой стандарт — все строчные буквы, дефисы вместо пробелов (например, team-photo.jpg).
    Проверьте существующие файлы через SSH:
    
      find /var/www/html/images -name "*.jpg" | sort
    
    Переименуйте файлы, которые не соответствуют своим ссылкам. В Linux используйте:
    
      mv Photo.jpg photo.jpg
    
    Если вы используете WordPress, медиатека хранит имена файлов в том виде, в котором они были загружены — поэтому повторная загрузка с исправленными именами является наиболее чистым решением.
    
    3. Отсутствующие или удалённые файлы изображений
    Иногда изображения просто отсутствуют — они никогда не были загружены, были случайно удалены или потеряны при миграции сервера.
    Как диагностировать:
    Проверьте через SSH, существует ли файл:
    ls -la /var/www/html/images/photo.jpg
    Или используйте файловый менеджер панели управления для перехода в ожидаемый каталог.
    Как исправить:
    
    Повторно загрузите отсутствующее изображение через FTP, SFTP или панель управления хостингом.
    Если изображение было удалено и у вас нет локальной копии, проверьте резервные копии сервера. Хорошо настроенный план VPS Хостинга с автоматическим резервным копированием может стать настоящим спасением в этой ситуации.
    Для сайтов на WordPress проверьте, существует ли изображение в wp-content/uploads/, и при необходимости регенерируйте миниатюры с помощью плагина Regenerate Thumbnails.
    
    4. Неверные права доступа к файлам
    Права доступа к файлам в Linux контролируют, какие пользователи и процессы могут читать, записывать или выполнять файлы. Если права доступа к файлу изображения слишком ограничены, веб-сервер (обычно работающий как www-data или nginx) не сможет прочитать и отдать его.
    Правильные настройки прав доступа:
    
    
    
    
    Ресурс
    Рекомендуемые права
    
    
    
    
    Файлы
    644 (владелец: чтение/запись; группа и остальные: чтение)
    
    
    Каталоги
    755 (владелец: чтение/запись/выполнение; группа и остальные: чтение/выполнение)
    
    
    
    
    Как проверить и исправить права доступа через SSH:
    # Check current permissions
    ls -la /var/www/html/images/
    
    # Fix file permissions recursively
    find /var/www/html/images/ -type f -exec chmod 644 {} ;
    
    # Fix directory permissions recursively
    find /var/www/html/images/ -type d -exec chmod 755 {} ;
    Как исправить через FTP:
    Щёлкните правой кнопкой мыши на файле или папке в FTP-клиенте, выберите Права доступа к файлу и введите числовое значение (644 для файлов, 755 для каталогов).
    Предупреждение: Никогда не устанавливайте для файлов изображений права 777. Это предоставляет доступ на запись всем и является серьёзной уязвимостью безопасности.
    5. Неподдерживаемые или несовместимые форматы изображений
    Не все форматы изображений универсально поддерживаются во всех браузерах и устройствах. Распространённые проблемы совместимости включают:
    
    
    
    
    Формат
    Проблема
    
    
    
    
    WebP
    Не поддерживается в очень старых браузерах (IE, старый Safari)
    
    
    AVIF
    Ограниченная поддержка в старых версиях браузеров
    
    
    TIFF
    Как правило, не поддерживается в веб-браузерах
    
    
    SVG
    Могут возникать проблемы с отображением в некоторых устаревших средах
    
    
    HEIC
    Нативно не поддерживается в большинстве браузеров
    
    
    
    
    Как исправить:
    
    Используйте JPEG для фотографий, PNG для изображений, требующих прозрачности, и WebP как современную высокоэффективную альтернативу с запасным вариантом JPEG/PNG.
    Используйте HTML-элемент <picture> для подачи современных форматов с корректными запасными вариантами:
    
      <picture>
        <source srcset="/images/photo.webp" type="image/webp">
        <source srcset="/images/photo.jpg" type="image/jpeg">
        <img src="/images/photo.jpg" alt="Descriptive alt text">
      </picture>
    
    Конвертируйте изображения с помощью таких инструментов, как ImageMagick (доступен на вашем сервере), Squoosh или GIMP.
    
    6. Защита от хотлинкинга блокирует внешние изображения
    Если ваш сайт ссылается на изображения, размещённые на стороннем сервере (практика, известная как «хотлинкинг»), защита от хотлинкинга этого сервера может блокировать ваши запросы. Это распространённая и законная мера безопасности, предотвращающая кражу трафика.
    Как определить:
    URL изображения в вашем HTML указывает на другой домен (например, https://anotherdomain.com/images/photo.jpg). Изображение нормально загружается при прямом посещении этого домена, но отображается как сломанное или в виде заглушки на вашем сайте.
    Как исправить:
    Единственное надёжное решение — самостоятельно размещать изображения:
    
    Скачайте изображение на локальный компьютер.
    Загрузите его в каталог изображений на вашем сервере.
    Обновите атрибут src в вашем HTML, чтобы он указывал на вашу собственную копию.
    
    Это также повышает надёжность вашего сайта — вы больше не зависите от времени безотказной работы или политик третьей стороны.
    7. Проблемы с кешированием браузера
    Браузеры агрессивно кешируют статические ресурсы, такие как изображения, для повышения производительности. Однако это может вызвать проблемы, когда:
    
    Изображение было обновлено на сервере, но браузер по-прежнему отдаёт старую кешированную версию.
    Кешированная версия страницы ссылается на путь к изображению, которого больше не существует.
    
    Как исправить для конечных пользователей:
    Попросите пользователей выполнить принудительное обновление:
    
    Windows/Linux: Ctrl + Shift + R или Ctrl + F5
  • macOS: Cmd + Shift + R
  • Как исправить на уровне сервера (инвалидация кеша):

    Добавьте строку запроса с версией к URL изображений, чтобы браузеры воспринимали их как новые ресурсы при изменении контента:

    <img src="/images/banner.jpg?v=2" alt="Banner">

    Или настройте правильные заголовки Cache-Control в конфигурации вашего веб-сервера. Для Nginx:

    location ~* .(jpg|jpeg|png|gif|webp|svg)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    8. Медленный отклик сервера или проблемы с подключением

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

    Как диагностировать проблемы на стороне сервера:

    # Check server load
    top
    htop
    
    # Check disk I/O
    iostat -x 1
    
    # Check active connections
    ss -s

    Как исправить:

    • Оптимизируйте изображения: Сжимайте изображения перед загрузкой. Такие инструменты, как TinyPNG, ImageOptim и консольный инструмент jpegoptim, могут уменьшить размер файлов на 50–80% при минимальной видимой потере качества.
    • Реализуйте отложенную загрузку: Используйте нативный атрибут loading="lazy", чтобы изображения ниже видимой области загружались только при прокрутке к ним:
      <img src="/images/photo.jpg" alt="Description" loading="lazy">
    • Используйте CDN: Сеть доставки контента распределяет ваши изображения по глобальным граничным серверам, значительно снижая задержку для пользователей, находящихся далеко от вашего исходного сервера.
    • Обновите хостинг: Если ваш сервер постоянно перегружен, возможно, пришло время перейти на более мощный план. Выделенные серверы предлагают максимальные ресурсы и стабильную производительность для сайтов с высоким трафиком.

    9. Неверные URL изображений в CSS

    Фоновые изображения, определённые в CSS, являются частым источником проблем со сломанными изображениями, особенно потому, что CSS-файлы часто находятся в подкаталогах (например, /css/style.css), что влияет на разрешение относительных путей.

    Распространённая ошибка:

    /* CSS file is at /css/style.css */
    /* This looks for /css/images/background.jpg — probably wrong */
    .hero {
        background-image: url('images/background.jpg');
    }

    Правильный подход — использование корневых относительных путей:

    /* This always resolves from the site root, regardless of CSS file location */
    .hero {
        background-image: url('/images/background.jpg');
    }

    Как отлаживать фоновые изображения CSS:

    1. Откройте инструменты разработчика (F12).
    2. Выберите элемент с отсутствующим фоном.
    3. На панели Styles наведите курсор на URL background-image — браузер покажет, был ли ресурс найден или вернул ошибку.

    10. Смешанный контент (HTTP-изображения на HTTPS-сайтах)

    Если ваш сайт обслуживается по HTTPS, но какие-либо изображения ссылаются с использованием URL http://, современные браузеры заблокируют эти изображения как «смешанный контент» — мера безопасности для предотвращения атак типа «человек посередине».

    Как это выглядит в консоли:

    Mixed Content: The page at 'https://yoursite.com' was loaded over HTTPS,
    but requested an insecure image 'http://yoursite.com/images/photo.jpg'.
    This content should also be served over HTTPS.

    Как исправить:

    1. Обновите все URL изображений, заменив http:// на https://.
    2. Для сайтов на WordPress используйте плагин Better Search Replace, чтобы найти и заменить все вхождения http://yourdomain.com на https://yourdomain.com в базе данных.
    3. Добавьте следующее в раздел <head> в качестве страховки (это автоматически обновляет все HTTP-запросы до HTTPS):
       <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    1. Убедитесь, что у вас установлен действующий SSL-сертификат. Если вы ещё не сделали этого, SSL-сертификаты необходимы для любого современного сайта и защищают как ваших пользователей, так и ваши позиции в SEO.

    11. Проблемы с конфигурацией CDN

    Если вы используете сеть доставки контента для обслуживания изображений, неправильная конфигурация или сбой CDN могут привести к глобальному отказу изображений даже при полностью исправном исходном сервере.

    Как диагностировать проблемы CDN:

    • Временно обойдите CDN, обратившись к сайту по его прямому IP-адресу или отключив CDN в настройках DNS.
    • Если изображения загружаются корректно при обходе CDN, проблема специфична для CDN.
    • Проверьте страницу статуса вашего провайдера CDN на наличие сообщений об инцидентах.

    Как исправить:

    • Очистите кеш CDN — устаревшие кешированные версии удалённых или перемещённых изображений могут сохраняться на граничных узлах CDN.
    • Проверьте настройки источника CDN — убедитесь, что CDN указывает на правильный исходный сервер и порт.
    • Проверьте правила перезаписи URL в CDN — некоторые конфигурации CDN перезаписывают URL изображений таким образом, что это нарушает пути.
    • Если проблема не устраняется, рассмотрите возможность временного отключения CDN и обслуживания изображений напрямую с исходного сервера, пока вы расследуете причину.

    Пошаговый процесс устранения неполадок

    При обнаружении сломанных изображений следуйте этому систематическому процессу диагностики:

    Шаг 1: Откройте инструменты разработчика браузера

    Нажмите F12 (или щёлкните правой кнопкой мыши → Просмотр кода) и перейдите на вкладку Network. Отфильтруйте по Img. Перезагрузите страницу и найдите изображения, возвращающие коды статуса 404, 403 или 5xx.

    Шаг 2: Проверьте URL изображения напрямую

    Скопируйте URL изображения из атрибута src и вставьте его непосредственно в адресную строку браузера. Это немедленно покажет, доступен ли файл по этому пути.

    Шаг 3: Проверьте файл на стороне сервера

    Подключитесь к серверу по SSH и убедитесь, что файл существует, имеет правильные права доступа и находится в ожидаемом месте:

    ls -la /var/www/html/images/
    stat /var/www/html/images/photo.jpg

    Шаг 4: Проверьте протокол

    Убедитесь, что URL изображения использует https://, а не http://, если на вашем сайте включён SSL.

    Шаг 5: Протестируйте в нескольких браузерах

    Загрузите страницу в Chrome, Firefox, Safari и Edge. Если изображение загружается в одних браузерах, но не в других, проблема, скорее всего, связана с совместимостью форматов или проблемой кеша конкретного браузера.

    Шаг 6: Проверьте конфликты CMS или плагинов

    Если вы используете WordPress или другую CMS, деактивируйте плагины по одному, чтобы определить, какой из них может мешать доставке изображений. Переключение на стандартную тему (например, Twenty Twenty-Four) также может помочь изолировать проблемы, специфичные для темы.

    Шаг 7: Просмотрите журналы ошибок сервера

    Проверьте журнал ошибок вашего веб-сервера на наличие соответствующих записей:

    # Nginx
    tail -n 100 /var/log/nginx/error.log | grep -i "image|photo|jpg|png"
    
    # Apache
    tail -n 100 /var/log/apache2/error.log | grep -i "image|photo|jpg|png"

    Профилактические рекомендации для предотвращения будущих проблем с изображениями

    Реактивное исправление сломанных изображений — занятие утомительное. Вот как выстроить рабочий процесс, предотвращающий возникновение этих проблем с самого начала:

    РекомендацияПочему это важно
    Используйте единое соглашение об именовании в нижнем регистреУстраняет ошибки, связанные с регистром символов на серверах Linux
    Всегда размещайте изображения самостоятельноУстраняет проблемы с защитой от хотлинкинга и зависимостью от третьих сторон
    Сжимайте изображения перед загрузкойСокращает время загрузки и потребление ресурсов сервера
    Используйте корневые относительные пути в HTML и CSSПредотвращает ошибки разрешения путей при перемещении файлов
    Принудительно используйте HTTPS на всём сайтеУстраняет проблемы со смешанным контентом
    Реализуйте автоматическое резервное копированиеОбеспечивает восстановление после случайного удаления
    Используйте <picture> с запасными форматамиОбеспечивает совместимость со всеми браузерами
    Регулярно проверяйте с помощью инструмента проверки сломанных ссылокВыявляет проблемы до того, как их обнаружат пользователи
    Добавляйте описательные атрибуты alt ко всем изображениямУлучшает SEO и доступность

    Выбор правильного хостинга для надёжной доставки изображений

    Качество вашей хостинговой инфраструктуры играет значительную роль в производительности и надёжности доставки изображений. Ключевые факторы для рассмотрения:

    • Тип хранилища: NVMe SSD обеспечивают значительно более высокую скорость чтения по сравнению с традиционными HDD или SATA SSD, что напрямую влияет на скорость отдачи файлов изображений.
    • Ресурсы сервера: Достаточный объём CPU и RAM гарантирует, что ваш сервер сможет обрабатывать одновременные запросы изображений без ограничений.
    • Гарантии времени безотказной работы: Надёжный хостинг с гарантией 99,9%+ означает, что ваши изображения всегда доступны.
    • Root-доступ: Полный root-доступ на VPS позволяет точно настраивать параметры веб-сервера, права доступа к файлам и заголовки кеширования по мере необходимости.

    Для растущих сайтов со значительными библиотеками изображений VPS Хостинг предлагает идеальный баланс производительности, контроля и экономической эффективности. Для сайтов с высоким трафиком или приложений с большим количеством изображений, таких как фотопортфолио или крупные платформы электронной коммерции, Выделенные серверы обеспечивают выделенные ресурсы и максимальную пропускную способность.

    Если вы управляете несколькими сайтами или предпочитаете удобный интерфейс для управления файлами, Общий веб-хостинг с cPanel предоставляет интуитивный файловый менеджер, загрузку изображений в один клик и простое управление правами доступа — отличная отправная точка для небольших сайтов.

    Заключение

    Сломанные изображения — одна из наиболее заметных и разрушительных проблем, с которыми может столкнуться сайт, но вместе с тем одна из наиболее устранимых. Первопричины — неверные пути, ошибки прав доступа, несоответствия регистра символов, смешанный контент, несовместимость форматов и неправильные конфигурации CDN — все имеют чёткие, хорошо известные решения.

    Ключ — систематический подход: используйте инструменты разработчика браузера для выявления ошибки, отследите её до первопричины с помощью описанных выше диагностических шагов, примените соответствующее исправление, а затем внедрите профилактические меры, чтобы это не повторилось.

    При правильно настроенной хостинговой среде, надлежащей организации файлов, единых соглашениях об именовании и действующем SSL-сертификате ваши изображения будут загружаться надёжно, быстро и корректно — для каждого пользователя, на каждом устройстве, каждый раз.

    15%

    Сэкономьте 15% на всех хостинговых услугах

    Проверьте свои навыки и получите скидку на любой тарифный план

    Используйте код:

    Skills
    Начать