<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>seo-geek - Webseiten gezielt optimieren</title>
	
	<link>http://www.seo-geek.de</link>
	<description>Schwere Themen einfach erklärt</description>
	<lastBuildDate>Thu, 02 Sep 2010 08:02:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/seogeekde" /><feedburner:info uri="seogeekde" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>CSS und Javascript richtig ausliefern</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/mHubngzRsxg/</link>
		<comments>http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:58:35 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[komprimierung]]></category>
		<category><![CDATA[merging]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[shop performance optimization]]></category>
		<category><![CDATA[spo]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=222</guid>
		<description><![CDATA[Neben der reinen Suchmaschinenoptimierung gibt es jetzt [...]]]></description>
			<content:encoded><![CDATA[<p>
Neben der reinen Suchmaschinenoptimierung gibt es jetzt auch die Abk&uuml;rzung SPO, oder auch <a href="http://www.konversionskraft.de/checklisten/shop-performance-optimization.html" title="SPO / Shop Performance Optimization bei konversationskraft.de">Shop Performance Optimization</a> genannt. Was aber versteckt sich dahinter und wie kann man das grundlegend angehen?
</p>
<p><span id="more-222"></span></p>
<p><h2>Was versteckt sich hinter SPO?</h2>
<p>	Wie man bereits wei&szlig; wird nach und nach auch die Site-Performance eine Rolle in den SERPS (Search Engine Result Pages) spielen. Dazu z&auml;hlt beispielsweise der Faktor Zeit eine gro&szlig;e Rolle bis die Seite fertig geladen bzw. gerendert ist. Jetzt muss man vorher nat&uuml;rlich etwas die theoretische Seite betrachten um die genauen Sachverhalte f&uuml;r das Wieso nachvollziehen zu k&ouml;nnen. </p>
<p>	<a name="theorie"></a>Jeder Aufruf einer Datei - sei es ein Bild, ein Filmchen, eine CSS-Datei (Cascading Style Seet) oder eine JavaScript-Datei (wie beispielsweise jquery) wird der Server angewiesen alle Dateien zur Verf&uuml;gung zu stellen. Der Browser dagegen nimmt diese Dateien an. Soweit so gut, das Problem ist nur dass Browser an kleinere Restriktionen gebunden sind.</p>
<ul>
<li>Viele Browser k&ouml;nnen lediglich zwei Dateien einer gleichen Quelle parallel downloaden.</li>
<li>Werden mehr als zwei Dateien von einer Quelle angefordert werden diese in eine Warteschleife gestellt</li>
<li>Jeder Aufruf bedeutet einen HTML-Request. Je mehr es sind, desto l&auml;nger wird es dauern alle Verbindungen ge&ouml;ffnet und verarbeitet wurden</li>
</ul>
<p>	Hier stellt man unweigerlich fest, dass man selbst bei aktuellen Browsern schnell ein Flaschenhals da sein kann.
</p>
<p><h2>Wie sieht der Plan aus? Wie gehen wir vor?</h2>
<p>	Unser heutiges Ziel soll es sein die Anfragen zu minimieren. Im speziellen geht es mir um die Reduzierung der JavaScript und CSS-Dateien. Dabei m&ouml;chte ich heute hier auf eine etwas h&auml;ndischere Methode eingehen. Sicherlicht gibt es auch On-The-Fly Methoden in den g&auml;ngigsten CMS, aber ich m&ouml;chte ja auch die Grundlagen vermitteln. Denn wer sich selber eine Seite in HTML aufbaut, kann dann immer noch auf diese Resourcen zur&uuml;ckgreifen. Wir realisieren das ganze in der Skriptsprache ruby. Ruby wird uns hier ganz einfach helfen ans Ziel zu kommen. Mit Ruby werden wir die Dateien kombinieren (hier sparen wir wichtige Aufrufe) und komprimieren (spart uns wichtige Bandbreite). Wer Interesse hat, den Originalbeitrag <a href="http://www.smashingmagazine.com/2009/07/19/how-to-automate-optimization-and-deployment-of-static-content/" title="Originalbeitrag auf smashingmagazine.com"> "How to automate optimization and deployment of static content"</a> findet man bei smashingmagazin.com.
</p>
<p><h2>Vorbereitungen</h2>
<p>	Wer mit einem Apple arbeitet kann sich jetzt ganz entspannt zur&uuml;cklehnen, denn auf Mac-Rechnern ist Ruby bereits vorinstalliert. Anders bei Windows. Hier muss man das ganze erst einmal nachinstallieren. Hierzu l&auml;dt man sich schlicht von der <a href="http://www.ruby-lang.org">Herstellerseite</a> das passende Paket f&uuml;r Windows herunter und installiert dies. Ist die Installation von Ruby fertig kann man die Konsole ganz einfach mit Ruby-Unterst&uuml;tzung starten. </p>
<p>    Damit haben wir aber ersteinmal nur die halbe Miete. Wir brauchen nat&uuml;rlich auch die n&ouml;tigen Addons f&uuml;r Ruby.<br />
    Eines davon ist Juicer, welches von Christian Johansen entwickelt wurde. Mit diesem Tool werden unsere Javasckripte und CSS kombiniert und komprimiert.<br />
    Um Juicer zu installieren ben&ouml;tigen wir folgende Zeile in unserer Kommandozeile</p>
<pre class="brush: plain; ">

    	Windows: gem install juicer
    	Mac OS X: sudo gem install juicer
</pre>
<p>    Nicht wirklich viel Unterschied, nur lediglich 4 Buchstaben. Damit Juicer auch richtig arbeitet ben&ouml;tigen wir hier noch zwei Komponenten. YUI-Kompressor und JSlint.  Wesentlich schwieriger gestaltet sich das auch nicht. Hier brauchen wir zwei Zeilen: </p>
<pre class="brush: plain; ">

    	juicer install yui_compressor
    	juicer install jslint
</pre>
<p>    Hat man beide Zeilen eingegeben steht einem das Optimieren seiner Dateien nichts mehr im Wege
</p>
<p><h2>Fangen wir an</h2>
<p>	Nehmen wir der Einfachkeit halber an, wir bauen uns ein kleines HTML-Template auf das sp&auml;ter einmal eine kleine statische HTML-Seite werden soll. Grundlegend &auml;ndert sich nichts an der Art wie wir Dateien optimieren und komprimieren. Es unterscheidet sich dann lediglich nur wo die Dateien liegen und wie diese eingebunden werden.<br />
	Unsere Seite soll folgende Elemente beinhalten: </p>
<ul>
<li>960er Grid-System von <a href="http://960.gs/" title="960 Grid System">960.gs</a></li>
<li>Eine eigene Stylesheet Datei</li>
<li>Diverse Javascript - Dateien (Framework, seperate Dateien - egal was)</li>
</ul>
<p>	Damit Ihr Euch vorstellen k&ouml;nnt wie die HEAD-Anweisung aussieht hier einen Auszug aus genanntem Bereich: </p>
<pre class="brush: html; ">

		&lt;head&gt;
		&lt;title&gt;Juicer-Demo ohne Optimierung&lt;/title&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;css/reset.css&quot;&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;css/960.css&quot;&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;css/text.css&quot;&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&gt;

		&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.2.6.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.pagination.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.pageigen.js&quot;&gt;&lt;/script&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
	&lt;/head&gt;
</pre>
<p>	Allein mit diesen Zeilen haben wir bereits 7 (!!) HTTP-Requests. Was haben wir <a href="#theorie">oben</a> gelernt? Ein Browser kann immer zwei Dateien parallel downloaden, der Rest ist in der Warteschlange. Das bedeutet dass wir mind. 3x2 und 1x1 Datei laden. Das sich das ganze auch auf die Ladezeit aus&uuml;bt sieht man an folgendem Screenshot. </p>
<p><a href="http://www.seo-geek.de/wp-content/uploads/2010/09/index-ohne-optimierung.png"><img src="http://www.seo-geek.de/wp-content/uploads/2010/09/index-ohne-optimierung-300x140.png" alt="" title="index-ohne-optimierung" width="300" height="140" class="alignright size-medium wp-image-223" /></a></p>
<p>Dieser wurde mit Safari aufgenommen und zeigt deutlich das Ladeverhalten. Je nachdem ob die Dateien gecached sind &auml;ndern sich nat&uuml;rlich die Zeiten. Aber wie man hier sieht hat man mit den vorangehenden HTML-Block 706 ms ben&ouml;tigt (ok, der vServer ist nicht der schnellste, aber es z&auml;hlt ja das Prinzip <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Jetzt stellt man sich das ganze mal bei vielen Skripts, vielen CSS und noch mehr Bildern vor. Da ist man sehr schnell am Flaschenhals.
</p>
<p><h2>Steuerungsdateien vorbereiten</h2>
<p>	Da wir nun dem Ruby-Plugin Juicer mitteilen m&uuml;ssen welche Dateien kombiniert werden sollen, m&uuml;ssen wir vorher Steuerungsdateien anlegen. In diesen Dateien teilen wir juicer mit welche Dateien optimiert und kombiniert werden sollen.<br />
	Fangen wir zun&auml;chst mit den CSS-Dateien an. Wichtig ist hier, dass man sich an die Reihenfolge h&auml;lt da sonst die Ausgabe anders wird wie gewohnt bzw. wie erwartet.<br />
	Legen wir uns im css-Ordner eine Datei namens <strong>combined.css</strong> an und f&uuml;llen diese mit folgendem Inhalt: </p>
<pre class="brush: css; ">

	@import url(&quot;reset.css&quot;);
	@import url(&quot;960.css&quot;);
	@import url(&quot;text.css&quot;);
	@import url(&quot;style.css&quot;);
</pre>
<p>	Nicht allzu schwierig oder? Wir importieren lediglich alle anfallenden css-Dateien. Dasselbe Prinzip greift auch bei den js-Dateien, jedoch mit etwas anderem Inhalt: </p>
<pre class="brush: js; ">

	/**
	* @depends jquery-1.2.6.js
	* @depends jquery.pagination.js
	* @depends jquery.pageigen.js
	*/
</pre>
<p>	Auch hier gilt, first things first. Was zu erst geladen werden muss, muss auch zu erst als depend markiert sein. </p>
<p>	Jetzt kommt der Moment auf den wir alle gewartet haben. Lassen wir den Zauber beginnen. Betrachten wir uns vorher noch einmal die Dateigr&ouml;&szlig;en: </p>
<ul>
<li>Stylesheets - 4 Dateien - 24 kb</li>
<li>Javascripts - 3 Dateien - 108 kb</li>
</ul>
<p>	Beim jquery habe ich bewusst eine unkomprimierte Datei gew&auml;hlt um den Effekt zu demonstrieren. </p>
<p>	Wechseln wir zun&auml;chst in den css-Ordner. Dazu bem&uuml;hen wir unsere Konsole bzw. unsere Kommandozeile. Hier geben wir folgenden Code an: </p>
<pre class="brush: ruby; ">

	juicer merge --force combined.css
</pre>
<p>	Das Ergebnis hier ist eine combined.min.css. Die Gr&ouml;&szlig;en verrate ich gleich. Wiederholen wir den Vorgang f&uuml;r die javascripts. </p>
<pre class="brush: ruby; ">

	juicer merge -i --force combined.js
</pre>
<p>	F&auml;llt das -i auf? Das bedeutet lediglich das jslint (Modul von juicer) auch bei Fehlern im Skript die Arbeit trotzdem fortf&uuml;hrt.<br />
	Jetzt w&auml;ren wir soweit fertig, sehen wir uns die neuen Dateien an: </p>
<ul>
<li>Stylesheets - 1 Datei - 12 kb</li>
<li>Javascripts - 1 Datei - 61 kb</li>
</ul>
<p>	Das macht in der Summe 59 kb weniger, eine Einsparung von knapp 44,7%. Wenn man nun ca. 50 Besucher am Tag hat kommt das bereits auf eine Traffic-Reduzierung von 2,88 MB.<br />
	Toll oder? Jetzt &auml;ndern wir unseren Code folgenderma&szlig;en ab: </p>
<pre class="brush: html; ">

	&lt;head&gt;
		&lt;title&gt;Juicer-Demo mit Optimierung&lt;/title&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;css/combined.min.css&quot;&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;js/combined.min.js&quot;&gt;&lt;/script&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
	&lt;/head&gt;
</pre>
<p><a href="http://www.seo-geek.de/wp-content/uploads/2010/09/index-mit-optimierung.png"><img src="http://www.seo-geek.de/wp-content/uploads/2010/09/index-mit-optimierung-300x140.png" alt="" title="index-mit-optimierung" width="300" height="140" class="alignright size-medium wp-image-224" /></a>	</p>
<p>	Sieht man sich jetzt die Grafik von Safari an, merkt man ganz schnell das unsere Aktion Fr&uuml;chte getragen hat. Wir bewegen uns jetzt bei 512 ms, also fast 200 ms schneller als ohne die Optimierung - und das bei kleinen Dateien. Man stelle sich das jetzt bei einer kompletten Stylesheet - Sammlung vor.
</p>
<p><h2>Demo der beiden Varianten</h2>
<p>	Wer sich das gerne live anschaut, kann beide Links einmal klicken um das Ergebnis selber zu betrachten: </p>
<div id="demo-links">
<ul>
<li><a href="/examples/juicer-example/index-ohne-optimierung.html" title="Vor dem Komprimieren der Dateien">Ohne Optimierung</a></li>
<li><a href="/examples/juicer-example/index-mit-optimierung.html" title="Nach der Komprimierung">Mit Optimierung</a></li>
</ul></div>
</p>
<p>
<h2>Abschlie&szlig;endes und k&uuml;nftiges</h2>
<p>	Sicherlich gibt es auch viele Tools wie ScriptCompressor (WordPress) oder Fooman Speedster (Magento) die das alles bereits on-the-fly und automatisch machen. Wenn diese gecached werden nat&uuml;rlich umso besser. Aber Fakt ist hier, dass der Serverprozessor beansprucht wird. Man sollte aber auch die theoretischen Grundlagen wissen, wie solche Tools arbeiten. Im n&auml;chsten Post zu diesem Thema werden wir das ganze etwas automatisieren, auch mit Hilfe von ruby. Wir gehen dazu &uuml;ber das wir das f&uuml;r ein einzelnes Projekt nur noch eine Zeile ausf&uuml;hren m&uuml;ssen, die uns die Dateien optimiert, komprimiert und anschlie&szlig;end in gzip umwandelt. </p>
<p>	Ich hoffe der Post war einigerma&szlig;en verst&auml;ndlich. Wie optimiert Ihr Eure Dateien? Ihr seid gerne eingeladen Euch in den Kommentaren auszulassen.</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-active-links/" rel="bookmark" class="crp_title">Quicktip: Redaxo den active-State bei Links beibringen</a></li><li><a href="http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/" rel="bookmark" class="crp_title">Wir gestalten unser Redaxo-Portfolio &#8211; Teil 2</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/" rel="bookmark" class="crp_title">3 WordPress Plugins um die Geschwindigkeit des Blogs zu erh&#246;hen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/http-requests-in-wordpress-minimieren/" rel="bookmark" class="crp_title">HTTP-Requests in WordPress minimieren</a></li><li><a href="http://www.seo-geek.de/allgemeines/css-dateien-richtig-optimieren/" rel="bookmark" class="crp_title">Waschen &#8211; schneiden &#8211; Legen &#8211; oder wie man CSS Dateien optimiert</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>
<p><a href="http://feedads.g.doubleclick.net/~a/2nRgx9b7qF750leHAhg87RpGigU/0/da"><img src="http://feedads.g.doubleclick.net/~a/2nRgx9b7qF750leHAhg87RpGigU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2nRgx9b7qF750leHAhg87RpGigU/1/da"><img src="http://feedads.g.doubleclick.net/~a/2nRgx9b7qF750leHAhg87RpGigU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/</feedburner:origLink></item>
		<item>
		<title>5 kostenlose Apps für Apple&#x2019;s iPhone/Ipod Touch (Bereich SEO Apps, Social Apps)</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/U4s7rJpmOWU/</link>
		<comments>http://www.seo-geek.de/seo-software/5-kostenlose-apps-fur-iphone-ipod-touch/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 01:44:23 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=216</guid>
		<description><![CDATA[
Nach einer l&#228;ngeren Pause wird es mal wieder Zei [...]]]></description>
			<content:encoded><![CDATA[<p>
Nach einer l&auml;ngeren Pause wird es mal wieder Zeit einen neuen Post zu schreiben. Da ich seit kurzer Zeit im Club der iPod Touch Besitzer bin musste ich nat&uuml;rlich gleich einmal recherchieren, was der Apple Appstore an Apps f&uuml;r Suchmaschinenoptimierung bereith&auml;lt. Gesagt - getan - gefunden. Der Apple Appstore bietet einige Programme im Bereich SEO an, welche zudem noch kostenlos sind. F&uuml;r einen ersten Test also ideal. <span id="more-216"></span>
</p>
<p><h3>SEO-POST</h3>
<p><a href="http://www.seo-geek.de/wp-content/uploads/2010/01/seo-post-app.png"><img src="http://www.seo-geek.de/wp-content/uploads/2010/01/seo-post-app-150x150.png" alt="SEO POST iPhone iPod Touch App" title="SEO POST iPhone iPod Touch App" width="150" height="150" class="alignleft size-thumbnail wp-image-217" /></a>Am 15. Januar 2010 released ist dieses App schon mit aktuell 4 Sternen ein richtiger Download Tip f&uuml;r SEO Apps f&uuml;r das Iphone oder dem iPod Touch. Das App &quot;SEO POST&quot; bringt alle wichtigen Nachrichten der SEO-Szene (deutsche wie englische SEO-News) auf das Iphone oder dem iPod Touch. Ebenso werden auch Links zu SEO Podcasts, Veranstaltungn und Jobangebote &uuml;bermittelt. </p>
<p>Programmiert wurde das ganze von Hans Kronenberg von seo-strategie.de und mit 1,2 MB ein kleines Kraftpaket. Man kann alle News entweder direkt im Browser lesen, per eMail verschicken oder direkt den Link in Twitter posten. Wer immer auf dem Laufenden sein m&ouml;chte ist mit diesem SEO-App f&uuml;r Apple&acute;s iPhone / iPod Touch sehr gut beraten.
</p>
<p><h3>Serps</h3>
<p><a href="http://www.seo-geek.de/wp-content/uploads/2010/01/serps-add-research.png"><img src="http://www.seo-geek.de/wp-content/uploads/2010/01/serps-add-research-150x150.png" alt="iPhone App Serps" title="serps-add-research" width="150" height="150" class="alignright size-thumbnail wp-image-218" /></a>Das zweite iPhone / iPod Touch App im Bunde tr&auml;gt den Titel &quot;Serras&quot;. Wie man unschwer am App-Titel feststellen kann, ist der Name bei dem App Programm. Man kann seine kompletten Webseiten samt Suchbegriffen im &Uuml;berblick behalten. Man legt eine Domain an, vergibt die gew&uuml;nschten Keywords und pr&uuml;ft diese. Das Programm l&auml;sst sogar Keyword-Recherche in deutschen Suchmaschinen zu. Wenn wir unsere Liste fertig haben, reicht ein Klick auf ein Keyword und das App &quot;Serps&quot; sucht uns die aktuelle Position im Google-Index und zeigt und diese farbig an. Zus&auml;tzlich sehen wir wer vor oder nach uns im Index steht. </p>
<p>Programmiert von Hans Schneider wurde es am 05. Dezember 2009 ver&ouml;ffentlicht. Aktuell tr&auml;gt das Programm die Revision 1. und ist mit 0,3 MB auch nicht speicherfressend. F&uuml;r kurze Keyword Recherchen ist dieses iPhone / iPod Touch App ideal. Das App ist kostenlos, wird aber wohl durch kleine Anzeigen am unteren Bildschirmrand finanziert.
</p>
<p><h3>Domainer</h3>
<p>Ebenfalls ein iPhone / iPod Touch App um SEOs das Leben zu erleichtern ist Domainer. Dieses kostenlose App gibt uns f&uuml;r jede eingegebene Domain den aktuellen Pagerank sowie den Alexa Rank (weltweit) zur&uuml;ck. Alle ausgewerteten Daten werden auch in einer Historie auf dem iPhone / dem iPod gespeichert um diese auch auf l&auml;ngere Sicht zu verfolgen.
</p>
<p><h3>Facebook</h3>
<p><a href="http://www.seo-geek.de/wp-content/uploads/2010/01/facebook-app.png"><img src="http://www.seo-geek.de/wp-content/uploads/2010/01/facebook-app-150x150.png" alt="Mit dem iPhone oder iPod Touch seinen Facebook Account pflegen" title="facebook-app" width="150" height="150" class="alignright size-thumbnail wp-image-220" /></a>Dieses iPhone / iPod Touch App geh&ouml;rt zwar jetzt generell nicht zum Bereich SEO aber ist sehr praktisch um seinen Facebook Account schnell zu bearbeiten. Wichtig vor allem wenn man sich ein Netzwerk an Freunden und Partnern aufbauen m&ouml;chte. Mit dem Facebook App f&uuml;r das iPhone / iPod Touch hat man mit lediglich 1,5 MB Gr&ouml;&szlig;e die M&ouml;glichkeit genau das zu machen. Man kann direkt seine Gedanken schreiben, Notizen machen, mit Freunden Kontakt aufnahmen und vieles mehr. </p>
<p>Selbstreden ist das Facebook App kostenlos und wurde zuletzt am 14. Januar 2010 auf die Version 3.1.2 upgedatetund steht mit 4 Sternen bei insgesamt 1769 Bewertungen sehr gut da. F&uuml;r Fans von Sozial Network das ideale iPhone / iPod Touch App.
</p>
<p><h3>Twitterrific</h3>
<p>Das zweite Social Tool im Bunde ist das wohl bekannte Twitterrific App. Wie der Name vermuten l&auml;sst geht es hier selbstverst&auml;ndlich um das Microblogging Netzwerk Twitter. Mit Twitterrific hat man ein Allround-Tool um seinen Twitter Account zu managen. Die normale Version dieses iPhone / iPod Touch Apps ist zudem kostenfrei erh&auml;ltlich.</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/" rel="bookmark" class="crp_title">Mehr Traffic f&#252;r den eigenen WordPress Blog</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/" rel="bookmark" class="crp_title">3 WordPress Plugins um die Geschwindigkeit des Blogs zu erh&#246;hen</a></li><li><a href="http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/" rel="bookmark" class="crp_title">CSS und Javascript richtig ausliefern</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/praktischer-seo-einsatz-custom-fields-wordpress/" rel="bookmark" class="crp_title">Praktischer SEO Einsatz von multiplen Custom Fields in WordPress</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=5+kostenlose+SEO-%2FSocial-Apps+f%C3%BCr+iPhone+%2F+iPod+Touch" title="Version1.0 heruntergeladen 188 mal" >5 kostenlose SEO-/Social-Apps für iPhone / iPod Touch (188)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/iqOCN4BWMJFPfxt-15yOHzrYfCI/0/da"><img src="http://feedads.g.doubleclick.net/~a/iqOCN4BWMJFPfxt-15yOHzrYfCI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iqOCN4BWMJFPfxt-15yOHzrYfCI/1/da"><img src="http://feedads.g.doubleclick.net/~a/iqOCN4BWMJFPfxt-15yOHzrYfCI/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/seo-software/5-kostenlose-apps-fur-iphone-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/seo-software/5-kostenlose-apps-fur-iphone-ipod-touch/</feedburner:origLink></item>
		<item>
		<title>HTTP-Requests in WordPress minimieren</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/8nbHMlB9jUQ/</link>
		<comments>http://www.seo-geek.de/wordpress-seo/http-requests-in-wordpress-minimieren/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 07:28:31 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=214</guid>
		<description><![CDATA[Wordpress Module sind zwar genial um schnell neue Funkt [...]]]></description>
			<content:encoded><![CDATA[<p>
Wer h&auml;ufig mit Firefox-Addons wie YSlow oder Page Speed arbeitet findet oft die Nachricht (vor allem in Systemen wie WordPress), dass man die Anzahl der HTTP-Requests mindern soll. Da jeder Aufruf die Verbindung zum Server neu aufbaut, fallen hier immer wieder Latenzzeiten an, welche die Ladegeschwindigkeit beeinflussen.
</p>
<p><span id="more-214"></span></p>
<p>
Wie stellt man es nun in einem Blogsystem wie WordPress an, dass man die HTTP-Requests im Falle von css Dateien minimiert? Im Grunde geht es darum, alle css-Stile in eine Datei zu verpacken. Nur ist das Problem, dass Module bzw. WordPress-Plugins immer gern eigene css Dateien laden. Wir m&uuml;ssen also hergehen und die Stile in unsere style.css packen und das Modul abhalten diese zu laden.
</p>
<p>
Wie das geht m&ouml;chte ich an zwei Modulen zeigen. Das erste wird Add to An, da dieses Inline-CSS erstellt. Das zweite ist das Modul Digg Digg, welches eine CSS Datei in den Heider schreibt.
</p>
<p>
Wir betrachten uns zun&auml;chst den Quellcode der ausgegebenen Seite und &ouml;ffnen die CSS-Datei, welches im Heider ge&ouml;ffnet wird. Im ersten Fall schauen wir uns erst einmal den Inline-Style von Add To An an. Inline Styles k&ouml;nnen wir gl&uuml;cklicherweise direkt aus dem HTML-Code heraus und in unsere style.css kopieren. Damit der Code jetzt nicht doppelt (aus der css und dem inline Code) aufgerufen wird, m&uuml;ssen wir das Modul ein wenig anpassen.
</p>
<p>
Wichtig ist hier auch wieder, dass Ihr bei jeder Datei die Ihr ver&auml;ndert vorher unbedingt eine Datensicherung macht um im Falle von Fehlern eine R&uuml;ckversicherung zu haben. Im Falle von Add to Any f&uuml;hrt unsere Arbeit uns zur gleichnamigen PHP-Datei. In dieser Datei suchen wir gezielt nach einer Ausgabe von CSS-Stilen und entfernen diese. Diese Zeilen finden wir bei Add To An ab Zeile 307 bis Zeile 345. Diese gilt es nun zu entfernen und die Datei wieder hochzuladen.
</p>
<p>
Im Grunde genommen bleibt also nur noch eine leere Funktion &#252;ber, die folgenderma&#223;en aussieht: </p>
<pre class="brush: php; ">

function A2A_SHARE_SAVE_button_css() {

}
</pre>
<p>
Der Vorteil hier liegt, dass im Quelltext vom Dokument weniger Text steht, wodurch die Suchmaschinen schneller zum eigentlichen Inhalt kommt und der Quelltext nicht k&uuml;nstlich aufgebl&auml;ht wird. Einen richtigen Geschwindigkeitsvorteil gibt es hier zwar noch nicht, aber der Fokus liegt hier ganz klar darauf, dass der Quelltext etwas entschlackt wird und die css Stile da hin kommen, wo sie hingeh&ouml;ren - in unserem Stylesheet.</p>
<p>Wie sieht das nun aus, wenn Module eine fertige css-Datei in den Header schreiben? Im Grunde genommen geht das genauso, nur dass der Ablauf ein klein wenig anders ist. Wir ben&ouml;tigen als erstes die CSS-Datei des jeweiligen Moduls. Im Falle von Digg Digg sieht man, dass die Datei folgenden Pfad besitzt: </p>
<pre>/wp-content/plugins/digg-digg/diggdigg-style.css</pre>
</p>
<p>
Diese Datei &ouml;ffnen wir in unserem Lieblings-Programm und f&uuml;gen die Stile unserer style.css hinzu. Jetzt geht es wieder darum den Aufruf des Moduls so abzu&auml;ndern, dass diese Datei nicht geladen wird. Ein Problem dass uns jetzt trifft ist, dass ein Modul wie Digg Digg mehrere Dateien einsetzt, deswegen starten wir zuerst mit der Hauptdatei. Diese hei&szlig;t in 99 % der F&auml;lle so wie das Modul - also schauen wir uns die digg-digg.php einmal an.</p>
<p>So sehen wir jetzt schon in Zeile 36 des Pudels Kern. Hier wird mittels echo-Befehl das Stylesheet ausgegeben. Wir k&ouml;nnten nat&uuml;rlich jetzt auch die beiden Zeilen in der Funktion l&ouml;schen, aber wir k&ouml;nnen auch den Aufruf direkt wegnehmen, damit das erst gar nicht ausgef&uuml;hrt wird. Das bringt zwar keinen wirklich merkbaren Unterschied, aber der Ordnung halber machen wir das. </p>
<p>So sehen wir in Zeile 45 dass in den Kopf die eben gesehene Funktion aufgerufen wird - kommentieren wir das also einmal aus. Wenn wir die Datei jetzt wieder hochladen und die Seite neu aufrufen sehen wir das unser Modul noch genauso funktioniert, aber einen HTTP-Aufruf weniger ausf&uuml;hrt. Bei einem Modul macht das sicherlich keinen Sinn, aber Ihr wisst ja selber wie schnell sich Module in WordPress installieren lassen.</p>
<p>Das ganze hat nat&uuml;rlich auch einen kleinen Nachteil. Nach einem Update geht das ganze Spiel immer von vorne los. Man darf jedes Mal schauen ob noch alles so funktioniert wie das Modul es vorsieht - was das Design angeht. Da aber jeder neue Aufruf eine neue Latenzen mit sich zieht kann man da denk ich mal ein Auge zudr&uuml;cken <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-active-links/" rel="bookmark" class="crp_title">Quicktip: Redaxo den active-State bei Links beibringen</a></li><li><a href="http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/" rel="bookmark" class="crp_title">CSS und Javascript richtig ausliefern</a></li><li><a href="http://www.seo-geek.de/xtcommerce/the_loop-xtcommerce-integrieren/" rel="bookmark" class="crp_title">the_loop() in xt:Commerce integrieren &#8211; Die letzten x Beitr&#228;ge anzeigen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/praktischer-seo-einsatz-custom-fields-wordpress/" rel="bookmark" class="crp_title">Praktischer SEO Einsatz von multiplen Custom Fields in WordPress</a></li><li><a href="http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/" rel="bookmark" class="crp_title">Wir gestalten unser Redaxo-Portfolio &#8211; Teil 2</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>
<p><a href="http://feedads.g.doubleclick.net/~a/3isq9XGY7mQqu3U8_r5T718vkG0/0/da"><img src="http://feedads.g.doubleclick.net/~a/3isq9XGY7mQqu3U8_r5T718vkG0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3isq9XGY7mQqu3U8_r5T718vkG0/1/da"><img src="http://feedads.g.doubleclick.net/~a/3isq9XGY7mQqu3U8_r5T718vkG0/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/wordpress-seo/http-requests-in-wordpress-minimieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/wordpress-seo/http-requests-in-wordpress-minimieren/</feedburner:origLink></item>
		<item>
		<title>Interview mit Staatsminister Schneider</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/kWYDKbHJNCw/</link>
		<comments>http://www.seo-geek.de/non-seo-themen/interview-mit-staatsminister-schneider/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 07:10:50 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Non-SEO-Themen]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[medienführerschein]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=213</guid>
		<description><![CDATA[Aufgrund eines letzten Postings &#252;ber den Medienf&#252;hrer [...]]]></description>
			<content:encoded><![CDATA[<p>
Vor einiger Zeit habe ich meine Meinung zum Thema <a href="non-seo-themen/zum-fahren-benoetigt-man-einen-fuehrerschein-rise-of-the-medienfuehrerschein/?phpMyAdmin=fac4b407329t262ea922" title="Posting &uuml;ber den Medienf&uuml;hrerschein">Medienf&uuml;hrerschein</a> kundgetan. Da es meiner Meinung nach nicht fair ist, &uuml;ber ein Thema zu reden ohne es etwas zu hinterfragen, habe ich mir gedacht dass ich einige Fragen an Herrn Schneider zu richten um seine Meinung zu vertreten.</p>
<p> <span id="more-213"></span></p>
<p>In meinen Augen wirklich ein netter Politiker, der auch wenn es etwas dauert, sich die Zeit nimmt mit offenen Fragen auch offen umzugehen. In keinster Weise musste ich Ihn &uuml;berreden sich 5 Frage zu stellen. An dieser Stelle m&ouml;chte ich mich noch einmal f&uuml;r seine Zeit bedanken. </p>
<p>Damit Ihr auch wisst um wen es geht, m&ouml;chte ich Euch erst einen Steckbrief von Herrn Schneider pr&auml;sentieren, bevor es zum eigentlichen Interview geht. </p>
<p>
<strong>Staatsminister Siegfried Schneider</strong><br />
Leiter der Bayerischen Staatskanzlei</p>
<p>Geboren am 07. April 1956, katholisch, verheiratet, 3 Kinder </p>
<p><strong>1975</strong><br />
Abitur Reuchlin Gymnasium Ingolstadt</p>
<p><strong>1977 - 1980</strong><br />
Studium f&uuml;r Lehramt an Volksschulen</p>
<p><strong>1980 - 1994</strong><br />
Lehrer an verschiedenen Grund-, Haupt- und F&ouml;rderschulen</p>
<p><strong>1987 - 1999</strong><br />
CSU-Ortsvorsitzender Wettstetten</p>
<p><strong>1990 - 2005</strong><br />
Gemeinderat</p>
<p><strong>seit 1994</strong><br />
Mitglied des Landtags</p>
<p><strong>seit 1996</strong><br />
Kreisrat</p>
<p><strong>2001 - 2007</strong><br />
stv. CSU-Bezirksvorsitzender Oberbayern</p>
<p><strong>seit 2002</strong><br />
Mitglied des Di&ouml;zesanrats der Katholiken im Bistum Eichst&auml;tt</p>
<p><strong>2002 - 2005</strong><br />
Bildungspolitischer Sprecher der CSU-Landtagsfraktion</p>
<p><strong>2002 - 2003</strong><br />
Stellvertretender Vorsitzender des Ausschusses f&uuml;r Bildung, Jugend und Sport</p>
<p><strong>2003 - 2005</strong><br />
Vorsitzender des Ausschusses f&uuml;r Bildung, Jugend und Sport</p>
<p><strong>2005 - 2008</strong><br />
Bayerischer Staatsminister f&uuml;r Unterricht und Kultus</p>
<p><strong>seit 2007</strong><br />
Vorsitzender des CSU-Bezirksverbandes Oberbayern</p>
<p><strong>seit 30. Oktober 2008</strong><br />
Staatsminister, Leiter der Bayerischen Staatskanzlei</p>
<p>
Ich habe Herrn Staatsminister Schneider 5 Fragen gestellt. Teilweise gezielt auf den Medienf&uuml;hrerschein, teilweise auch ganz triviale Fragen. Was genau dabei herausgekommen ist, k&ouml;nnt Ihr jetzt lesen
</p>
<ul>
<li>
<strong>Wie nutzt der Staatsminister das Internet privat?</strong><br />
Nat&uuml;rlich hat das Internet neben dem Berufsalltag auch privat bei mir Einzug gehalten. Ich nutze e-mail und die Office-Programme. Auch recherchiere ich &ouml;fters &uuml;ber das Internet. In Teilbereichen habe ich auch die M&ouml;glichkeit &uuml;ber das Internet einzukaufen kennen und sch&auml;tzen gelernt.
</li>
<li><strong>Wie sehen Sie das Problem mit Lehrkr&auml;ften, die auf ihrem aktuellen Stand bleiben und sich nicht fortbilden m&ouml;chten? Was w&auml;re hier eine m&ouml;gliche L&ouml;sung?</strong><br />
Grundvoraussetzung zur St&auml;rkung der Medienkompetenz ist, dass den Lehrkr&auml;ften auch ein Qualifikationsangebot an die Hand gegeben wird. Den bestehenden Fortbildungseinrichtungen, wie z.B. der Akademie f&uuml;r Lehrerfortbildung und Personalf&uuml;hrung in Dillingen, kommt hier eine zentrale Verantwortung zu. Hinsichtlich der pers&ouml;nlichen Motivation der Lehrkr&auml;fte bin ich zuversichtlich, dass die &uuml;berwiegende Anzahl der Lehrkr&auml;fte bereit ist, sich den neuen Herausforderungen zu stellen, wenn ihnen ausreichend Fortbildungsm&ouml;glichkeiten und Unterrichtsmaterialien an die Hand gegeben werden. In der Lehrerausbildung muss der Umgang mit neuen Medien und die Vermittlung von Medienkompetenz einen h&ouml;heren Stellenwert einnehmen.
</li>
<li><strong>Das Internet birgt viele Gefahren und es werden t&auml;glich mehr. Kann man hier &uuml;berhaupt eine vern&uuml;nftige Basis bilden, die im Idealfall auch nachhaltig bleibt? Kann man in den verschiedenen Phasen wirklich auf nahezu alle Details eingehen?</strong><br />
Gerade diese Problematik habe ich erkannt und daher den Medienf&uuml;hrerschein Bayern konzipiert. Das mediale Angebot ist bereits jetzt vielf&auml;ltig, von unterschiedlichster Qualit&auml;t und nicht immer ohne Gefahren. Der Medienf&uuml;hrerschein geht daher davon aus, dass Medienkompetenz Wissen und Reflektion &uuml;ber die verschiedenen Mediensysteme integriert und verbindet, zu kritischem Durchdenken, fundierter Bewertung und Positionierung gegen&uuml;ber und in der Medienwelt bef&auml;higt und letztendlich den eigenst&auml;ndigen und selbstbestimmten Gebrauch von Medien als Mittel der Artikulation und Partizipation erm&ouml;glicht. Gefahren, Urheberrechte und selbstbestimmter Umgang werden Schwerpunkte sein. Zudem wird sich der Medienf&uuml;hrerschein Bayern st&auml;ndig weiterentwickeln, die zu vermittelnden Inhalte aktualisieren und in praktische Anwendungsbeispiele umsetzen.
</li>
<li><strong>Viele Jugendliche sind den eigenen Eltern, was Technik angeht, mindestens 1 bis 2 Generationen voraus. Ist es wichtig, dass sich auch die Eltern mit dem Thema befassen und ggfs. auch an einem speziellen Seminar teilnehmen sollten?</strong><br />
Nat&uuml;rlich ist dies der Fall. Daf&uuml;r werden wir auch die Erwachsenenbildungseinrichtungen einbinden. Die bestehenden Angebote m&uuml;ssen besser vernetzt werden und neue Angebote entstehen, wenn Defizite erkannt werden. Denkbar sind auch generations&uuml;bergreifende Projekte, wie z.B. &#8222;Ich erkl&auml;re meinem Opa das Handy&#8220; oder &#8222;Kommunikationsprojekte im Rahmen unseres Werteb&uuml;ndnisses&#8220;. Auf diesem technischen Gebiet bietet es sich an, offen daf&uuml;r zu sein, dass Erwachsene von Kindern und Jugendlichen lernen k&ouml;nnen.
</li>
<li><strong>Welche 3 Websites w&uuml;rden Sie aus pers&ouml;nlichen Erfahrungen empfehlen?</strong><br />
Spontan fallen mir hier ein <a href="www.eltern-ans-netz.de?phpMyAdmin=fac4b407329t262ea922" title="Eltern ans Netz">www.eltern-ans-netz.de</a>, <a href="www.klicksafe.de?phpMyAdmin=fac4b407329t262ea922" title="Klicksafe">www.klicksafe.de</a> und <a href="www.youtube.com/bayern?phpMyAdmin=fac4b407329t262ea922" title="Bayern bei Youtube">www.youtube.com/bayern</a>, unsere neue Videoplattform.
</li>
</ul>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/" rel="bookmark" class="crp_title">Mehr Traffic f&#252;r den eigenen WordPress Blog</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/top-10-wordpress-plugin-title-tags/" rel="bookmark" class="crp_title">QuickTip: Top 10 WordPress Plugin um Title-Tags erweitern</a></li><li><a href="http://www.seo-geek.de/seo-software/5-kostenlose-apps-fur-iphone-ipod-touch/" rel="bookmark" class="crp_title">5 kostenlose Apps f&#252;r Apple&#8217;s iPhone/Ipod Touch (Bereich SEO Apps, Social Apps)</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/xtcommerce-shopkategorien-als-dropdown-liste-in-boxform/" rel="bookmark" class="crp_title">xt:Commerce Shopkategorien als Dropdown Liste in Boxform</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><h3>Weiterf&uuml;hrende Links</h3><ul><li><a href="http://www.seo-geek.de/non-seo-themen/zum-fahren-benoetigt-man-einen-fuehrerschein-rise-of-the-medienfuehrerschein/" title="Posting zum Medienführerschein">Posting zum Medienführerschein</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/iQbh4O4dYVFN5Mi5HvYHrzVoEmg/0/da"><img src="http://feedads.g.doubleclick.net/~a/iQbh4O4dYVFN5Mi5HvYHrzVoEmg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iQbh4O4dYVFN5Mi5HvYHrzVoEmg/1/da"><img src="http://feedads.g.doubleclick.net/~a/iQbh4O4dYVFN5Mi5HvYHrzVoEmg/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/non-seo-themen/interview-mit-staatsminister-schneider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/non-seo-themen/interview-mit-staatsminister-schneider/</feedburner:origLink></item>
		<item>
		<title>Wir bauen uns ein eigenes RSS-Modul für xt:Commerce</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/BvPb19V7xD0/</link>
		<comments>http://www.seo-geek.de/xtcommerce/wir-bauen-uns-ein-eigenes-rss-modul-fuer-xtcommerce/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:46:55 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[xt:Commerce]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[shop]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=211</guid>
		<description><![CDATA[Heute wollen wir uns anschauen wie wir ein extra f&#252;r x [...]]]></description>
			<content:encoded><![CDATA[<p>
Heute gibt es mal wieder etwas sehr nettes bei seo-geek.de. Wir programmieren uns unser eigenes RSS-Feed AddOn f&uuml;r das GPL-Shopsystem xt:Commerce. Oft wird gefragt, wie man wohl aus seinen neuesten Artikeln, welche man im xt:Commerce Shop einpflegt einen echten RSS-Feed bauen kann. Was bringt uns das? Zu einem bieten wir unserem Shop-Kunden einen gewissen Mehrwert, da dieser im Falle von Produktaktualisierungen nicht immer auf die Webseite surfen muss, sondern diese Nachricht direkt in seinem Newsreader angezeigt bekommt. So sparen wir uns ebenfalls die Geb&uuml;hren von Newsletter-Diensten wie z. B. cleverreach.de.  Wie k&ouml;nnen wir aber nun den RSS-Feed f&uuml;r xt:Commerce bewerkstelligen? <span id="more-211"></span>
</p>
<h3>M&ouml;glichkeiten und Ideen eines RSS-Feeds f&uuml;r xt:Commerce</h3>
<p>
Eine Alternative ist nat&uuml;rlich im Hintergrund einen <a href="http://www.seo-geek.de/xtcommerce/wordpress-suchmaschinenoptimiert-xtcommerce-integrieren/" title="Wordpress suchmaschinenorientiert in xtCommerce einbinden">WordPress-Blog</a> laufen zu lassen und diesen im Shop verlinken. Dass dies mit einem Gewissen Grad an Mehrarbeit verbunden ist d&uuml;rfte klar sein. Deswegen wollen wir uns das ganze selber basteln. Dazu benutzen wir weigehenst xt:Commerce-eigene Funktionen.  </p>
<p>Wir werden das ganze auch nicht mit einem einzigen Post perfekt hinbekommen. Ich werde das als kleines Projekt nebenher laufen lassen und St&uuml;ck f&uuml;r St&uuml;ck (vielleicht auch mit einigen Gastbeitr&auml;gen - bei Interesse gerne bei mir melden) bis zur Produktreife bringen. Geplant habe ich die RSS-Ausgabe f&uuml;r folgende Funktionen: </p>
<ul>
<li>Anlegen, Ver&auml;ndern und L&ouml;schen eines Produktes</li>
<li>Anlegen, Ver&auml;ndern und L&ouml;schen einer Kategorie</li>
<li>Ausgabe vom Produktfoto, Beschreibung und Namen des Produktes</li>
</ul>
<p>Wie gehen wir hierbei vor? Ich m&ouml;chte ja, dass meine Leser auch dahingehend einen Mehrwert bekommen, dass man auch die Technik dahinter versteht, also das ganze Wie, wo und warum? Keine Angst, f&uuml;r die die das nicht wissen wollen biete ich am Ende des Postings die ganzen Dateien auch als Zip-File zum Download an. Das RSS-Programm Vienna (Mac OS X) zeigt den Feed brav an, w&auml;hrend NetNewsWire keine Postings laden will. Sobald ich darauf eine Antwort habe, wird das aber seperat behandelt. Ich denke aber das der Code so aber schon einmal ein gutes Fundament f&uuml;r unser sp&auml;teres AddOn bieten wird.
</p>
<h3>Fangen wir an - Anlegen von mySQL-Tabellen</h3>
<p>
&Uuml;berlegen wir zun&auml;chst, wie das ganze in unserem xt:Commerce Shop arbeiten soll. Sobald wir einen Artikel neu abspeichern wollen wir, dass ein neuer Eintrag in einer separaten mySQL-Tabelle abgespeichert wird, in diesem Fall wollen wir vorerst wenige Daten abspeichern. Wir ben&ouml;tigen f&uuml;r unseren RSS-Feed folgende Felder: </p>
<ul>
<li>id</li>
<li>title</li>
<li>description</li>
<li>link</li>
</ul>
<p>W&auml;hrend die ID nur eine fortlaufende Zahl ist, f&uuml;r welches sich nur mySQL interessiert, sollen in den anderen 3 Feldern jene Informationen gespeichert werden, welche sp&auml;ter im Feed ausgegeben werden sollen. Der Code um diese Tabelle z. B. in phpmyadmin anzulegen muss wie folgt lauten: </p>
<pre class="brush: sql; ">

CREATE TABLE `products_rss` (
`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`description` TEXT NOT NULL ,
`link` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM
</pre>
<h3>Theorie und Praxis im xt:Commerce Shop</h3>
<p>
Welche Dateien m&uuml;ssen wir nun bearbeiten? Halten wir uns einmal vor Augen, wann ein Artikel gespeichert wird. Im Admin-Bereich wird beim Anlegen von neuen Artikeln die categories.php geladen. Diese Datei untergliedert sich ebenfalls in mehrere Teilbereiche - Produkte anlegen, &auml;ndern l&ouml;schen sowie Ordner anlegen, &auml;ndern und l&ouml;schen. Da wird weitgehenst vom Original-Quellcode fernbleiben wollen, wird diese nur minimal bearbeitet. Zuerst erstellen wir uns eine neue Klasse f&uuml;r die RSS-Feeds. Eine Klasse hat den Vorteil das wir diese schnell skalieren und an neue Gegebenheiten  anpassen k&ouml;nnen. </p>
<p>Wir erstellen uns zun&auml;chst unsere RSS-Klasse. Diese legen wir im Ordner /admin/includes/classes an. Wir benennen die Datei wie folgt: products_rss.php. In dieser Datei legen wir einige Dateien an, die am Ende unsere Datenbank mit Feed-Eintr&auml;gen f&uuml;llen soll. Fangen wir zun&auml;chst mit der Variablen-Deklaration und dem Konstruktor an.
</p>
<h3>Variablendeklaration und Konstruktur</h3>
<pre class="brush: php; ">

&lt;?php
class product_rss {

	var $products_id;
	var $title;
	var $description;
	var $suchbegriffe;
	var $inhalt_final;
	var $picture;
	var $metadescription;
	var $productlink;

	function product_rss($data) {
	$this-&gt;description = $data[&#039;products_description_2&#039;];
	$this-&gt;suchbegriffe = explode(&#039;,&#039;,$data[&#039;products_keywords&#039;][2]);

	if($data[&#039;products_meta_description&#039;] != &#039;&#039;) {
		$this-&gt;metadescription = $data[&#039;products_meta_description&#039;][2];
	}

	if($data[&#039;products_id&#039;] == &#039;&#039;) {
		$this-&gt;products_id = $this-&gt;getNewID();
	}

	$this-&gt;link = HTTP_SERVER.DIR_WS_CATALOG.&#039;product_info.php?info=p&#039;.$this-&gt;products_id.&#039;.html&#039;;

		return true;
	}
</pre>
<h3>Erkl&auml;rung der Variablendeklaration und des Konstruktors</h3>
<p>
Wir legen zun&auml;chst einige Variablen an, die uns sp&auml;ter helfen sollen unseren Feed-Beitrag zu gestalten. Dazu ben&ouml;tigen wir die neue Produkt-ID f&uuml;r den Link, sowie den Titel - also den Produktnamen und die Beschreibung. Ferner m&ouml;chte ich einbauen, dass man im Feed ebenfalls Links angezeigt bekommt in der die xt:Commerce Suche benutzt wird. Desweiteren ben&ouml;tigen wir kleinere Hilfsvariablen wie $inhalt_final. In dieser Variable wird der fertige Feed-Eintrag gespeichert. Die Metadescription des Artikels benutzen wir als Untertitel f&uuml;r den Feed-Titel. Das hat zwei Vorteile: </p>
<p>a) Im Feed selber wird etwas mehr ausgegeben, evtl. sogar etwas Interessantes was zum kaufen animiert<br />
b) Wir sind flei&szlig;ig und f&uuml;llen wie es sein sollte alle Felder aus </p>
<p>&Uuml;ber den Produktlink k&ouml;nnen wir dann &uuml;ber den Feed-Eintrag direkt auf die Produktseite wechseln. Nun kommen wir zu dem Konstruktor, also die erste Funktion die die Klasse aufruft. In dieser Klasse werden alle POST-Variablen welche im Eingabedialog eingegeben wurden verarbeitet. Nicht alle aber immerhin ein Teil. Besondere Beachtung sollte man der Zeile $this-&gt;products_id = $this-&gt;getNewID(); widmen. Da der Post an dieser Stelle noch nicht in der Datenbank vorhanden ist, m&uuml;ssen wir mit einer kleinen Hilfsfunktion die neue ID herausfiltern. Dazu basteln wir uns folgendes Gebilde: </p>
<pre class="brush: php; ">

	function getNewID() {
			$new_pid_query = xtc_db_query(&quot;SHOW TABLE STATUS LIKE &#039;&quot;.TABLE_PRODUCTS.&quot;&#039;&quot;);
			$new_pid_query_values = xtc_db_fetch_array($new_pid_query);
			$pid = $new_pid_query_values[&#039;Auto_increment&#039;];

			return $pid;
	}
</pre>
<h3>Hinzuf&uuml;gen des Produktbildes und Erstellen des Beitrags</h3>
<p>
Da wir sp&auml;ter in unserem xt:Commerce RSS Feed auch das Produktbild anzeigen m&ouml;chte, m&uuml;sen wir sicherstellen das wir es auch aus der Datenbank laden. Dazu benutzen wir eine Funktion um die Datenbank abzufragen: </p>
<pre class="brush: php; ">

	function getProductImage() {
	$sql = &quot;SELECT products_image FROM &quot;.TABLE_PRODUCTS.&quot; WHERE products_id=&#039;&quot;.$this-&gt;products_id.&quot;&#039;&quot;;
	$imagedb = xtc_db_query($sql);
	$image = xtc_db_fetch_array($imagedb);
	return $image[&#039;products_image&#039;];
	}
</pre>
<p>Nun erstellen wir uns eine Funktion welche die in der Klasse befindlichen Daten in einen kleinen HTML-Block packt, damit diese sp&auml;ter aus der Datenbank ausgelesen werden k&ouml;nnen. Ich habe folgende Anforderung an die Datei: </p>
<p>- Die Datei soll auf jede Variante reagieren k&ouml;nnen</p>
<p>Das hei&szlig;t die Funktion soll sowohl beim Anlegen eines neuen Artikels, sowie auch beim L&ouml;schen eines Artikels reagieren und des rss-Feed f&uuml;llen. Effektiv bedeutet das, dass wir mit einer switch-case-Schleife arbeiten sollten um alle Varianten durchzupr&uuml;fen. Die vorl&auml;ufe Funktion wird folgenderma&szlig;en aussehen: </p>
<pre class="brush: php; ">

function create_feeditem($type) {

	switch($type) {
		case &#039;new_product&#039; : {
			$this-&gt;title = &#039;Neuer Artikel im Shop: &#039;.$data[&#039;products_name&#039;][2];
			$this-&gt;picture = $this-&gt;getProductImage();

			$back = &#039;&#039;;
			$back .= &quot;&lt;h1&gt;$this-&gt;title&lt;/h1&gt;&lt;br /&gt;&quot;;

			if($this-&gt;metadescription != &#039;&#039;) {
				$back .= $this-&gt;metadescription.&quot;&lt;br /&gt;&quot;;
			}
			$back .= &quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=\&quot;&quot;.HTTP_SERVER.DIR_WS_CATALOG_INFO_IMAGES.$this-&gt;picture.&quot;\&quot;/&gt;&lt;/td&gt;&lt;td&gt;$this-&gt;description&lt;/td&gt;&lt;/tr&gt;&quot;;
			$back .= &#039;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&#039;;
			$back .= &quot;&lt;h3&gt;Den Artikel findet man unter folgenden Suchbegriffen: &lt;br /&gt;&lt;ul&gt;&quot;;
			foreach($this-&gt;suchbegriffe as $term) {
				$back .= &#039;&lt;li&gt;&lt;a href=&quot;&#039;.HTTP_SERVER.DIR_WS_CATALOG.&#039;advanced_search_result.php?keywords=&#039;.trim($term).&#039;&amp;amp;amp;amp;amp;x=0&amp;amp;amp;amp;amp;y=0&amp;phpMyAdmin=fac4b407329t262ea922&quot;&gt;&#039;.$term.&#039;&lt;/a&gt;&lt;/li&gt;&#039;;
			}
			$back .= &#039;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#039;;
			break;
		}
	}

	return $back;
	}
</pre>
<h3>Zwei weitere Hilfsfunktionen</h3>
<p>
Das einzige was wir jetzt noch in der Klasse ben&ouml;tigen sind zwei Funktionen. Eine, die angib dass wir einen neuen Artikel in den Feed schreiben m&ouml;chten und eine die die Daten in die Datenbank abspeichert. Diese zwei sind relativ leicht und schnell abgehandelt: </p>
<pre class="brush: php; ">

	function create_new_product_rss() {
	$this-&gt;inhalt_final = $this-&gt;create_feeditem(&#039;new_product&#039;);
	}

	function insert_rss() {
		$query = xtc_db_query(&quot;INSERT INTO products_rss (title, description, link) VALUES (&#039;&quot;.$this-&gt;title.&quot;&#039;,&#039;&quot;.$this-&gt;inhalt_final.&quot;&#039;,&#039;&quot;.$this-&gt;link.&quot;&#039;)&quot;);
		return true;
	}
}
?&gt;
</pre>
<h3>Der Code noch einmal komplett</h3>
<pre class="brush: php; ">

&lt;?php
class product_rss {

	var $products_id;
	var $title;
	var $description;
	var $suchbegriffe;
	var $inhalt_final;
	var $picture;
	var $metadescription;
	var $productlink;

	function product_rss($data) {
	$this-&gt;description = $data[&#039;products_description_2&#039;];
	$this-&gt;suchbegriffe = explode(&#039;,&#039;,$data[&#039;products_keywords&#039;][2]);

	if($data[&#039;products_meta_description&#039;] != &#039;&#039;) {
		$this-&gt;metadescription = $data[&#039;products_meta_description&#039;][2];
	}

	if($data[&#039;products_id&#039;] == &#039;&#039;) {
		$this-&gt;products_id = $this-&gt;getNewID();
	}

	$this-&gt;link = HTTP_SERVER.DIR_WS_CATALOG.&#039;product_info.php?info=p&#039;.$this-&gt;products_id.&#039;.html&#039;;

		return true;
	}

	function getNewID() {
			$new_pid_query = xtc_db_query(&quot;SHOW TABLE STATUS LIKE &#039;&quot;.TABLE_PRODUCTS.&quot;&#039;&quot;);
			$new_pid_query_values = xtc_db_fetch_array($new_pid_query);
			$pid = $new_pid_query_values[&#039;Auto_increment&#039;];

			return $pid;
	}

	function getProductImage() {
	$sql = &quot;SELECT products_image FROM &quot;.TABLE_PRODUCTS.&quot; WHERE products_id=&#039;&quot;.$this-&gt;products_id.&quot;&#039;&quot;;
	$imagedb = xtc_db_query($sql);
	$image = xtc_db_fetch_array($imagedb);
	return $image[&#039;products_image&#039;];
	}

	function create_feeditem($type) {

	switch($type) {
		case &#039;new_product&#039; : {
			$this-&gt;title = &#039;Neuer Artikel im Shop: &#039;.$data[&#039;products_name&#039;][2];
			$this-&gt;picture = $this-&gt;getProductImage();

			$back = &#039;&#039;;
			$back .= &quot;&lt;h1&gt;$this-&gt;title&lt;/h1&gt;&lt;br /&gt;&quot;;

			if($this-&gt;metadescription != &#039;&#039;) {
				$back .= $this-&gt;metadescription.&quot;&lt;br /&gt;&quot;;
			}
			$back .= &quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=\&quot;&quot;.HTTP_SERVER.DIR_WS_CATALOG_INFO_IMAGES.$this-&gt;picture.&quot;\&quot;/&gt;&lt;/td&gt;&lt;td&gt;$this-&gt;description&lt;/td&gt;&lt;/tr&gt;&quot;;
			$back .= &#039;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&#039;;
			$back .= &quot;&lt;h3&gt;Den Artikel findet man unter folgenden Suchbegriffen: &lt;br /&gt;&lt;ul&gt;&quot;;
			foreach($this-&gt;suchbegriffe as $term) {
				$back .= &#039;&lt;li&gt;&lt;a href=&quot;&#039;.HTTP_SERVER.DIR_WS_CATALOG.&#039;advanced_search_result.php?keywords=&#039;.trim($term).&#039;&amp;x=0&amp;y=0&amp;phpMyAdmin=fac4b407329t262ea922&quot;&gt;&#039;.$term.&#039;&lt;/a&gt;&lt;/li&gt;&#039;;
			}
			$back .= &#039;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#039;;
			break;
		}
	}

	return $back;
	}

	function create_new_product_rss() {
	$this-&gt;inhalt_final = $this-&gt;create_feeditem(&#039;new_product&#039;);
	}

	function insert_rss() {
		$query = xtc_db_query(&quot;INSERT INTO products_rss (title, description, link) VALUES (&#039;&quot;.$this-&gt;title.&quot;&#039;,&#039;&quot;.$this-&gt;inhalt_final.&quot;&#039;,&#039;&quot;.$this-&gt;link.&quot;&#039;)&quot;);
		return true;
	}
}
?&gt;
</pre>
<h3>Das Ganze in die categories.php einbauen</h3>
<p>
Nun m&uuml;ssen wir das ganze vorerst einmal einbauen, damit neue Artikel auch gespeichert werden. Hierzu &ouml;ffnen wir wie bereits gesagt die categories.php aus dem admin-Ordner. Zuerst suchen wir uns die Zeile heraus, in der der Fall behandelt wird, wenn ein neues Produkt eingef&uuml;gt wird (insert_product -&gt; ca. Zeile 140). Hier wird der betreffende Teil folgenderma&szlig;en abge&auml;ndert: </p>
<p>case 'insert_product' :</p>
<p>			$rss = new product_rss($_POST);<br />
          	$catfunc->insert_product($_POST, $current_category_id);<br />
			$rss->create_new_product_rss();<br />
			$rss->insert_rss();</p>
<p>			break;</p>
<p>Mehr braucht es auch vorerst in dieser Datei nicht. Ein Backup im Voraus macht aber trotzdem Sinn.
</p>
<h3>Einen Feed f&#252;r xt:Commerce generieren</h3>
<p>
Was ist wohl das auff&auml;lligste an einem Feed-Link, sagen wir z. B. in WordPress? Ein Link sieht in den meisten F&auml;llen folgenderma&szlig;en aus: http://www.domain.de/feed<br />
Dieses Gebilde k&ouml;nnen wir ganz einfach realisieren. Wir erstellen auf unserer xt:Commerce - Root einen Ordner &quot;feed&quot; in der wir lediglich eine index.php abspeichern, welche folgenden Inhalt hat</p>
<pre class="brush: php; ">

&lt;?php
echo &#039;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&#039; . &quot;\n&quot;;
?&gt;
&lt;rss version=&quot;2.0&quot;&gt;
 &lt;channel&gt;
	&lt;title&gt;Neue Produkte bei Testshop&lt;/title&gt;
   &lt;link&gt;http://localhost:8888/xtcommerce&lt;/link&gt;
   &lt;description&gt;Unsere Artikel im &#220;berblick  &lt;/description&gt;
 &lt;?php
  define(&#039;DB_SERVER&#039;, &#039;localhost&#039;); // eg, localhost - should not be empty for productive servers
  define(&#039;DB_SERVER_USERNAME&#039;, &#039;root&#039;);
  define(&#039;DB_SERVER_PASSWORD&#039;, &#039;root&#039;);
  define(&#039;DB_DATABASE&#039;, &#039;xtcommerce&#039;);

	 $connection = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) or
	 die(&#039;Connection to the specified database couldnt be established&#039;);
	 mysql_select_db(DB_DATABASE)  or
	 die (&#039;Specified database couldnt be selected&#039;);  

	 $query = &quot;SELECT * FROM products_rss ORDER BY id DESC&quot;;
	 $result = mysql_query($query) or die (&quot;Query couldn&#039;t be executed&quot;);  

	 while ($row = mysql_fetch_array($result)) {
		print &quot;&lt;item&gt;
			 	&lt;title&gt;&quot;.$row[&#039;title&#039;].&quot;&lt;/title&gt;
		 		&lt;link&gt;&quot;.$row[&#039;link&#039;].&quot;&lt;/link&gt;
		 		&lt;description&gt;&quot;.strip_tags($row[&#039;description&#039;]).&quot;&lt;/description&gt;
		 		&lt;content:encoded&gt;&lt;![CDATA[&quot;.$row[&#039;description&#039;].&quot;]]&gt;&lt;/content:encoded&gt;

&lt;/item&gt;\n&quot;;
	 }
 ?&gt;
 &lt;/channel&gt;
 &lt;/rss&gt;
</pre>
<h3>Erkl&auml;rung des Feed-Generators</h3>
<p>
In dieser Datei erstellen wir zun&auml;chst einen Header der angibt, dass es eine xml-Datei werden soll welche ausgegeben wird.<br />
Danach erstellen wir zun&auml;chst einige Standardeintr&auml;ge die in einer Feed-Datei vorhanden sein sollen. Danach f&auml;ngt der eigentliche Zauber an. Wir definieren zun&auml;chst noch einmal unsere Datenbank-Konfiguration und bauen eine Verbindung zu unserer xt:Commerce Datenbank auf. Danach w&auml;hlen wir alle Eintr&auml;ge aus unserer angelegten Tabelle an, welche wir nach der ID sortieren lassen. Danach verarbeiten wir lediglich wie in anderen Skripts auch die Ausgabe. Mehr ist es auch an dieser Stelle vorerst nicht.
</p>
<h3>Abschlie&szlig;endes</h3>
<p>
Wie ich bereits eingangs erw&auml;hnt habe, wird es noch etwas dauern bis dieses Skript Serienreife erlangt und sollte demnach NICHT - ich wiederhole - NICHT auf Produktivservern eingesetzt werden. Es soll bis jetzt lediglich einen &Uuml;berblick &uuml;ber die Technik und den damit verbundenden Methoden geben wie RSS arbeitet und wie man das selber in den eigenen GPL-Shop xt:Commerce einbauen kann. Das Skript wird in den n&auml;chsten Wochen immer erweitert - es lohnt sich am Ball zu bleiben.  Viel Spa&szlig; beim selber testen. Wer Anmerkungen oder Verbesserungsvorschl&auml;ge hat, kann diese gerne in den Kommentaren hinterlassen.
</p>
<h3>Download des xt:Commerce Moduls</h3>
<a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=xt%3ACommerce+RSS+Modul+by+seo-geek.de" title="Version1.0 heruntergeladen 207 mal" >xt:Commerce RSS Modul by seo-geek.de (207)</a>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/xtcommerce/xtcommerce-zwingen-rss-feeds-von-wordpress-anzubieten/" rel="bookmark" class="crp_title">xt:Commerce zwingen RSS-Feeds von WordPress anzubieten</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/praktischer-seo-einsatz-custom-fields-wordpress/" rel="bookmark" class="crp_title">Praktischer SEO Einsatz von multiplen Custom Fields in WordPress</a></li><li><a href="http://www.seo-geek.de/xtcommerce/the_loop-xtcommerce-integrieren/" rel="bookmark" class="crp_title">the_loop() in xt:Commerce integrieren &#8211; Die letzten x Beitr&#228;ge anzeigen</a></li><li><a href="http://www.seo-geek.de/xtcommerce/xtcommerce-herstellerausgabe-teil-2/" rel="bookmark" class="crp_title">Wir erweitern die xt:Commerce Herstellerausgabe &#8211; Teil 2</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-active-links/" rel="bookmark" class="crp_title">Quicktip: Redaxo den active-State bei Links beibringen</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><h3>Weiterf&uuml;hrende Links</h3><ul><li><a href="http://net.tutsplus.com/tutorials/other/feeds-101/" title="Basis-Informationen von RSS-Feeds bei nettuts.com">Basis-Informationen von RSS-Feeds bei nettuts.com</a></li><li><a href="http://www.seo-geek.de/xtcommerce/wordpress-suchmaschinenoptimiert-xtcommerce-integrieren/" title="Wordpress suchmaschinenoptimiert in xt:Commerce einbinden">WordPress suchmaschinenoptimiert in xt:Commerce einbinden</a></li></ul>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=Wir+bauen+uns+ein+eigenes+RSS-Modul+f%C3%BCr+xt%3ACommerce" title="Version1.0 heruntergeladen 226 mal" >Wir bauen uns ein eigenes RSS-Modul für xt:Commerce (226)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/Mq-xdhFqWgBwV1AOqRxi1p_baCM/0/da"><img src="http://feedads.g.doubleclick.net/~a/Mq-xdhFqWgBwV1AOqRxi1p_baCM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Mq-xdhFqWgBwV1AOqRxi1p_baCM/1/da"><img src="http://feedads.g.doubleclick.net/~a/Mq-xdhFqWgBwV1AOqRxi1p_baCM/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/xtcommerce/wir-bauen-uns-ein-eigenes-rss-modul-fuer-xtcommerce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/xtcommerce/wir-bauen-uns-ein-eigenes-rss-modul-fuer-xtcommerce/</feedburner:origLink></item>
		<item>
		<title>Mehr Traffic für den eigenen WordPress Blog</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/qj3lEYUalPo/</link>
		<comments>http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 21:46:45 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=208</guid>
		<description><![CDATA[Mit diesem Quicktip wollen wir versuchen etwas mehr Tra [...]]]></description>
			<content:encoded><![CDATA[<p>
SEO ist ja nicht nur die Methode um besser in den Suchmaschinen zu ranken. SEO soll nat&uuml;rlich auch das Hauptziel erreichen - Besucher. Unser oberstes Ziel soll sein unsere Nachrichten im Web zu verbreiten. M&ouml;glichkeit hierf&uuml;r bieten nat&uuml;rlich in erster Linie Pingdienste, aber auch Nachrichten-Portale wie z. B. <a href="http://www.webnews.de" class="externallink" title="Mehr Traffic durch das Newsportal webnews.de">webnews.de</a>. Webens bietet viele Kategorien, damit man auch die passende News-Kategorie f&uuml;r seinen Artikel findet. Nun w&auml;re es nat&uuml;rlich eine M&ouml;glichkeit seine Artikel per Hand einzuf&uuml;gen, allerdings ist das zuviel Arbeit, oder? Eine L&ouml;sung ist hier nat&uuml;rlich auch schon in Form eines WordPress-Plugins vorhanden.
</p>
<p><span id="more-208"></span></p>
<h3>Der Schl&uuml;ssel zum Erfolg - webnews WordPress Plugin</h3>
<p>
<div id="attachment_210" class="wp-caption aligncenter" style="width: 689px"><img src="http://www.seo-geek.de/wp-content/uploads/2009/10/webnews.jpg" alt="Mit dem webnews.de WordPress Plugin Artikel automatisch an webnews.de schicken" title="Mit dem webnews.de WordPress Plugin Artikel automatisch an webnews.de schicken" width="679" height="195" class="size-full wp-image-210" /><p class="wp-caption-text">Mit dem webnews.de WordPress Plugin Artikel automatisch an webnews.de schicken</p></div><br />
Markus Walter, Blog-Betreiber von <a href="http://www.tekka.de" class="externallink" title="SEO Blog von Markus Walter">www.tekka.de</a> bietet auf seinem Blog das <a href="http://www.tekka.de/2009/10/21/webnews-wordpress-plugin/" class="externallink" title="Wordpress Plugin um Artikel bei webnews.de einzutragen">Webnews WordPress Plugin</a> kostenlos zum downloaden an. Ziel bzw. Sinn des Plugins ist, dass Artikel welche gepostet werden im selben Moment im Newsverzeichnis von webnews.de eingetragen werden. Der Sinn liegt ganz klar auf der Hand. Wir benutzen webnews.de als neue Quelle um Newsinteressierte Besucher zu unserem Blog zu locken. Ist der Beitrag interessant und gut kategorisiert k&#246;nnen hier schnell ein paar mehr Besucher kommen.
</p>
<h3>Handhabung des webnews WordPress Plugins</h3>
<p>
Die Installation des Plugins ist genauso einfach wie andere Plugins auch. Wir downloaden uns die Zip-Datei und laden diese im Plugin-Dialog hoch und aktivieren es. Vorsicht an dieser Stelle! Das Plugin ist noch im beta-Stadium, also noch nicht wirklich fertig. Meinen Erfahrungen nach l&auml;uft das Plugin aber recht stabil. Man sollte nur keine Tippfehler in den Einstellungen bez&uuml;glich webnews.de Zugangsdaten haben. Bei Fehler wird der Artikel wieder auf Entwurf gesetzt <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Aber egal, daf&uuml;r ist es beta und bietet daf&uuml;r einen super Service. </p>
<p>Man muss allerdings nicht unbedingt jeden Artikel einf&uuml;gen lassen. Man kann bei jedem Post ausw&auml;hlen ob dieser &uuml;berhaupt bei webnews.de eingetragen werden soll oder nicht. Alte Artikel k&ouml;nnen mit Auswahl des H&auml;kchens &quot;aktualisiert&quot; und ebenfalls &uuml;bermittelt werden. So hat man wirklich Kontrolle dar&uuml;ber was in den Newskatalog kommen soll.</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/" rel="bookmark" class="crp_title">3 WordPress Plugins um die Geschwindigkeit des Blogs zu erh&#246;hen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/top-10-wordpress-plugin-title-tags/" rel="bookmark" class="crp_title">QuickTip: Top 10 WordPress Plugin um Title-Tags erweitern</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/" rel="bookmark" class="crp_title">Wir gestalten unser Redaxo-Portfolio &#8211; Teil 2</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/praktischer-seo-einsatz-custom-fields-wordpress/" rel="bookmark" class="crp_title">Praktischer SEO Einsatz von multiplen Custom Fields in WordPress</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><h3>Weiterf&uuml;hrende Links</h3><ul><li><a href="http://twitter.com/markuswalter" title="Markus Walter bei Twitter">Markus Walter bei Twitter</a></li></ul>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=Mehr+Traffic+f%C3%BCr+den+eigenen+Wordpress+Blog" title="Version1.0 heruntergeladen 175 mal" >Mehr Traffic für den eigenen Wordpress Blog (175)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/3MZCnSBhXi4oKD0AHZTUS3sciv8/0/da"><img src="http://feedads.g.doubleclick.net/~a/3MZCnSBhXi4oKD0AHZTUS3sciv8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3MZCnSBhXi4oKD0AHZTUS3sciv8/1/da"><img src="http://feedads.g.doubleclick.net/~a/3MZCnSBhXi4oKD0AHZTUS3sciv8/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/</feedburner:origLink></item>
		<item>
		<title>Zum fahren benötigt man einen Führerschein &#x2026; Rise of the &#x201c;Medienführerschein&#x201d;</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/t_HctSpdEs4/</link>
		<comments>http://www.seo-geek.de/non-seo-themen/zum-fahren-benoetigt-man-einen-fuehrerschein-rise-of-the-medienfuehrerschein/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 21:36:28 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Non-SEO-Themen]]></category>
		<category><![CDATA[bildung]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[medienführerschein]]></category>
		<category><![CDATA[politik]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=205</guid>
		<description><![CDATA[Der Staat hat jetzt den Medienf&#252;hrerschein zu Wege geb [...]]]></description>
			<content:encoded><![CDATA[<p>zum surfen aber bald auch? ganz so schlimm wird es gl&#252;cklicherweise nicht werden, aber unser lieber Papa Staat geht langsam in diese Richtung. Jedenfalls wenn es nach dem Bayerischen Staatskanzlei Chef Siegfried Schneider geht. Er schlug im April vor, dass Kinder und Jugendliche einen Medienf&#252;hrerschein bew&#228;ltigen sollen.<br />
<span id="more-205"></span><br />
Der Sinn dahinter ist folgender: Kinder sollen fr&#252;hzeitig den Umgang, die Gefahren und T&#252;cken des Internets kennenlernen. Wer jetzt denkt, dass es lediglich um das surfen geht - weit gefehlt. Antrieb f&#252;r diesen Ansatz des Medienf&#252;hrerscheins sind nat&#252;rlich auch die weit gef&#252;rchteten "Killerspiele". Kinder sollen so schon fr&#252;h sensibiliert werden, dass Killerspiele keinen Einzug mehr in das Kinderzimmer finden bzw. finden sollen. </p>
<p>Mit dem Medienf&#252;hrerschein sollen Kinder und Jugendliche ebenfalls lernen "souver&#228;n und verantwortlich" mit den Chancen umzugehen, die ihnen das Internet gibt. Dank Deutscher Genauig- und Detailverliebtheit gibt es den Medienf&#252;hrerschein in 4 "F&#252;hrerscheinklassen". Von Vorschulkindern bis 12-18 J&#228;hrige - an jeden wird beim Medienf&#252;hrerschein gedacht. Die Inhalte sollen dementsprechend angepasst werden. Damit auch ein Mitmacheffekt erreicht wird, will man auch Zertifikate in mehreren Stufen einf&#252;hren. </p>
<p>So gut die Grundidee des Medienf&#252;hrerscheines sein mag, ich pers&#246;nlich habe nie eine so Steuergeld-verschwendende Idee von einem Staatsvertreter geh&#246;rt. Wieso ich so denke? Sehen wir mal die Sache mit dem Medienf&#252;hrerschein so wie sie und fangen noch einmal von vorne an: </p>
<p>Schulen bzw. Lehrer sollen im Unterricht den Sch&#252;lern beibringen souver&#228;n und sinnvoll mit dem Internet umzugehen. Sogar an diesem Punkt entstehen bereits erste Probleme mit der Idee vom Medienf&#252;hrerschein. Gehen wir zun&#228;chst einmal vom Standpunkt "Kompetenz" aus. </p>
<p>Viele Lehrer sind aufgrund Ihrer Dienstjahre im Schulbertrieb auf eine gewisse Schiene eingefahren. Viele nutzen das Internet sogar selber nur um z. B. Email abzuholen. Bei vielen war es das dann aber auch schon. Ich m&#246;chte sogar so weit gehen und in den Raum stellen, dass viele Sch&#252;ler im Alter von 14-18 Jahre den Lehrkr&#228;ften in Sachen Internet-Kompetenz einen sehr gro&#223;en Wissensvorsprung haben. Das Problem liegt aber mit Sicherheit nicht bei den Lehrkr&#228;ften selber (ohne Lehrer w&#228;ren wir alle doof <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) sondern daran, dass beide Parteien in unterschiedlichen Generationen geboren wurden. </p>
<p>Die heutige Jugend wird direkt in diese Richtung hineingeboren. Wenn man mal eben etwas f&#252;r Deutsch braucht - wusch - Google hat eine Antwort. Man sucht z. B. bestimmte Literatur f&#252;r den Unterricht - zack - Amazon hat es. Es haben sich eben viele Namen etabliert, die Kinder schon im j&#252;ngsten Alter kennen. Ebenso ist es erwiesen, dass es der heutigen Generation leichter f&#228;llt sich in neue Metiers einzuarbeiten wie der &#228;lteren Generation. </p>
<p>Ein andere Frage ist, wieso man um alles in der Welt in der Vorschule schon mit dem Medienf&#252;hrerschein anfangen muss? Sollte man in dieser Zeit nicht lieber schon gezielt Lernschwierigkeiten von Kindern aus dem Weg r&#228;umen? Ich mein in dieser Zeit l&#228;sst sich bestimmt schon feststellen, ob ein Kind in irgendeiner Richtung eine Schw&#228;che aufweist. Mit dem Medienf&#252;hrerschein wird hier meiner Meinung nach wichtige Zeit einfach weggenommen, welche sinnvoller genutzt werden k&#246;nnte. </p>
<p>Das ganze zieht sich in den sp&#228;teren Schuljahren fort. Anstatt man vielleicht lieber 1-2 Stunden sinnvollen Unterricht macht, m&#252;ssen Lehrer Sch&#252;lern Sachen beibringen, welche das ohnehin schon wissen. Ob durch den Medienf&#252;hrerschein das Surfverhalten der Jugendlichen verbessert wird sei dahingestellt. Die Verlockungen im Web sind schlechtweg zu gro&#223; als das man mit einem "Medienf&#252;hrerschein"  alle Bereiche abdecken kann. Das Problem liegt klar auf der Hand - die Technik geht weiter - der Unterricht hingegen wird wohl wie soviel im Lande standardisiert. Ein Grundwissen sozusagen. Ich denke eine allgemeine Plattform w&#228;re hier sinnvoller und vor allem wesentlich schneller realisiert und noch wichtiger - aktualisiert. </p>
<p>Auf diese Art muss nat&#252;rlich alles durchgeplant und vor allem auch denen vermittelt werden, welche den Inhalt des Medienf&#252;hrerscheins vermitteln. Ein weiteres Problem ist es nat&#252;rlich auch, dass meist auch die Eltern nicht dieselben Kompetenzen haben wie Ihre Kinder. Viele Eltern sind mit dem Thema Netz und Technik meist nicht ann&#228;hernd so vertraut wie die Z&#246;glinge. </p>
<p>Alles in allem finde ich den Medienf&#252;hrerschein so unn&#252;tz wie Pickel. In meinen Augen h&#228;tte man die Kosten welche die ganze Aktion "Medienf&#252;hrerschein" mit sich bringt lieber direkt in das Bildungsbudget gesteckt, als so eine Aktion durchzuf&#252;hren. Politiker sollten hier nat&#252;rlich Vorbild sein, aber man wei&#223; dass diese auch nicht unbedingt kompetent sind. Mein Tip an die Politiker: Macht doch bitte erst einmal einen Beta-Test Eures Medienf&#252;hrerschein und bringt bitte nicht fadenscheinige Gr&#252;nde wie "Killerspiele sind b&#246;se" um Steuergelder sinnlos auszugeben. Das Internet ist zu komplex um das in einem "Medienf&#252;hrerschein" zu packen. </p>
<p>Wie seht Ihr die ganze Geschichte um den "Medienf&#252;hrerschein"? Sinn oder Unsinn? In diesem Sinne </p>
<p>Euer seo-geek</p>
<p>Daniel</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/non-seo-themen/interview-mit-staatsminister-schneider/" rel="bookmark" class="crp_title">Interview mit Staatsminister Schneider</a></li><li><a href="http://www.seo-geek.de/allgemeines/content-is-king-oder-wie-man-guten-content-schreibt/" rel="bookmark" class="crp_title">Content is King &#8211; oder wie man guten Content schreibt</a></li><li><a href="http://www.seo-geek.de/joomla/suchmaschinenfreundliche-links-joomla-sh404sef/" rel="bookmark" class="crp_title">Suchmaschinenfreundliche Links f&#252;r Joomla mit sh404SEF</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/5-seo-plugins-fuer-wordpress-die-man-kennen-sollte/" rel="bookmark" class="crp_title">5 SEO Plugins f&#252;r WordPress die man kennen sollte</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/wordpress-richtige-linkstruktur/" rel="bookmark" class="crp_title">Die richtige Linkstruktur</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>
<p><a href="http://feedads.g.doubleclick.net/~a/zVYHhKiVomZFZaoz_IN6pfmMxTY/0/da"><img src="http://feedads.g.doubleclick.net/~a/zVYHhKiVomZFZaoz_IN6pfmMxTY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zVYHhKiVomZFZaoz_IN6pfmMxTY/1/da"><img src="http://feedads.g.doubleclick.net/~a/zVYHhKiVomZFZaoz_IN6pfmMxTY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/non-seo-themen/zum-fahren-benoetigt-man-einen-fuehrerschein-rise-of-the-medienfuehrerschein/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/non-seo-themen/zum-fahren-benoetigt-man-einen-fuehrerschein-rise-of-the-medienfuehrerschein/</feedburner:origLink></item>
		<item>
		<title>3 WordPress Plugins um die Geschwindigkeit des Blogs zu erhöhen</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/mBwi-GVOCso/</link>
		<comments>http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 20:27:03 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[onpage]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=201</guid>
		<description><![CDATA[In der heutigen Zeit ist es auch f&#252;r gutes SEO wichtig [...]]]></description>
			<content:encoded><![CDATA[<p>
Wie wir wissen ist das Blogsystem WordPress von Haus aus schon ein sehr m&auml;chtiges System welches auch nicht mit Systemresourcen geizt. Die Geschwindigkeit einer Webseite hat zwar keine direkte Auswirkung auf die Google-SERPS, jedoch sehr wohl auf das Surfverhalten der Besucher. Welcher Besucher m&ouml;chte gerne unendlich warten bis er an die gew&uuml;nschten Informationen kommt? Ich finde nach wie vor, dass zu gutem SEO auch professionelle Pflege der Seite Voraussetzung ist. Im Bereich WordPress helfen uns viele Plug-Ins welche uns die t&auml;gliche Arbeit der Dateioptimierung - sei es CSS oder Javascript - abnimmt. Drei davon m&ouml;chte ich Euch heute vorstellen.<span id="more-201"></span>
</p>
<h3>Script Compressor </h3>
<p>
<div id="attachment_202" class="wp-caption aligncenter" style="width: 689px"><img src="http://www.seo-geek.de/wp-content/uploads/2009/10/wordpress-script-compressor.jpg" alt="Wordpress Plugin Script Compressor - Javascript und CSS beim Ausliefern komprimieren" title="Wordpress Plugin Script Compressor - Javascript und CSS beim Ausliefern komprimieren" width="679" height="195" class="size-full wp-image-202" /><p class="wp-caption-text">Wordpress Plugin Script Compressor - Javascript und CSS beim Ausliefern komprimieren</p></div><br />
Wer viel mit extra Plugins arbeitet (z. B. NextGen) wei&szlig;, dass viele Plugins separate Javascript Bibliotheken mit in das Template l&auml;dt. Ebenfalls werden auch gerne CSS Dateien mitgeladen. Das Problem ist, dass man kaum die Zeit und Lust haben wird, jede einzelne Datei seperat zu optimieren - beispielswei&szlig;e mit dem YUI Compressor. Hier greift dieses Plugin mit ein. Es &quot;hakt&quot; sich in den Header und komprimiert alle Javascript- und CSS-Dateien welche in das Template geladen werden. Der Effekt liegt klar auf der Hand - der Server hat zwar etwas mehr CPU-Last, muss aber weniger Daten &uuml;bertragen, woraus eine geringere Ladezeit resultiert. Das Plugin basiert auf jscsscomp.</p>
<p><a href="http://wordpress.org/extend/plugins/script-compressor/" title="Wordpress beschleunigen mit Script Compressor - javascript und css von WordPress Plugins komprimieren">Script Compressor bei wordpress.org</a>
</p>
<h3>DB Cache Reloaded</h3>
<p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 689px"><img src="http://www.seo-geek.de/wp-content/uploads/2009/10/wordpress-db-cache-reloaded.jpg" alt="SQL Abfragen von WordPress mit DB Cache Reloaded cachen" title="SQL Abfragen von WordPress mit DB Cache Reloaded cachen" width="679" height="195" class="size-full wp-image-203" /><p class="wp-caption-text">SQL Abfragen von WordPress mit DB Cache Reloaded cachen</p></div><br />
Wordpress arbeitet wie fast alle Content Management Systeme mit mySQL. Wenn man bedenkt, dass jeder Aufruf eine gewisse Zeit in Anspruch nimmt, merkt schnell das sich das bei x Zugriffen am Tag schnell summiert und die Serverlast nach oben schie&szlig;en l&auml;sst. Eine M&ouml;glichkeit dieses Problem in den Griff zu bekommen ist DB Cache Reloaded. DB Cache Reloaded cached alle Datenbankabfragen f&uuml;r eine gewisse Zeit und kann diese ggf. viel schneller wiedergeben als z. B. ein HTML-Cache Plugin es k&ouml;nnte. Vorg&auml;nger war DB Cache, welches aber nur bis WordPress 2.8 entwickelt wurde. </p>
<p><a href="http://wordpress.org/extend/plugins/db-cache-reloaded/" title="Wordpress mit DB Cache Reloaded entlasten - SQL Queries von WordPress cachen">DB Cache Reloaded auf wordpress.org</a>
</p>
<h3>WP Super Cache</h3>
<p>
<div id="attachment_204" class="wp-caption aligncenter" style="width: 689px"><img src="http://www.seo-geek.de/wp-content/uploads/2009/10/wordpress-wp-super-cache.jpg" alt="Mit WP Super Cache WordPress Seiten in Sekundenschnelle ausliefern" title="Wordpress Caching leicht gemacht" width="679" height="195" class="size-full wp-image-204" /><p class="wp-caption-text">Mit WP Super Cache WordPress Seiten in Sekundenschnelle ausliefern</p></div><br />
Das letzte Plugin was ich vorstellen m&ouml;chte kennt wohl ziemlich jeder - denn es geh&ouml;rt zu jeder Standard-installation von WordPress dazu - WP Super Cache. Das Plugin generiert f&uuml;r Euch statische HTML-Seiten welches bei einem Aufruf ausgeliefert und somit nicht neu gerendert werden m&uuml;ssen. Auch hier findet man sehr schnell den Vorteil - die Seiten sind sofort vorhanden. Der PHP Compiler muss nicht erst den ganzen Code durchgehen. Unser Besucher wird uns dankbar sein. </p>
<p><a href="http://wordpress.org/extend/plugins/wp-super-cache/" title="Mit WP Super Cache statische HTML Seiten von WordPress generieren lassen - schnellere Ladezeiten f&uuml;r WordPress">WP Super Cache bei wordpress.org</a>
</p>
<h3>Abschlie&szlig;endes</h3>
<p>
Es gibt mit Sicherheit noch wesentlich mehr Plugins welche die Geschwindigkeit erh&ouml;hen, wer welche kennt kann diese gerne in den Kommentaren posten. Ich werde dann den Post erweitern. Wenn man die Plugins gut einsetzt kann hier wirklich ein Geschwindigkeitsvorteil erreicht werden, wof&uuml;r uns zuk&uuml;nftige Besucher sehr dankbar sein werden.</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/" rel="bookmark" class="crp_title">Mehr Traffic f&#252;r den eigenen WordPress Blog</a></li><li><a href="http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/" rel="bookmark" class="crp_title">Wir gestalten unser Redaxo-Portfolio &#8211; Teil 2</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/redaxo/erstellen-eines-portfolios-in-redaxo-teil-1/" rel="bookmark" class="crp_title">Erstellen eines Portfolios in Redaxo &#8211; Teil 1</a></li><li><a href="http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/" rel="bookmark" class="crp_title">CSS und Javascript richtig ausliefern</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=3+Wordpress+Plugins+um+den+eigenen+Blog+zu+beschleunigen" title="Version1.0 heruntergeladen 124 mal" >3 Wordpress Plugins um den eigenen Blog zu beschleunigen (124)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/MolVTNCWof8RW07b5qIaPhJZCIc/0/da"><img src="http://feedads.g.doubleclick.net/~a/MolVTNCWof8RW07b5qIaPhJZCIc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MolVTNCWof8RW07b5qIaPhJZCIc/1/da"><img src="http://feedads.g.doubleclick.net/~a/MolVTNCWof8RW07b5qIaPhJZCIc/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/</feedburner:origLink></item>
		<item>
		<title>Wir gestalten unser Redaxo-Portfolio &#x2013; Teil 2</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/lzmvnzQ4o0o/</link>
		<comments>http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 06:56:54 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Redaxo]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=199</guid>
		<description><![CDATA[In dieser Fortf&#252;hrung zum Thema Redaxo Portfolio Plugi [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem wir im letzten Beitrag &uuml;ber Redaxo und Portfolio-Design uns Gedanken um den Ausgangspunkt gemacht haben, betrachten wir heute eine erste nette kleine Erweiterung. </p>
<p>Die Grundidee ist wie so h&auml;ufig der Blog von Chris Coyier - CSS Tricks. In einem seiner bisherigen Screencasts ging es um das Thema, dass Titel (in diesem Fall H2 - also auch seo-tauglich) nett und elegant das Bild &uuml;berlagern und somit besser in Szene gesetzt sind, als ein &ouml;der Text unterhalb vom Bild. </p>
<p><div id="attachment_200" class="wp-caption aligncenter" style="width: 690px"><img src="http://www.seo-geek.de/wp-content/uploads/2009/10/redaxo-portfolio-usability-gimmick.jpg" alt="Usability wie SEO optimierte Index-Seite f&#252;r ein Redaxo Portfolio" title="Usability wie SEO optimierte Index-Seite f&#252;r ein Redaxo Portfolio" width="680" height="195" class="size-full wp-image-200" /><p class="wp-caption-text">Usability wie SEO optimierte Index-Seite f&#252;r ein Redaxo Portfolio</p></div><span id="more-199"></span></p>
<p>Vorab sage ich, die &Auml;nderung wird nur wenige Minuten in Anspruch nehmen, da das Skript von Chris Coyier zum Download angeboten wird und somit auch sofort eingesetzt werden kann. Im Grunde wird unser Ger&uuml;st weiter ausgebaut. </p>
<p>Anmerkung: Schaut aber dennoch den Screencast einmal an, dieser geht ca. eine halbe Stunde und vertieft was Ihr gleich machen werdet.</p>
<h3>Die Vorbereitung unserer Redaxo-Portfolio-Erweiterung</h3>
<p>Nachdem das Demo-Paket von der <a href="http://plugins.jquery.com/project/titleblock" title="Titleblock Plugin f&uuml;r jQuery">jQuery-Seite heruntergeladen</a> wurde, entpacken wir diese zun&auml;chst lokal da wir nur wenige Dateien aus dem jQuery Plugin ben&ouml;tigen. </p>
<p>Nun wird die Datei &quot;jquery.titleblock.min.js&quot; aus dem js-Ordner in unser Redaxo Content Management System transferiert. Wo am besten muss man selber wissen. Ich z. B. arbeite lokal im files-Ordner - f&uuml;r Kundenprojekte lege ich einen seperaten Template-Ordner an. </p>
<p>Daneben ben&ouml;tigen wir aus der style.css lediglich die paar Zeilen Code, damit wir eine gute Ausgangslage haben um den Titel an unsere W&uuml;nsche anzupassen. </p>
<h3>Die Arbeitsweise des jQuery Plugins &quot;titleblock&quot;</h3>
<p>Die Funktionsweise ist relativ einfach wie auch genial. Da wir ja unsere Shops, Blogs oder sonstige Seiten immer gern barrierefrei und seo-m&auml;&szlig;ig perfekt aufbauen nutzt das Plugin das title-Tag eines Bildes. Wir werden also gezwungen alle Tags zu verwenden. (link zu usability). Anhand dieses Titles wird nach dem &lt;img-Tag&gt; ein Span mit einem darauf folgendem H2 eingef&uuml;gt, also eine &Uuml;berschrift. Ob H2 oder H3 kann man selber in der js-Datei definieren, ich denke das ben&ouml;tigt keine weitere Erkl&auml;rung. Falls doch werde ich dies gerne nachschieben.</p>
<h3>Der Einstaz des jQuery Plugins</h3>
<p>Zum Gl&uuml;ck ist auch die Handhabung des Plugins sehr simpel gehalten. Wir laden wie gewohnt jQuery in unser Template - bevorzugt &uuml;ber das Google CDN, damit unsere Seite dann auch etwas schneller aufgebaut ist. Danach laden wir nur noch unseren Code hinein und f&uuml;gen ein wenig Script mit bei. Danach ist der gr&ouml;&szlig;te Zauber schon vorbei. In der Praxis sieht das folgenderma&szlig;en aus: </p>
<pre class="brush: html; ">

&lt;script type=&#039;text/javascript&#039; src=&#039;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2&#039;&gt;&lt;/script&gt;
&lt;script src=&quot;&lt;?php echo $REX[&#039;HTDOCS_PATH&#039;] ?&gt;files/jquery.titleblock.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

	&lt;script type=&quot;text/javascript&quot;&gt;
		$(function() {
			$(&quot;img&quot;).titleBlock({
				removeTitle: false,
				thefontSize: &quot;24px&quot;
			});
		});
	&lt;/script&gt;
</pre>
<p>In diesem Teil des Quelltextes geben wir an, dass der Titel nicht gel&ouml;scht werden soll, und die Schritgr&ouml;&szlig;e auf 24px gesetzt wird. </p>
<h3>Anpassen unseres Redaxo-Portfolio-Moduls</h3>
<p>Jetzt darf nicht vergessen werden unser Modul von letztem Mal anzupassen. Beim &lt;img&gt;-Tag muss  noch ein title-Attribut hinzuf&uuml;gt werden, womit die Zeile dann folgenderma&szlig;en aussieht: </p>
<pre class="brush: php; ">

print &#039;&lt;div class=&quot;portf_pic&quot;&gt;&lt;a href=&quot;&#039;.rex_getUrl($articleId).&#039;?phpMyAdmin=fac4b407329t262ea922&quot;&gt;&lt;img src=&quot;index.php?rex_resize=220w__&#039;.$teaserbild.&#039;&quot; alt=&quot;&#039;.$keywords.&#039;&quot; title=&quot;&#039;.$articleName.&#039;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&#039;;
</pre>
<h3>Anpassen des CSS-Codes von Redaxo</h3>
<p>Wenn man jetzt das Portfolio Modul neu l&auml;dt, sieht man meistens dass das h2-Tag viel zu weit unter dem Bild ist. Sollte dies der Fall sein, m&uuml;ssen wir den top-Wert von h2 (in der CSS - Datei) so anpassen, dass dieser h&ouml;her ist. In meiner Test-Installation sah der Code dann folgenderma&szlig;en aus: </p>
<pre class="brush: css; ">

/*
	 CSS-Tricks Example
	 by Chris Coyier

http://css-tricks.com

*/

.image              { position: relative; margin-bottom: 20px; width: 100%; }
h2                  { position: absolute; top: 100px; left: 0; width: 100%; }
h2 span             { color: white; font: bold 24px/45px Helvetica, Sans-Serif; letter-spacing: -1px;
                      background: rgb(0, 0, 0); background: rgba(0, 0, 0, 0.7); padding: 10px; }
h2 span.spacer      { padding: 0 2px; background: none; }
</pre>
<p>Wer schon h&auml;ufiger auf einer Seite mit H2 arbeitet, kann hierf&uuml;r in der javascript-Datei auch eine andere Klasse anlegen, z. B. &lt;h2 class=&quot;portfolioh2&quot;&gt;. Das ist aber nur eine von vielen M&ouml;glichkeiten. </p>
<h3>Abschlie&szlig;endes</h3>
<p>Das soll es f&uuml;r heute wieder gewesen sein. Man sieht es braucht nicht viel um nette Gimmicks und Effekte einzubauen. Beim n&auml;chsten Mal gehen wir mit der Usability noch einen Schritt weiter und werfen dem Besucher gro&szlig;e Bilder um die Ohren. Bis dahin - Viel Spa&szlig; beim basteln. </p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-active-links/" rel="bookmark" class="crp_title">Quicktip: Redaxo den active-State bei Links beibringen</a></li><li><a href="http://www.seo-geek.de/redaxo/erstellen-eines-portfolios-in-redaxo-teil-1/" rel="bookmark" class="crp_title">Erstellen eines Portfolios in Redaxo &#8211; Teil 1</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/3-wordpress-plugins-um-die-geschwindigkeit-des-blogs-zu-erhoehen/" rel="bookmark" class="crp_title">3 WordPress Plugins um die Geschwindigkeit des Blogs zu erh&#246;hen</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/allgemeines/css-und-javascript-richtig-ausliefern/" rel="bookmark" class="crp_title">CSS und Javascript richtig ausliefern</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><h3>Weiterf&uuml;hrende Links</h3><ul><li><a href="http://css-tricks.com/video-screencasts/67-jquery-part-3-image-title-plugin/" title="Screencast zum vertiefen der Methode auf css-tricks.com">Screencast zum vertiefen der Methode auf css-tricks.com</a></li><li><a href="http://www.seo-geek.de/redaxo/erstellen-eines-portfolios-in-redaxo-teil-1/" title="Wir erstellen ein Portfolio in Redaxo - Teil 1">Wir erstellen ein Portfolio in Redaxo - Teil 1</a></li></ul>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=Wir+gestalten+unser+Redaxo-Portfolio+-+Teil+2" title="Version1.0 heruntergeladen 150 mal" >Wir gestalten unser Redaxo-Portfolio - Teil 2 (150)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/Pe_ff2cjxBGDpmFhqn-mAzj18oY/0/da"><img src="http://feedads.g.doubleclick.net/~a/Pe_ff2cjxBGDpmFhqn-mAzj18oY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Pe_ff2cjxBGDpmFhqn-mAzj18oY/1/da"><img src="http://feedads.g.doubleclick.net/~a/Pe_ff2cjxBGDpmFhqn-mAzj18oY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/</feedburner:origLink></item>
		<item>
		<title>SEO und die Sache mit der Usability</title>
		<link>http://feedproxy.google.com/~r/seogeekde/~3/owARqVnn-gs/</link>
		<comments>http://www.seo-geek.de/allgemeines/seo-und-die-sache-mit-der-usability/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 08:01:24 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.seo-geek.de/?p=197</guid>
		<description><![CDATA[In der heutigen Web-Zeit muss man sich anders wie fr&#252;h [...]]]></description>
			<content:encoded><![CDATA[<p>Bevor es im Thema Redaxo Workshop weitergeht m&ouml;chte ich erst einmal ein Thema dazwischen schieben, was sich hier meiner Meinung nach am besten macht. Wir stellen uns einmal die Frage ob Usability f&uuml;r SEO zwingend n&ouml;tig ist. </p>
<h3>Was ist &uuml;berhaupt Usability? </h3>
<p><cite>Wikipedia referenziert Usability folgenderma&szlig;en: Benutzerfreundlichkeit bezeichnet die vom Nutzer erlebte Nutzungsqualit&auml;t bei der Interaktion mit einem System</cite> (Quelle: <a href="http://de.wikipedia.org/wiki/Benutzerfreundlichkeit" title="Benutzerfreundlichkeit / Usability bei wikipedia">wikipedia.de</a>)<span id="more-197"></span></p>
<p>Was sagt uns dieser Satz? Wir wollen unserem Besucher ein Gef&uuml;hl geben, dass er unsere Seite wieder besucht. Wir m&ouml;chten seinem Ged&auml;chtnis einen kleinen Schub geben sich an uns zu erinnern. Dazu z&auml;hlen Farben, Funktionen, Einizigartigkeiten und vieles mehr. Auf einige Punkte m&ouml;chte ich in diesem Post eingehen. </p>
<h3>Warum k&uuml;mmern wir uns &uuml;berhaupt um Usability? </h3>
<p>Um es kurz zu fassen - um besser zu sein als andere und Besuchern einen gem&uuml;tlichen und professionellen Eindruck von uns und unserer Seite zu geben. Halten wir das mal an einem &quot;Real&quot;-Beispiel fest. Stellen wir uns eine kleine B&auml;ckerei vor. Die nette Dame hinter den Tresen steht zwar recht ansehnlich vor uns und erwartet unsere Bestellung, kann aber nicht genau sagen was in dem Produkt XY alles verarbeitet wurde. Dieselbe B&auml;ckerei noch einmal, nur mit &quot;geschultem&quot; Personal. Hier wird uns direkt weitergeholfen, wir werden beraten und bekommen noch andere Sachen empfohlen, die uns schmecken k&ouml;nnten. Jetzt stellen wir uns das ganze noch einmal im Web-Format vor. In vielen Shop spricht man hier von Cross-Selling (um bei obigen Beispiel zu bleiben). Der (zum Beispiel ein xt:Commerce) Shop empfiehlt uns Dinge, die uns auch gefallen k&ouml;nnten. Das ist ein Schritt in Richtung Usability. Wir bieten unserem Besucher einen Mehrwert mit unserer Seite. Das ist aber nur eine Facette der Usability. Stellen wir uns einmal vor, ein blinder Besucher kommt auf unsere Seite. Dieser m&ouml;chte nat&uuml;rlich dieselben Informationen bekommen wie andere auch. Hier f&auml;llt unter anderem auch das Stichwort &quot;Barrierefreiheit&quot;. Hier&uuml;ber hat Martin Mi&szlig;feldt, Betreiber des Blogs <a href="http://www.tagseoblog.de" title="Tolle SEO-Tipps und Beitr&auml;ge von Martin Mi&szlig;feldt">tagseoblog.de</a> einen interessanten Bericht geschrieben in welchem dargestellt wird, <a href="http://www.tagseoblog.de/google-ist-behindert-barrierefreiheit-mensch-maschine" title="Martins Beitrag wie blinde eine Webseite wahrnehmen">wie eine blinde Person eine Webseite wahrnimmt</a>.  </p>
<h3>Welche Formen gibt es nun in Sachen Usability? </h3>
<p>Hier wird das Thema erst richtig interessant. Es ist alles erlaubt, was hilft die Webpr&auml;senz interessanter und userfreundlicher zu gestalten. Gute Mittel sind zun&auml;chst solide Kenntnisse in HTML und CSS. Allein durch diese zwei Grundfaktoren im Webdesign lassen sich viele Sachen userfreundlich realisieren. Man stellt sich z. B. folgende Situation vor: </p>
<p>Wir betreiben einen Blog bzw. eine Webseite zum Thema Kochen, auf welchem wir viele Downloads anbieten, wie z. B. Kochrezepte, Tipps, Verarbeitungshinweise usw. Sagen wir, die Download-Seite umfasst ca. 80 Links. Ist viel oder? Davon abgesehen das das SEO-technischer Murks ist, bleibt aber die Tatsache bestehen dass die Seite sehr lang wird und &uuml;bersichtlich in welcher Zeile man gerade den Titel des Downloads liest. Jetzt geht der gewiefte SEO oder Webseiten-Betreiber her und verpackt das ganze schon einmal in eine zweispaltige Tabelle - linke Spalte der Datei- bzw. Downloadname und Rechts ein Download-Button (Urzeit-Web l&auml;sst gr&uuml;&szlig;en <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Jetzt haben wir das ganze schon einmal Code-Technisch einmal aufger&auml;umt - sieht auch aufger&auml;umt aus. Zwar schon super soweit aber immer noch nicht wirklich benutzerfreundlich. Nun kommen unsere Profi-m&auml;&szlig;igen CSS-Kenntnisse an die Reihe. Wir vergeben f&uuml;r die einzelnen Zeilen extra Klassen (z.B. jede gerade Zeile Wei&szlig;, ungerade Grau). Schon wirkt das wieder etwas professioneller. Um das ganze jetzt noch hervorzuheben, dass wir uns in Zeile XY bewegen, erg&auml;nzen wir unseren CSS-Code noch mit einer :hover-Klasse f&uuml;r die Zeile. Jetzt haben wir den Effekt, dass die aktuelle Zeile in der sich unser Cursor befindet farblich hervorgehoben wird. </p>
<p>Erinnern wir uns einmal an Martins Blogeintrag. Um das ganze wirklich barrierefrei und seo-technisch fit zu machen m&uuml;ssen bzw. sollten wir alle M&ouml;glichkeiten des Codes nutzen um der Seite genug Informationen zukommen zu lassen. So bietet das Tag &quot;Table&quot; beispielsweise die Option unserer Tabelle eine Zusammenfassung zukommen zu lassen. In diesem Fall hei&szlig;t der Zauber &quot;summary&quot;. Summary ist also f&uuml;r eine Tabelle eine Zusammenfassung, welche auch von Google und Screenreadern gelesen wird. Gar nicht so schwer bisher, oder? </p>
<h3>Etwas f&uuml;r das Auge darf es auch sein</h3>
<p>Nun ist Usability nicht nur eine Ansammlung von HTML-Code. Mit neuen Methoden wie javascript-Frameworks wie jQuery oder Mootools k&ouml;nnen wirklich viele Sachen realisiert werden, die einen kleinen Mehrwert f&uuml;r unsere Besucher darstellen. Nehmen wir auch hier wieder ein kleines Beispiel aus der realen Welt. Wir betreiben jetzt statt einer B&auml;ckerei beispielsweise eine kleine Werbeagentur. Die Agentur l&auml;uft gut - wir verkaufen Webdesign, Logos und sonstige Printsachen. Da wir von unserer Arbeit &uuml;berzeugt sind, m&ouml;chten wir diese auf unserer Webseite werbe-effektiv anbringen in Form eines Portfolios. Anfangs gen&uuml;gt es f&uuml;r jede dieser drei Sparten eigene Seiten bzw. Unterseiten mit Portfolio - Bildern anzuzeigen sowie eine Navigation erstellen zu lassen. </p>
<p>Jetzt zieht einige Zeit ins Land und unsere Agentur wird bekannter. Unser Leistungsspektrum im Web teilt sich nun in Blog-/Shopdesign, Content Management Systeme und statische HTML Seiten. Nat&uuml;rlich k&ouml;nnen wir jetzt noch mehr Unterseiten anlegen, was unsere Struktur wieder durcheinanderbringt und mit Mehraufwand verbunden ist. Nachteil f&uuml;r den Besucher - er muss mindestens 1x mehr klicken um an gew&uuml;nschte Informationen zu kommen. Im Falle eines Shops bedeutet dies wieder eine geringere Chance auf einen erfolgreichen Verkauf. Zur&uuml;ck aber zur Agentur. In diesem Fall k&ouml;nnte man mittels jQuery die Ausgabe sortieren, wie Jeffrey Way (Betreiber der Seite nettuts.com) im Screencast  <a href="http://net.tutsplus.com/videos/screencasts/quick-and-easy-filtering-with-jquery/" title="Wie man mit jquery Daten einer Webseite sortiert">&quot;Quick and Easy Filterung with jQuery&quot;</a>zeigt. Jetzt kann unser Besucher gem&uuml;tlich die Ausgabe nach seinen W&uuml;nschen filtern lassen. </p>
<h3>Womit kann man die eigene Webseite noch benutzerfreundlicher gestalten? </h3>
<p>Jetzt stellt man sich die Frage wo die Vorstellungskraft hier aufh&ouml;ren kann. Ihr k&ouml;nnt mir glauben, je weiter die Technik geht desto mehr M&ouml;glichkeiten gibt es. Man muss nur die Idee haben und dies dann umsetzen. Usability bedeutet nicht nur die Erweiterung sondern auch das optimieren von seitentypischen Funktionen. Nehmen wir z. B. die von Apple bekannte Suche. Viele Seiten bieten als Ausgabe eine Ergebnisseite an. Wer die Webseiten von Apple kennt wei&szlig;, dass die Suchergebnisse direkt im bzw. unter dem Suchfeld angezeigt werden. Der Besucher muss also nicht erst die Ergebnisseite anschauen. Diese Funktionen gibt es auch f&uuml;r normale Webseiten. Wie man das einbaut ist nat&uuml;rlich die andere Sache. <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Warum machen wir das ganze und was hat das mit SEO zu tun?</h3>
<p>Mittlerweile haben wir eine gute Vorstellung davon was Wikipedia mit der Erkl&auml;rung zur Usability uns mitteilen m&ouml;chte. Webseiten werden f&uuml;r Menschen gemacht. Maschinen bzw. Suchmaschinen ist es egal ob die Seite nun das geile Plugin f&uuml;r dynamische Suchergebnisse oder das Plugin mit der kann-man-kaum-beschreiben-so-geil-ist-das-Funktion. F&uuml;r eine Suchmaschine wird eine Webseite (jedenfalls in der n&auml;chsten Zeit) Code bleiben. Nicht mehr und nicht weniger. Bei einer nett aufbereiteten Seite wird unser Werk aber in die Suchergebnisse einflie&szlig;en und uns Besucher bescheren. Diese wiederum k&ouml;nnen etwas mit unserem Angebot an Usability-Funktionen anfangen. Wenn diese jetzt noch super eingesetzt sind haben wir eventuell wieder einen Stammbesucher. Was will man mehr? </p>
<h3>Abschlie&szlig;endes</h3>
<p>Wie gesagt habe ich das Thema Usability nur knapp angekratzt. In Zukunft wird sicher noch einiges zum Thema Usability und SEO folgen. Das Thema ist wirklich schier unersch&ouml;pflich. Nicht zuletzt tragen tolle Blogs dazu bei, dass gutes Wissen sehr schnell verbreitet wird. Einige gute Links findet Ihr im Anhang des Beitrags. Das war es f&uuml;r heute <img src='http://www.seo-geek.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Edit: Landingpage Optimierung genauso wichtig wie SEO selber </h3>
<p>Tameco hat heute einen Beitrag ver&ouml;ffentlicht, der inhaltlich perfekt das widerspiegelt und vertieft was ich in diesem Beitrag &#252;ber SEO-Usability versucht habe zu erkl&#228;ren. Wer wissen m&#246;chte, warum die Optimierung von Landing Pages wichtig auch in Bezug auf SEO ist, dem empfehle ich den folgenden Beitrag <a href="http://blog.tameco.de/06102009-landing-page-optimization-so-wichtig-wie-seo.html" title="Warum Landingpage Optimierung wichtig ist">Landingpage Optimization so wichtig wie SEO.</a>Wie ich finde ein sehr gelungener Beitrag von Tameco, was wieder einmal zeigt wie wichtig Usability heutzutage ist.</p>
<div id="crp_related"><h3>... mehr erfahren &#252;ber</h3><ul><li><a href="http://www.seo-geek.de/redaxo/wir-gestalten-unser-redaxo-portfolio-teil-2/" rel="bookmark" class="crp_title">Wir gestalten unser Redaxo-Portfolio &#8211; Teil 2</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-active-links/" rel="bookmark" class="crp_title">Quicktip: Redaxo den active-State bei Links beibringen</a></li><li><a href="http://www.seo-geek.de/wordpress-seo/mehr-traffic-fuer-den-eigenen-wordpress-blog/" rel="bookmark" class="crp_title">Mehr Traffic f&#252;r den eigenen WordPress Blog</a></li><li><a href="http://www.seo-geek.de/redaxo/quicktip-redaxo-meta-angaben/" rel="bookmark" class="crp_title">Quicktip: Redaxo Artikel mit Meta-Angaben versehen</a></li><li><a href="http://www.seo-geek.de/xtcommerce/the_loop-xtcommerce-integrieren/" rel="bookmark" class="crp_title">the_loop() in xt:Commerce integrieren &#8211; Die letzten x Beitr&#228;ge anzeigen</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div><h3>Weiterf&uuml;hrende Links</h3><ul><li><a href="http://net.tutsplus.com/" title="Nettuts.com - Jeffrey Way - Screencasts, Beiträge und mehr">Nettuts.com - Jeffrey Way - Screencasts, Beiträge und mehr</a></li><li><a href="http://www.davidwalsh.name" title="Usability Tutorials für Mootools und jQuery">Usability Tutorials für Mootools und jQuery</a></li><li><a href="http://www.css-tricks.com" title="Chris Coyier  - der Mann für alle (CSS)-Fälle, aber auch jQuery.">Chris Coyier  - der Mann für alle (CSS)-Fälle, aber auch jQuery.</a></li></ul>	<div class="downloadpdf">Lade Dir diesen Post als pdf-Datei herunter: <a class="downloadlink" href="http://www.seo-geek.de/wp-content/plugins/download-monitor/download.php?id=SEO+und+die+Sache+mit+der+Usability" title="Version1.0 heruntergeladen 117 mal" >SEO und die Sache mit der Usability (117)</a></div>
<p><a href="http://feedads.g.doubleclick.net/~a/PGx3bsQEMUUU_MdxDOEWJhGABqE/0/da"><img src="http://feedads.g.doubleclick.net/~a/PGx3bsQEMUUU_MdxDOEWJhGABqE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PGx3bsQEMUUU_MdxDOEWJhGABqE/1/da"><img src="http://feedads.g.doubleclick.net/~a/PGx3bsQEMUUU_MdxDOEWJhGABqE/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.seo-geek.de/allgemeines/seo-und-die-sache-mit-der-usability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.seo-geek.de/allgemeines/seo-und-die-sache-mit-der-usability/</feedburner:origLink></item>
	</channel>
</rss>
