WordPress Plugin KeywordFire > Automatisierte OnPage Optimierung

keywordfire Ich arbeite derzeit an vielen Fronten, u.a. an meinem ersten WordPress-Plugin mit dem Namen KeywordFire. Nehmt etwas Rücksicht bei Bugs und glaubt mir wenn ich sage, dass es eine irrsinnige Arbeit ist! Aber kommen wir zum Plugin…

Was macht KeywordFire?

  1. Wenn eine Webseite Deines Blogs aufgerufen wird speichert KF diesen Aufruf.
  2. Wenn der Besucher von einer bekannten Suchmaschine kommt, dann speichert KF zusätzlich noch den benutzen Suchbegriff.

Was kann man mit den gespeicherten Daten machen?

  1. Eine simple Liste der meist gelesenen Artikel erstellen (bsp. Top 10 heute oder der letzten X Tage).
  2. Die Suchbegriffe zur OnPage Optimierung verwenden.
  3. Den Lesern und dem Blogger schnell Trends aufzeigen.

Was bedeutet OnPage Optimierung durch KeywordFire?

Traditionelle Suchmaschinenoptimierung ist heute wichtiger den je geworden. Ja, eingehende Link sind wichtig, aber wenn die Struktur des Blogs nichts taugt wird es schwierig gefunden zu werden. KF dient zur Verbesserung der internen Verlinkung und zur Steigerung der Keyworddichte bei den einzelnen Artikeln.

Verbesserung der internen Verlinkung:

WICHTIG ZUM VERSTÄNDNIS: Die Startseite einer Webseite vererbt auf alle verlinkten Unterseiten “Google Juice” oder auch “Umpfff” genannt ;-). Die traditionelle und indirekte Linkstruktur unter WordPress über den Zwischenschritt der Kategorie-, Tag- oder Archivseiten ist i.d.R. ungünstig. Noch dazu werden Artikel ausschließlich mit ihrem Titel verlinkt.

KF löst beide SEO-Probleme! Zum einen verlinkt KF die meist gesuchten Artikel direkt von der Startseite, so dass auch alte Artikel weiter direkt Umpfff bekommen, und zum anderen verlinkt KF Artikel auch noch mit aktuell populärsten Suchbegriffen. Wenn KF nicht nur auf  der Startseite, sondern auch auf Unterseiten angewendet wird, entsteht eine dynamische Linkstruktur!

Verbesserung der Keyworddichte:

WICHTIG ZUM VERSTÄNDNIS: Die meisten Blogger schreiben für Leser und nich für Suchmaschinen Texte, so dass sinnvolle Suchbegriffe oft nicht wiederholt werden und damit nicht in ausreichender Zahl / Dichte da sind, um von Suchmaschinen hoch gewichtet zu werden.

KF kann auf Unterseiten die jeweils häufigsten Suchbegriffe des Artikels ausgeben und damit die Dichte der Schlüsselbegriffe erhöhen. Vorsicht mit der Anzahl (<= 6 ), sonst wird der Artikel von Google schnell wegen Keyword-Spam aus dem Index geworfen.

KeywordFire Installation

  1. Download von KF (siehe Ende)
  2. Archiv tb-keywordfire.zip entpacken und
  3. den Ordner tb-keywordfire per FTP-Client in das WordPress Unterverzeichnis ./wordpress/wp-content/plugins kopieren.
  4. Im WordPress-Backend unter Plugins KeywordFire aktivieren.

KeywordFire Konfiguration

Aktuell gibt es noch kein schickes Backend, sondern eine profane Datei / kf_config.inc.php, in der man verschiedene Einstellungen vornehmen kann.

  1. Counter anzeigen, d.h. soll der Zähler hinter den Ergebnissen ausgegeben werden?
  2. Wie viele Tage soll KF Daten aufbewahren. Bei viel besuchten Blogs (> 2000 unique Hits / Tag) sollte man nicht mehr als 30 Tage nutzen.
  3. Bei Schwierigkeiten kann der Automatic Modus deaktiviert werden und der Funktionsaufruf / Code zum zählen der Suchbegriffe manuell in den Footer eingegeben werden.
  4. Es können alle Daten schnell gelöscht werden um neu zu Starten (es werden nicht die Tabellen gelöscht, sondern nur geleert).
  5. Es kann der Hinweis / Link auf KeywordFire (“by KeywordFire) genau eingestellt werden. Bitte seit fair und würdigt die harte Arbeit. Ihr unterstützt damit die Weiterentwicklung von KF.

