<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>Du hast nach keyword gesucht - Macnotes.de</title>
	<atom:link href="https://macnotes.de/search/keyword/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>https://macnotes.de/</link>
	<description>iPhone, iPod, iPad, Mac - das unabhängige Magazin rund um Apple</description>
	<lastBuildDate>Tue, 16 Mar 2021 18:49:56 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://macnotes.de/images/2021/02/image-150x150.jpg</url>
	<title>Du hast nach keyword gesucht - Macnotes.de</title>
	<link>https://macnotes.de/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #2</title>
		<link>https://macnotes.de/2021/01/26/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-2/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Tue, 26 Jan 2021 00:33:34 +0000</pubDate>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://macnotes.de/?p=516259</guid>

					<description><![CDATA[<p>In Teil 1 von der Idee zum WordPress-Plug-in beschrieb ich bereits umfassend die Beweggründe, wie man von ein paar Zeilen Code für eine regelmäßig wiederkehrende Aufgabe am Ende des Tages zu einem ausgewachsenen Plug-in kam. Der vorherige Text wies außerdem bereits fertigen, funktionierenden Quellcode auf, mit dem man von Hand ohne Weiteres hätte arbeiten können. [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2021/01/26/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-2/">Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #2</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'><a href="https://macnotes.de/2021/01/24/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-1/">In Teil 1 von der Idee zum WordPress-Plug-in</a> beschrieb ich bereits umfassend die Beweggründe, wie man von ein paar Zeilen Code für eine regelmäßig wiederkehrende Aufgabe am Ende des Tages zu einem ausgewachsenen Plug-in kam. Der vorherige Text wies außerdem bereits fertigen, funktionierenden Quellcode auf, mit dem man von Hand ohne Weiteres hätte arbeiten können. Doch was wäre ein Plug-in ohne Komfort. Für Komfort dient die Eingabe vom Nutzer, und die speichert man am besten in der Datenbank ab.</p>
<p>Genau das wollen wir Euch dann in dieser Ausgabe erklären, und auch, welche Grenzen unser Plug-in weiterhin hat. Die Herangehensweise zeigt vor allem, dass so ein relativ einfaches Projekt mit ein wenig Fantasie und Aufwand zu etwas richtig seriösem aufgebaut werden kann.</p>
<h2>Das Plug-in braucht mehr Komfort</h2>
<p>Anstatt den Quellcode immer von Hand anzupassen, wenn man neue Schlagwörter hinzufügen möchte, kann man dazu die Datenbank bei WordPress verwenden und entsprechende Formulare. Folgende „Details“ und „Fragen“ gibt es unter anderem zu klären, von denen wir aber nur einige exemplarisch nennen wollen:</p>
<ul>
<li>Wie kann ich mit der Datenbank von WordPress kommunizieren?</li>
<li>Benötige ich eine eigene Tabelle?</li>
<li>Wie handhabt WordPress Formulare?</li>
<li>Gibt es Sicherheitsvorkehrungen zu treffen?</li>
<li>Muss ich mehrere Plug-in-Dateien erstellen?</li>
<li>Was ist die WordPress-Nonce, und wie kann sie mir in diesem Fall helfen?</li>
</ul>
<h2>Wann benötige ich für mein Plug-in eine eigene Tabelle?</h2>
<p>Es ist eine <a href="https://wordpress.stackexchange.com/questions/53932/is-it-bad-practice-to-create-own-table-for-a-plugin">viel diskutierte Frage</a>, ob es sinnvoll sein kann, eine eigene Tabelle für ein WordPress-Plug-in einzurichten. Eines der Schwergewichte unter den WordPress-Plug-ins, Yoast SEO, änderte vor ein paar Monaten seine Einstellung zu der Thematik und migriert seitdem mit jedem Update zunehmend mehr Daten aus WordPress-Tabellen in eigene.</p>
<p>Für mich liegt die Antwort auf der Hand: Ich mache immer eine eigene Tabelle, wenn ich eigene Daten verwenden möchte. Sieht man davon ab, dass WordPress-Tabellen vor allem bei großen Websites sowieso relativ unübersichtlich werden, kann es beim Abfragen von Daten auch Performance-Vorteile bieten. In der Tat ergibt es aber nur wenig Sinn, den Aufwand zu betreiben, wenn man am Ende nur eine Handvoll Datensätze speichern mag. Die lassen sich zur Not auch noch in der WordPress-Tabelle sichern.</p>
<h2>Wie kommuniziere ich mit der WordPress-Datenbank?</h2>
<p>WordPress hält für Entwickler Befehle zur Verfügung, um mit der Datenbank zu kommunizieren. In Einzelfällen kann es sinnvoll sein, die WordPress-Routinen zu umgehen und mittels PHP oder anderer Scriptsprachen die Kommunikation zur Datenbank auf eigene Faust zu unternehmen. Das ist aber nur in Fällen ratsam, in denen man wirklich viele Datensätze bearbeitet, und an dieser Stelle rede ich von zehntausenden Datensätzen und mehr, die regelmäßig immer wieder abgefragt werden oder aktualisiert werden. Denn zur Wahrheit gehört, <a href="https://macnotes.de/2020/01/16/wie-wordpress-das-web-verstopft-google-fonts-gutenberg-und-mehr/">dass die WordPress-Datenbank-Engine nicht die schnellste ist</a>.</p>
<p>In Teil 1 wiesen wir bereits auf Befehle wie <code>add_option()</code> (vgl. <a href="https://developer.wordpress.org/reference/functions/add_option/">WordPress Code-Referenz</a>) hin, mit dem sich Daten ohne Weiteres in die Tabelle <code>wp_options</code> von WordPress hinzufügen lassen. Mittels <code>update_option()</code> kann man vorhandene Datensätze aktualisieren, und sie mit <code>delete_option()</code> entsprechend wieder entfernen.</p>
<p>Doch wir wollen nicht die WordPress-Tabelle zumüllen, sondern mit der eigenen Tabelle kommunizieren. Diese funktioniert über die <code>wpdb</code>-Schnittstelle.</p>
<h3>Eigene Tabelle für WordPress erstellen</h3>
<p>Klar kann man die Tabelle für das eigene Plug-in auch von Hand erstellen, über phpMyAdmin oder eine andere Software, auch am Desktop-Computer. Wer sich auskennt, kann dazu auch einfach die mysql-Schnittstelle auf dem Server mittels Terminal verwenden. Doch bei einem Plug-in geht es ja um die Wiederverwendbarkeit und die Möglichkeit, dass auch andere Nutzer damit arbeiten können.</p>
<p>Entsprechend nutzen wir die WordPress-eigenen Mittel, um die Tabelle zu erstellen. Der beste Zeitpunkt dafür ist übrigens beim „Aktivieren“ des Plug-ins. Wie im ersten Teil dieses Tutorials schon beschrieben, trennt WordPress zwischen dem Aktivieren, Deaktivieren und Deinstallieren. Dafür gibt es extra drei passende „Auslöser“, die wir uns zunutze machen können.</p>
<p>In unserem Fall benötigen wir eine Tabelle, die lediglich drei Reihen umfasst, eine fortlaufende Nummerierung (ID), eine Suchphrase (searchstring) und ein Schlagwort (keywordstring). Um in mySQL eine Tabelle mit dieser Struktur einzurichten, benötigt man folgenden Code:</p>
<pre><code>CREATE TABLE XYZ (
		id mediumint(9) NOT NULL AUTO_INCREMENT,
		searchstring varchar(25) NOT NULL,
		keywordstring varchar(25) NOT NULL,
		UNIQUE KEY id (id),
	    UNIQUE KEY searchstring (searchstring)
	) ZEICHENSATZ;
</code></pre>
<p>Wir müssen der Tabelle noch einen Namen geben und auch einen Zeichensatz angeben. Da aber durch die Installation von WordPress je nach Konfiguration von WordPress ein Zeichensatz genutzt wird, und wir uns nicht den Kopf darüber zerbrechen wollen, welcher das ist, verwenden wir einfach <code>$wpdb-&gt;get_charset_collate()</code> (vgl. <a href="https://developer.wordpress.org/reference/classes/wpdb/get_charset_collate/">WordPress Code-Referenz</a>), um den Zeichensatz abzufragen.</p>
<p>Ja, und auch bei der Namensgebung für die Tabelle, wollen wir uns zumindest an die Gepflogenheiten halten und greifen daher auf das Präfix zurück, das WordPress uns anbietet, und Nutzer bei der Installation individuell einrichten können (<code>$wpdb-&gt;prefix</code>). Unsere Tabelle nennen wir dann noch <code>sn_add_keywords</code>, die entsprechend mit dem Präfix von WP ausgestattet wird.</p>
<h3>Tabelle bei Plug-in-Aktivierung einrichten</h3>
<p>Nun gehen wir davon aus, dass wir die Tabelle beim Aktivieren des Plug-ins einrichten möchten. Wir greifen dazu also auf den <code>register_activation_hook()</code> (vgl. <a href="https://developer.wordpress.org/reference/functions/register_activation_hook/">WordPress Code-Referenz</a>) zurück.</p>
<p>Dieser Aufruf hat zwei Parameter. Der erste nennt den Dateinamen des Plug-ins inklusive Pfadangabe. Dafür gibt es glücklicherweise eine Konstante namens <code>__FILE__</code>, die uns die Arbeit erleichtert, wenn wir uns an die Konventionen halten und unser Plug-in auch im Plug-in-Verzeichnis unterbringen. Der zweite Parameter ruft eine Funktion auf, die dann zum Zeitpunkt der Aktivierung des Plug-ins aktiv wird.</p>
<p>Wir erstellen also eine Funktion, die uns die Tabelle erstellt. Die sieht wie folgt aus:</p>
<pre><code>function sn_add_keywords_create_database() {
  global $wpdb;
  $charset_collate = $wpdb-&gt;get_charset_collate();
  $table_name = $wpdb-&gt;prefix . 'sn_add_keywords';

  $sql = "CREATE TABLE $table_name (
		id mediumint(9) NOT NULL AUTO_INCREMENT,
		searchstring varchar(25) NOT NULL,
		keywordstring varchar(25) NOT NULL,
		UNIQUE KEY id (id),
    UNIQUE KEY searchstring (searchstring)
	) $charset_collate;";

	require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
	dbDelta( $sql );
}
</code></pre>
<p>Die rufen wir dann mit dem passenden Auslöser auf:</p>
<pre><code>register_activation_hook(__FILE__, 'sn_add_keywords_create_database');
</code></pre>
<h3>Tabelle bei der Deinstallation löschen</h3>
<p>Man könnte die Tabelle theoretisch auch beim Deaktivieren schon löschen. Aber das erachten wir für nicht sinnvoll. Bei der Deinstallation eines Plug-ins sollte man aber sehr wohl darauf achten, hinter sich sauberzumachen. Wir setzen in dem Fall den <code>register_uninstall_hook()</code> ein. Der funktioniert analog zum Aktivierungsauslöser und hat die gleichen beiden Parameter. Wir erstellen also eine Funktion, die die Datenbank löscht:</p>
<pre><code>function sn_add_keywords_remove_database() {
  global $wpdb;
  $table_name = $wpdb-&gt;prefix . 'sn_add_keywords';
  $sql = "DROP TABLE IF EXISTS $table_name";
  $wpdb-&gt;query($sql);
}
</code></pre>
<p>Diese rufen wir dann mit dem Auslöser wie folgt auf:</p>
<pre><code>register_uninstall_hook(__FILE__, 'sn_add_keywords_remove_database');
</code></pre>
<h2>Wie kommuniziert unser Plug-in mit der Datenbank?</h2>
<p>Wie man mittels WordPress-Funktionen mit der Datenbank kommuniziert, haben wir schon angeschnitten. Aber damit unser Plug-in, das ebenfalls kann, benötigt es ein Formular.</p>
<p>Zudem können wir an dieser Stelle noch ein paar Sicherheitsvorkehrungen treffen. Anders als bei einem Formular zur Anmeldung beim Newsletter, wollen wir vermutlich nur Personen Schlagworte hinzufügen lassen, denen wir vertrauen. Auch müssen wir sicherstellen, dass in der Datenbank nichts „Bösartiges“ gespeichert wird. Aus diesem Grund nutzen wir die wordpress-eigenen Befehle für die Datenbankkommunikation, weil manche von ihnen bereits Sicherheitsmechanismen enthalten, und wir so ein bisschen beruhigter sein können. Doch, der Reihe nach.</p>
<h3>Formular für die Datenbankeingabe erstellen</h3>
<p>An dieser Stelle kann man ohne Umschweife zunächst einmal ein einfaches Formular in HTML erstellen. Wir benötigen zwei Eingabefelder für Text, eventuell noch zwei Etiketten und einen Button (oder Link) zum Absenden des Formulars. Der Einfachheit halber – weil es funktioniert, und um schnell erste Ergebnisse zu erhalten – verwenden wir keine spezielle Aktion zum Auslösen, und nutzen die <code>POST</code>-Methode.</p>
<p>Unser HTML-Formular sieht wie folgt aus:</p>
<pre><code>&lt;form method="POST"&gt;
	&lt;?php wp_nonce_field('sn_add_keywords', 'sn_add_keywords_nonce', true, true); ?&gt;
    &lt;h2&gt;Neuen Eintrag hinzufügen:&lt;/h2&gt;
    &lt;label for="searchstring"&gt;Searchstring:&lt;/label&gt;
    &lt;input type="text" id="searchstring" name="searchstring" required&gt;
    &lt;label for="keywordstring"&gt;Keywordstring:&lt;/label&gt;
    &lt;input type="text" id="keywordstring" name="keywordstring" required&gt;
	&lt;?php submit_button('Hinzufügen'); ?&gt;
&lt;/form&gt;
</code></pre>
<p>Die <code>submit_button()</code>-Funktion stellt WordPress zur Verfügung. In Klammern übergeben wir die Beschriftung für den Button. Der Button erhält dann auch die typischen Klassen, damit er mittels CSS automatisch in der für WordPress typischen Kolorierung und Form erscheint. Wer das individuelle handhaben mag, kann natürlich einen eigenen Button erstellen.</p>
<h3>Was ist dieses Nonce, und wieso brauche ich sie?</h3>
<p>Im obersten Feld des Formulars erkennt Ihr den Befehl <code>wp_nonce_field()</code>, den WordPress ebenfalls zur Verfügung stellt. Die „Nonce“ (vgl. <a href="https://de.wikipedia.org/wiki/Nonce">Wikipedia</a>) ist eine flüchtige Phrase, die zum Zwecke der Authentifizierung erstellt wird.</p>
<p>WordPress bietet dieses System ebenfalls an. Es ist sehr hilfreich, wenn man die Kommunikation mit der Datenbank nur authentifizierten Nutzern zu ermöglichen. Denn die Nonce wird beim Aufruf erzeugt und ist dann nur in der Session des Nutzers gültig. Würde jemand, der gar nicht mit WordPress eingeloggt ist, versuchen die Funktion auszuführen, scheiterte die Kommunikation daran, dass er nicht die korrekte „Nonce“ dafür hat.</p>
<p>Wir werden dann die erstellte Nonce noch überprüfen, bevor wir tatsächlich in die Datenbank schreiben.</p>
<h3>Formular-Daten in die Datenbank schreiben</h3>
<p>Nun müssen wir uns also noch darum kümmern, die im Formular eingegebenen Daten beim Klick auf den Button in die Datenbank zu speichern. Wie machen wir das?</p>
<p>Zum einen haben wir ja geschrieben, dass die Daten mittels POST-Methode übergeben werden. Sie sind dann entsprechend über die <a href="https://www.php.net/manual/de/reserved.variables.post.php">POST-Variablen</a> auslesbar. Mit dem Nonce-Field erzeugt WordPress aber noch ein unsichtbares Feld mit dem Authentifizierungstoken. Auch der ist dann als POST-Variable abfragbar und lässt sich so vergleichen.</p>
<p>Für das Schreiben in die Datenbank, kann man entweder ein eigenes QUERY and <code>$wpdb</code> übergeben, oder wir nutzen den von WordPress implementierten <code>$wpdb-&gt;insert()</code>-Befehl.</p>
<pre><code>if(is_admin() &amp;&amp; (isset($_POST['sn_add_keywords_nonce']) || wp_verify_nonce($_POST['sn_add_keywords_nonce'], 'sn_add_keywords'))) {
	global $wpdb;
	$table_name = $wpdb-&gt;prefix . 'sn_add_keywords';
	$newdata = array(
        'searchstring' =&gt; sanitize_text_field($_POST['searchstring']),
        'keywordstring' =&gt; sanitize_text_field($_POST['keywordstring']),
      );
    $wpdb-&gt;insert($table_name, $newdata, '%s');
    wp_safe_redirect(esc_url(admin_url('admin.php?page=sn_add_keywords%2Fsnak.php')));
}
exit();
</code></pre>
<p>Über den Befehl <code>wp_safe_redirect()</code> leiten wir nach dem Absenden den Benutzer wieder zurück zur Ausgangsseite. Diese Vorgehensweise hat übrigens einen Nachteil, den wir in Kauf nehmen, der aber für ein frei verfügbares Plug-in ausgebessert werden sollte, zum Beispiel, indem man AJAX verwendet.</p>
<p>Zuletzt stellen wir über den <code>exit()</code>-Befehl sicher, dass wirklich alle POST-Variablen nach dem Abschluss gelöscht werden. So wird das Formular geleert und auch eine neue Nonce erstellt.</p>
<p>Das Plug-in, wie wir es verwenden sieht bei uns dann übrigens derzeit so aus.</p>
<div data-id="516258" class="ajaxGalleryInit" style="display:none;"></div>
<h2>Was wir nicht erzählt haben?</h2>
<p>Auch dieser Beitrag ist schon wieder ziemlich lang geworden. Deshalb haben wir einige Details geschlabbert. Darunter:</p>
<ul>
<li>Denn in unserem Plug-in haben wir beispielsweise bei der Aktivierung auch eine Versionsnummer übergeben. Die können wir dann bei einem Update vergleichen und nutzen, um so Änderungen an der Datenbank vorzunehmen.</li>
<li>Wir haben aber auch unterschlagen, dass wir unsere Tabelle beim Aktivieren bereits mit ein paar Datensätzen ausgestattet haben. Ich finde es immer schöner, wenn man zumindest ein paar Anhaltspunkte hat.</li>
<li>Es kann außerdem sinnvoll sein, die Daten nicht zu löschen, oder dies dem Nutzer zur Wahl zu stellen. Um so eine Option haben wir uns bislang nicht gekümmert.</li>
<li>WordPress hält auch Alternativen zu den „Auslösern“ bereit. So kann man Dateien namens <code>uninstall.php</code> oder <code>activation.php</code> erstellen. Deren Inhalte werden dann automatisch ausgeführt.</li>
<li>Wie Ihr auf dem Screenshot erkennen könnt, geben wir die vorhandenen Datensätze auch im WordPress-Administrationsportal aus. Wie wir das gemacht haben, haben wir an dieser Stelle ebenso geschlabbert.</li>
<li>Nicht thematisiert haben wir den Prozess, wie man ein Plug-in bei WordPress einreicht. Vielleicht kommt das in einem anderen Beitrag einmal zur Sprache, oder Ihr findet es bis dahin selbst heraus.</li>
<li>Spannend ist auch, wie man bereits vorhandene Daten wieder löscht, oder überarbeitet.</li>
<li>Der Quellcode hier enthält auch kein CSS und gibt ganz grundsätzlich nicht das komplette Plug-in wieder, wie wir es verwenden. Zum Zwecke des Tutorials habe ich diesen angepasst, damit er allgemein verständlicher wird.</li>
</ul>
<p>Tatsächlich ist diese „Idee“, aus der erst eine Handvoll Quellcode wurde, in unserem Fall mittlerweile auf fünf Dateien mit rund 250 Zeilen Quellcode angewachsen (Kommentare inklusive).</p>
<p>Wenn jemand von Euch Fragen zu diesem Projekt hat, kann er uns gerne auf den üblichen Kanälen anschreiben.</p>
<p>Der Beitrag <a href="https://macnotes.de/2021/01/26/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-2/">Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #2</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #1</title>
		<link>https://macnotes.de/2021/01/24/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-1/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Sun, 24 Jan 2021 07:45:03 +0000</pubDate>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://macnotes.de/?p=515582</guid>

					<description><![CDATA[<p>Wer immer schon mal wissen wollte, wie man ein eigenes WordPress-Plug-in anfertigt, für den ist der nachfolgende Beitrag mit Sicherheit interessant. Denn bei uns war die Idee, Schlagwörter automatisch hinzuzufügen, damit wir bei der Überarbeitung der Artikel am Ende noch weniger Arbeit damit haben. Was aber als Bastelei am eigenen WordPress-Theme anfing und nur ein [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2021/01/24/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-1/">Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #1</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'>Wer immer schon mal wissen wollte, wie man ein eigenes WordPress-Plug-in anfertigt, für den ist der nachfolgende Beitrag mit Sicherheit interessant. Denn bei uns war die Idee, Schlagwörter automatisch hinzuzufügen, damit wir bei der Überarbeitung der Artikel am Ende noch weniger Arbeit damit haben. Was aber als Bastelei am eigenen WordPress-Theme anfing und nur ein paar Zeilen Quellcode im Footer ausmachte, endete schließlich als ausgewachsenes Plug-in.</p>
<p>Warum? Es wäre zu einfach, zu sagen, weil wir es können. Es gibt viel einleuchtendere Gründe:</p>
<ul>
<li>Weil diese Aufgabe so oft ausgeführt wird, dass sich der Aufwand lohnt.</li>
<li>Da wir nicht ständig den Quellcode anpassen wollten, um wieder eine Option hinzuzufügen, sondern dies unmittelbar erledigen zu können.</li>
<li>Weil es durchaus Spaß macht, je öfter man sich einer Herausforderung stellt und man am Ende sogar noch etwas lernt.</li>
<li>Da ein Plug-in am Ende wartungsfreundlicher ist, und auch unabhängig von einem Thema genutzt werden kann.</li>
<li>Weil das Plug-in vielleicht sogar so interessant ist, dass man es anderen Leuten zur Verfügung stellen kann, die das gleiche Problem lösen wollen.</li>
</ul>
<h2>Automatisierung tut not</h2>
<p>Regelmäßige Macnotes-Leser wissen, dass wir im Hintergrund versuchen, trotz WordPress eine Datenbasis aufzubauen, mit der wir irgendwann dann den nächsten Schritt wagen können. Bis dahin wird es aber noch eine Weile dauern. <a href="https://macnotes.de/2021/01/08/wasserstand-19-neue-funktionen-2020-geschafft-2009-auch/">Anfang Januar erwähnte ich im Wasserstand #19</a>, dass wir bei der Überarbeitung das Jahr 2009 abgeschlossen haben. Mittlerweile bin ich sogar schon beim Februar 2010 angelangt.</p>
<p>Doch diese Überarbeitung ist so langwierig, und vor allem so repetitiv. Immer, wenn Aufgaben sich wiederholen, lohnt es sich, nach einer Automatisierung derselben zu suchen.</p>
<h2>Die Idee: Schlagwörter automatisch hinzufügen</h2>
<p>Wenn ich schreibe Schlagwörter, dann meine ich eigentlich sogar einen eigenen Typus, der bei uns intern „Keywords“ genannt wird. Wir haben zusätzlich zu den öffentlichen Schlagwörtern, für die es auch Archive gibt, nämlich interner Schlüsselwörter im Einsatz, die nicht für Nutzer und Suchmaschinen einsehbar sind, die uns aber erlauben, semantische Filter an manchen Stellen auf der Webseite einzusetzen, beispielsweise wenn es darum geht, „ähnliche Artikel“ anzuzeigen.</p>
<p>Nun ist die Situation, die ich bei Macnotes vorfand aber unbefriedigend. Denn es gab und gibt auch immer noch mehr als zehntausend öffentlich sichtbare Schlagwörter. Ich gehe bei der Überarbeitung chronologisch vor, Artikel für Artikel, da wir über die Jahre mehr als ein halbes Dutzend Webseiten (Macnotes, iPhone-Notes, Apfelmagazin, Blog4i, u. a. m.) zusammengeführt haben. Es gab inhaltlich doppelte Beiträge, die müssen zusammengeführt werden, und neu verlinkt. Ich könnte auch mit der Dampfhammer-Methode alle Beiträge und deren Schlagworte automatisch anpassen oder löschen. Nur dann fehlten mir auf einen Schlag zehntausende Endpunkt für Google. Stattdessen arbeite ich diese Stück für Stück ab und füge dann auch Weiterleitungen hinzu, damit die Suchmaschine nicht ganz im Dunkeln tappt.</p>
<h3>Wie kann man die Idee umsetzen?</h3>
<p>Wenn ich in den vielen Jahren Computerei etwas gelernt habe, dann, dass es nicht schadet, sich die eigene Idee einmal vor Augen zu führen.</p>
<p>Gerade Laien bekommen so ein besseres Gefühl dafür, was alles zu tun ist. In der Informatikausbildung nennt man solchen Output gerne auch mal Pseudocode. Strukturierte Notizen reichen aber vollkommen aus, um dann die einzelnen Teile auszuarbeiten.</p>
<p>Wenn ich also Schlagworte automatisch ersetzen will, dann muss ich mir Gedanken machen, darüber …</p>
<ul>
<li>… wann das geschehen soll,</li>
<li>… welche Schlagwörter das sein sollen,</li>
<li>… womit ich sie vergleichen kann, um zu entscheiden, ob sie automatisch hinzugefügt werden.</li>
</ul>
<p>Ich könnte mir noch mehr Fragen stellen. Aber ungefähr so beginnt dann ein Brainstorming und kann man versuchen, Antworten zu finden.</p>
<h3>1. Schritt: direkt im Artikel</h3>
<p>Meine erste Idee war, ich könnte, „wenn ich als Administrator eingeloggt bin“, und nur dann, eine Funktion aufrufen, die dann die Schlagwörter hinzufügt.</p>
<p>Ich gehe dann gerne hin, und füge in der Datei <code>footer.php</code> ersten Quellcode hinzu und erzeuge eine Ausgabe. Natürlich mache ich das nicht live auf Macnotes, sondern in meiner Entwicklungsumgebung am heimischen Computer. Ich setze für die WordPress-Entwicklung gerne <a href="https://www.mamp.info/de/mac/">MAMP</a> ein. Das hat sich bewährt und ist relativ pflegeleicht (funktioniert auch unter macOS Big Sur und auf Apple Silicon).</p>
<p>Da ich gerade einen Artikel überarbeitete, stoppte ich die Arbeit daran und dachte. Dieser kann als Startpunkt für die Funktion dienen. Also suchte ich nach einem Merkmal, das relativ eindeutig zuordenbar ist. Im Titel sehr vieler „Notizen“-Beiträge auf Macnotes kommt die Phrase „Notizen vom“ vor. Wenn ich 1000 Mal in Zukunft so ein Schlagwort automatisch hinzufüge, und vielleicht zwei, dreimal daneben liege, dann ist es einfacher, dreimal das Schlagwort wieder zu entfernen.</p>
<h4>Überschrift mit Phrase vergleichen, Ergebnis als Arbeitsauftrag</h4>
<p>Also verglich ich im Quellcode den Inhalt vom Titel mit der Phrase „Notizen vom“ und gab dann etwas aus. Die Notiz würde in etwa lauten:</p>
<pre><code>Wenn der Titel "Notizen vom" enthält, dann füge das Keyword "Notizen (MN)" hinzu, aber nur, wenn es noch nicht vorhanden ist.
</code></pre>
<p>Ja und dann kann man sich bereits an die Arbeit machen. Wer noch Laie ist, der kann anhand dieser Anweisung auch Google oder eine andere Suchmaschine bemühen, beispielsweise danach, wie man an den „Titel“ eines Beitrags in WordPress gelangt, oder wie man in PHP innerhalb einer Zeichenkette (String) nach einer Phrase (Substring) sucht. So kommt man dann von A nach B und hangelt sich immer weiter.</p>
<p>Wer schon mehr Erfahrung hat, wird Anlaufstellen kennen, oder eben direkt losprogrammieren. Der erste Code sieht dann in etwa wie folgt aus:</p>
<pre><code>if(strpos($post-&gt;post_title, 'Notizen vom') !== false) {
 echo 'An dieser Stelle muss dann die Funktion arbeiten.';
}
</code></pre>
<p>Die PHP-Funktion <a href="https://www.php.net/manual/de/function.strpos.php">strpos</a> wird gerne verwendet, um eine Gelingensbedingung zu erzeugen. Sie liefert entweder eine Zahl zurück, oder <code>false</code>, wenn die gesuchte Zeichenkette nicht vorhanden ist. Das ist prima, denn uns interessiert nur, ob es vorkommt. Also müssen wir umgekehrt fragen, ob beim Vergleich mit dem Titel „nicht false“ zurückgegeben wird.</p>
<h4>Überprüfen, ob das Schlagwort vorhanden ist</h4>
<p>Nun müssen wir noch überprüfen, ob der Beitrag nicht eventuell schon das Keyword „Notizen (MN)“ nutzt. WordPress bietet dazu bereits eine Funktion an namens <code>has_term()</code> (vgl. <a href="https://developer.wordpress.org/reference/functions/has_term/">WordPress Code-Referenz</a>).</p>
<p>Wir fügen also dem Code von oben noch etwas hinzu:</p>
<pre><code>if(strpos($post-&gt;post_title, 'Notizen vom') !== false) {
	if(has_term('Notizen (MN)') {
	echo 'es gibt das Keyword schon.';
} else {
	echo 'jetzt müssen wir das Schlagwort hinzufügen.';
}
}
</code></pre>
<h4>Schlagwort hinzufügen</h4>
<p>Wir müssen uns nun also Gedanken machen, wie wir das Schlagwort an der Stelle hinzufügen. Auch dafür bietet WordPress eine Methode an: <code>wp_set_post_terms()</code> (vgl. <a href="https://developer.wordpress.org/reference/functions/wp_set_post_terms/">WordPress Code-Referenz</a>).</p>
<p>Abermals passen wir dann den Code von oben weiter an.</p>
<pre><code>if(strpos($post-&gt;post_title, 'Notizen vom') !== false) {
	if(has_term('Notizen (MN)') {
	echo 'es gibt das Keyword schon.';
} else {
	wp_set_post_terms($post-&gt;ID, 'Notizen (MN)', 'keywords', true);
	echo 'wir haben das Schlagwort hinzugefügt.';
}
}
</code></pre>
<h2>2. Schritt: Abstrahieren nicht vergessen</h2>
<p>Jetzt haben wir doch alles erreicht, was wir wollten, und können uns wieder anderen Dingen zuwenden?</p>
<p>Nicht ganz. Denn wir wollen ja zum Beispiel auch zwei oder mehr Schlagworte anpassen. Zunächst bedeutet das, dass wir den Code von oben weiter umbauen müssen. Doch zunächst sollten wir uns wieder ein paar Gedanken darüber machen, wie man das machen kann.</p>
<p>Der unmittelbarste Zugang wäre vermutlich, denn Quellcode einfach zu kopieren, und einfach nur die Vergleichsphrase im Titel zu finden und dazu das passende Schlagwort. Aber man kann das auch eleganter lösen:</p>
<pre><code>Übergebe ein Array mit allen möglichen Schlagworten. Vergleiche und ersetze für alle diese.
</code></pre>
<p>Also dann ans Werk. Aus einem Schlagwort hab ich kurzerhand erst einmal zwei gemacht, und diese zu einem Array (<code>$tags[]</code>) hinzugefügt. Dann muss ich natürlich noch eine Funktion suchen, die mir erlaubt, für jedes Element im Array etwas auszuführen. Da hält PHP dann die <a href="https://www.php.net/manual/de/control-structures.foreach.php">foreach-Schleife</a> bereit.</p>
<pre><code>$tags = [
	"Notizen vom" =&gt; "Notizen (MN)",
	"Windows 7" =&gt; "Windows 7"
  ];
  foreach ($tags as $title =&gt; $keyword) {
    if(strpos($post-&gt;post_title, $title) !== false){
      if ( has_term($keyword, 'keywords') ) {
        echo ( '&lt;p&gt;Es gibt das Keyword "'.$keyword.'" schon.&lt;/p&gt;' );
      } else {
        wp_set_post_terms( $post-&gt;ID, $keyword, 'keywords', true );
        echo ( '&lt;p&gt;Wir haben das Keyword "'.$keyword.'" hinzugefügt.');
      }
    }
  }
</code></pre>
<h2>3. Schritt: Noch weiter abstrahieren, Plug-in entsteht</h2>
<p>Das letzte Stück Quellcode war doch eigentlich ganz prima? Ja, ich hätte einfach in der Footer-Datei bei neuen Schlagworten, die mir einfallen, diese ergänzen können, die Datei auf den Server hochladen, und weiterarbeiten können.</p>
<p>Aber auch das ist nur ein fauler Kompromiss. Denn viel besser wäre es ja, wenn man direkt in WordPress beliebig viele Schlagworte hinzufügen könnte, die man auf diese Weise ergänzen wollte.</p>
<h3>Vorüberlegungen</h3>
<p>An dieser Stelle lohnt es abermals, ein paar Vorüberlegungen zu machen. Fragen, die man sich stellen kann, lauten:</p>
<ul>
<li>Wie kann ich die Daten getrennt vom Code bearbeiten?</li>
<li>Welche Möglichkeiten habe ich, um mit Daten zu interagieren?</li>
</ul>
<p>Auch das sind nur zwei von vielen Fragen, mit denen man sich an der Stelle beschäftigen könnte. Mir ist zum Beispiel in den Sinn gekommen, eine Text-Datei oder eine CSV-Datei zu nutzen, um darüber die Daten zu ergänzen. Aber dann hätte ich auch das Problem, diese immer wieder zu ergänzen, und hochladen zu müssen.</p>
<p>Als Nächstes fällt einem dann eine Tabelle ein. WordPress nutzt MySQL und bietet sogar Funktionen, um sowohl Tabellen zu erstellen, als auch Daten darin zu ändern.</p>
<p>Nur dann benötige ich ja irgendeine Möglichkeit, die Daten online hinzuzufügen. Ich könnte natürlich eine separate HTML/PHP-Seite erstellen, die ich aufrufe, und der ich es erlaube, mit der Datenbank zu kommunizieren. An dieser Stelle reifte dann der Gedanke, dass ich auch gleich ein Plug-in für WordPress entwickeln könnte. Das hat nämlich auch den Vorteil, dass ich die Funktionalität nicht verliere, sollte ich mal das Theme für Macnotes anpassen.</p>
<h3>WordPress-Plug-ins erstellen, aber wie?</h3>
<p>Ich hatte vor Jahren schon mal ein Plug-in für WordPress erstellt. Aber wie das eben so ist, wenn man sich nicht so sehr mit der Materie auseinandersetzt, dann muss man sich erst wieder einarbeiten. Eine Anlaufstelle ist natürlich <a href="https://developer.wordpress.org/plugins/intro/">WordPress’ eigenes Handbuch</a> für die Plug-in-Entwicklung. Das ist aber so strukturiert, dass man viel hin- und hernavigiert und mit sehr vielen komplexen Dingen konfrontiert wird.</p>
<p>Einfacher geht es, wenn man in der Suchmaschine seines Vertrauens nach Alternativen Ausschau hält. Das können auch teilweise sehr alte Beiträge von <a href="https://www.smashingmagazine.com/2011/09/how-to-create-a-wordpress-plugin/">Smashing Magazine</a> (9+ Jahre) oder von <a href="https://bueltge.de/wp-tutorial-wir-schreiben-ein-simples-wp-plugin-teil-0/">Frank Bültge</a> (14+ Jahre) sein. Selbst wenn manche der Hinweise darin heute nicht mehr aktuell sein „sollten“, dann bekommt man nämlich Anhaltspunkte, wie die Dinge zusammenpassen und kann sich von dort aus weiterhangeln.</p>
<h3>Was braucht man für ein WordPress-Plug-in?</h3>
<p>Das einfachste WordPress-Plug-in, das man herstellen kann, besteht aus einer einzelnen Datei, die man einfach in das Plug-in-Verzeichnis von WordPress kopiert (besser aber in einen Unterordner). „So einfach“ ist das tatsächlich.</p>
<p>Diese Plug-in-Datei enthält im Kopf ein paar Kommentare, die WordPress dann ausliest und in der Administrationsoberfläche anzeigt.</p>
<pre><code>/**
* Plugin Name: SN Add Keywords
* Plugin URI: https://sajonara.info
* Description: This plugin automatically adds keywords to the database, if they are found in the headline and not already implemented.
* Version: 0.0.2
* Author: Alexander Trust
* Author URI: https://sajonara.info
* License: GPL2
*/
</code></pre>
<p>Eine PHP-Datei, die nur diese Information enthält und sonst nichts, ist auf dem Papier auch schon ein „nutzloses“ Plug-in. WordPress zeigt es dann an, und man kann es aktivieren.</p>
<div data-id="515581" class="ajaxGalleryInit" style="display:none;"></div>
<h4>Plug-ins wollen aufgerufen werden</h4>
<p>Angenommen, wir hätten den bereits fertigen Quellcode von davor in unsere Plug-in-Datei kopiert, hätte auch dieser funktioniert, WordPress beim Aktivieren allerdings eine Fehlermeldung ausgegeben. Das liegt nicht zuletzt daran, dass WordPress gerne möchte, dass Plug-ins und deren Funktionen „aufgerufen“ werden sollen.</p>
<p>Dazu stellt WordPress zwei Kategorien an Aufrufen zur Verfügung:</p>
<ul>
<li>Hooks</li>
<li>Filter</li>
</ul>
<p>Die Filter sollen vor allem dazu genutzt werden, um Inhalte zu verändern. Entsprechend gibt es für Filter (<code>add_filter()</code>) Parameter, die beispielsweise den Titel (<code>the_title</code>) oder den Text (<code>the_content</code>) betreffen. Es gibt noch viele weitere Endpunkte, an denen man einen Filter ausführen könnte.</p>
<p>Doch wir wollen ja nicht den Text verändern, sondern Schlagworte hinzufügen, und also sind die „Hooks“ (<code>add_hook()</code>) vielleicht eher für unsere Zwecke geeignet.</p>
<p>Was wir dann also machen können, um WordPress zufriedenzustellen, ist unseren Code von davor in eine Funktion integrieren, und diese mittels eines Action-Hooks aufzurufen.</p>
<pre><code>add_action('wp_footer', 'sn_add_keywords');

function sn_add_keywords() {
 /* Unser Quellcode von zuvor. */
}
</code></pre>
<h4>Drei Zustände eines Plug-ins</h4>
<p>WordPress erkennt insgesamt drei Zustände eines Plug-ins, und kann, beim Eintreten derselben aktiv werden.</p>
<ul>
<li>Beim Aktivieren,</li>
<li>beim Deaktivieren</li>
<li>und beim Deinstallieren.</li>
</ul>
<p>Warum erzähle ich Euch das? Nun, weil es durchaus hilfreich sein kann, nicht nur an sich selbst zu denken, sondern auch an andere. Und an dieser Stelle erreicht dann die ursprüngliche Idee bereits eine interessante Komplexität.</p>
<p>Ich sagte ja, es wäre prima, wenn man eine Tabelle hätte, in die man dann die Schlagwörter hinzufügen kann. Das Aktivieren des Plug-ins eignet sich in diesem Fall dazu, die Tabelle anzulegen. Auch dafür hält WordPress dann Befehle bereit.</p>
<p>Ich finde aber, dass dieser Beitrag schon lang genug geworden ist, und habe mich deshalb dazu entschieden, noch einen zweiten Teil herauszubringen, in dem ich dann erkläre, wie man die Tabelle anlegt, sie mit ersten Daten füllt, und wieso es hilfreich sein kann, die Versionsnummer des eigenen Plug-ins ebenfalls in der Datenbank von WordPress zu speichern. Außerdem widme ich mich dann auch den anderen beiden Zuständen von Plug-ins. Nicht zuletzt wollt Ihr ja sicherstellen, dass Euer Plug-in, wenn man es deinstalliert, die Daten ordentlich löscht. Und über das Erstellen einer „Webseite“ für das Plug-in in der Administrationsoberfläche von WordPress haben wir auch noch nicht gesprochen.</p>
<p>Freut Euch also dann auf den zweiten Teil, der vermutlich nicht ewig auf sich warten lassen wird.</p>
<p>Der Beitrag <a href="https://macnotes.de/2021/01/24/von-der-idee-zum-wordpress-plug-in-schlagworter-automatisch-hinzufugen-1/">Von der Idee zum WordPress-Plug-in: Schlagwörter automatisch hinzufügen #1</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Wasserstand #16: Es geht wieder weiter</title>
		<link>https://macnotes.de/2020/07/17/wasserstand-16-es-geht-wieder-weiter/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Fri, 17 Jul 2020 01:35:34 +0000</pubDate>
				<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Internet]]></category>
		<guid isPermaLink="false">https://macnotes.de/?p=401767</guid>

					<description><![CDATA[<p>Es ist rund zwei Wochen her, als ich das letzte Mal über den Status Quo bei Macnotes informierte. Dieser Wasserstand fällt etwas kürzer aus als der letzte. Dafür hat er deutlich bessere Nachrichten in petto. Und zwar geht es um die nahe Zukunft von Macnotes, also das, was schon recht bald kommt. Denn letzten Sonntag [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/07/17/wasserstand-16-es-geht-wieder-weiter/">Wasserstand #16: Es geht wieder weiter</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'>Es ist rund zwei Wochen her, als ich das letzte Mal über den Status Quo bei Macnotes informierte. Dieser Wasserstand fällt etwas kürzer aus als <a href="https://macnotes.de/2020/07/01/wasserstand-15-aderlass-abmahnung-rebounce-und-durststrecke/">der letzte</a>. Dafür hat er deutlich bessere Nachrichten in petto. Und zwar geht es um die nahe Zukunft von Macnotes, also das, was schon recht bald kommt.</p>
<p>Denn letzten Sonntag hab ich das Gröbste für einen Kundenauftrag erledigt und widme mich seitdem auch einem neuen Layout/Theme für Macnotes. Natürlich mache ich damit auf den ersten Blick tolle Fortschritte. Denn man hat „schnell mal“ was zusammengeschustert. Mir kommt es aber auch aufs Detail an und es gibt genügend Fallstricke, die über Wohl und Wehe entscheiden können.</p>
<p>Ich bin jedenfalls froh, dass ich Euch aktuell zeigen kann, was ich in der kurzen Zeit seit vergangenen Sonntag auf die Beine gestellt habe.</p>
<h2>Neues Design in mehreren Phasen</h2>
<p>Entsprechend werde ich aber trotzdem die Kirche zunächst im Dorf lassen und versuchen die Funktionalität von Macnotes jetzt nachzubauen, und aber den Schnickschnack für später übrig zu lassen. Beispielsweise möchte ich mittels Javascript Inhaltsverzeichnisse implementieren, wo dies angebracht erscheint, oder aber auch eine eigene Bildergalerie und womöglich auch ein Glossar etablieren. Das muss aber noch ein wenig warten.</p>
<h3>Die neue Startseite</h3>
<p>Stand heute habe ich die neue Startseite bereits „fertig“. Es fehlen dort im Prinzip Änderungen im Detail.</p>
<div data-id="401761" class="ajaxGalleryInit" style="display:none;"></div>
<p>Die neue Startseite wird allerdings ein wenig von allem enthalten. Also aus bestimmten Kategorien die Inhalte bereitstellen. Sie erhält dafür keine Seiten-Navigation zum Blättern. Denn meines Erachtens ist sie dafür nicht gedacht.</p>
<p>Sehr wohl möchte ich aber mittelfristig auch die Usability erhöhen und habe damit bereits begonnen. Denn jeder Abschnitt der Startseite enthält eine Navigation, über die man zu den Abschnitten springen kann. Ein kleines Detail ist, dass das Pfeil-Symbol immer auch in die Richtung zeigt, in der sich der Bereich befindet (und selbstredend ist der sichtbare Bereich nicht gleichzeitig Teil der Navigation).</p>
<div data-id="401766" class="ajaxGalleryInit" style="display:none;"></div>
<p>Sieht man mal vom Bild ab, das in meiner Entwicklungsumgebung fehlt, bin ich derzeit damit ganz zufrieden.</p>
<h3>Die neue Artikelseite</h3>
<p>Die neue Artikelseite zeigt, dass man ein Design nicht einfach so aus der Taufe heben kann. Sie gefällt mir noch nicht (ganz). Abstände und Details passen irgendwie noch nicht zusammen und wirken noch unrund. Aber zumindest kann sie sich trotzdem sehen lassen.</p>
<p>In der Seitenleiste gibt es zugehörige Firmen, Events, Plattformen, Personen und Produkte, wenn denn welche ausgewählt sind. Die Event-Seiten beispielsweise enthalten ihrerseits Links zu Nachrichten über das Event. So könnt Ihr dann bei der kommenden WWDC 2021 schon alle Meldungen an einer Stelle abrufen.</p>
<div data-id="401765" class="ajaxGalleryInit" style="display:none;"></div>
<p>Am unteren Ende gibt es eine Vor- und Zurück-Navigation und außerdem „ähnliche Nachrichten“. Diese sind „hausgemacht“. Denn ich habe für WordPress und auch auf Macnotes schon vor Jahren eine zusätzliche Taxonomie eingerichtet, die jedoch unsichtbar ist. Ich frage dann Beiträge ab, die über gleiche „Keywords“ verfügen und gebe sie aber außerdem per Zufall wieder. Auf diese Weise möchte ich sowohl die Themenzugehörigkeit sicherstellen als auch die Neugier von Euch befriedigen. Denn vielleicht gibt es ja noch etwas zu lesen, das Ihr noch nicht kennt. Und also werden bei einem Seitenabruf regelmäßig neue ähnliche Beiträge angezeigt. Wie ich das technisch umgesetzt habe, darüber werde ich Euch auch „später“ (alias irgendwann und nicht heute) noch informieren, sodass Ihr das auf Euren Webseiten womöglich nachmachen könnt.</p>
<div data-id="401762" class="ajaxGalleryInit" style="display:none;"></div>
<p>Auch hier fehlen bei meiner lokalen Installation einige Bilder, aber das soll Euch nicht weiter stören, weil es, wenn das neue Design live geht, anders sein wird.</p>
<h3>Das neue Archiv</h3>
<p>Auch für das/die Archiv(e) habe ich bereits angefangen ein neues Design anzulegen. Natürlich bekommen außerdem die Archive eine Seitennavigation. Denn dort macht sie Sinn.</p>
<p>Beim Überfahren der Bilder nutze ich CSS-Effekte, die ich leider im Standbild nicht wiedergeben kann. Aber auch das ist etwas, das ich Euch „später“ noch im Detail vorstelle, damit Ihr es eventuell auf Eurer Webseite nachmachen könnt.</p>
<div data-id="401763" class="ajaxGalleryInit" style="display:none;"></div>
<p>Wenn ich allerdings „Effekte“ benutze oder Funktionen umsetze, dann möchte ich diese mit möglichst wenig Ressourcen am Browser einrichten. Umso dankbarer bin ich, dass es mittlerweile auch CSS-Effekte und -Animationen gibt. Also ich mit dem Web Ende der 1990er anfing lauteten die HTML-Befehle noch ganz anders und <a href="https://de.wikipedia.org/wiki/JavaScript">steckte Javascript noch in den Kinderschuhen</a>. Heute ist vieles wesentlich eingängiger als damals. Doch meine Devise lautet: Ich werde keine Javascript-Bibliothek installieren, nur weil es womöglich einfacher ist. Sieht man davon ab, dass WordPress von Haus aus JQuery lädt, nutze ich für meinen Alltag sogenanntes „Vanilla Javascript“, für das man keine zusätzlichen Dinge laden muss.</p>
<h2>Was noch fehlt</h2>
<p>Hier und da muss ich auf jeden Fall noch am Kontrast schrauben. Ich bin selbst rot-grün-fehlsichtig. Entsprechend sind mir manche Farbkombinationen leider ein Dorn im Auge und muss ich entsprechend nachbessern. Es ist auch nicht ausgeschlossen, dass ich im Zuge der Arbeiten die Schriftarten noch auswechsle.</p>
<p>In jedem Fall werden ich versuchen sie lokal auf dem Webserver abzulegen, damit auch in diesem Fall keine Kommunikation mit fremden Server stattfinden muss.</p>
<p>Macnotes hab ich im November 2019 gekauft, wie ich es vorgefunden habe. Entsprechend gibt es noch super viel zu tun. Aber es kommt jetzt wieder ein wenig mehr Fahrt in die ganze Geschichte, selbst wenn es „noch“ nicht danach ausschaut.</p>
<h2>Was schon da ist: Responsivität</h2>
<p>Ja und in einer Angelegenheit habe ich aber auf ein Framework gesetzt, und zwar ein CSS-Framework. Dabei wollte ich vor allem eines, das nicht zu viele Features bietet und von Haus aus eher einen kleinen „Fußabdruck“ hinterlässt. Mit <a href="https://bulma.io/">Bulma</a> denke ich, hab ich eine gute Alternative gefunden. Denn ich habe in der Vergangenheit auch mit anderen, deutlich größeren Frameworks gearbeitet, wie beispielsweise <a href="https://getbootstrap.com/">Bootstrap</a>, <a href="https://get.foundation/">Foundation</a> oder <a href="https://materializecss.com/">Materialize</a>. Ausprobieren möchte ich irgendwann auch noch <a href="https://tailwindcss.com/">Tailwind</a>. Aber wenn man Fortschritte erzielen möchte, dann muss man Entscheidungen treffen, und also fiel die Wahl auf Bulma, weil es mir nicht ganz fremd war und ich die überschaubare Größe schätze.</p>
<p>In jedem Fall habe ich auch die „Responsivität“ im Blick. Ein Thema in diesem Zusammenhang sind natürlich auch die Überschriften oder Typographie im Allgemeinen. Denn es gibt zwar Lösungen, aber die sind entweder sehr komplex oder eben begrenzt einsatzfähig. Wie ich dieses Problem gelöst habe, werde ich auch an anderer Stelle explizit breittreten. ;)</p>
<p>So in etwa sieht dann das neue Macnotes auf dem iPhone aus: Also zumindest, wenn Google Euch keine AMP-Version liefert.</p>
<div data-id="401764" class="ajaxGalleryInit" style="display:none;"></div>
<p>Mittelfristig möchten wir auch dafür eine eigenständige Lösung anbieten. Aber vermutlich macht es da mehr Sinn, gleich ein eigenes CMS zu programmieren, was durchaus auf unserem Schmierzettel als Idee vermerkt ist.</p>
<p>Falls Euch das Thema langweilt, habt Ihr hoffentlich nicht zu viel von dem Beitrag gelesen. Ansonsten sind wir auch gerne offen für Feedback schon zu diesem frühen Zeitpunkt, damit wir das neue Macnotes schon in der Entwicklungsphase optimieren können. Das ist auch der Grund, warum ich diesen Wasserstand loswerden wollte.</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/07/17/wasserstand-16-es-geht-wieder-weiter/">Wasserstand #16: Es geht wieder weiter</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Wasserstand #14: Phishing, die Post und der größte Müll</title>
		<link>https://macnotes.de/2020/06/03/wasserstand-14-phishing-die-post-und-der-grosste-mull/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 01:12:53 +0000</pubDate>
				<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Technologie]]></category>
		<guid isPermaLink="false">https://macnotes.de/?p=399812</guid>

					<description><![CDATA[<p>Es ist wieder Zeit für einen Wasserstand. Eigentlich wollte ich den schon vor einer Weile veröffentlichen. Vor ein paar Tagen fing ich sogar an, daran zu schreiben. Mit knapp 7.000 Zeichen (am Ende über 14.000) dachte ich, genug geschrieben zu haben. Doch dann überschlugen sich die Ereignisse. Ich bekam Post von meiner Bank, von der [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/06/03/wasserstand-14-phishing-die-post-und-der-grosste-mull/">Wasserstand #14: Phishing, die Post und der größte Müll</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'>Es ist wieder Zeit für einen Wasserstand. Eigentlich wollte ich den schon vor einer Weile veröffentlichen. Vor ein paar Tagen fing ich sogar an, daran zu schreiben. Mit knapp 7.000 Zeichen (am Ende über 14.000) dachte ich, genug geschrieben zu haben. Doch dann überschlugen sich die Ereignisse. Ich bekam Post von meiner Bank, von der Staatsanwaltschaft und dann sogar Nachricht von der Post auf Twitter. Doch interessant ist darüber hinaus vor allem der Müll, den ich auf Macnotes fand/finden musste. Aber der Reihe nach…</p>
<h2>Phishing per Post</h2>
<p>Vor Kurzem erreichte mich ein Brief, der aus dem Berliner Osten verschickt wurde, genauer aus Berlin Schönefeld. Dort sitzt asoziales Pack – sorry für den Ausdruck –, das versucht Leute hinters Licht zu führen, und zwar in großem Maßstab.</p>
<p>Vielleicht kommen die Drahtzieher auch gar nicht aus Schönefeld, aber zumindest wurde der Brief im <a href="https://de.wikipedia.org/wiki/Briefzentrum_(Deutsche_Post_AG)">Briefzentrum 12</a> der deutschen Post abgestempelt. Das Schreiben enthielt natürlich keinen Absender, sehr wohl aber meine vermeintliche Adresse und Bankverbindung. Wegen der Datenschutzgrundverordnung (DSGVO) müsse ich auf einer Webseite meine Daten abgleichen. Da ich seit Mitte der 1990er im Internet unterwegs bin, falle ich auf solche Bauernspieler-Tricks nicht herein. Ich weiß aber, dass andere Leute das sehr wohl tun. Nicht zuletzt warnt auch meine Bank vor solchen Anschreiben.</p>
<p>Schon beim Anblick des Briefes könnten die Alarmglocken schrillen. Denn die Bank sitzt nicht in Schönefeld, und auch nicht in Berlin. Aber wer recherchiert schon das Briefzentrum vom Poststempel? Trotzdem versuchte jemand mit einem mit 80 Cent frankierten Umschlag an meine Bankdaten zu gelangen. Denn eine fertig präparierte Webseite sollte meinen Log-in und mein Passwort in Empfang nehmen.</p>
<h3>Nur ich, oder ist das organisierte Kriminalität?</h3>
<p>In vorherigen Wasserständen erwähnte ich schon, dass ich seit der Übernahme von Macnotes einiges Ungemach aushalten musste. Auf meinen Namen wurden im Januar und Februar <a href="https://macnotes.de/2020/02/21/wasserstand-6-sichtbarkeit-sichtbarkeit-und-unsichtbarkeit/">Smartphones bei Klarmobil und Congstar bestellt</a>, jemand wollte mich außerdem bei 1&amp;1 registrieren, was bereits an den Filtern der Betrugsabteilung scheiterte, und mir außerdem eine Mitgliedschaft bei einem eher unbekannten Automobilclub unterjubeln. Zuletzt versuchte sogar jemand als Macnotes sich beim Partnerprogramm von Verivox anzumelden, um Affiliate-Provisionen auf ein anonymes Wirecard-Konto abzufischen. Bei all diesen Ereignissen bekommt man persönlich natürlich das Gefühl, dass man selbst das Ziel sei. Aber das ist vermutlich nicht einmal der Fall.</p>
<p>Ich erstattete Anzeige bei der Kriminalpolizei, auch deshalb, weil man mir bei Klarmobil sonst gar nicht erst geglaubt hätte. Die Spur führt(e) zunächst ins Ruhrgebiet nach Essen. Denn dorthin wurden die iPhones geliefert, die jemand bei Congstar und Klarmobil orderte. Diese Infos erhielt ich in Gesprächen mit Verantwortlichen jeweils. Nun erhielt ich vergangene Woche nicht nur den Phishing-Brief, sondern auch Post von der Staatsanwaltschaft Aachen, dass mein Fall mittlerweile an die Staatsanwaltschaft Essen überstellt wurde.</p>
<h3>Web.de als Sündenpfuhl für Fake-E-Mail-Adressen</h3>
<p>Immer wieder nutzten die Betrüger dabei Web.de-E-Mailadressen, die entweder auf meinen Namen, eine Variante meines Namens, oder auf Macnotes gemünzt waren. Dass dabei teilweise auch automatisierte Verfahren zum Einsatz kamen und Datensätze veraltet waren, zeigt auch ein aktueller Fall. Denn der Phishing-Brief wurde mir „nachgesandt“. Die Betrüger kannten also meine neue Adresse nicht, oder wollten sie nicht kennen, sondern agierten einzig aufgrund von Daten in einer Datenbank.</p>
<div data-id="383465" class="ajaxGalleryInit" style="display:none;"></div>
<h3>Steckt die organisierte Kriminalität dahinter?</h3>
<p>Zuletzt schrieb mich außerdem Verivox an. Anfang März, so erfuhr ich erst Ende Mai, habe jemand den Namen von Macnotes genutzt, um sich beim Partnerprogramm von Verivox anzumelden. Auch dort kam eine E-Mail-Adresse zum Einsatz, die bereits vorher in Essen Verwendung fand. Es ist davon auszugehen, dass es Beziehungen zwischen den Tätern in Essen und Berlin gibt.</p>
<p>Bei Verivox roch man allerdings den Braten gegen den Wind, und informierte mich über das betrügerische Verhalten. Im Gespräch mit der Sachbearbeiterin am Telefon fand ich heraus, dass es sich bei diesem Klientel durchaus um Teilnehmer der organisierten Kriminalität handeln kann.</p>
<p>Aber warum eröffnen Wildfremde überhaupt ein „Affiliate“-Konto? Was bezwecken sie damit? Das wollte ich von der Sachbearbeiterin wissen. Tatsächlich tun sich an dieser Stelle Abgründe auf. Denn der Name von Macnotes wurde nur genutzt, um eine Identität zu verschleiern. Doch über <a href="https://de.wikipedia.org/wiki/Social_Engineering_(Sicherheit)">„Social Engineering“-Techniken</a> und mit Daten aus validen Hacks kreieren die Betrüger Anträge auf Strom- und Gas-Verträge oder Versicherungen und Mobilfunkverträge, nur um am Ende die hohen Provisionen einzubehalten.</p>
<p>Es kann also sehr wohl sein, dass manche unbescholtenen Mitmenschen dann irgendwann eine Kündigung Ihres Stromanbieters erhalten samt Abschlussrechnung und in der Folge aber den Strom von einem anderen Anbieter beziehen (müssen). Mit Glück fällt das niemandem auf und freuen sich die Betrüger über die eingestrichene Provision.</p>
<h2>Die Krux mit der Post</h2>
<p>Doch weil ich zuletzt so viel Post bekam, kommen wir zu einem anderen leidigen Thema mit der Post. Dass sich Sendungen während der Coronakrise verzögern, ist erwartbar (gewesen) und alle Beteiligten stell(t)en sich darauf ein. Dass aber „extra“ bezahlte Einschreiben, die mit Priorität behandelt werden sollen, mehrfach länger brauchen als herkömmliche Pakete und Briefe, die am gleichen Tag abgeschickt wurden, deutet auf einen Fehler im System hin. Teilweise benötigten in meinem Fall erwähnte Einschreiben knapp zwei Wochen, ehe sie beim Empfänger landeten.</p>
<p>Ich habe lange überlegt, darüber zu schreiben. Doch die lapidare Antwort der Post auf Twitter ließ bei mir den Groschen fallen. Ich zahlte teilweise so viel Aufschlag, dass ich statt eines Einschreibens auch ein Paket hätte versenden können. Lustigerweise waren Pakete (z. B. an ReBuy), die ich in „derselben“ Filiale am „selben“ Tag aufgab, viel eher beim Empfänger. Der Aufschlag für die priorisierte Zustellung verfehlt also seine Wirkung. Und das ist ein Euphemismus. Aber die Antwort der Post ist ein Armutszeugnis.</p>
<p>[mn-twitter id=&#8220;1265961923331395588&#8243;]</p>
<p>Geht es nach der Post/DHL, dann verspricht das Unternehmen einfach keinen Zustelltermin. Notfalls kann man ja eine Nachforschung anstellen. Das Unternehmen suggeriert aber in der Produktbeschreibung, dass die Sendungen schneller ankommen. Das ist ganz klar ein Fall für den Verbraucherschutz.</p>
<p>Vermutlich ist das Unternehmen gerade sowieso nicht gut auf das Thema Pünktlichkeit zu sprechen, weil es von einem ordentlichen Gericht zur Zahlung von 18.000 Euro Schadenersatz wegen verspäteter Zustellung <a href="https://www.manager-magazin.de/unternehmen/artikel/olg-koeln-post-muss-18-000-euro-schadensersatz-fuer-verspaeteten-brief-zahlen-a-1307409.html">verdonnert wurde</a> (Az.: 3 U 225/19).</p>
<h2>Der Müll auf Macnotes: Die größten Portale, die besten Tipps</h2>
<p>Kommen wir zu etwas ganz Anderem. Immer wieder habe ich in den Newsletter-artigen Beiträgen, die ich zwischendrin manchmal veröffentliche, auch über meine Idee von dieser Webseite gesprochen. Ich möchte mittel- und langfristig datengestützten Journalismus etablieren. Das heißt auch, Daten sollen mir und uns und Euch helfen. Ob das Erinnerungen an Jubiläen, Geburts- oder Todestage sind, ob es sich um Kontaktadressen und Telefonnummern handelt. Selbst Toplisten/Charts, Übersichten und Galerien zu Events oder Produkten kann man mit Hilfe von Algorithmen und seien sie noch so einfach, sinnvoll zu neuen Informationen zusammenstellen. Doch bis es soweit ist, wird noch Zeit vergehen. Leider.</p>
<p>Ich bin außerdem kein Freund von so vielem. Entsprechend möchte ich auch so vieles von Macnotes fernhalten. Wir verzichten weitgehend auf Affiliate-Marketing, weil wir kein Schnäppchenportal sind. Wir nutzen nur AdSense und nicht noch 127 andere Werbeformate.</p>
<p>Und dann gibt es dann das leidige Thema mit den Gastbeiträgen. Uns erreichen jede Woche dutzende Anschreiben, <a href="https://macnotes.de/2020/05/23/wasserstand-13-lottogewinn-pr0n-092008-und-fake-anfragen/">teils eben sogar mit Fake-Identitäten</a>. Viele wollen einfach mit der Sprache nicht rausrücken. Dabei gäbe es sehr wohl Möglichkeiten für Sponsoring, wenn Werbekunden seriös auftreten.</p>
<div data-id="391886" class="ajaxGalleryInit" style="display:none;"></div>
<h3>Was ich mag, und was ich ablehne</h3>
<p>Ich mag zum Beispiel Videospiele, aber ich mag keine Glücksspiele und Sportwetten. Nicht, dass ich nicht auch schon mal mit einem Freund um etwas gewettet hätte. Aber in diesem Umfeld gibt es einfach viel zu viele schwarze Schafe, denen ich mit Macnotes keinen Wolfspelz spendieren möchte. <a href="https://macnotes.de/2019/11/01/nahkastchen-19-da-bin-ich-wieder/">Als ich die Webseite im November 2019 übernahm</a>, wusste ich natürlich, worauf ich mich einlasse. Doch das Ausmaß der „Durchseuchung“ ist durchaus beachtlich.</p>
<p>Ich kann den Nutzen nach Anonymität und VPN als Technologie verstehen, nutze selbst virtuelle private Netzwerke zur Kommunikation mit Kunden oder Arbeitgebern. Aber ich heiße manche windigen Anbieter am VPN-Markt nicht für seriös. Wer Lockangebote schaltet, und für wenige Euro einen lebenslangen Zugang verspricht, der ist entweder eine betriebswirtschaftliche Null oder aber verdient mit den Daten der Nutzer Geld, ohne es ihnen zu sagen. Oder der muss irgendwann den Stecker ziehen und seinen Service einstellen.</p>
<p>Ich habe nicht per se etwas gegen Kryptowährungen, habe selbst ein Wallet mit ein paar wenigen Euros Inhalt. Doch in diesem Umfeld tummeln sich viel zu viel unseriöse Anbieter, bei denen gerade Laien über den Tisch gezogen werden.</p>
<p>Dazu ist mir aber auch Software ein Dorn im Auge, die Nutzern einen Mehrwert vorgaukelt und ihn aber nicht bietet. Mac-Nutzer benötigen &#8211; erst Recht mit Catalina &#8211; keine Cleaner oder Dateilösch-Utensilien. Denn das Betriebssystem selbst bietet Funktionen, um alte, unbenutzte Dateien zu finden, um sie zu löschen.</p>
<p>Wir benötigen zur Migration von Musik, Fotos und zum Backup der Dateien vom iPhone, iPad und Co. nur ebensowenig eine zusätzliche Software.</p>
<p>„TROTZDEM“ gibt es für all diese Dinge und noch viele weitere dort draußen Angebote. Beispielsweise solche, wie man als Eltern seine Kinder abhorchen kann. Dass die Installation der App vor allem die persönlichen Daten von Eltern und Kindern aufs Spiel stellt wurde schon mehrfach angesprochen.</p>
<p>Leider, leider fanden sich auch Angebote zu solchen Dingen, die ich nicht mag, auf Macnotes. Bis, ja bis ich sie in den letzten Tagen gelöscht habe, wenn sie mir begegneten. Ich bin mir leider nicht sicher, dass ich alle erwischte, aber die Seite hat durchaus so etwas wie einen Kahlschlag erlebt. Ich löschte allein in den letzten sieben Tagen gleich „mehrere Hundert“ Beiträge. Es ist erschreckend, was ich fand. Da ich die Beiträge nicht verfasst habe, kann ich aber guten Gewissens handeln.</p>
<h2>Wir sind auf einem guten Weg</h2>
<p>Trotz dieser Erkenntnisse machen wir Einiges richtig. Denn die <a href="https://macnotes.de/2020/05/23/wasserstand-13-lottogewinn-pr0n-092008-und-fake-anfragen/">Sichtbarkeit der Webseite steigerte sich seit November 2019 zusehends</a>. Ich konnte in den Statistiken auch Klicks auswerten. Ich tue dies aus Neugier und weil ich „wachsam“ bin. Denn meine Strategie, die Webseite <a href="https://macnotes.de/2019/11/01/nahkastchen-19-da-bin-ich-wieder/">nach der Übernahme</a> chronologisch von hinten aufzurollen, wird mitunter dem Tagesgeschehen nicht gerecht. Doch es hilft mir, ältere Beiträge auch in neueren zu verlinken. Wie Manni Ludolf weiß ich am Ende über das Portfolio von Macnotes Bescheid.</p>
<p>Nur, indem ich mir ansehe auf welche Links geklickt wurde, finde ich manchmal auch Stilblüten wie Casino-Bonus-irgendwas-dot-com oder Macservice-sowieso-punkt-de. Jedesmal, wenn ich so einen Klick entdecke, gehe ich dem nach. Ich schaue dann in den Statisken nach, ob der Artikel einen <a href="https://de.wikipedia.org/wiki/Long_Tail_Keyword">Longtail</a> hat oder nicht. Falls ja, setze ich den Link auf nofollow, falls nicht, kommt der Müll direkt dorthin, wo er hingehört: In den Papierkorb. Und wenn mir das Thema, wie oben erläutert, widerstrebt, dann kommt der Beitrag trotz Longtails in den Müll. Nun eskaliere ich so einen Fund aber. Ich suche nach einem Muster. Wenn ich eines erkenne, versuche ich ähnliche Beiträge auszumachen. Die landen dann ebenfalls im Müll. Meist ist dies ein Name oder ein URL. Denn wo es einen Beitrag zu einem Produkt X gibt, gibt es vielleicht noch einen weiteren.</p>
<p>Ganz ehrlich: Diese gekünstelten Textideen, die manche Marketeer anbieten sind mir zuwider. Dass ich bei der Übernahme leider nicht vorher alle 35.000 Dokumente durchsuchen konnte, erklärt sich vielleicht von selbst. Doch trotzdem entschuldige ich mich an dieser Stelle. Denn das ist nicht das Macnotes, dass „ich“ anbieten will. Wenn es einen Artikel zu den größten Übersichtsportalen im Internet gibt, dann erwarte ich, dass dort dutzende Plattformen und Bereiche recherchiert wurden und vorgestellt werden. Ein Beitrag à la 1, 2, 3 Portale, bei denen eines dann lustigerweise zu Casino-Angeboten führt, verabscheue ich.</p>
<h2>Der Wasserstand</h2>
<p>Nun ist dieser „Newsletter“ in vielen Belangen aus dem Ruder gelaufen. Das brachten die Themen so mit sich. Trotzdem wollte ich es nicht versäumen, Euch auf ein paar Eckdaten hinzuweisen, die mir und Euch Mut machen sollten.</p>
<div data-id="399811" class="ajaxGalleryInit" style="display:none;"></div>
<p>Wichtig sind die Punkte K und O. Der Screenshot ist entnommen aus den SEO-Tools von Sistrix. Zu sehen gibt es die relative Sichtbarkeit der Webseite Macnotes. Was Ihr konkret an dieser Stelle seht ist „eine“ Phase, in der ich für Macnotes arbeitete. Sie lief grob gesagt zwischen Sommer 2014 und Sommer 2016.</p>
<p>Auf der ersten Hälfte der Wegstrecke erkennt Ihr vielleicht ein stetes Auf und Ab. Wenn man dort aber ein Lineal anlegt, dann geht es nur bergauf. Dieser Zuwachs an Sichtbarkeit wuchs auf „meinem“ Mist. Gleichzeitig aber stieg der Druck, Inhalte zu veröffentlichen, die ich nicht gutheiße. Obwohl ich inhaltlich verantwortlich war, musste ich akzeptieren, dass die Strategie sich änderte.</p>
<p>Einfach ausgedrückt: In der Zeit zwischen K und N durfte ich tun, was ich wollte und sorgte das für mehr Sichtbarkeit, aber nicht für mehr Umsatz. Entsprechend wurde dann zwischen N und O auch gegen meinen Willen versucht mehr Umsatz zu erzielen. Das endete dann darin, <a href="https://macnotes.de/2016/01/15/naehkaestchen-18/">dass ich die Segel strich</a>.</p>
<div data-id="399810" class="ajaxGalleryInit" style="display:none;"></div>
<p>In dieser Grafik nun seht Ihr die Entwicklung von Macnotes „nachdem“ ich im Sommer 2016 wegging (O) und (P), als ich Macnotes im Winter 2019 kaufte. Seitdem zeigt die Kurve wieder aufwärts und zeigt meine „Haltung“, dass man mit meinem Konzept was erreichen kann.</p>
<p>Allerdings muss auch ich zugeben, dass Macnotes Stand heute nicht genug abwirft, um davon leben zu können. Entsprechend läuft die Webseite mindestens noch solange auf Sparflamme, bis sich das mal ändert. Ob das über Sponsoring schon früher geschieht, oder ob ich irgendwann die Webseite soweit überarbeitet haben werde, dass sie dazu führen, dass ich all meine Zeit und Aufmerksamkeit investieren kann, ist eine Überraschung. Denn jeder Tag hält etwas Neues bereit. Wenn ich irgendwann substanziell im Lotto gewinnen würde, flössen viele Ressourcen in den Aufbau von Macnotes, wie ich es mir vorstelle.</p>
<p>All denen, die mich bei der Idee begleiten, sage ich vielen Dank.</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/06/03/wasserstand-14-phishing-die-post-und-der-grosste-mull/">Wasserstand #14: Phishing, die Post und der größte Müll</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Wasserstand #2: Sisyphos lässt das Jahr 2006 hinter sich</title>
		<link>https://macnotes.de/2020/01/15/wasserstand-2-sisyphos-lasst-das-jahr-2006-hinter-sich/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Wed, 15 Jan 2020 11:58:50 +0000</pubDate>
				<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Technologie]]></category>
		<guid isPermaLink="false">https://macnotes.de/?p=393647</guid>

					<description><![CDATA[<p>Geschafft. Auch kleine Schritte sind ein Zeichen dafür, dass etwas vorangeht. Immerhin weiß ich, dass wir für das Projekt Zeit brauchen. Entsprechend mache ich nun zumindest unter das Jahr 2006 einen Haken. Ich konnte gestern eine erste Drübersicht abschließen, damit auch das Jahr 2006 vorerst zu den Akten legen. Im Footer steht aber 1998? Macnotes [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/01/15/wasserstand-2-sisyphos-lasst-das-jahr-2006-hinter-sich/">Wasserstand #2: Sisyphos lässt das Jahr 2006 hinter sich</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class='lead'>Geschafft. Auch kleine Schritte sind ein Zeichen dafür, dass etwas vorangeht. Immerhin weiß ich, dass wir <a href="https://macnotes.de/2020/01/03/wasserstand-1-neues-jahr-viel-zu-tun/">für das Projekt Zeit brauchen</a>. Entsprechend mache ich nun zumindest unter das Jahr 2006 einen Haken. Ich konnte gestern eine erste Drübersicht abschließen, damit auch das Jahr 2006 vorerst zu den Akten legen.</p>



<h2 class="wp-block-heading">Im Footer steht aber 1998?</h2>



<p>Macnotes selbst wurde 2006 gegründet. „Ich“ betrieb Webseiten aber schon seit 1998. Einige der Inhalte werden auch in dieses Projekt einfließen.</p>



<p>Doch zunächst möchte ich auf Macnotes in den Artikeln eine Konsistenz entwickeln. Entsprechend fange ich hinten an, und arbeite mich chronologisch nach vorn vor.</p>



<h2 class="wp-block-heading">Was bedeutet Konsistenz?</h2>



<p>Ich überarbeite die Artikel in vielerlei Hinsicht. Dazu zählt zum Beispiel, dass die Beiträge auch passende Artikelbilder haben, dass alte Links noch funktionieren, Videos, Podcasts oder andere Audioaufzeichnungen sichtbar sind, sowohl für Leser als auch für den Knowledge Graph.</p>



<p>Ich folge also zum Beispiel den Links von damals, auch den internen, und korrigiere sie. Das mache ich mit Hilfe von SQL wie folgt:</p>



<pre class="wp-block-code"><code>UPDATE wp_posts
SET post_content = replace(post_content, 'https://macnotes.de/2006/12/30/hinter-den-kulissen-von-filevault/', 'https://macnotes.de/2006/12/30/hinter-den-kulissen-von-filevault/');
</code></pre>



<p>In diesem Fall wurde einfach nur das http gegen ein https getauscht. Doch es gibt auch andere Fälle, in denen ein Artikel gelöscht wurde und weiterleitet. Entsprechend wird dann der alte durch den neuen ersetzt. Oder ein externer Link ist tot und ich verlinke dann auf das Webarchiv, oder, oder…</p>



<h3 class="wp-block-heading">Effizienter geht immer</h3>



<p>Nun könntet Ihr denken, warum wandelt er nicht direkt alle Links von http zu https um. Das könnte ich tun. Einerseits ist das aber nicht das einzige Problem. Andererseits würde das aber meine Arbeit nur erschweren.</p>



<p>Denn derzeit ist bei meiner Vorgehensweise auch das „https“ ein Signal dafür, dass ich einen internen Link bereits überarbeitet habe. Das bietet mir ein Gefühl von Sicherheit und ich muss weniger klicken, um zu überprüfen ob ich denn den Link bereits bearbeitet habe. Dabei hilft mir auch, dass ich „jeden“ Link öffne und damit dann in Zukunft eine andere Linkfarbe im Editor angezeigt bekomme, da ich den Link bereits „visited“ habe. Ein optischer Indikator.</p>



<h3 class="wp-block-heading">Videocodes veraltet</h3>



<p>Ein weiterer Aspekt, auf den beispielsweise die Search Console von Google hinweist, sind fehlerhafte Videoeinbindungen. Meist versteckt sich dahinter ein alter Artikel, in dem Videos noch per Flash eingebunden wurden, weil man es damals so machte. Ich suche dann nach einer Alternative. Manchmal kommt es dann leider auch vor, dass gar kein Video mehr enthalten ist, weil es die Inhalte von damals heute nicht mehr gibt.</p>



<h2 class="wp-block-heading">Interne Links</h2>



<p>Es gibt aber noch einen Grund, warum ich „hinten“ anfange. Denn ich möchte in neueren Artikeln auf alte Artikel verlinken. Nun bin ich nicht Manni Ludolf und kenne deshalb wirklich nicht alle über 35.000 Texte von Macnotes. Aber ich kenne einige, alleine schon weil ich knapp ein Drittel davon selbst geschrieben habe und durch meine Arbeit an der Webseite kenne ich dann immer mehr.</p>



<p>Die interne Verlinkung in einer Webseite ist wichtig. Wichtig für den Leser aber auch für die Suchmaschine. Also mache ich diese Arbeit nicht umsonst.</p>



<h2 class="wp-block-heading">Schlagwortchaos beseitigen</h2>



<p>In den letzte Jahren unter Fliks versuchte ich bereits „aufzuräumen“. Seinerzeit habe ich Schlagwörter reduziert, bzw. neue, unsichtbare „Keywords“ dazu gepackt. Autoren versuchte ich dazu zu bringen, doch das neue System zu nutzen. Dann kam die Übernahme durch WakeUp. In der ersten Zeit arbeitete ich dort noch mit, doch später nicht mehr. Was folgten, waren Autoren, die nichts von „meinem“ System wussten, und also gibt es nun wieder zehntausende Schlagwörter &#8211; was ein Unsinn und daneben aber auch viele viele unsichtbare „Keywords“.</p>



<p>Ich wurde damals nicht fertig mit der Überarbeitung der Schlagwörter. Ich mache heute aber damit weiter. Warum? Eine Webseite braucht nicht 40.000 Unterseiten, auf denen zum Teil kaum Inhalte zu finden sind. Das findet übrigens auch Google. Denn selbst der Suchmaschinenanbieter musste verstehen, dass Ressourcen endlich sind und also könnt Ihr in der Search Console einen Teil Eurer Webseite als „nicht indexiert“ sehen. Je nachdem, wie gut Google die eigene Seite findet, bzw. wie inhaltsleer die übrigen Seiten sind, ist der Teil kleiner oder größer.</p>



<p>Schon deshalb habe ich die „unsichtbaren“ Keywords eingeführt, mit denen man zwar Plug-ins oder eigene Methoden im Template bedienen kann, um ähnliche Artikel zu suchen, oder dergleichen.</p>



<h2 class="wp-block-heading">Datengestützter Journalismus</h2>



<p>Wenn ich mit dem Aufräumen fertig bin, wird die Seite hoffentlich deutlich mehr Struktur haben. Das ist wichtig. Denn sie soll schließlich mit noch weiteren Projekten zusammengeführt werden, teils aus neuer Akquise. Und auch die Portierung der Daten auf ein anderes, vielleicht auch eigenes CMS wird dadurch erheblich erleichtert. Nicht zuletzt gefällt es Google und anderen Suchmaschinen, wenn sie eine Struktur erkennen.</p>



<p>Vor allem aber hilft diese Struktur uns selbst. Denn unser Ziel ist langfristig einen Journalismus zu etablieren, der von Big Data gestützt wird, wo wir Nachrichten aus Fakten schaffen. Wenn aber die eigenen Daten nur Kraut und Rüben sind, kann man sie nicht entsprechend auswerten.</p>



<p>Vielen Dank fürs Lesen und bis zum nächsten Wasserstand.</p>
<h2>Ergänzung zu Ludolf</h2>
<p>Aus gegebenem Anlass. Da viele IBES-Gucker auf diesen Artikel aufmerksam wurden. Es ist nicht &#8222;Manni Ludolf&#8220;, der auf RTL erwähnt wurde. Vielmehr ist Kameramann Manfred &#8222;Manni&#8220; Friebe gestorben.</p>
<p>Der Beitrag <a href="https://macnotes.de/2020/01/15/wasserstand-2-sisyphos-lasst-das-jahr-2006-hinter-sich/">Wasserstand #2: Sisyphos lässt das Jahr 2006 hinter sich</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Amazon Echo Show 5: Neuer, günstigerer Touch-Echo jetzt vorbestellbar</title>
		<link>https://macnotes.de/2019/05/29/amazon-echo-show-5-neuer-guenstigerer-touch-echo-jetzt-vorbestellbar/</link>
		
		<dc:creator><![CDATA[Jonny Random]]></dc:creator>
		<pubDate>Wed, 29 May 2019 19:55:27 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Technologie]]></category>
		<guid isPermaLink="false">https://www.macnotes.de/?p=388341</guid>

					<description><![CDATA[<p>Amazon hat heute einen neuen Echo vorgestellt. Er hat einen Bildschirm zum Betouchen, hört aufs Wort und ist dafür überraschend billig. Aktuell lässt er sich allerdings erst nur vorbestellen. Amazon hat seine große Echo-Familie ein wenig aufgerüstet: Der Echo Show, Amazons Echo mit einem Bildschirm, bekommt einen Nachfolger. Der Echo Show 5 ist zwar nicht [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2019/05/29/amazon-echo-show-5-neuer-guenstigerer-touch-echo-jetzt-vorbestellbar/">Amazon Echo Show 5: Neuer, günstigerer Touch-Echo jetzt vorbestellbar</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Amazon hat heute einen neuen Echo vorgestellt. Er hat einen Bildschirm zum Betouchen, hört aufs Wort und ist dafür überraschend billig. Aktuell lässt er sich allerdings erst nur vorbestellen.</p>
<p>Amazon hat seine große Echo-Familie ein wenig aufgerüstet: Der Echo Show, Amazons Echo mit einem Bildschirm, bekommt einen Nachfolger. Der <a href="https://www.amazon.de/amazon-echo-show-5-kompaktes-smart-display-mit-alexa/dp/B07KD6624B/ref=sr_1_1?__mk_de_DE=ÅMÅŽÕÑ&amp;keywords=Echo+Show+5&amp;qid=1559143662&amp;s=gateway&amp;sr=8-1&tag=sajonara0d-21" rel="nofollow" target="_blank" rel="noopener noreferrer">Echo Show 5</a> ist zwar nicht wirklich der fünfte Lautsprecher der Show-Reihe, wie der Name vermuten lässt, hat aber ein 5,5 zoll großes Display, das natürlich berührungsempfindlich ist.</p>
<p>Amazon hat überdies noch eine erstaunliche Änderung im Vergleich zum Vorgänger des Show 5 vorgenommen.</p>
<h2>Der Neue Touch-Echo ist überraschend günstig</h2>
<p>Der Echo Show 5 kommt im Vergleich mit dem aktuellen Show geradezu zum discount-Preis: Amazon möchte 89 Euro für den Lautsprecher haben.</p>
<p>Dieser besitzt neben seinem Bildschirm, auf dem theoretisch wunderbar YouTube-Clips laufen könnten, wenn Amazon sich mit Google vertragen würde, besitzt der Show 5 integrierte Lautsprecher, die vier Watt Leistung bringen und einen raumfüllenden Klang liefern sollen, wie Amazon verspricht. Was das in der Praxis bedeutet, muss sich noch zeigen.</p>
<p>Der Echo Show 5 hört natürlich auf Alexa und bietet alle typischen Alexa-Funktionen.</p>
<p>Angetrieben wird der Lautsprecher von einem MediaTek-Prozessor, zu dem Amazon keine weiteren Spezifikationen nennt.</p>
<p>Vorbestellt werden kann der Echo Show 5 bereits ab heute, die Auslieferung beginnt allerdings erst ab dem 26. Juni.</p>
<p>Wer jetzt gleich zwei Show 5 ordert, erhält auf seine Bestellung einen Nachlass in Höhe von 25 Euro.</p>
<p><small>Dieser Artikel enthält Affiliate-Links.</small></p>
<p>Der Beitrag <a href="https://macnotes.de/2019/05/29/amazon-echo-show-5-neuer-guenstigerer-touch-echo-jetzt-vorbestellbar/">Amazon Echo Show 5: Neuer, günstigerer Touch-Echo jetzt vorbestellbar</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Google Trends als SEO-Tool nutzen</title>
		<link>https://macnotes.de/2018/08/30/google-trends-als-seo-tool-nutzen/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Wed, 29 Aug 2018 22:27:11 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">http://sajonara.de/?p=72595</guid>

					<description><![CDATA[<p>Kann man Google Trends als SEO-Tool nutzen? Ja man kann, und zwar besser als man glaubt, aber manchmal muss man genauer auf die Daten schauen, um sie richtig zu interpretieren. Google bietet mit seinem Trends-Tool ein Hilfsmittel für Webseitenbetreiber, das man auch für die Suchmaschinenoptimierung nutzen kann. Ich möchte im folgenden ein paar Anhaltspunkte geben, [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2018/08/30/google-trends-als-seo-tool-nutzen/">Google Trends als SEO-Tool nutzen</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Kann man Google Trends als SEO-Tool nutzen? Ja man kann, und zwar besser als man glaubt, aber manchmal muss man genauer auf die Daten schauen, um sie richtig zu interpretieren.</p>
<p>Google bietet mit seinem Trends-Tool ein Hilfsmittel für Webseitenbetreiber, das man auch für die Suchmaschinenoptimierung nutzen kann. Ich möchte im folgenden ein paar Anhaltspunkte geben, wie das zu geschehen hat.</p>
<p>Ich betreute und betreue eine Reihe von Webseiten, manche davon mit verhältnismäßig vielen Seiten, die in die mehreren Zehntausend oder sogar Hunderttausend gehen, wenn man Archiv- oder Kategorie-Seiten hinzuzählt. Letzteres ist natürlich nur dann sinnvoll, wenn man diese Archive aufwertet mit eigenständigen Informationen, damit sie dem Leser Mehrwert bieten. Beispiel gefällig? Jeder Kategorie-Seite kann man einen kurzen Beschreibungstext und ein Bild hinzufügen. Zudem kann man Tests von Software oder anderen Produkten in einer Art Topliste ausgeben, wenn man die Daten entsprechend auflisten kann. Wenn der Nutzer im Archiv chronologisch zurückblättert, werden ihm statt der besten Ergebnisse aus dem aktuellen Monat irgendwann die Ergebnisse aus dem Monat davor angezeigt, usf.</p>
<h2>Archive aufwerten mit Google Trends</h2>
<p>Man kennt das: Eine Webseite, an der mehr als eine Person beteiligt ist, hat es schwer, Ordnung zu halten. Doch viele Nutzer verderben den Brei, indem sie beispielsweise bei WordPress Tags und Kategorien einrichten und neu hinzufügen wie Unkraut. Persönlich lasse ich Google deshalb Archivseiten bei vielen Projekten per se nicht indexieren, sondern nur in Einzelfällen, bei Archiven, die ich optimiert habe.</p>
<p>Wie kann ich entscheiden, ob ein Archiv zu &#8222;Adobe Creative Suite&#8220; wichtiger ist, oder eines zu &#8222;Adobe CS&#8220;, wenn die Autoren einer Webseite aber beide Tags regelmäßig verwendet haben? Google Trends bietet eine Möglichkeit. Doch man sollte das Ergebnis zunächst genauer unter die Lupe nehmen, damit es einem sinnvoll sein kann.</p>
<p><script type="text/javascript" src="//www.google.com/trends/embed.js?hl=en-US&#038;q=adobe+creative+suite,+adobe+cs&#038;geo=DE&#038;cmpt=q&#038;tz&#038;tz&#038;content=1&#038;cid=TIMESERIES_GRAPH_AVERAGES_CHART&#038;export=5&#038;w=725&#038;h=330"></script></p>
<p>Zunächst sollte man für deutschsprachige Webseiten, denen man über die ehemaligen Google Webmaster Tools (heute Search Console) Deutschland als Standort zugewiesen hat, Deutschland (Germany) als Standort in Google Trends auswählen. Die obige Grafik liefert ein Ergebnis für die beiden vorher von mir zitierten &#8222;Keywords&#8220;. Es gibt für WordPress Plugins, mit denen man Schlagwörter zusammenführen kann, weshalb man bei der Verwaltung die Wahl hat, ob man lieber das eine oder das andere nutzen möchte. Bei der Entscheidungsfindung kann einem Google Trends helfen. Man sollte jedoch beachten, dass Google ohne Anwendung von Filtern Daten auswertet ab einem Zeitpunkt X, an dem man zuerst angefangen hat mit der Aufzeichnung des Suchverhaltens und/oder der Schlagzeilen zu einem Thema.</p>
<h3>Gültigkeit von Trends</h3>
<p>Man erkennt an der obigen Grafik sehr schön, dass Google der Meinung ist, dass &#8222;Adobe CS&#8220; in Deutschland deutlich häufiger im Gespräch ist und gesucht wird als &#8222;Adobe Creative Suite&#8220; &#8211; zumindest, wenn man nur Augen für die erste Balkengrafik am linken Rand hat. Man erkennt außerdem, dass die beiden Kurven zum Ende des Graphen hin, also in der Aktualität, fast identisch sind. Da aber die Aufzeichnung 2004 begonnen hat, sollte man sich 2015 daran nicht zwangsläufig orientieren.</p>
<p><script type="text/javascript" src="//www.google.com/trends/embed.js?hl=en-US&#038;q=adobe+creative+suite,+adobe+cs&#038;geo=DE&#038;date=today+12-m&#038;cmpt=q&#038;tz&#038;tz&#038;content=1&#038;cid=TIMESERIES_GRAPH_AVERAGES_CHART&#038;export=5&#038;w=725&#038;h=330"></script></p>
<p>Zum Glück bietet Google Trends eine Reihe von Filtern. Stellt man zum Beispiel ein, dass man lediglich die letzten 12 Monate begutachtet haben möchte, ändert sich das Verhältnis in der Balkengrafik enorm. Hätte ich nach der ersten Abfrage unachtsamerweise vielleicht gesagt, ich fasse das Archiv zu &#8222;Adobe CS&#8220; zusammen, ist es bei der Betrachtung der letzten 12 Monate nicht mehr so eindeutig.</p>
<h4>Doch woran orientiere ich mich?</h4>
<p>In den letzten 12 Monaten lag immerhin noch immer &#8222;Adobe CS&#8220; vor &#8222;Adobe Creative Suite&#8220;. Es gibt meiner Meinung nach zwei Kriterien für die Entscheidung. Das eine ist die Frage nach &#8222;Nische oder Konkurrenz&#8220; (dazu später mehr) oder der aktuellen Wertigkeit der eigenen Seite. Google aktualisiert zwar den Pagerank einer Webseite nicht mehr so oft wie früher, doch bietet es mit den Daten aus der Search Console viele Anhaltspunkte, wie die eigene Webseite eingeschätzt wird.</p>
<p>Grundsätzlich gilt: Hat ein Nutzer eine Sitemap eingereicht, sollte er sich ansehen, wie viele Artikel Google tatsächlich in den Index aufnimmt. Wenn dieser Wert nahe bei 100 Prozent liegt, dann mag Google die eigene Webseite halbwegs gut leiden, bzw. findet deren Inhalte gut. Auch hilfreich ist die Zahl der fehlerhaften Seiten. Wenn die &#8222;Search Console&#8220; zehntausende von fehlerhaften Webseiten meldet, sollte man zumindest Verständnis dafür haben, dass Google seine Bots nicht im höchsten Tempo zur eigenen Seite sendet, weil es ein bisschen an Vertrauen fehlt, dass dort zu viel &#8222;falsch&#8220; läuft.<br />
Darüber hinaus gibt es dort draußen dutzende SEO-Tools von Sistrix, Searchmetrics, Seolytics, XOVI, MOZ, Ahrefs und Co., die einem anzeigen, ob die eigene Webseite eine halbwegs ordentliche Rolle bei Google spielt oder nicht. In jedem Fall sollte man in den SEO-Tools einen Vergleich zur Konkurrenz durchführen und zumindest Top-Webseiten ebenfalls mal &#8222;beschnuppern&#8220;, um ein Gefühl dafür zu bekommen, welchen Stellenwert die eigene Webseite eigentlich bei Google hat. In Deutschland durchaus beliebt ist die Webseite der BILD-Zeitung. Beim <a href="http://www.sichtbarkeitsindex.de/bild.de" target="_blank" rel="nofollow noopener">Sichtbarkeitsindex von Sistrix</a> erzielt diese einen Wert von über 273 Punkten (Stand: 6. Juni 2015). Wenn die eigene Webseite eher bei 0,5 landet, kann man sich vielleicht vorstellen, dass der Google Bot nicht jede Änderung sofort mitbekommt. Dies ist nicht zwangsläufig ein Promibonus im klassischen Sinn, aber zumindest haben &#8222;etablierte&#8220; Webseiten ein deutliche besseres &#8222;Standing&#8220; bei Google. Das bedeutet, dass Änderungen schneller zur Kenntnis genommen werden.</p>
<h4>Wichtig für die Entscheidungsfindung</h4>
<p>Doch warum reite ich so auf diesem Thema herum? Es ist durchaus wichtig für die Entscheidungsfindung. Hätte die BILD-Zeitung ein Archiv zu &#8222;Adobe Creative Suite&#8220;, das die Betreiber indexieren lassen wollten, könnten diese wesentlich flexibler agieren als Besitzer einer Webseite, die bei Google weniger gut gelitten ist.<br />
Angenommen, der Trend in den letzten drei Monaten hätte sich umgekehrt, und &#8222;Adobe Creative Suite&#8220; würde häufiger gesucht und gefunden, würde man der BILD-Zeitung raten das Archiv so umzubenennen, wenn es es denn vorher noch nicht so geheißen hat, oder es so zu belassen. Würde sich der Trend umkehren, würde man bei der BILD-Zeitung das Archiv zu &#8222;Adobe CS&#8220; umbenennen, auf dem Webserver eine Weiterleitung einrichten und &#8222;zeitnah&#8220; davon profitieren, dass mittlerweile mehr Leute nach dem neu eingerichteten Suchwort suchen.</p>
<p>Als Betreiber einer &#8222;weniger wichtigen&#8220; Webseite kann man leider nicht ganz so flexibel auf Trends reagieren. Denn je nachdem wie wichtig die eigenen Webseite von Google eingeschätzt wird, desto mehr Tempo legt der Google Bot an den Tag, bzw. desto häufiger kommt er vorbei und nimmt Änderungen wahr. Es gibt keine &#8222;konkreten&#8220; Zahlen, doch sehr viele Gerüchte und manche Erfahrungsberichte.<br />
Wenn man Änderungen dieser Art an der eigenen Webseite durchführt, dann kann es manchmal 1, 2 Wochen dauern, bis Google das verstanden hat, es kann aber bei weniger wichtigen Webseiten durchaus mehrere Wochen dauern und bei Webseiten, die vielleicht eine Strafe von Google erhalten haben, sogar Monate.</p>
<h4>Links einreichen beschleunigt nicht zwangsläufig</h4>
<p>Man kann über die Search Console zwar Links zur eigenen Webseite einreichen, die der Google Bot dann besuchen soll, das geht dann schneller als beim normalen &#8222;Turnus&#8220;. Doch man sollte nie vergessen, dass eine einzelne Webseite, in diesem Fall eine Archiv-Seite, nur ein Teil eines großen Ganzen ist. Ändert man diese, und war sie aber vorher in zehntausenden oder vielleicht noch mehr Webseiten verlinkt, kann es dauern, bis Google aus dem Gesamtbild der eigenen Webseite mit vielleicht mehreren zehntausend Einzelseiten ein korrektes Bild ableitet. Denn die Veränderung einer einzigen Seite kann sich positiv wie negativ auf den gesamt Rest auswirken.</p>
<h3>Trends mitmachen oder ablehnen?</h3>
<p>Aus der eigenen Erfahrung heraus komme ich an dieser Stelle zu dem Schluss, dass Nutzer nicht jeden Trend mitmachen müssen. Wenn sie aber über eine Webseite verfügen, die Google mag und schnell aktualisiert, ist es durchaus sinnvoll Trends zu beobachten und Archive womöglich zu ändern. Ändert sich der Trend erneut, kann man die Weiterleitung entfernen und das Archiv wieder umbenennen.</p>
<p>Ausnahmen gibt es aber, und sie bestehen immer dann, wenn Google Abkürzungen bzw. Akronyme kennt. Man erkennt dies zum Beispiel, wenn man nach einer Abkürzung sucht, und Google aber Ergebnisse mit dem ausgeschriebenen Titel ausgibt. Namen von Videospiel-Konsolen sind ein gutes Beispiel. &#8222;PS3&#8220; und &#8222;PlayStation 3&#8220; versteht Google als semantisch identisch. Man würde sich selbst keinen Gefallen tun, wenn man Artikel veröffentlich und Schlagwörter hinzufügt, die beide</p>
<h2>Nische oder Konkurrenz</h2>
<p>Der Beitrag <a href="https://macnotes.de/2018/08/30/google-trends-als-seo-tool-nutzen/">Google Trends als SEO-Tool nutzen</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Website verschwunden: Ist das schon Cloaking?</title>
		<link>https://macnotes.de/2018/08/30/website-verschwunden-ist-das-schon-cloaking/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Wed, 29 Aug 2018 22:27:11 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://sajonara.de/?p=75645</guid>

					<description><![CDATA[<p>Keyword-Stuffing und Cloaking sind zwei Gründe, warum Google eine Webseite schlechter bewertet. Es sind, wie wir beschrieben haben, Techniken aus einer anderen Zeit. Umso verwunderlicher ist eine aktuelle Diskussion ins Googles Webmaster-Forum, in der eine Webseite genau deswegen in Verruf gekommen sein soll. Man nehme eine Webseite, die ausschaut wie aus dem letzten Jahrtausend.</p>
<p>Der Beitrag <a href="https://macnotes.de/2018/08/30/website-verschwunden-ist-das-schon-cloaking/">Website verschwunden: Ist das schon Cloaking?</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Keyword-Stuffing und Cloaking sind zwei Gründe, warum Google eine Webseite schlechter bewertet. Es sind, wie wir beschrieben haben, <a href="https://macnotes.de/2016/04/07/black-hat-seo-am-beispiel-woltlab-anno-2000/">Techniken aus einer anderen Zeit</a>. Umso verwunderlicher ist eine aktuelle Diskussion ins Googles Webmaster-Forum, in der eine Webseite genau deswegen in Verruf gekommen sein soll.</p>
<p>Man nehme eine Webseite, die ausschaut wie aus dem letzten Jahrtausend.</p>
<p>Der Beitrag <a href="https://macnotes.de/2018/08/30/website-verschwunden-ist-das-schon-cloaking/">Website verschwunden: Ist das schon Cloaking?</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Black-Hat-SEO am Beispiel Woltlab anno 2000</title>
		<link>https://macnotes.de/2016/04/07/black-hat-seo-am-beispiel-woltlab-anno-2000/</link>
		
		<dc:creator><![CDATA[John Appleseed]]></dc:creator>
		<pubDate>Thu, 07 Apr 2016 12:05:05 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Internet]]></category>
		<guid isPermaLink="false">https://sajonara.de/?p=75276</guid>

					<description><![CDATA[<p>Bei der Suchmaschinenoptimierung, kurz SEO, wird genauso wie beim Hacken zwischen &#8222;White Hat&#8220; und &#8222;Black Hat&#8220; unterschieden. Es greift ein wenig zu kurz, wenn man die Begriffe auf &#8222;ehrlich&#8220; und &#8222;unehrlich&#8220; begrenzt. Wir wollen am Beispiel der Berliner Firma WoltLab aus den frühen 2000ern zeigen, wie der Anbieter auf Kosten von Kunden scheinbar Links verkauft [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2016/04/07/black-hat-seo-am-beispiel-woltlab-anno-2000/">Black-Hat-SEO am Beispiel Woltlab anno 2000</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bei der Suchmaschinenoptimierung, kurz SEO, wird genauso wie beim Hacken zwischen &#8222;White Hat&#8220; und &#8222;Black Hat&#8220; unterschieden. Es greift ein wenig zu kurz, wenn man die Begriffe auf &#8222;ehrlich&#8220; und &#8222;unehrlich&#8220; begrenzt. Wir wollen am Beispiel der Berliner Firma WoltLab aus den frühen 2000ern zeigen, wie der Anbieter auf Kosten von Kunden scheinbar Links verkauft hat: so etwas nennt sich Black-Hat-SEO.</p>
<h2>Cloaking bereits out</h2>
<p>Als <strong>Cloaking</strong> wird der Versuch bezeichnet, der Suchmaschine einen anderen Code zu präsentieren als dem Besucher einer Webseite. Zum Zeitpunkt, als WoltLab versuchte Erfolg durch Manipulation des Googlebot zu betreiben, war Cloaking allerdings schon &#8222;out&#8220;. Denn Google fing irgendwann an, &#8222;anonym&#8220; das Web zu durchsuchen, gab sich in der Browserkennung beispielsweise als Internet Explorer 5 unter Windows 2000 aus &#8211; eine durchaus übliche Kombination. Also konnte man nicht mehr zwei Versionen der Webseite ausliefern, ohne dem Nutzer selbst eine manipulierte Variante aufzutischen.</p>
<h2>Erschreckend einfach</h2>
<p>Zu Beginn des Millenniums konnte der Googlebot erkennen, was man ihm vorgelegt hat. Da er aber die Webseite nicht rendern konnte, konnte man sich allerlei Tricks bedienen, die für einen Menschen unsichtbar waren, aber trotzdem ins Ranking einflossen. Also machte man sich das zunutze: Gebraucht wurde nur ein HTML-Element, häufig war das ein DIV-Container. Diesen machte man per CSS-Anweisung unsichtbar. Für den Benutzer war er damit nicht zu sehen, Suchmaschinen haben ihn aber interpretiert. Darin kann man dann allerlei andere Elemente verstecken: gekaufte Links, wichtige Keywords in Überschriften, Wendungen, nach denen Benutzer häufig suchen.</p>
<h2>Keywordstuffing à la WoltLab</h2>
<p><a href="https://macnotes.de/images/2016/03/blackhat-seo.png">Das Artikelbild</a> zeigt beispielsweise Quellcode von WoltLab, einer Berliner Webdesign-Agentur, die vor allem durch die Forensoftware Burning Board bekannt wurde. Der Screenshot entstammt dem Archiv von <a href="https://web.archive.org/web/20031205011747/http://woltlab.info/de/news.php">archive.org aus dem Dezember 2003</a>.</p>
<p>Man kann am Quellcode gut erkennen, wie WoltLab nur scheinbar sinnlose Schlüsselwörter auf seiner Webseite aneinandergereiht hat. Die wichtigeren, mit denen man auf jeden Fall gefunden werden wollte, wurden in Überschriften platziert. Suchmaschinen hielten das für echte Inhalte. Zudem sind Überschriften per Definition wichtig, also wäre das ein perfekter Treffer. So hat WoltLab seine eigene Webseite im Jahr 2003 &#8222;optimiert&#8220;.</p>
<h2>PageRank und Links manipulieren</h2>
<p>Heutzutage dementiert Google <a href="https://macnotes.de/2016/03/08/google-toolbar-bald-ohne-pagerank-daten/">bei jeder Gelegenheit</a>, dass der Pagerank noch wichtig für das Ranking wäre. Damals war er es zweifellos. <a href="https://de.wikipedia.org/wiki/PageRank">Der Pagerank</a> gibt an, wie wichtig eine Seite ist &#8211; je häufiger sie verlinkt wird oder je wichtiger die Seiten sind, die verlinken, umso mehr Linkvertrauen wird weitergegeben, umso wichtiger ist dann die Zieladresse.</p>
<p>Mit dem Trick des versteckten DIV-Containers waren also Tür und Tor geöffnet für gekaufte Links. Ein Beispiel für solches Black-Hat-SEO liefert abermals WoltLab, und zwar auf äußerst dreiste Art und Weise, die an <a href="https://macnotes.de/2006/12/25/blogcounter-spam-links/">den Fall Blogcounter</a> aus dem Jahr 2006 erinnert.</p>
<p>WoltLab, das hauptsächlich für seine Forensoftware Burning Board bekannt ist, hat mindestens im Jahr 2003 im Quellcode von Kunden-Webseiten unverantwortlich Links zu anderen Webseiten untergebracht. Dies lässt sich nachvollziehen an einer <a href="https://web.archive.org/web/20031213081737/http://www.bauservice-ried.de/">archivierten Version</a> der Webseite des Bauservice Ried. Darin wurde ein Backlink der nahestehenden Berliner Webdesign-Agentur Art-X hinterlegt, in einem unsichtbaren Layer, wie man im folgenden Screenshot erkennen kann.</p>
<p>[sn-gallery ids=&#8220;75287&#8243;]</p>
<p>Nun könnte man sagen, dass der Betreiber selbst dafür verantwortlich ist. Mitnichten. Denn schaut man sich die Referenzen von WoltLabs Web-Design-Service an, findet man u.&nbsp;a. eine Webseite des Chef-Dirigenten Hans-Peter Kirchberg aus dem Jahr 2003. Im Web-Archiv zeigt der damalige Quellcode ebenfalls einen versteckten Link zu Art-X. Man muss annehmen, dass WoltLab dafür Geld bekommen hat. Die Webseiten seiner Kunden hat man mit dieser Methode aber massiv in Gefahr gebracht, sollte Google sie negativ sanktionieren.</p>
<p>Am Beispiel des Dirigenten Kirchberg zeigt sich außerdem, dass die Qualitätskontrolle bei WoltLab damals nicht wirklich gut funktionierte. Denn der Domain-Name legt eindeutig nahe, dass es sich um Herrn &#8222;Kirchberg&#8220; handelt, trotzdem hat WoltLab im HTML-Title-Tag versehentlich von &#8222;Hans-Peter Kirschberg&#8220; geschrieben.</p>
<h2>Andere Zeit</h2>
<p>Heute würde dieses Vorgehen bei Google keinen Effekt mehr zeitigen, außer eben eine Sanktion. Es stellt sich zwangsläufig die Frage, warum das damals so einfach funktioniert hat. Heute würde man selbst dann keinen Erfolg damit haben, wenn der Container, in dem die Informationen hinterlegt sind, sichtbar wäre.</p>
<p>Seinerzeit wurde der Aufbau einer Webseite über Frames oder Tabellen realisiert, nicht über die &#8222;richtigen&#8220; HTML-Elemente, die man heute als semantische Web wahrnimmt. Eine Überschrift wurde per <code>&lt;font&gt;</code>-Tag größer und mit <code>&lt;b&gt;</code>-Tag fett gemacht. CSS wurde nicht genutzt. Das ist heute anders. Heute setzt man Überschriften mit <code>&lt;h1&gt;</code>&#8211; bis <code>&lt;h6&gt;</code>-Tags und definiert sie per CSS korrekt im Aussehen. 2003 war das eher die Ausnahme, obwohl die korrekten Tags schon lange in den HTML-Standard <a href="https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt">eingeführt waren</a>.</p>
<h2>Text versteckten funktioniert nicht mehr</h2>
<p>Im April 2006 schrieb Matt Cutts, dass Google Webmaster über Abstrafungen informiert. Versteckter Text wurde als Beispiel für einen Verstoß gegen die Webmaster-Richtlinien <a href="https://www.mattcutts.com/blog/notifying-webmasters-of-penalties/">angeführt</a>. Spätestens zu diesem Zeitpunkt dürften selbst unverbesserliche SEOs von dieser Methode Abstand genommen haben. Denn eine entdeckte Manipulation wird mit Ausschluss aus dem Index geahndet.</p>
<h2>Warum ist versteckter Text eigentlich schlecht?</h2>
</h2>
<p>Suchmaschinen wollen das beste Ergebnis präsentieren, gemessen an der inhaltlichen Qualität der Seite. Einen Text zu bewerten, den der Besucher niemals zu Gesicht bekommen wird, ist nicht hilfreich. Außerdem haben Spammer diesen Trick ganz bewusst eingesetzt, um sich mit Suchbegriffen die oberen Plätze zu erschleichen, um die es auf ihrer Webseite überhaupt nicht ging. Das wiederum sorgt für ein schlechtes Nutzererlebnis und das möchten die Suchmaschinen tunlichst vermeiden.</p>
<p>Der Beitrag <a href="https://macnotes.de/2016/04/07/black-hat-seo-am-beispiel-woltlab-anno-2000/">Black-Hat-SEO am Beispiel Woltlab anno 2000</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>ÜberMedien verstößt mit Lügenwetter gegen Google-Richtlinien und Journalisten-Ethos</title>
		<link>https://macnotes.de/2016/02/09/uebermedien-verstoesst-mit-luegenwetter-gegen-google-richtlinien-und-journalisten-ethos/</link>
		
		<dc:creator><![CDATA[Alexander Trust]]></dc:creator>
		<pubDate>Tue, 09 Feb 2016 16:05:33 +0000</pubDate>
				<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Internet]]></category>
		<guid isPermaLink="false">https://sajonara.de/?p=74019</guid>

					<description><![CDATA[<p>Es ist keine inhaltliche Kritik am Beitrag Lügenwetter bei ÜberMedien, sondern nur der Hinweis darauf, dass es sich dabei um eine Werbeanzeige respektive einen Gastbeitrag handelt, der nicht als solcher gekennzeichnet ist. Ist das nicht schön? Da tun sich ein paar Leute zusammen, die schon über Jahre hinweg Medien kritisieren, allen voran Stefan Niggemeier und [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2016/02/09/uebermedien-verstoesst-mit-luegenwetter-gegen-google-richtlinien-und-journalisten-ethos/">ÜberMedien verstößt mit Lügenwetter gegen Google-Richtlinien und Journalisten-Ethos</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Es ist keine inhaltliche Kritik am Beitrag Lügenwetter bei ÜberMedien, sondern nur der Hinweis darauf, dass es sich dabei um eine Werbeanzeige respektive einen Gastbeitrag handelt, der nicht als solcher gekennzeichnet ist.</p>
<p>Ist das nicht schön? Da tun sich ein paar Leute zusammen, die schon über Jahre hinweg Medien kritisieren, allen voran Stefan Niggemeier und gründen die Plattform &#8222;ÜberMedien&#8220;. Auf dieser wird heute die Werbeanzeige mit dem Titel &#8222;Lügenwetter&#8220; veröffentlicht, und zwar von Jörg Kachelmann. Damit verletzt das Magazin den journalistischen Ethos, Werbung und Inhalt zu trennen. Obendrein verstößt es aber auch gegen Googles Webmaster Guidelines, weil es sich eindeutig um einen Gastartikel handelt, in dem sich Links auf Money Keywords finden, die nicht mit nofollow ausgestattet sind.</p>
<h2>Kachelmann veröffentlicht Gastartikel</h2>
<p>Mehrfach wird <a href="http://uebermedien.de/1690/luegenwetter/">in dem Beitrag zum Lügenwetter</a> auf Tweets von Kachelmann eingegangen und unter dem Artikel wird ganz absichtlich der Twitter-Kanal Kachelmanns eingebunden. In manchen der Tweets sind Links auf <em>kachelmannwetter dot com</em> enthalten. Auch ganz am Ende, als ein kleiner Passus über den Autor informiert, wird auf <em>kachelmannwetter dot com</em> verlinkt, per dofollow.</p>
<h2>Niggemeier mit Doppelmoral</h2>
<p>Jemandem wie Stefan Niggemeier, der schon seit Jahren <a href="http://www.stefan-niggemeier.de/blog/2910/die-schleichwerbelinks-von-sueddeutschede/">gegen Schleichwerbung</a> im Internet wettert, hätte ich zugetraut, etwas mehr Beobachtungsgabe an den Tag zu legen. Besonders absurd wirkt es, wenn Niggemeier im Jahr 2014 einen Artikel von Spiegel Online zum Anlass nimmt, Native Advertising in Online-Medien zu untersuchen und zu kritisieren, dass Hinweise wie &#8222;Sponsored Post&#8220; leicht zu überlesen seien und nicht ausreichen würden, Werbung zu kennzeichnen.</p>
<p>Tatsächlich wird sogar ein Beitrag auf Spiegel Online selbst kritisiert, den Niggemeier <a href="http://www.stefan-niggemeier.de/blog/17718/die-seelen-verkaeufer-von-spiegel-online/">als Gastartikel entlarvt</a>, genauso wie ich das eben mit dem Artikel des Herrn Kachelmann gemacht habe. Nur Niggemeier als Betreiber von ÜberMedien lässt für sich den Anspruch offenbar nicht zu, den er an andere Medienschaffende anlegt.</p>
<p>Ebenfalls 2014 war es, als Niggemeier der Rheinischen Post <a href="http://www.stefan-niggemeier.de/blog/18047/wie-waldo-im-wimmelbild-journalismus-und-die-inflation-von-online-werbung/">vorwarf</a>, dass diese sich nicht um ihr Image von morgen sorge, weil sie nur möglichst viel Geld verdienen will. Das Image von ÜberMedien scheint Niggemeier und Rosenkranz ebenfalls nicht so sehr am Herzen zu liegen, wenn man den Gastartikel des Herrn Kachelmann nicht deutlicher als solchen kennzeichnet.</p>
<h2>ÜberMedien verstößt gegen Webmaster Guidelines</h2>
<p>Diese Vorgehensweise wird Gott sei Dank von Google gerügt, <a href="https://macnotes.de/2014/01/22/gastbloggen-2014-durch-google-bestraft/">wie Matt Cutts schon 2014 angekündigte</a>. <a href="https://www.sistrix.de/news/matt-cutts-sagt-links-gastbeitraegen-den-kampf/">Entsprechend</a> kann man sich nur wundern, warum ÜberMedien trotzdem das Risiko eingeht. Es ist nur noch eine Frage der Zeit, bis Google also den Stecker zieht und ÜberMedien abstraft. Es sei denn, Niggemeier und seine Medienkritik-Partner führen nofollow-Links für Gastartikel ein. Aber dann hätte ein Jörg Kachelmann sicher nicht so gerne für das Medium geschrieben.</p>
<p>Der Beitrag <a href="https://macnotes.de/2016/02/09/uebermedien-verstoesst-mit-luegenwetter-gegen-google-richtlinien-und-journalisten-ethos/">ÜberMedien verstößt mit Lügenwetter gegen Google-Richtlinien und Journalisten-Ethos</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
	</channel>
</rss>
