これは質問ですが、<!--nextpage-->
を使用して投稿を分離する出版社に対する重大な警告です。
私と一緒に。私は、検索エンジンで非常に高いランクにある、非常にトラフィックの多い複数著者プラットフォームを実行しています。 SEO関連の改善を行っているときに、いくつかのページに分かれている記事の最初のページのみがGoogleによってインデックス化されていることに気付きました。どうやってこれに気付きましたか?
誰かが記事のインデックスに登録されていないページのコンテンツを取得し、自分のサイトに投稿したからです。その結果、その特定のキーワードで私よりも上位にランク付けされました。実際、私のサイトの記事は最初のページを超えてインデックス化されていません。
私の質問は、記事が複数のページに分かれている場合、どのように検索エンジンに記事全体のインデックスを作成させるかということです。理想的には、訪問者が検索エンジンである(SEOにとって有害でない場合)記事全体ifを表示するスクリプトです。他の提案を歓迎します。
補足として、もし私がブラックハットのテクニックに興味があれば、私が利用できるコンテンツの宝庫があるでしょう。 考えるそれについて。
個人的な注意として、この問題はWordpressの将来のアップデートで対処する必要があります。
Update:ページ付けされたシーケンスのすべてのページに同じ正規URLを作成する方法を詳細に説明した同様の質問が尋ねられました- here 、ただし、投稿されて正しいとマークされた answer は質問に答えません。このソリューションは、ページ分割された投稿ではなく、ページングされたコメントに対してのみ機能します。
Update 2: this Googleのブログ投稿によると、rel=”next”
とrel=”prev”
を使用できますページ間の関係を示します。たとえば、これは<head>
onpage 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"を使用しないでください。
スクリプトソリューションの基本的な問題は以下のとおりです。rel_canonical
は有用なフィルタを提供しません。だから我々はその機能を交換する必要があります:
remove_action( 'wp_head', 'rel_canonical' );
add_action( 'wp_head', 't5_canonical_subpages' );
次の問題:$GLOBALS['numpages']
はsetup_postdata()
の前に空です。その関数を既にここで呼ぶことができますが、副作用があるかもしれません。
これは正しいprev/nextリンクを追加する解決策でもあります、そしてそれはadjacent_posts_rel_link_wp_head
によって引き起こされる衝突関係を防ぎます。後者のフックを無効にするには、優先度9より遅くないwp_head
にもフックします。
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' );
}
ちょっとFYI:YoastのWordPress SEOプラグインはrel = prevとrel = nextのメタデータをページの<head>
に追加することに気を配っています。あの男(Yoast)はすべてを考えている!