Welche Funktionen hat KeywordFire augenblicklich und wie verwende ich sie?

Um alle Funktionen sollte eine Abfrage, ob die Funktion vorhanden ist, so dass bei einem Fehler oder der Deaktivierung die Seite nicht schauderhaft aus sieht.

Des Weiteren sollte um die Abfrage noch einmal eine weitere Abfrage, wann dieser Block angezeigt werden soll. Eine Unterscheidung unter WordPress, ob eine Funktion auf einer bestimmten Seite aufgerufen wird, erledigt man über die WordPress Conditional-Tags.
Ich reduziere die Unterscheidung auf Artikel oder nicht, d.h.

<?php if (function_exists('NAME DER FUNKTION')) { ?>
  HTML
    <?php FUNKTION ?>
  HML
<?php } ?>

Das gesamte Konstrukt für Artikelseite:

<?php if (is_single()) { ?>
  <?php if (function_exists(‘NAME DER FUNKTION’)) { ?>
    HTML
      <?php FUNKTION ?>
    HML
  <?php } ?>
<?php } ?>

Das gesamte Konstrukt für alles außer dem Artikel, d.h. Startseite, Archiv u.s.w.:

<?php if (!is_single()) { ?>
  <?php if (function_exists(‘NAME DER FUNKTION’)) { ?>
    HTML
      <?php FUNKTION ?>
    HML
  <?php } ?>
<?php } ?>

Funktionen von KeywordFire für alle Seiten außer der Artikelseite / !is_single()

X Artikel sortiert nach den häufigsten Suchbegriffen für X Tage

keywordfire_recentrefs($maxresults, $days, $before, $after);

$maxresults = Anzahl Suchbegriffe, die angezeigt werden sollen.

$days = Anzahl der Tage die berücksichtigt werden sollen

$before und $after = welche Tags vor und nach dem jeweiligen Suchbegriff eingefügt werden sollen.

Anmerkung: Dies ist die für Suchmaschinen die relevanteste Funktion und sollte möglichst im Quelltext vor allen KF-Funktionen erscheinen!

Beispiel für die häufigsten 10 Suchbegriffe der letzten 14 Tage (als Liste):
<?php if (function_exists(’keywordfire_recentrefs’)) { ?>
  <div id="recentrefs">
    <h2>10 Artikel sortiert nach dem häufigsten Suchbegriffen (innerhalb von 14 Tagen):</h2>
    <ul>
      <?php keywordfire_recentrefs(10,14,"<li>","\n"); ?>
    </ul>
  </div>
<?php } ?>
Beispiel der Formatierung mittels CSS in der style.css des WordPress Themes:
#recentrefs ul li {
  float: left;
  list-style-type: none;
  margin: 0 auto;
  padding: 0;
}

Screenshot von meiner Version:

suchbegriffe meist gelesen

X Artikel sortiert nach den häufigsten Suchbegriffen für heute

keywordfire_todayrefs($maxresults, $before, $after);

Die X meist gelesenen Artikel mit dem jeweils am häufigsten benutzen Suchbegriff

keywordfire_recentrefs_by_post($maxresults, $days, $before, $after);

suchbegriffe meist gelesene artikel

Die X häufigsten Suchbegriffe (mehrfaches Auftreten eines Artikel und Variationen von Suchbegriffen möglich)

keywordfire_recentrefs_all($maxresults, $days, $before, $after);

top keywords

Die X meist gesuchten Begriffe am aktuellen Tag

keywordfire_todayrefs($maxresults, $before, $after);

top keywords heute

Die letzten X eingegangenen Suchbegriffe (aktuell)

keywordfire_lastrefs($maxresults, $before, $after);

letzten suchbegriffe

Die am häufigsten aufgerufenen Artikel heute

keywordfire_todaypop($maxresults, $before, $after);

heute meist gelesen

Die am häufigsten aufgerufenen Artikel der letzten X Tage

