Das Putzlowitsch Test- und SEO-Blog

Google Bildersuche – Anzeige des Originalbildes verhindern

Der Inhalt

  1. Problem
  2. Lösung
  3. Umsetzung
  4. Technik
  5. Ergebnis

Das Problem

Google-Bildersuche mit Originalbild

Google-Bildersuche mit Originalbild

In der „neuen“ Google-Bildersuche wird beim Klick auf ein Ergebnis das Bild direkt in der Bildersuche in voller Auflösung geladen und angezeigt. Das dürfte viele Nutzer davon abhalten, die Ursprungsseite zu besuchen.

Um den Benutzer zu motivieren, dennoch die Originalseite zu besuchen, könnte man dem Nutzer innerhalb der Google-Bildersuche eine Bild in schlechter Qualität (unscharf/verpixel) mit einem zusätzlichen Hinweistext anzuzeigen. Das findet aber Google nicht so toll, es wird möglicherweise als Bilder-Cloaking gewertet. Das könnte wiederum eine manuellen Maßnahmen zur Folge haben.

Die Lösung

Seit einiger Zeit bietet Google im oben verlinkten Hinweis zum Bilder-Cloaking eine „legale“ Lösung für das Problem an

Bild in den Suchergebnissen minimieren oder blockieren

  • Sie können verhindern, dass das Bild auf der Google-Suchergebnisseite in Originalgröße angezeigt wird, indem Sie das Inline-Linking deaktivieren.

So deaktivieren Sie das Inline-Linking:

  • Wenn Ihr Bild angefordert wird, prüfen Sie den HTTP-Verweis-URL-Header in der Anfrage.
  • Falls die Anfrage von einer Google-Domain stammt, antworten Sie entweder mit HTTP 200 oder mit HTTP 204, „keine Inhalte“.

Google crawlt Ihre Seite und sieht das Bild weiterhin. In den Suchergebnissen wird jedoch nur das Miniaturbild angezeigt, das während des Crawlings generiert wurde. Die Funktion kann jederzeit deaktiviert werden. Die Bilder einer Website müssen dazu nicht noch einmal verarbeitet werden. Diese Methode wird nicht als Bild-Cloaking betrachtet und hat auch keine manuellen Maßnahmen zur Folge.

Wobei hier mit „Inline-Linking“ das gemeint ist, was allgemein als „Hotlinking“ bekannt ist. Und so ähnlich wie die berühmte Hotlink-Sperre funktioniert auch die Google-Bilder-Sperre.

Die Umsetzung

Als technische Basis setze ich einen Apache-Server mit den aktiven Modulen mod_rewrite, mod_headers und mod_setenvif voraus. Wobei das Modul mod_setenvif nicht zwingend erforderlich ist, es macht die Sache aber übersichtlicher:

<IFModule mod_headers.c>
Header	always	set    Cache-Control "no-cache, no-store, must-revalidate"	env=NO_CACHE
</IfModule>

<IfModule mod_setenvif.c>
SetEnvIf Accept "text/html"	REQ_HTML=1
SetEnvIf Referer "^https?://(([^\.]+?\.)?([^\.]+?\.)?[^\.]+?)/"	DOM_REFERER=$1
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond	%{ENV:REQ_HTML} !1
RewriteCond	%{REQUEST_FILENAME} -f
RewriteRule	\.(jpg|gif|png)$	-	[NC,C]

RewriteCond	%{ENV:DOM_REFERER}	google\.(com|de|at|ch)$ [NC,OR]
RewriteCond	%{ENV:DOM_REFERER}	bing\.com$ [NC]
RewriteRule	.*	/status-204.sta

RewriteRule	^status-204.sta$ -	[R=204,E=NO_CACHE:1,L]
</IfModule>

Die Technik

Zur Unterscheidung von Bildaufruf (img src=…) und Link verwende ich den Wert von „Accept“ im HTTP-Request-Header. Nach meiner Beobachtung enthält dieses Header-Feld bei Bild-Aufrufen nicht den Typ „text/html“, beim Aufruf von Links, auch zu Bildern, aber schon. Wenn also „text/html“ im Accept-Header zu finden ist, dürfte es sich um den Link zum Bild und nicht um das Laden des Bildes in der Google-Ansicht handeln.

Die Umgebung

<IfModule mod_setenvif.c>
SetEnvIf Accept "text/html"	REQ_HTML=1
SetEnvIf Referer "^https?://(([^\.]+?\.)?([^\.]+?\.)?[^\.]+?)/"	DOM_REFERER=$1
</IfModule>

