Facebook-Zähler stehen nach https-Umstellung auf 0

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 6 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet ...

Spätestens seit Google ein SSL-Zertifikat als positives Ranking-Signal erwähnt hat und die Browser anfangen unverschlüsselte Websites, die ein Formular beinhalten, mit einem Warnhinweis zu versehen ist der Trend deutlich zu spüren. Alle wollen ihre Website auf https umstellen. Doch dann kommt die Ernüchterung: Alle Social-Media-Zähler stehen auf Null. Wieso und wie kann ich das ändern?

Kommen wir erst zu dem Wieso? Facebook, aber auch Pinterest und noch viele weitere Soziale Netzwerke nutzen die URL als einzigartige Kennung für den Zähler. Ändert sich daran etwas, so muss es sich um eine neue Webseite handeln, folglich muss der Zähler wieder bei Null starten. Leider gilt das auch für Protokolländerungen. http oder https können einfach auf völlig verschiedene Websites geführt werden, auch wenn das praktisch sicher kaum gemacht wird.

Nachdem wir das Wieso kennen, ist es deutlich leichter die nächste Frage zu beantworten. Wie können wir das ändern?

Da der Zähler für die alte http-Variante geführt wurde, müssen Facebook und Co. mitteilen, dass diese http-Variante immer noch genutzt werden soll.

Dafür kann zum Beispiel der Canonical Tag auf die http-Variante umgestellt werden:

<link rel="canonical" href="http://example.de/" />

All-in-One-SEO-Pack hat dafür einen eigenen Filter:

function change_canonical_url_protocol(){
 return 'http';
}
add_filter('aioseop_canonical_protocol', 'change_canonical_url_protocol');

Yoast-Nutzer finden dafür auf der Plugin-Website ein Snippet:

/* Enforce HTTP Open Graph URLs in Yoast SEO
 * Credit: stodorovic https://github.com/stodorovic
 * Last Tested: Feb 06 2017 using Yoast SEO 4.2.1 on WordPress 4.7.2
 */
 
add_filter( 'wpseo_opengraph_url', 'my_opengraph_url' );
function my_opengraph_url( $url ) {
        return str_replace( 'https://', 'http://', $url );
}

Auch The SEO Framework hat für die Protokoll-Umstellung der Canonical-URL einen Filter:

add_filter( 'the_seo_framework_canonical_force_scheme', 'my_tsf_canonical_scheme' );
function my_tsf_canonical_scheme() {
     
    /** 
     * Scheme options:
     * 
     * (string) 'https'     :   Force https         : http://example.com/ -> https://example.com         
     * (bool) true          :   Force https         : http://example.com/ -> https://example.com
     * (bool) false         :   Force http          : https://example.com -> http://example.com
     * (string) 'http'      :   Force http          : https://example.com/ -> http://example.com
     * (string) 'relative'  :   Scheme relative : https://example.com -> //example.com/ / http://example.com -> //example.com
     * (void) null          :   Do nothing          : https://example.com -> https://example.com / http://example.com/ -> http://example.com
     */
    $scheme = 'http';
//  $scheme = true;
//  $scheme = null; // Default behaviour.
//  $scheme = ''; // Will be treated as false
     
    return $scheme;
}

wpSEO hat als einziges SEO-Plugin eine simple Checkbox für die Umstellung auf http der Canonical-URL, die erst dann angezeigt wird, wenn sie Sinn macht. Nämlich dann, wenn die Site unter https läuft. Ironie des Schicksals: Trotz der einfachsten Umsetzung im Plugin ist das Feature so knapp technisch erklärt, dass niemand weiß, warum er es anhaken sollte.

Leider reicht nur diese Umstellung alleine nicht aus. Zumindest dann nicht, wenn noch Open-Graph-Tags eingebunden werden, die wieder auf die https-Version zeigen. Auch diese müssen entsprechend umgestellt werden. Beispielhaft gezeigt für das Jetpack-Plugin:

function jeherve_og_http( $tags ) {
        $tags['og:url'] = str_replace( 'https://', 'http://', $tags['og:url'] );

        return $tags;
}
add_filter( 'jetpack_open_graph_tags', 'jeherve_og_http' );

