Сделайте так, чтобы Google индексировал весь пост, если он разделен на несколько страниц


Хотя это и вопрос, это также серьезное предупреждение издателям, которые разделяют свои публикации с помощью <!--nextpage-->.

Обнажись со мной. Я управляю платформой с большим количеством авторов, пользующейся большим спросом, которая занимает очень высокое место в поисковых системах. Делая улучшения, связанные с SEO, я заметил, что Google индексирует только первую страницу статьи, разделенную на несколько страниц. Как я это заметил?

Потому что кто-то схватил содержимое неиндексированные страницы статьи и разместили ее на своем собственном сайте. Это привело к тому, что они заняли более высокое место, чем я, по этому конкретному ключевому слову. На самом деле, позвольте мне перефразировать это, статья моего сайта даже не индексируется дальше первой страницы.

Мой вопрос в том, как я могу заставить поисковые системы индексировать всю статью, если она разделена на несколько страниц? В идеале, скрипт, который отображает полную статью , если посетитель является поисковой системой (если это не будет вредно для SEO). Другой предложения приветствуются.

Кстати, если бы я увлекался техниками Черной шляпы, там была бы золотая жила контента, которую я мог бы использовать. Подумай об этом.

И от себя лично отмечу, что эта проблема должна быть решена в будущем обновлении Wordpress.

Обновление: Аналогичный вопрос, в котором подробно описано, как Wordpress создает один и тот же канонический URL-адрес для всех страниц в последовательности страниц, был задан здесь, однако ответ , который был опубликован и помечен как правильный, не отвечает на вопрос. Это решение работает только для комментариев с разбиением на страницы, а не для сообщений с разбиением на страницы.

Обновление 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="предыдущий" или "следующий", если после/перед ним нет страницы.

Author: Community, 2013-02-19

2 answers

Основная проблема для решения скрипта заключается в следующем: 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' );
}
 2
Author: fuxia, 2013-02-26 14:59:48

Просто К вашему сведению: SEO-плагин WordPress от Yoast заботится о добавлении метаданных rel=prev и rel=next на <head> страниц. Этот парень (Йоаст) думает обо всем!

 0
Author: Miriam Schwab, 2013-02-28 12:05:23