keywordfire_recentpop($maxresults, $days, $before, $after);

artikel top 10

Die X zuletzt kommentierten Artikel

keywordfire_discussionbypost($maxresults, $before, $after);

kuerzlich kommentiert

Die X zuletzt kommentierten Artikel mit Name des Autors

keywordfire_discussionbypost($maxresults, $before, $after);

Funktion von KeywordFire für die Artikelseite / is_single()

Zeigt die X häufigsten Suchbegriffe für den aktuellen Artikel und verlinkt auf diesen.

keywordfire_refsforpost($maxresults, $id, $before, $after);

Hier müssen nur $maxresults, $before und $after angegeben werden. $id kommt von WordPress selbst.

Widgets?

Fehlanzeige! KF bietet momentan KEINE Unterstützung für Widgets, weil ich zunächst die Kernfähigkeiten des Plugins rund machen will. Wer die rudimentären Widgets nutzen will, muss in KeywordFire.php in Zeile 384 die Raute entfernen:

require_once (dirname(__file__).'/kf_widgets.inc.php');

und ggf. noch kf_widgets.inc.php anpassen

Fertiger Code für den Footer – Quick & Dirty

<?php if ( !is_single() ) { ?>
	<?php if (function_exists('keywordfire_recentrefs')) { ?>
		<div id="recentrefs">
		<h5>10 Artikel sortiert nach dem häufigsten Suchbegriffen (innerhalb von 14 Tagen):</h5>
			<small>
				<?php keywordfire_recentrefs(20,14,""," \n"); ?>
			</small>
		</div>
	<?php } ?>
<?php  } ?>
<?php if (is_single()) { ?>
	<?php if (function_exists('keywordfire_refsforpost')) { ?>
		<div id="refsforpost">
		<h5>Eingegangene Suchbegriffe für diesen Artikel:</h5>
			<small>
				<?php keywordfire_refsforpost(5, $id, "", " \n"); ?>
			</small>
		</div>
	<?php } ?>
<?php } ?>

Fertiger Code für die Sidebar – Quick & Dirty

<?php if (!is_single()) { ?>
	<?php if (function_exists('keywordfire_recentrefs')) { ?>
		<div id="recentrefs">
		<h5>10 Artikel sortiert nach dem häufigsten Suchbegriffen (innerhalb von 14 Tagen):</h5>
			<ul>
				<?php keywordfire_recentrefs(10,14,"<li>","\n"); ?>
			</ul>
		</div>
	<?php } ?>
<?php } ?>
<?php if (is_single()) { ?>
	<?php if (function_exists('keywordfire_refsforpost')) { ?>
		<div id="refsforpost">
		<h5>Eingegangene Suchbegriffe für diesen Artikel:</h5>
			<ul>
				<?php keywordfire_refsforpost(10,$id,"<li>","\n"); ?>
			</ul>
		</div>
	<?php } ?>
<?php } ?>

KeywordFire Download – Version 0.5.5

Version 0.5.5

Download KeywordFire 0.5.5

  • Cache für die Funktion keywordfire_recentrefs, so dass diese nur einmal am Tag aktualisiert wird und nicht bei jedem Ladevorgang der Webseite ausgeführt wird.

Version 0.5

Download KeywordFire Version 0.5.1

  • Optimierung der SQL-Abfragen (Stichwort Geschwindigkeit)
  • Nur noch Ausgabe von Suchbegriffen in den Top Suchbegriffen bei mehr als 1 Treffer (Stichwort Geschwindigkeit)
  • Verringerung der Anzahl zu speichernden Datensätzen (Stichwort Geschwindigkeit)
  • Badwords-filter als scharze Liste (Stichwort Geschwindigkeit)

