Решает LCP на мобильном телефоне для избранного изображения (GeneratePress)

GeneratePress - это очень легкая и относительно хорошая тема WordPress для SEO, обеспечивающая низкое потребление ресурсов и очень гибкий код. Тем не менее, он дал мне головные боли за оптимизацию LCP на мобильном телефоне для избранного изображения. Это представительное изображение генерирует очень большой LCP (самая большая краска) в PageSpeed ​​Insights, особенно если в блоге у вас есть Священные Писания Java (Adsense, Manger и т. Д.), Которые могут заблокировать рендеринг.

Тем не менее, мне удалось преодолеть эту проблему и преуспеть в оптимизации фиксированного изображения, и, наконец, получить 100% показатель производительности на мобильных и настольных компьютерах.

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

1. Отключить любую систему кеша во время изменений и тестирования. Он отключает кэш как на уровне сервера (FASTCGI, REDIS и т. Д.) И в модулях (WP Rocket, WP Super Cache и т. Д.).

2. Установите и активируйте модуль Регенерируйте миниатюры или любой другой модуль, способный регенерировать ваши изображения. Даже если он, кажется, не был обновлен в течение некоторого времени, я использовал его.

3. Убедитесь, что вы знаете, каковы точные размеры на странице (на рабочем столе) репрезентативного изображения (изображение). Чтобы проще узнать, вы можете использовать инструмент экрана на Mac (или Windows) и выбрать точно область, где находится изображение. На краю отбора вы покажете вам, какая ширина в его высоте.

4. Убедитесь, что все оригинальные изображения имеют одинаковый размер, особенно ширина, когда вы их загружаете.

В моем примере у меня есть изображение до максимального размера 1200 × 677 пикселей.

5. Перейдите в настройки носителя WordPress (настройки - Media) и устанавливает конкретные размеры вашего блога (полный размер, средний размер, миниатюра).

В моем случае у меня есть: 1200 × 677 (большой), 745 × 420 (в среднем), 510 × 288 (миниатюр).

6. Откройте файл functions.php темы и добавьте следующий код:

// START Fix LCP Featured Image

// Define dimensions for featured images
add_image_size('desktop-featured', 745, 420, true); // Standard desktop size
add_image_size('mobile-featured', 400, 226, true); // Standard mobile size
add_image_size('mobile-featured-2x', 800, 451, true); // Retina size (2x)

// Set the image size for mobile and desktop
add_filter('generate_page_header_default_size', function($size) {
    if (is_single()) {
        return wp_is_mobile() ? 'mobile-featured' : 'desktop-featured';
    }
    return $size;
}, 20);

// Adjust image attributes (srcset, sizes, width, height)
add_filter('wp_get_attachment_image_attributes', function($attr, $attachment, $size) {
    if (has_post_thumbnail() && $attachment->ID === get_post_thumbnail_id() && is_single()) {
        if (wp_is_mobile()) {
            // Images for mobile (1x and 2x)
            $image1x = wp_get_attachment_image_src($attachment->ID, 'mobile-featured');
            $image2x = wp_get_attachment_image_src($attachment->ID, 'mobile-featured-2x');

            if ($image1x) {
                $attr['src'] = $image1x[0]; // Force src to 400x226
                $attr['width'] = $image1x[1];
                $attr['height'] = $image1x[2];
            }

            // Set srcset for high-density displays
            $srcset = [];
            if ($image1x) $srcset[] = $image1x[0] . ' 400w';
            if ($image2x) $srcset[] = $image2x[0] . ' 800w';

            $attr['srcset'] = implode(', ', $srcset);
            $attr['sizes'] = '(max-width: 400px) 100vw, 400px';

        } else {
            // Standard image for desktop
            $image = wp_get_attachment_image_src($attachment->ID, 'desktop-featured');

            if ($image) {
                $attr['src'] = $image[0]; // Force src to 745x420
                $attr['width'] = $image[1];
                $attr['height'] = $image[2];

                // Set srcset for desktop (without Retina)
                $srcset = [];
                if ($image) $srcset[] = $image[0] . ' 745w';

                $attr['srcset'] = implode(', ', $srcset);
                $attr['sizes'] = '(max-width: 745px) 100vw, 745px';
            }
        }
    }
    return $attr;
}, 20, 3);

// Remove the link around the image (if necessary)
add_filter('generate_featured_image_output', function($output) {
    if (is_single()) {
        $output = preg_replace('/<a href="[^"]*">/', '', $output);
        $output = str_replace('</a>', '', $output);
    }
    return $output;
});

// END Fix LCP Featured Image

Изменять "add_image_size('desktop-featured', 745, 420, true);«С размерами вашего репрезентативного изображения, полученного из точки 4 .. также отрегулируйте остальную часть кода, где появляются эти измерения. Например».$attr['sizes'] = '(max-width: 745px) 100vw, 745px';«.

Сохраняет изменения.

7. Перейдите к инструментам в WordPress (инструменты) - регенерируйте миниатюры.

Внизу должны появиться ваши новые значения, добавленные выше:

  • настольный фиксатор:745 × 420 пикселей (вырезанный в соответствии с подходящим)
  • мобильный характер:400 × 226 пикселей (вырезанный по подходящему)
  • мобильный фигура-2X:800 × 451 пикселей (вырезанный по подходящему)

Если эти значения появляются, выберите «Регенерировать миниатюры» только для представительных изображений (только с изображениями).

8. Перейдите к настройкам темы и выберите средний размер для «Показанный изображение» (GeneratePress).

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

Вам просто нужно проверить в Chrome (маяк) и на PageSpeed ​​Insights Чтобы убедиться, что все работает так, как вы хотите, и большой LCP был удален.

В качестве дополнения вы можете добавить координаты для экранов на рабочем столе Retina, начиная с "add_image_size('desktop-featured', 1490, 840, true);"И завершение функций в коде.

Связанный: Links do not have a discernible name. Lighthouse Fix

Если вы не решаете проблему LCP на Mobile для избранного изображения (особенно для GeneratePress), оставьте мне комментарии здесь.

Энтузиаст технологий, мне нравится писать учебные пособия и полезные руководства для операционных систем, аппаратных систем, языков программирования и мобильных телефонов (iOS, Android). Я люблю экспериментировать и открывать для себя новые методы SEO и стратегии веб-оптимизации.

Дом » Умный учебник » Решает LCP на мобильном телефоне для избранного изображения (GeneratePress)
Оставить комментарий