如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面

 
如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面

当我开始写博客时,我没有遵循任何搜索引擎优化或优化规则或其他任何规则。我只是发表文章,仅此而已。这导致我积累了数千张未经优化的图片和数百篇很长很长的文章。

然后,我继续发表其他经过优化的长篇文章。因此,到目前为止,大约有 100 篇文章超过1500字,几十篇超过3500 字。还有很多超过 1000 字的文章。

如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面 1

这些文章中有不少是所谓的"常青"或永恒文章。由于这些文章比一般的快速文章更完整,它们通常是排名更好、获得更多持续有机流量的链接。好消息是,坏消息是它们也是加载效果最差的文章,而且由于谷歌按组处理 URL,因此它们的指标也很差。

出于种种原因,这个问题必须得到解决。

为什么要拆分长篇文章?

建议将长篇文章分成若干页面的主要原因是减轻负荷,尤其是那些有许多图片和/或视频以及其他元素的文章。

除了对 加载速度进行必要的改进外,它还能增加获得更好定位的机会,或至少保持这一定位,并通过降低跳出率来增加访客的停留时间和每次会话的访问页数。

不过,有几点需要注意。保留原始URL,以免创建新的URL,从而削弱搜索引擎优化效果,而且谷歌和其他浏览器会继续将内容作为一篇文章进行索引。

最重要的是在 中使用 rel="next" 和 rel="prev",向 Google 表明这是一个系列。

例如,在一篇分为三页的文章中,当访问第二页时,您必须在源代码中的标签找到以下内容

<link rel="canonical" href="https://jrmora.com/post-ejemplo/2/" />
<link rel="prev" href="https://jrmora.com/post-ejemplo/" />
<link rel="next" href="https://jrmora.com/post-ejemplo/3/" />

一些考虑因素

仅仅拆分文章或仅仅为了获得更多的页面浏览量是不够的。分页必须以自然导航为基础,具有一定的逻辑性。为此,您必须设身处地地为访问者着想,或者把自己的网站当成别人的网站来浏览。

每个子页面都应能作为一个独立的页面运行,或至少在其前面提供有关您将在该页面上找到的内容的信息,以及对新子页面的逻辑介绍。它必须有足够的内容,否则就会被认为内容贫乏或价值不大。Google 会对"内容贫乏"进行惩罚。

页码应清楚地表明文章分为几页。此外,至少在第一页加上目录也不是坏事。

虽然没有 "正式 "规定,但应避免分页过多。一般来说,1500/1800 字或以上的文章最好最多分为两到三页。

使用古腾堡原生分页块分割帖子

使用插件有不同的方法,但如你所知,我倾向于使用尽可能少的插件。

古腾堡的"分页符 "区块是最佳选择。

如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面 2

该功能块会在分割页面上添加 rel="next" 和 rel="prev" 以及 "canonical "标记,但如果要确保显示这些标记,可以在模板的functions.php文件中加入该功能。

// Añadir etiquetas rel="next" y rel="prev" para paginación con Bloque Page Break <!--nextpage--> o Salto de Página
function gp_add_pagination_rel_tags() {
    if (is_singular() && !is_front_page()) {
        global $page, $numpages, $post;
        
        // Solo si hay paginación
        if ($numpages > 1) {
            // Etiqueta rel="prev" (página anterior)
            if ($page > 1) {
                echo '<link rel="prev" href="' . get_permalink($post) . ($page - 1) . '/" />' . "\n";
            }
            
            // Etiqueta rel="next" (página siguiente)
            if ($page < $numpages) {
                echo '<link rel="next" href="' . get_permalink($post) . ($page + 1) . '/" />' . "\n";
            }
        }
    }
}
add_action('wp_head', 'gp_add_pagination_rel_tags');

设计问题

分页的外观和元素非常重要,因为它们能让访问者立即明白文章将在接下来的页面中继续,并知道文章由多少页组成。

2- "分页符 "块显示了一个非常基本的布局。看起来是这样的

如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面 3

而我们要找的是描述性更强、视觉效果更好的东西。