Version 0.4

  • keywordfire_lastrefs() ist neu und zeigt die aktuell eingegangenen Suchbegriffe.
  • keywordfire_recentrefs() wurde verändert und zeigt nun jeweils nur einen Suchbegriff pro Webseite, d.h. Unterseiten werden jeweils nur mit dem häufigsten Suchbegriff verlinkt.
  • keywordfire_recentrefs_by_post() ist neu und zeigt die am häufigsten per Suchmaschine gefundenen Seiten mit dem dabei am häufigsten verwendeten Suchbegriff. Der Counter zeigt in diesem Fall die Anzahl der Aufrufe des Artikels.
  • keywordfire_recentrefs_all() ist die alte Version von keywordfire_recentrefs() und zeigt die häufigsten Suchbegriffe, d.h. es kommt vor dass Unterseiten mehrfach verlinkt werden.
  • Erstellung der Tabellen nun als UTF-8 und nicht als latin1.
  • HTML-Steuerzeiche <, >, & werden automatisch umgewandelt aus der DB ausgegeben, so dass der Quellcode weiterhin validiert.
  • Sicherung für SQL-Injection eingebaut
  • Unzählige Kleinigkeiten, die ich schon wieder vergessen habe ;-)

@Betatester:

Update:

  1. KeywordFire in WP deaktivieren
  2. Die Tabellen wp_keywordfire_refs und wp_keywordfire_hits löschen (sorry ist das letzte Mal), da nun utf8 und nicht mehr latin1
  3. KeywordFire in WP aktivieren

Was steht auf der To-Do-Liste?

  • Das Thema Widgets steht noch aus, also seit nicht enttäuscht, dass ich diese noch nicht angefasst habe ;-)
  • Automatisches Einfügen der Quick & Dirty Codes
  • White und Blacklist für Suchbegriffe sowie Unterbinden des Speicherns von unsinnigen Suchbegriffe, wie http://…
  • Die Übersetzung des KF mittels Poedit und den Tags im PLugin. Übersetzer gesucht!
  • Überhaupt die Benennung der Überschriften ist aufgrund der Vielseitigkeit nun ein Thema geworden. Vorschläge erwünscht!
  • Übersetzung des Artikels ins Englische. Übersetzer gesucht!
  • Korrektur meines Englisch in der Doku des Plugins.
  • Eintragen des Plugins bei bei WordPress.com. Und welchen Seiten noch?
  • was meint ihr noch?

Credits

Mein Dank geht alle die an der Entwicklung von KF beteiligt waren, ob mit Coden der Feedback!

Mein Besonderer Dank geht an Thomas von Lightroom Tutorial für seine häufige und gute Hilfe *thumbs up* und natürlich an Casey Bisson und seinem WordPress Plugin bSuite vormals bstat, von dem ich die Inspiration und einige -Schnipsel bekommen habe!

Support KeywordFire

Ich will keine Paypal-Spende und auch nichts von der Amazon-Wunschliste.

Ich freue mich, wenn ihr hier Feedback gebt und / oder über KeywordFire etwas schreibt.