Den Accept-Header werte ich in einer SetEnvIf Anweisung aus und setze eine entsprechende Variable, die ich später in den Rewrite-Regeln auswerten kann. Zudem extrahiere ich in dem Block den Domain-Namen aus dem Referer, da ich diesen auch in anderen Rewrite-Regeln benötige.

Das Bild

RewriteCond	%{ENV:REQ_HTML} !1
RewriteCond	%{REQUEST_FILENAME} -f
RewriteRule	\.(jpg|png|gif|webp)$	-	[NC,C]

Mit den Rewrite-Regeln prüfe ich zunächst, ob es ein Bildaufruf (img src=…) ist, die Existenz der Datei (sonst soll die normale 404-Verarbeitung greifen) und über die Datei-Erweiterung, ob ein Bild aufgerufen wird. Falls nicht, wir der nächste Block der Rewrite-Regeln gar nicht erst ausgeführt.

Die Referrer

RewriteCond	%{ENV:DOM_REFERER}	google\.(com|de|at|ch)$ [NC,OR]
RewriteCond	%{ENV:DOM_REFERER}	bing\.com$ [NC]
RewriteRule	.*	/status-204.sta

Im zweiten Block wird eine Liste von Referrer-Domains abgearbeitet, für die die Weiterleitung erfolgen soll. In dem Fall sind es die vier Google-Domains, von denen die meisten meiner Besucher kommen und bing.com (ja, das funktioniert auch für Bing :-). Die Abfrage nach dem Referer kann man natürlich auch anders gestalten. Das hängt halt davon ab, was man damit erreichen will.

Die anschließende RewriteRule erzeugt eine internes Rewrite zur einer leeren Dummy-Datei (status-204.sta), die aber existieren muß. Das ist erforderlich, um den Cache-Header korrekt setzen zu können. Wenn der Browser die Daten cachen würde, wäre das Bild möglicherweise auch nicht auf der Webseite zu sehen.

Die Regel

RewriteRule	^status-204.sta$ -	[R=204,E=NO_CACHE:1,L]

Diese einzelne Regel setzt letzendlich den HTTP-Statuscode „204 No Content“ und triggert die Ausgabe des NoCache-Headers.

Der Cache

<IFModule mod_headers.c>
Header	always	set    Cache-Control "no-cache, no-store, must-revalidate"	env=NO_CACHE
</IfModule>

Außerdem setze ich einen Wert (NO_CACHE), mit dem am Ende geprüft wird, ob das Caching deaktiviert werden soll. Der Block mod_headers steht zwar am Anfang, der Webserver führt diese Anweisungen aber erst ganz zum Schluß aus, kurz bevor die Antwort an den Client gesendet wir. Damit wird das Caching des von Google direkt geladenen Bildes verhindert.

Das Ergebnis

Im Ergebnis lädt Google unser Bild nicht in der ausgklappten Ansicht innerhalb der Bildersuche. Stattdessen wird das vergrößerte Thumbnail des Bildes angezeigt, das Google als Vorschaubild gespeichert hat und das in der Übersicht zu sehen ist.

Das Bild ist entsprechend unscharf und verpixelt. Der Nutzer kann unser Bild auch nicht einfach per Rechtsklick und „Grafik anzeigen“ oder „Grafik speichern unter…“ ansehen oder speichern- Wenn er das Originalbild sehen oder speichern will, muß er also unsere Webseite besuchen und schon haben wir wieder einen Besucher mehr. :-)

Keine Kommentare »

Strato-Webhosting: Update durch Downgrade/Upgrade 3.0

Sicher ist sicher, mit SSL

Mittlerweile gehört https bzw. SSL bei Websites zum Standard. Das war nicht immer so und vor einigen Jahren mußte man für ein SSL-Zertifikat noch richtig viel Geld bezahlen. Zudem war man beim Shared-Webhosting von den Angeboten des Webhosters abhängig, denn in der Regel kann man da nicht so einfach selbst Zertifikate installieren.

Vor etwa 6 Jahren gab es dann auch bei Strato die Möglichkeit, ein SSL-Zertifikat zu bestellen und so habe ich zum günstigen Einführungsangebot von € 2,99 pro Monat zugeschlagen und meine Schnurpsel-Seite damit ausgestattet. Später kostete es dann 4,90 im Monat.

Nun ist aber einige Zeit ins Land gegangen und mit Let’s Encrypt hat seit Ende 2015 jeder zum Null-Tarif die Möglichkeit, seine Website mit Verschlüsselung abzusichern. Der Webhoster All-Inkl z.B. bietet seit April 2016 die Möglichkeit, so ein Zertifikat mit wenigen Klicks im Kundenmenü selbst zu installieren.