如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面 4

第一张图片将显示在第一页的底部,第二张图片将显示在随后的页面上。

如何在不影响搜索引擎优化的情况下将长篇 WordPress 帖子分割成页面 5

这种外观是通过 CSS 实现的,CSS 包含在您可以添加到 functions.php 的全部代码中。您可以根据自己的喜好进行布局,使其符合您博客的色调和设计。

代码

以下是我现在使用的代码。

*它根据我的需求进行了调整,你可以分离 CSS 并对其进行修改,添加或删除语言并更改文本。

虽然该代码旨在查找Polylang 使用的语言,但如果您不使用 Polylang,它仍然可以工作。不过,它只能在 URL 结构如下的情况下检测语言:tusitio.com/en/

// 1. Eliminar paginaciones automáticas
function remove_all_auto_pagination() {
    if (function_exists('generate_do_post_pagination')) {
        remove_action('generate_after_entry_content', 'generate_do_post_pagination');
    }
    add_filter('wp_link_pages', '__return_empty_string');
}
add_action('wp', 'remove_all_auto_pagination', 5);

// 2. Función auxiliar para números de página
function generate_pagination_numbers($total_pages, $current_page, $base_url) {
    $numbers_html = '';
    for ($i = 1; $i <= $total_pages; $i++) {
        $page_url = ($i == 1) ? $base_url : $base_url . user_trailingslashit($i);
        
        if ($i == $current_page) {
            $numbers_html .= '<span class="current-page">' . $i . '</span>';
        } else {
            $numbers_html .= '<a href="' . esc_url($page_url) . '" class="pagination-link">' . $i . '</a>';
        }
    }
    return $numbers_html;
}

// 3. Paginación multilingüe completa
add_filter('the_content', function($content) {
    global $numpages, $post;
    
    if (!is_singular() || $numpages <= 1) return $content;
    
    $wp_query = $GLOBALS['wp_query'];
    $current_page = $wp_query->get('page') ?: 1;
    $base_url = trailingslashit(get_permalink());
    
    // Sistema de detección de idioma
    $language = 'en';
    $available_langs = ['en','fr','de','es','pt','ru','it','sv','da','fi','nb','el','ar','tr','zh','id','ja','ko','uk','pl','cs','sk','lt','et','ro','hu','nl','bg'];
    
    if (function_exists('pll_current_language')) {
        $detected_lang = pll_current_language();
        $language = in_array($detected_lang, $available_langs) ? $detected_lang : 'en';
    } else {
        $current_uri = esc_url_raw($_SERVER['REQUEST_URI']);
        foreach ($available_langs as $lang) {
            if (strpos($current_uri, '/'.$lang.'/') !== false) {
                $language = $lang;
                break;
            }
        }
    }
    
    // Textos completos para 28 idiomas (solo cambios en finlandés y ruso)
    $localized_texts = [
        'en' => ['Continue reading this post →', 'Pages of this post →'],
        'fr' => ['Continuer à lire cet article →', 'Pages de ce billet →'],
        'de' => ['Diesen Beitrag weiter lesen →', 'Seiten dieses Beitrags →'],
        'es' => ['Seguir leyendo este post →', 'Páginas de este post →'],
        'pt' => ['Continuar a ler esta publicación →', 'Páginas deste post →'],
        'ru' => ['Продолжить чтение →', 'Страницы этого поста →'],
        'it' => ['Continua a leggere questo post →', 'Pagine di questo post →'],
        'sv' => ['Fortsätt läsa detta inlägg →', 'Sidor i detta inlägg →'],
        'da' => ['Læs videre på dette indlæg →', 'Sider i dette indlæg →'],
        'fi' => ['Jatka lukemista →', 'Artikkelin sivut →'],
        'nb' => ['Fortsett å lese denne artikkelen →', 'Artikkelens sider →'],
        'el' => ['Συνεχίστε την ανάγνωση →', 'Σελίδες άρθρου →'],
        'ar' => ['تابع القراءة ←', 'صفحات المقال ←'],
        'tr' => ['Okumaya devam edin →', 'Yazı sayfaları →'],
        'zh' => ['继续阅读 →', '文章分页 →'],
        'id' => ['Lanjutkan membaca →', 'Halaman artikel →'],
        'ja' => ['続きを読む →', 'ページ移動 →'],
        'ko' => ['더 보기 →', 'ページ →'],
        'uk' => ['Читати далі →', 'Сторінки статті →'],
        'pl' => ['Czytaj dalej →', 'Strony artykułu →'],
        'cs' => ['Pokračovat ve čtení →', 'Stránky článku →'],
        'sk' => ['Pokračovať v čítaní →', 'Stránky článku →'],
        'lt' => ['Skaityti toliau →', 'Straipsnio puslapiai →'],
        'et' => ['Jätka lugemist →', 'Artikli leheküljed →'],
        'ro' => ['Continuă lectura →', 'Paginile articolului →'],
        'hu' => ['Tovább olvasom →', 'Cikk oldalai →'],
        'nl' => ['Lees verder →', 'Artikelpagina\'s →'],
        'bg' => ['Прочети още →', 'Страници на статията →']
    ];
    
    $text_index = ($current_page == 1) ? 0 : 1;
    $pagination_text = $localized_texts[$language][$text_index] ?? $localized_texts['en'][$text_index];
    
    // Construcción de la paginación
    $pagination_html = '<div class="custom-pagination-container">';
    $pagination_html .= '<div class="pagination-content">';
    $pagination_html .= '<span class="pagination-text">' . esc_html($pagination_text) . '</span>';
    $pagination_html .= '<div class="pagination-numbers">';
    $pagination_html .= generate_pagination_numbers($numpages, $current_page, $base_url);
    $pagination_html .= '</div></div></div>';
    
    return ($current_page > 1) ? $pagination_html . $content . $pagination_html : $content . $pagination_html;
}, 15);

