it-swarm.com.de

Erstellen Sie einen Google-Index für den gesamten Beitrag, wenn dieser in mehreren Seiten aufgeführt ist

Dies ist zwar eine Frage, aber auch eineernsthafte Warnungan Publisher, die ihre Posts mit <!--nextpage--> trennen.

Bloß mit mir. Ich betreibe eine stark frequentierte Plattform für mehrere Autoren, die bei Suchmaschinen einen sehr hohen Stellenwert einnimmt. Während ich SEO-bezogene Verbesserungen vornahm, bemerkte ich, dass nur die erste Seite eines Artikels, der in mehrere Seiten unterteilt ist, von Google indiziert wird. Wie habe ich das bemerkt?

Denn jemand hat den Inhalt der nicht indizierten Seiten eines Artikels aufgegriffen und auf seiner eigenen Website veröffentlicht. Dies führte dazu, dass sie bei diesem bestimmten Keyword einen höheren Rang einnahmen als ich. Lassen Sie mich das umformulieren. Der Artikel meiner Website wird nicht einmal über die erste Seite hinaus indexiert.

Meine Frage ist, wie kann ich die Suchmaschinen veranlassen, den gesamten Artikel zu indizieren, wenn er auf mehrere Seiten aufgeteilt ist? Idealerweise ist ein Skript, das den gesamten Artikelifdes Besuchers anzeigt, eine Suchmaschine (wenn dies für SEO nicht schädlich wäre). Andere Vorschläge sind willkommen.

Wenn ich mich mit Black Hat-Techniken auskennen würde, gäbe es eine Goldmine an Inhalten, die ich ausnutzen könnte. Denk darüber nach.

Persönlich sollte dieses Problem in einem zukünftigen Update von Wordpress behoben werden.

Update: Eine ähnliche Frage, die ausführlich beschreibt, wie Wordpress die gleiche kanonische URL für alle Seiten in einer paginierten Sequenz erstellt wurde hier gestellt, jedoch die Antwort das gepostet und als korrekt markiert wurde, beantwortet die Frage nicht. Diese Lösung funktioniert nur für paginierte Kommentare, nicht für paginierte Posts.

Update 2: Laut this Blogpost von Google können wir rel=”next” und rel=”prev” verwenden, um die Beziehung zwischen den Seiten anzuzeigen. Dies ist zum Beispiel das, was wir in <head> aufSeite 2aufnehmen sollten:

<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" />

Und es sollte kein rel = "prev" oder "next" geben, wenn keine Seite dahinter/davor steht.

8

Das Grundproblem für eine Skriptlösung ist: rel_canonical bietet keinen nützlichen Filter. Also müssen wir diese Funktion ersetzen:

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

Das nächste Problem: $GLOBALS['numpages'] ist vor setup_postdata() leer. Wir könnten diese Funktion bereits hier aufrufen, aber sie könnte Nebenwirkungen haben.

Hier ist eine Lösung, die auch korrekte vorherige/nächste Links hinzufügt und widersprüchliche Beziehungen verhindert, die durch adjacent_posts_rel_link_wp_head verursacht werden. Wir müssen uns zu spät als Priorität 9 in wp_head einhängen, um den letzteren Hook zu deaktivieren.

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
fuxia

Nur zu Ihrer Information: Das WordPress-SEO-Plugin von Yoast sorgt dafür, dass rel = prev und rel = next-Metadaten zum <head> der Seiten hinzugefügt werden. Dieser Typ (Yoast) denkt an alles!

0
Miriam Schwab