如果帖子被分成几个页面,则让Google对整个帖子进行索引

时间:2013-02-19 作者:Christine Cooper

虽然这是一个问题,但也是一个serious warning 对于使用<!--nextpage-->.

与我赤裸。我经营着一个流量很大的多作者平台,在搜索引擎中排名很高。在进行与SEO相关的改进时,我注意到只有一篇文章的第一页被分为几个页面,而谷歌正在为其编制索引。我是怎么注意到这一点的?

因为有人抓取了一篇文章中未索引页面的内容,并将其发布在自己的网站上。这导致他们在那个特定关键字上的排名高于我。事实上,让我重新表述一下,我的网站的文章甚至在第一页之外都没有索引。

我的问题是,如果将整篇文章分为几页,我如何让搜索引擎索引整篇文章?理想情况下,显示全文的脚本if 访问者是一个搜索引擎(如果这对SEO无害的话)。欢迎提出其他建议。

另一方面,如果我对黑帽技术感兴趣,那么我可以利用那里的内容金矿<想想看。

就个人而言,这个问题应该在Wordpress的未来更新中解决。

Update: 还提出了一个类似的问题,详细说明了Wordpress如何为分页序列中的所有页面创建相同的规范URLhere, 然而answer 张贴并标记为正确的内容无法回答问题。该解决方案仅适用于分页评论,而不适用于分页帖子。

Update 2: 根据this 谷歌的博客文章,我们可以使用rel=”next”rel=”prev” 指示页面之间的关系。例如,这是我们应该包括在<head> 在…上page 2:

<link rel="canonical" href="http://domain.com/article/2" />
<link rel="prev" href="http://domain.com/article/1" />
<link rel="next" href="http://domain.com/article/3" />
如果前后没有页面,则不应该有rel=“prev”或“next”。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

脚本解决方案的基本问题是:rel_canonical 不提供任何有用的筛选器。因此,我们必须替换该函数:

remove_action( \'wp_head\', \'rel_canonical\' );
add_action( \'wp_head\', \'t5_canonical_subpages\' );
下一个问题:$GLOBALS[\'numpages\'] 之前为空setup_postdata(). 我们可以在这里调用该函数,但它可能有副作用。

这里有一个解决方案,它也添加了正确的上一个/下一个链接,并且可以防止由adjacent_posts_rel_link_wp_head. 我们太投入了wp_head 不迟于优先级9停用后一个挂钩。

remove_action( \'wp_head\', \'rel_canonical\' );
add_action(    \'wp_head\', \'t5_canonical_subpages\', 9 );

/**
 * Extend version of the native function rel_canonical()
 *
 * @wp-hook wp_head
 * @return  void
 */
function t5_canonical_subpages()
{
    if ( ! is_singular() )
        return;

    if ( ! $id = $GLOBALS[\'wp_the_query\']->get_queried_object_id() )
        return;

    $post = get_post( $id );
    setup_postdata( $post );

    # let WordPress do all the work
    if ( empty ( $GLOBALS[\'page\'] ) )
        return rel_canonical();

    $permalink = get_permalink( $id );
    $canonical = t5_page_permalink( $permalink, $GLOBALS[\'page\'] );
    echo "<link rel=\'canonical\' href=\'$canonical\' />";

    # next and prev links
    if ( 1 < $GLOBALS[\'page\'] )
    {
        $prev = t5_page_permalink( $permalink, $GLOBALS[\'page\'] - 1 );
        print "<link rel=\'prev\' href=\'$prev\' />";
    }

    if ( isset ( $GLOBALS[\'numpages\'] ) && $GLOBALS[\'page\'] < $GLOBALS[\'numpages\'] )
    {
        $next = t5_page_permalink( $permalink, $GLOBALS[\'page\'] + 1 );
        print "<link rel=\'next\' href=\'$next\' />";
    }

    # avoid conflicting pev/next links
    remove_action( \'wp_head\', \'adjacent_posts_rel_link_wp_head\' );
}

/**
 * Helper to get correct permalinks for sub-pages.
 *
 * @param  string $permalink
 * @param  int    $page
 * @return string
 */
function t5_page_permalink( $permalink, $page )
{
    if ( 1 == $page )
        return $permalink;

    # no pretty permalinks
    if ( \'\' === get_option( \'permalink_structure\' ) )
        return add_query_arg( \'page\', $page, $permalink );

    return $permalink . user_trailingslashit( $page, \'single_paged\' );
}

SO网友:Miriam Schwab

仅供参考:Yoast的WordPress SEO插件负责向<head> 共页。那个家伙什么都想!

结束