// 4. CSS optimizado (sin referencias a fuentes)
add_action('wp_head', function() {
    echo '<style>
    /* Estilos base */
    .custom-pagination-container {
        margin: 25px 0;
        padding: 15px 10px;
        background: #f9f9f9;
        border-top: 1px solid #eee;
        border-bottom: 1px solid #eee;
        box-sizing: border-box;
        width: 100%;
    }

    .pagination-content {
        display: flex;
        align-items: center;
        justify-content: center;
        max-width: 800px;
        margin: 0 auto;
    }

    .pagination-text {
        font-weight: 700;
        color: #333;
        margin-right: 10px;
        white-space: nowrap;
    }

    .pagination-numbers {
        display: inline-block;
    }

    .pagination-link,
    .current-page {
        display: inline-block;
        padding: 8px 12px;
        margin: 0 3px;
        border-radius: 4px;
        font-weight: 400;
        font-size: 15px;
        line-height: 1;
        box-sizing: border-box;
        transition: all 0.2s ease;
    }

    .current-page {
        background: #b40006;
        color: white;
        font-weight: 700;
    }

    .pagination-link {
        background: #f5f5f5;
        color: #333;
        text-decoration: none;
    }

    .pagination-link:hover {
        background-color: #e0e0e0;
        transform: translateY(-2px);
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }

    /* Estilos móvil */
    @media (max-width: 600px) {
        .pagination-content {
            flex-direction: row;
            flex-wrap: nowrap;
            overflow-x: auto;
            justify-content: flex-start;
            padding-bottom: 5px;
            -webkit-overflow-scrolling: touch;
        }
        
        .pagination-text {
            font-size: 14px;
            white-space: nowrap;
            flex-shrink: 0;
        }
        
        .pagination-numbers {
            display: flex;
            flex-wrap: nowrap;
            gap: 4px;
        }
        
        .pagination-link,
        .current-page {
            padding: 6px 10px;
            min-width: 32px;
            font-size: 14px;
            margin: 0;
            flex-shrink: 0;
        }
    }
    </style>';
});

Suscríbete para recibir los post en tu email sin publicidad

相关文章

Este blog se aloja en LucusHost

LucusHost, el mejor hosting