Facebook den Zugriff auf Bilder der Webseite beim Link-Teilen blockieren
Im folgenden Artikel möchte ich erklären wie man bestimmte Dateien auf der eigenen Webseite von der Einbindung auf Facebook ausschließen kann. Warum? Ich möchte nicht, dass die Bilder auf meiner Seite die nichts mit dem verlinkten Artikel zu tun haben, wie das Portrait in der Seitenleiste, neben dem geteilten Link erscheinen. Und es gibt bestimmt noch tausend weitere Gründe, warum man das wollen könnte.
Es geht hier jedoch nicht darum, wie man gezielt Bilder, Titel und Text definiert. Die Möglichkeit dazu bietet das Open Graph Protokoll. Man kann OGP allerdings auch mit einem Trick zum Bilder-Sperren nutzen, dazu am Ende mehr.
Sperren per .htaccess
Im Gegensatz zu Suchmaschinen schauen die Facebook-Server beim Bilder Abrufen nicht in die robots.txt. Daher reicht ein Eintrag dort nicht, sondern man muss den eigenen Server anweisen Facebook aktiv den Zugriff zu sperren. Da die USER-AGENT-Kennung der Facebook-Server immer mit “facebookexternalhit” beginnt ist das recht simpel mit .htaccess möglich. Folgende Eintragung muss man vornehmen, wenn man die Bilder beispiel1.jpg und beispiel2.jpg für Facebook blockieren möchte:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteCond %{REQUEST_FILENAME} beispiel1.jpg [OR]
RewriteCond %{REQUEST_FILENAME} beispiel2.jpg
RewriteRule .* - [F]
</IfModule>
Sind die blauen Zeilen schon vorhanden, dann müssen nur die übrigen Zeilen zusätzlich dazwischen eingetragen werden. Für mehr Dateien einfach weitere solche Zeilen einfügen und drauf achten, dass bei jeder außer der letzten ein [OR] am Ende steht. Achtung: Wenn überhaupt kein Bild eingetragen ist, dann sperrst du Facebook komplett aus.
Es kann sein, dass dieses Vorgehen nicht sofort Wirkung zeigt. Dann befindet sich das Bild noch im Cache der Facebook-Server. In diesem Fall hilft nur ein wenig Geduld. In diesem Fall hilft vielleicht viel Geduld mit Sicherheit aber, so hab ich es zumindest nach einer Woche vergeblichem warten gemacht, das umbenennen der entsprechenden Dateien, allerdings nur bei Seiten, die in der Vergangenheit noch nicht verlinkt wurden. In diesem Fall muss man die Seite einmal mit dem Facebook-Debugger laden. Dadurch wird der Cache aktualisiert. Allerdings muss jede Seite einzeln aufgerufen werden.
Die Erklärungsseite von Facebook, auf die am Ende der USER-AGENT-Kennung im Log verwiesen wird möchte ich nicht vorenthalte.
Die einfache Identifizierbarkeit Facebooks über die USER-AGENT-Kennung könnte auch eine interessante Möglichkeit sein um Facebook-Verlinkungen ohne die Hilfe von Facebook zu detektieren. Das sollte man bei Gelegenheit mal weiterverfolgen.
Sperren per Open Graph Protokoll
Das Open Graph Protokoll bietet eigentlich keine Möglichkeit Bilder explizit auszuschließen. Durch das festlegen eines Bildes wird jedoch das automatische Suchen nach weiteren Bildern verhindert. Also müssen die gewünschten Bilder angegeben werden, so dass die unerwünschten Bilder nicht auftauchen. Möchte man jedoch kein Bild dem Artikel zuordnen, so ist dies nicht auf regulärem weg möglich. Mit einem kleinen Trick kann man jedoch den Interpreter von Facebook austricksen. Gibt man eine URL an, die zu keinem Bild führt wird der Tag als valider Eintrag behandelt, liefert jedoch kein Bild und es wird nicht automatisch nach Bildern gesucht. Da es nicht reicht einen leeren Eintrag hinzusetzen empfiehlt sich die Verwendung der eigenen Domain:
<meta property="og:image" content="http://example.com" />
Das Problem mit unpassenden Bildern zu verlinkten Inhalten ist echt weit verbreitet und nervig. Wer will schon was verlinken und das Bild, das zum link erscheint ist aus einer Werbeanzeige..
Werbeanzeigen liegen aber in der Regel auf anderen Servern und dann lässt sich das nicht mit dieser Methode lösen. (Sofern es überhaupt ein Problem ist und Facebook externe Elemente einbezieht.) Da ich aber nicht einsehe anderer Leute Geld Scheffeln zu optimieren, während ich meine Seite werbefrei halte, dürfen sich Betroffene da selber einen Kopf machen. (Ist auch nicht besonders schwer.) ;-)