25 Kommentare zu WordPress Plugin KeywordFire > Automatisierte OnPage Optimierung
    • KRiZZi :
    • Im Quick&Dirty Code für den Footer ist ein Fehler, da ist ein Anführungszeichen falsch rum.
      Check mal diese Zeile: <?php keywordfire_recentrefs(10,14,””,”n”); ?>
      In der hier auch: <?php keywordfire_refsforpost(10,$id,””,” n”); ?>
      edit: Kann trotzdem nicht geparst werden, meh.

    • # 1  27.2.2009  23:54

    • Tim :
    • @KRiZZi: Habe einen Filter-Hook installiert, so dass der Code nun sauber formatiert wird. WordPress bzw. TinyMCE war für die Änderungen an den Code-Beispielen verantwortlich. Nun dürfte alles wie gewohnt laufen.

    • # 2  28.2.2009  11:31

    • KRiZZi :
    • Yo, thx, klappt jetzt. Hab da noch ein weiteres Problem(chen), hab ich dir aber schon gemailt. Warte sehnsüchtig auf Antwort! ;)

    • # 3  28.2.2009  13:06

    • noyse :
    • is die version jetzt aktueller als die beta deines linkes? Im WP wurde 0.7 angezeigt und hier steht 0.4 ;)

    • # 4  28.2.2009  16:08

    • Tim :
    • Hab ich vergessen in den Artikel zu schreiben. Die Betaversion war mit 0.7 viel zu hoch angesetzt. Diese Version ist nun 0.4 und die aktuellste.
      Diese Version stellt ein major update dar, weil die SQL-Sätze überarbeitet wurden, so dass die Geschwindigkeit höher ist und kein Artikel doppelt ausgegeben wird.

    • # 5  28.2.2009  18:42

    • Matthias :
    • Hallo Tim,

      hab das Plugin auf meiner Seite mal laufen lassen. Es hat aber leider meinen Server nach kurzer Zeit so beansprucht, dass ich es wieder deaktivieren musste. Wäre super wenn du das noch irgendwie optimieren könntest.

      Gruß
      Matthias

    • # 6  01.3.2009  21:36

    • Tim :
    • @Matthias: Wäre gut, wenn Du mir einen Link geben würdest.
      Das Plugin speichert die Zugriffe und gibt eine Statistik davon aus. Der komplizierteste SQL-Satz dürfte dein Blog bzw. Server nicht in Gefahr bringen. Es läuft performant auf diversen Seiten. Du solltest vielleicht das Problem an anderer Stelle suchen.

    • # 7  01.3.2009  21:41

    • Matthias :
    • Schau mal hier –> http://www.cartoonland.de
      Die Serverlast liegt normal deutlich unter 1, nach der Aktivierung deines Plugins stiegt zwischen 3 und 6.
      Was brauchst du noch für Infos?

    • # 8  01.3.2009  21:48

    • Tim :
    • Was ist 1, 3 und 6? Was soll ich damit anfangen?
      Wie hast Du das Plugin eingebunden? alles automatisiert mit Widgets oder wie? Wieviele Hits am Tag auf welchem Hosting-Tarif? etc.
      Was für Plugins? Global-Translator könnte bsp. ein Problem sein…

    • # 9  02.3.2009  09:51

    • Matthias :
    • Mit der Serverlast meine ich das hier –> http://de.wikipedia.org/wiki/Load

      Eingebunden habe ich dein Plugin wie du unter “Footer – Quick & Dirty” beschrieben hast.
      Die Seite läuft auf einem eigenen 1&1 Server und hat ca. 10000 Besucher am Tag (~50000 PIs).
      Meine Plugins sind folgende:
      Adsense-Deluxe 0.8
      Akismet 2.2.3
      Audio player 1.2.3
      Broken Link Checker 0.4.13
      Custom Smilies 2.6
      Easy Contact 0.1.2 ?
      Exec-PHP 4.9
      Flash Video Player 3.1
      Fluency Admin 2.0
      Get Recent Comments 2.0.2
      Google Analytics for WordPress 2.7
      Google XML Sitemaps 3.1.2
      Less 1.1
      Limit Login Attempts 1.3
      o42-clean-umlauts 0.2.0
      Official Comments 1.1
      openxwpwidget 0.1
      QuickTime Embed 0.2
      Random Excerpt 1.
      Register Plus 3.5.1
      Search Meter 2.5
      Simple Tags 1.6.4
      User Sidebar Panel 0.5.2.5
      WMD Editor 1.0
      WordPress Related Posts 1.0
      WP-DBManager 2.40
      WP-Mail-SMTP 0.8.2
      WP-PageNavi 2.40
      WP-PostRatings 1.40
      WP Ajax Edit Comments 2.2.6.0
      wpSEO 2.7.2
      Yawasp – 3.2

      Den Global Translator habe ich mal deinstalliert, hat aber auch nichts gebracht.

    • # 10  02.3.2009  18:39

    • Tim :
    • @Matthias: Danke für die Antwort. LoadAverage nutze ich selbst nicht, weshalb ich etwas perplex klar.
      Ich habe mir die SQL-Sätze noch einmal zur Brust genommen. Ich konnte mit Thomas die Auslastung um den Faktor 3 bis 4 reduzieren. Ich bin noch am testen.
      Unsicher bin ich mir wieso auch bei einfachen Datenbankabfragen recht hohe Belastungen kommen.
      Aktueller LA bei ~7000 Besuchern auf dem Server / Tag
      #cat /proc/loadavg
      0.11 0.13 0.15 1/108 31426
      Sieht also schon weit besser aus ;-)

    • # 11  02.3.2009  19:38

    • Matthias :
    • Na das hört sich doch super an! Gibt es einen neuen Download um das modifizierte Plugin zu testen?

    • # 12  02.3.2009  19:51

    • noyse :
    • der download is immer noch 5.1 :)

    • # 13  06.4.2009  09:36

    • Tim :
    • Fehler in Rightload. Ist nun erledigt.

    • # 14  06.4.2009  11:49

    • Stefan :
    • Gibt es eine Möglichkeit auch die Zugriffe auf die Kategorien und Tag Seiten zu tracken?

    • # 15  24.8.2009  13:15

    • Tim :
    • Die Suchwortdichte kann mit KeywordFire automatisiert erhöht werden, wenn man die eingehenden Suchwort anzeigen lässt, aber das kann auch schnell als Keywordspam missverstanden werden.

    • # 16  08.10.2009  16:02

    • Patrick :
    • Huch was ist denn da mit meinem Kommentar passiert :D Der hat die Eingabe irgendwie falsch ausgewertet :)

      Ich habe geschrieben ob das oben nicht größer als 6 heißen soll und nicht kleiner als 6 :)

      Bitte den oberen Kommentar löschen, der klingt ja nach ganz schlechtem deutsch :D

    • # 17  08.10.2009  16:04

    • Tim :
    • erledigt

    • # 18  08.10.2009  18:08

    • jez :
    • das plugin ist super, gerade zu genial!
      leider kann ich die keywords für single posts nicht ausgeben lassen (keywordfire_refsforpost). Die Ausgabe ist einfach leer.

      Wie kann ich das debuggen und selbstlösen?
      Sobald ich alles am laufen habe werde ich extensiv über das plugin berichten, viele englische nutzer werden sicher interesse daran haben!

    • # 19  23.11.2009  18:09

    • Tim :
    • @jez: Check die Tabellen keywordfire_refs .._hits

    • # 20  23.11.2009  18:25

    • jez :
    • wird beides populiert: sammelt fleissig daten, aber irgendwas hinkt bei der ausgabe. habe wordpress mu am laufen, vielleicht deshalb? die refsforpost funktion ist die einzige die nicht laeuft (und leider auch die interessanteste). würde mich grandios ueber einen tipp freuen! danke

    • # 21  23.11.2009  19:45

    • Tim :
    • @jez: Die keywordfire-Tabelle mit _cache am Ende einfach mal leeren. Beim nächsten Besucher von einer Suchmaschine werden sie wieder gefüllt und Du solltest dann Daten sehen (wenn meine Antowrt nicht schon zu spät ist und aufgrund des “neuen” Tages das ganze schon automatisch geschehen ist.)

    • # 22  25.11.2009  12:00

    • jez :
    • danke für deine antwort!

      ich habe die _cache tabelle geleert, aber komischerweise war dort gar nichts drin…
      die anderen tabellen werden froehlich populiert,

      bekomme mit

      SELECT *
      FROM `wp_1_keywordfire_refs`
      ORDER BY `wp_1_keywordfire_refs`.`keywordfire_date` DESC
      LIMIT 0 , 30

      die letzten ergebnisse in sql angezeigt, aber leider bockt die ausgabe.

      eine musterzeile wäre z.b.
      351 2009-11-25 924 1 1 how to fix ” the file “wow.exe” could not be found…

      hast du noch einen tipp?

    • # 23  25.11.2009  12:41

    • Tim :
    • Ich kenne mich mit MU überhaupt nicht aus. Ich nutze im Plugin ein paar Standard-Wordpress-Variablen, die unter MU anders sein könnten. Dass er die Daten speichert liegt wahrscheinlich daran, dass dies wenig mit WP zu tun hat. Beim auslesen und verarbeiten der Daten aber schon. Dass der Cache nicht genutzt wird ist seeeehhhr seltsam.

    • # 24  25.11.2009  17:25

    • jez :
    • hmm, danke soweit auf jedenfall schon mal,
      dann muss ich mal weitertesten.

    • # 25  26.11.2009  17:08


Kommentar schreiben



  1. Trackbacks und Pingbacks
    • Datenreset bei Keyword Fire – KRiZZi'S BLoG
    • #  1  28.2.2009

    • Das Noyse.net Blog – Hier schreibt das Noyse noch selbst… » KeywordFire (II)
    • #  2  28.2.2009

Viel gelesen in der letzten Tagen

Artikel-Zusatzinformationen

  • Geschrieben am 27. Februar 2009