虽然这是一个问题,但也是一个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”。
最合适的回答,由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\' );
}