Die großen Webhoster mußten sich dem Druck beugen und bieten in aktuellen Webhostingpaketen kostenlose SSL-Zertifikate an. Bei IONOS (1&1) bekommt man pro Hostingpaket ein Wildcard-Zertifikat, das auch alle Subdomains umfaßt. Bei Strato gibt es pro Domain ein Single-Domain-Zertifikat.

Strato – ein SSL-Zertifikat pro Domain

Strato – ein SSL-Zertifikat pro Domain

Also warum soll ich jetzt das Zertifikat extra bezahlen, obwohl es im Pakte enthalten ist? Weil ich noch ein altes Hostingpaket „PowerWeb Plus“ habe. Das hat zwar praktisch die selben Features zum selben Preis wie das aktuelle „Hosting Plus“, nur ist es eben alt.

Hier mal die Pakete im Vergelich:

Leistung PowerWeb Plus Hosting Pus Hosting Basic
Speicherplatz 150 GB 150 GB 100 GB
Domains 6 10 5
SSL-Zertifikate 0 10 5
Subdomains 1000 1000 500
MySQL Datenbanken 50 50 25
E-Mail-Postfächer 8000 8000 4000
E-Mail-Aliasse 40000 40000 20000
E-Mail-Speicher 80 GB 80 GB 40 GB
SFTP-Zugänge 50 50 10
App-Installation 50 50 25
Laufzeit 12 Monate 12 Monate 12 Monate
Preis/Monat € 10,00 € 10,00 € 8,00

Es sollte doch möglich sein, ein Update vom alten „PowerWeb Plus“ zum neuen „Hosting Plus“ zu machen. Die befinden sich ja schließlich innerhalb der gleichen Leistungs- und Preisklasse.

Update durch Downgrade und Upgrade

Wie schon beim letzten und vorletzten mal, kann man dieses Update, oder Sidegrade, wie es der nette Mitarbeiter von „Strato hilft“ auf FaceBook nannte, nicht mit ein paar Klicks im Kundenmenü bewerkstelligen.

Ich kann ein Upgrade auf ein höheres Paket beauftragen, das wäre in meinem Fall das „Hosting Pro“ für 20 Euro im Monat, was mir aber dann doch zu teuer wäre. Und es geht auch ein Downgrade (ohne FAX :-) in das „Hosting Basic“ für 8 Euro. Ja, das würde mir von den Leistungsdaten her auch reichen, aber es geht mir ums Prinzip.

Ein Telefongespräch mit dem Support und eine E-Mail per Kontaktformular führten nur zu einer abschlägigen Antwort:

„Ich habe soeben Ihren Anliegen überprüft und möchte Sie kurz informieren, dass eine Umstellung von dem PowerWeb Plus Paket auf das neue Hosting Plus Paket Systembedingt nicht möglich ist, da das System erkennt diese Pakete als dasselbe Paket somit wird kein Upgrade noch Downgrade ermöglicht.“

Und nun? Ich hatte dann plötzlich noch so eine Idee…

Ich könnte ja erst ein Downgrade auf „Hosting Basic“ machen und anschließend ein Upgrade auf „Hosting Plus“. Dann wäre ich wieder in meinem 10 Euro Paket und hätte zudem ein paar Inklusiv-Domains dazu und vor allem die inklusiven SSL-Zertifikate.

Es mußten vorher nur zwei Fragen geklärt werden. Was passiert mit der überzähligen Domain, denn ich habe aktuell 6 Inklusiv-Domains, im Basic-Paket sind aber nur 5 enthalten. Und kann ich überhaupt so schnell hintereinander das Paket wechseln.

Das mit der Domain ist recht einfach und eindeutig:

„Sei unbesorgt, was deine Domains angeht. Diese bleibt dir weiterhin erhalten. Sofern du mehr als die maximale Anzahl an Inklusiv-Domains im Paket gebucht hast, wird jede weitere Domain als Exklusiv-Domain extra berechnet.“

Nur wollte ich keine Zusatzdomain extra bezahlen. Also habe ich kurzerhand die eine unwichtige Domain gekündigt. Dadurch war der Weg frei zum kostenlosen Downgrade ins Strato-Webhosting-Paket „Hosting Basic“

Auch zum Zeitfaktor gab es eine schnelle Antwort:

„Ein Wechsel innerhalb der Hosting-Palette ist jederzeit zu sofort möglich. D.h. in deinem Fall heute Downgrade zum Hosting Basic und morgen dann zum Hosting Plus.“