In meinem Projekt fand die Ausgabe der Open-Graph-Tags durch Jetpack statt, daher half mir der oben gezeigte Filter. Inwieweit die SEO-Plugins nach der Canonical-Umstellung auch die eigene OG:URL-Angabe anpassen, habe ich daher nicht getestet. Filter oder Dokumentation habe ich dazu zumindest nicht gefunden. Nur beide Änderungen zusammen haben mir jedoch geholfen die Anzeige für den Counter wieder zurück zu holen.

Der wichtigste Begleiter ist dabei übrigens der Facebook-Debugger. Er zeigt genau an, was ausgelesen wurde und wie das ausgelesene dann interpretiert wird.

Ich fand es erstaunlich wie schlecht dieses wichtige Feature dokumentiert und umgesetzt ist bei den SEO-Plugins. Heutzutage werden so viele Websites auf https umgestellt und ein Großteil hat dabei Facebook-Like-Counts zu verlieren. Doch die SEO-Plugins warnen nicht und dokumentieren schlecht bzw. unzureichend.


Hinweis: Geholfen hat mir vor allem dieser Artikel, den ich bei meiner Recherche zu dem Thema gefunden haben:
https://cognitiveseo.com/blog/13431/recover-facebook-shares-https/

16 Antworten auf Facebook-Zähler stehen nach https-Umstellung auf 0

  1. Danke für diesen hilfreichen Artikel! Einigen meiner Kunden war die Like-Zahl doch sehr wichtig und sie litten sehr unter der „Nullung“ ihrer Likes nach der Umstellung auf HTTPS. Ich kann vielleicht nun einige von ihrem Leiden erlösen oder sie ggf. sogar davor bewahren …

  2. Hallo,
    mir sind die auch wichtig, leider verstehe ich die Vorgehensweise nicht.
    Ich habe Seo Yoast im Einsatz und weiß nicht, was ich machen soll.
    Wenn mir das bitte jemand näher erklären würde, das wäre echt dufte!

    Mit freundlichen Grüßen

  3. Hi Torsten,

    erst einmal danke für deinen Artikel! Ich bin jedoch eher unerfahren was Programmierung angeht und wäre über etwas zusätzliche Hilfe wirklich dankbar.

    WordPress Version 4.9.6
    Yoast SEO Version 7.7.2

    Mit Bezug auf das dargestellte Snippet für Yost, muss ich leider erst einmal fragen, wo man dies am besten integrieren würde? Über die functions.php? Wobei wäre es bei diesem Code nicht auch so, dass die Open Graph URL für alle Beiträge auf die http:// umgeleitet werden würden? Dies wäre doch nicht sinnvoll für neue Beiträge?

    Die Lösung auf der verlinkten Seite von cognitive scheint mir da interessanter, da diese wohl nur auf die Crawler von Facebook reagiert. Wobei auch hier die Frage, wo oder wie ich den Code am besten einbinden soll? Vor allem auch im Hinblick auf das Zuisammenspiel mit Yost SEO.

    Danke!

    • Der Code kann in die functions.php eines Child-Themes, in ein functionality-Plugin oder in ein Snippet (per https://de.wordpress.org/plugins/code-snippets/ z.B.). In die functions.php eines fertigen Themes würde ich es nicht packen, da es sonst beim nächsten Update des Themes überschrieben wird.

      Wobei wäre es bei diesem Code nicht auch so, dass die Open Graph URL für alle Beiträge auf die http:// umgeleitet werden würden? Dies wäre doch nicht sinnvoll für neue Beiträge?

      Theoretisch kann man das machen. Nur Facebook diese Ausgabe senden und nur, wenn die Beiträge vor der Umstellung auf https erstellt wurden. Aber praktisch war mir das zu aufwändig für keinen sichtbaren Nutzen. Die URL ist der Identifier für Facebook, den bekommt es durch die Umstellung. Und bei korrekt eingerichteten Umleitungen wird der http-Link korrekt zu https geleitet. Ob es in Sachen SEO jetzt doch irgendwo irgendwie nachteilig sein kann, wenn der Canonical-Tag nicht das korrekte real genutzte Protokoll zeigt weiß ich nicht.

      Falls hier SEO-Experten mitlesen freue ich mich über einen Hinweis. Oder eigene Lösungen, die das obige Szenario beherzigen. 🙂

  4. Hallo,
    danke für die Bereitstellung,nur leider verstehe ich die Anleitung nicht.
    Was soll ich kopieren und wo einfügen?
    Ich habe meinen Blog seit 3 Jahren und bisher alles selbst gemacht aber das hilft mir nicht weiter.

    • Auch hier die Frage: Wo genau hakt es denn? Der Artikel erklärt die Vorgehensweise ja …
      Wenn du nicht verstehst, was im Artikel erklärt wird, dann solltest du vielleicht eher einen Dienstleister beauftragen, der das für dich umsetzt.

      • Danke für die Rückmeldung.
        Du schreibst: Yoast-Nutzer finden dafür auf der Plugin-Website ein Snippet: (Auf der Seite weiß ich nicht, wonach ich suchen soll, sie wurde im März 2018 upgedatet.)
        Was mache ich mit dem folgenden Code, wo muss der eingefügt werden.
        (Code entfernt.)

        Danke!

        • Die Code-Beispiele sind einfach nur ausgelagert worden. Der Link dahin findet sich am Ende des Yoast-Artikels. Du musst dort aber gar nichts suchen, da der Code dann ja folgt. Und wo man den Code einfügen kann schreibe ich in einem Kommentar weiter oben.

          • Niewiederblog

            Besten Dank für den Hinweis.
            Habe das Snippet-Plugin hochgeladen und den Code eingefügt. Nach dem aktivieren erschien eine weiße Seite mit folgendem Text:

            Keine Sorge

            The code snippet you are trying to save produced a fatal error on line 8:
            syntax error, unexpected end of file

            Die vorherige Version des Snippets ist unverändert und der Rest dieser Website sollte wie vorher normal funktionieren.

            Bitte verwende den Zurück-Button in deinem Browser um zur vorherigen Seite zurückzukehren und versuche, den Code-Fehler zu beheben. Wenn es dir lieber ist, kannst du diese Seite schließen und die Änderungen, die du gerade gemacht hast, verwerfen. Es werden keine Änderungen an dieser Website vorgenommen.

            Das hat nun nicht funktioniert, wie geht es jetzt bitte weiter?

          • Torsten

            Wenn du den *exakten* Code, den du benutzt hast mir irgendwo zur Verfügung stellst (Pastebin, Gist, etc.), dann kann ich mal darauf schauen. Die Snippets sind alle getestet und funktionieren. Es könnte also irgendwas Unvorhergesehenes passiert sein (zu viel kopiert, zu wenig kopiert, veraltete Version, …). Wenn ich was entdecke, super. Kann aber auch sein, dass bei dir was fehlt, veraltet, kaputt ist. Da hilft nur ein Dienstleister, der sich deinen konkreten Fall anschaut.

  5. Hallo Torsten,

    vielen Dank für Deinen Artikel! Ich hab den Code von Dir mit unserer alten http URL im eingefügt und es funktionierte richtig gut und die 3340 Likes waren wieder da. Leider funktioniert das seit ein paar Tagen scheinbar nicht mehr denn der Button von FB zeigt wieder nur 49 Likes an. Kann es sein das Faceboock da was geändert hat oder sich irgendwo ein Fehler eingeschlichen hat?

    Gruß Haro

    • Wie im Artikel beschrieben, kann es sein, dass zusätzlich noch der OpenGraph-Tag og_url gesetzt werden muss. Hast du denn mal den Facebook-Debugger ausprobiert? Der löscht ggf. vorhandenen Cache bei FB und liest die Seite neu aus.

      • Danke für die Hilfe! Mit der og_url und dem Debugger geht es wieder. Hatte das ja so nach der Umstellung auf https:// schon gemacht. Frage mich nur warum das auf einmal ohne das ich was an der HP geändert hab nicht mehr funktioniert hat.

    • Hallo Haro,

      du schreibst: „Ich hab den Code von Dir mit unserer alten http URL im eingefügt.“

      Würdest du uns Leser und Hilfesuchenden bitte verraten, wo du den Code eingefügt hast?

  6. Hallo Magda,

    ich hab in dem Code unsere alte http:// URL angegeben und hab den im eingefügt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert