複数のページに分かれている場合は、Googleが投稿全体をインデックスに登録するようにします


8

これは問題ですが、を使用して投稿を分離するパブリッシャーへの重大な警告でもあり<!--nextpage-->ます。

私と一緒に裸。私は、検索エンジンで非常に上位にランク付けされる、トラフィックの多い複数の作成者プラットフォームを実行しています。SEO関連の改善を行っている間に、記事の最初のページだけがGoogleによってインデックスに登録されていることに気付きました。どうやってこれに気づきましたか?

誰かが記事の索引付けされていないページのコンテンツをつかんで、自分のサイトに投稿したからです。その結果、特定のキーワードで私よりも上位にランク付けされました。実際、言い換えると、私のサイトの記事は最初のページを超えて索引付けされていません。

私の質問は、記事が複数のページに分かれている場合、検索エンジンで記事全体をインデックスに登録するにはどうすればよいですか?理想的には、記事全文を表示するスクリプトならば、訪問者が検索エンジンである(つまり、SEOのために有害ではない場合)。その他の提案は大歓迎です。

余談ですが、もし私がブラックハットのテクニックに興味を持っていたら、そこに私が利用できるコンテンツの金山があります。それについて考えてください

個人的な注意として、この問題はWordpressの将来のアップデートで対処する必要があります。

アップデート:どのように詳細に同様の質問ページ分割シーケンス内のすべてのページはのためのWordpressのは、同じ正規のURLを作成するよう求められたここで、しかし答えは正しいの質問に答えていないとして掲載してマークされました。このソリューションはページ付きのコメントに対してのみ機能し、ページ付けされた投稿に対しては機能しません。

Update 2:Googleによるこのブログ投稿によると、とを使用rel=”next”rel=”prev”てページ間の関係を示すことができます。だから、例えば、これは我々がに含めるべきである<head>上の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"があってはなりません。


答えを見つけたようです。そのようにフォーマットして受け入れますか?多くの人がこれから恩恵を受けると思います。
Tomas Buteler 2013

@tbuteler私は、各ページ番号付きのページに独自の正規URLを追加することで解決策たもののおよび含めることがlink rel="prev"/"next"必要なとき、私はそれが書かれたのスクリプトを表示できません。しかし、toschoはチャットで彼が何かを持っているかもしれないと述べました。このスペースの更新情報
Christine Cooper

お問い合わせの質問に対する回答のコードを更新しました。私はそれをテストしました、そしてそれはあなたの問題を解決します。この欠陥を見つけるのに良い仕事を!
シア

回答:


2

スクリプトソリューションの基本的な問題は、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です。これは、によって引き起こされる競合関係を防ぎます。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' );
}

台本ありがとうございました。私の質問でlink rel="prev"/rel="next"述べたように、機能を追加する時間はUpdate 2ありますか?
クリスティンクーパー

それには、setup_postdata()ページのレンダリング中にかなり後で発生するはずの何かが必要です。
fuxia

このインデックスの問題を解決するには「リンクリリース」が必要ですが、別の質問を開く必要がありますか?
クリスティンクーパー

@ChristineCooper私は今それを追加しました。それが引き起こすかもしれない副作用がわからない。
fuxia

1
これをしばらくテストして、Googleがどのように投稿にインデックスを付けるかを確認しました。このスクリプトが完全に機能することを確認できてうれしいです。よくやった!
クリスティーンクーパー

0

参考までに:YoastのWordPress SEOプラグインは、rel = prevとrel = nextメタデータを<head>ページのに追加します。その男(ヨースト)はすべてを考えています!


1
-1私はこのことを認識していますが、その機能のごく一部のために大規模なSEOプラグインをインストールするつもりはありません。
クリスティンクーパー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.