Gestern habe ich die Domain gekündigt, heute nun das Downgrade durchgeführt.

Strato-Webhosting-Paket Basic

Strato-Webhosting-Paket Basic

Und wenn ich es mir recht überlege, auch das Basic-Paket reicht mir eigentlich. Damit Spare ich 2 Euro im Monat, das sind immerhin 24 Euro im Jahr und wenn ich das auf 10 Jahre hochrechne…

Upgraden kann ich dann ja später immer noch. :-)

Nachtrag: Mittlerweile habe ich doch das Upgrade durchgeführt, weil ich eine weitere Inklusiv-Domain nutzen wollte. Und soooo viel sind die 2 Euro extra im Monat nun auch wieder nicht. :-)

Keine Kommentare »

Google Bildersuche – Bildgrößen (BxH in Pixel) anzeigen

Früher war alles Besser

Google Bildersuche mit Bildgrößen

Google Bildersuche mit Bildgrößen

Früher konnte man sich in der Google-Bildersuche über „Weitere Tools“ -> „Größen anzeigen“ zu jedem Bild ein kleines Overlay mit der Bildgröße (Breite x Höhe in Pixel) einblenden lassen. Bei der Funktion „Weitere Größen“ wurde das sogar standardmäßig angezeigt (siehe Screenshot oben).

Das geht nun nicht mehr und auch die Einblendung dieses Overlays beim Überfahren des Vorschaubildes mit der Maus ist verschwunden. Man muß jetzt das Bild erst anklicken und im aufgeklappten Frame mit dem großen Bild wird die Bildgröße beim Überfahren mit der Maus angezeigt. Sehr umständlich.

Das „Google Bilder Größen“ Bookmarklet

Bookmarklets sind feine Sachen, denn man kann tolle Dinge damit machen. :-)

Ein Bookmarklet ist ein Browser-Lesezeichen, welches aber nicht die URL einer Webseite speichert, sondern Javascript-Code. Dieser kann dann auf eine gerade im Browserfenster angezeigte Webseite losgelassen werden.

Das Bookmarklet hat Zugriff auf den kompletten Seiteninhalt, kann diesen verändern oder Daten extrahieren und z.B. in einem neuen Fenster darstellen.

Vor einiger Zeit hatte ich bereits ein Bookmarklet für die Google-Bildersuche erstellt. Dabei werden die relevanten Informationen aus der Ergebnisseite extrahiert und als Tabelle auf einer neuen Seite dargestellt.

Das heutige Bookmarklet ist viel einfacher, denn es manipuliert nur die aktuelle Seite und blendet bei jedem Thumbail oben Links ein kleines Overlay mir der Bildgröße ein.

Nach der „Installation“ genügt ein Klick auf den Button [Google Bilder Größen] in der Bookmarkleiste und schon werden die Bildgrößen angezeigt:

Bookmarklet Google Bilder Größen

Bookmarklet Google Bilder Größen

Ein erneuter Klick blendet die Overlays wieder aus. Allerdings werden zunächst nur die Bilder mit der Information versehen, die Google komplett darstellt. Beim scrollen werden die weiteren Suchergebnisse dynamisch nachgeladen und diesen neuen Bildern fehlt das Overlay. Dann einfach den Butten erneut ein- oder zweimal klicken und alles ist wieder gut. :-)

Das Bookmarklet

Google Bilder Größen

Ein Bookmarklet ist zwar ein Link, es macht aber wenig Sinn, diesen hier direkt anzuklicken. Vielmehr müßt Ihr ihn als Lesezeichen im Browser speichern, also z.B. einfach in die Bookmarkleiste ziehen.

Getestet habe ich das Bookmarklet bisher mit Firefox 77.0.1, Google Chrome 83.0.4103.116 und Microsoft Edge 83.0.478.56, damit funktioniert es.

Keine Kommentare »

SandstrandSEO-Rankings bei ranking-123.de als XML und JSON

SandstrandSEO (klein)

SandstrandSEO auf der Weide

Wie schon letztes Mal gibt es auch beim aktuellen SEO-Wettbewerb SandstrandSEO die Ranking-Daten von ranking-123.de im XML- und JSON-Format.

Die URLs lauten:

Der Aufbau ist recht einfach und weitestgehend selbsterklärend. Im Kopf gibt es drei Datenfelder:

  • nam – Name bzw. Suchbegriff (z.B. SandstrandSEO)
  • upd – Datum und Zeit des letzten Updates der Liste
  • cnt – Anzahl der Google-Suchergebnistreffer (nicht Listeneinträge!)

Es folgt in rnk eine Liste der Suchergebnisse mit folgenden Datenfeldern:

  • pos – Position in den Suchergebnissen
  • url – URL der Seite
  • typ – Typ des Suchergebnisses, mögliche Werte
    • txt – normales Suchergebnis
    • new – Google-News
    • img – Universal Search Bilder
    • vid – Video
    • rec – Rezept
  • img – URL des Bildes, wenn Typ img ist (optional)
  • aut – Name des Autors/Rezeptdaten, falls verfügbar (optional)
  • lpo – letzte Position, 1000 falls neu in der Liste

Bei der Position für Universal-Search Ergebnisse wird eine Unternummerierung vorgenommen. Das erste Ergebnis bekommt .01, das zweite .02, das dritte .03 usw. an die eigentliche Position angehängt. Befinden sich zum Beispiel vier Bilder an der Position 13, so erhalten sie die Positionen 13.01, 13.02, 13.03 und 13.04 in pos zugeordnet.

Die Daten werden stündlich zu vollen Stunde erhoben. Es dauert aber ein paar Minuten, bis sie dann tatsächlich vorliegen. Also sollten die Daten ein paar Minuten nach der vollen Stunde abgefragt werden. Den aktuellen Zeitpunkt der Daten sieht man ja in den Kopfdaten.

Das Top-10 Diagramm im PNG-Format liegt auch zu diesem Zeitpunkt vor. Es gibt ein 24-Stunden-Diagramm und ein 3-Wochen-Diagramm:

Ihr könnt die Daten und Bilder auf euren Webseiten nutzen und einbinden.

Viel Erfolg beim SandstrandSEO-Contest! :-)

(SemdstremdSAI)

Keine Kommentare »

Google „Easter Egg“ zu Ostern 2020

Ein „Osterei“ zu Ostern? Ja, Google, das ist völlig in Ordnung!

Klar, denn ein Easter Egg ist lt. Wikipedia die Bezeichnung für eine versteckte Besonderheit in Medien und Computerprogrammen.

In dieses Jahr gibt es von Google ein „Easter Egg“ zu Ostern, in den letzten Jahren gab es das regelmäßig nur zu Weihnachten.
Nachtrag: Habe gerade erst bemerkt, das es letztes Jahr zu Ostern auch schon ein recht umfangreiches und animiertes Easteregg zu Ostern gab. Hatte ich gar nicht mehr so in Erinnerung.

Bei Google sind bestimmte Suchanfragen der Auslöser dafür, daß die Ergebnisseite anders dargestellt wird, als normalerweise.

Da es mit großen Schritten auf das Osterfest zugeht, hat Google ein Oster-Easter-Egg in die Suche eingebaut:

Ostern 2020 – Google Easter-Egg

Ostern 2020 – Google Easter-Egg

Der auslösende Suchbegriff ist z.B. „Ostern“ oder auf Englisch „Easter“. Natürlich spricht das Easter Egg auch auf „Ostern“ in einigen anderen Sprachen an, wie z.B. Pâques, Pascua, Pasqua und auch Kombinationen wie Frohe Ostern!, ¡Feliz Pascua!, Joyeuses Pâques!, Happy Easter! usw.

Vom Aufbau her paßt es mit der hellblauen Ecke ganz gut zum Weihnachts-Easter-Egg aus 2019. Es ist aber überhaupt nicht animiert und deshalb gibt es auch kein Video von mir.

Google Easter-Banner 2020

Google Easter-Banner 2020

Google zeigt den sich freuenden Osterhasen und zwei bunte Ostereier. Aus dem einen Ei schlüpft gerade ein lustiges Küken. Mama Henne hat bereits einen Wurm als Leckerli für den frischen Nachwuchs besorgt. Die Szene spielt sich auf einer saftig grünen Wiese mit roten Tulpen ab und wird von blauen Schmetterlingen umschwirrt. Sehr hübsch.

Ostern 2020 – Google-Weltreise

Ostern 2020 – Google-Weltreise

Eine Besonderheit gibt es in der Knowledge-Graph-Box. Hier hat Google ein Bild mit einem Link [️️🏛Starten] zu einer kleinen Reise durch die Ostertraditionen aus aller Welt platziert. Auch sehr nett.

Wie auch immer, damit kommt doch schon richtige Osterstimmung auf, so eine paar Tage vor dem Osterfest. :-)

Es gibt bei Google immer mal wieder „Easter Eggs“ zu unterschiedlichen Anlässen. Über ein paar dieser lustigen Verschönerungen habe ich hier auch schon berichtet:

Keine Kommentare »