Ihr Browser kann das Objekt leider nicht anzeigen!

Meta Tags Description und Keywords manuell generieren

Seit einiger Zeit bin ich auf der Suche nach einer einfachen Möglichkeit für die Meta Tags Description und Keywords für meine Beiträge. Falls ich nicht manuell in dem Beitrag eine Meta Description eintrage, soll sie automatisch aus den ersten Wörtern des Beitrages generiert werden. Die entsprechenden Meta Keywords zum Beitrag wollte ich ebenfalls entweder händisch im Beitrag eingeben, oder, falls ich das nicht mache, sollte kein Meta Tag für die Keywords ausgegeben werden.

Grund für meine diesbezügliche Suche ist, dass mir das All in One SEO Pack Plugin schon geraume Zeit ein Dorn im Auge ist. Verwendet man in den Beiträgen Tags und gibt händisch dem Beitrag keine Meta Keywords, dann werden die Tags automatisch als Keywords zugeordnet. Diese Funktion lässt sich natürlich im Admin Bereich weder ein- noch ausschalten. Äußerst semi-professionell :-(

Da die Tags als Meta Keywords für mich so gar nicht in Frage kommen (haufenweise die gleichen Meta Keywords könnten sich irgendwann negativ auswirken), wäre ich gezwungen gewesen, jedem Beitrag manuell Keywords zuzuweisen und das wollte ich auch auf gar keinen Fall, vor allem nicht rückwirkend für alle meine Beiträge. So blieb mir erst einmal nichts anderes übrig, als manuell im Plugin die Meta Keywords Generierung zu unterdrücken, denn für die automatische Meta Description Generierung brauchte ich das Plugin ja erst einmal noch.

Ich habe lange gesucht und irgendwie konnte keines der Plugins meine Wünsche richtig befriedigen. Für den Title Tag habe ich mich für das SEO Title Tag Plugin entschieden. Einfach, klein und vor allem gute Funktionen, denn damit kann man Seiten, Beiträgen, Kategorien, Tags und URLs ihre eigenen Title Tags hinzufügen und das sogar noch in einer komfortablen Masseneditierung.

Für die Meta Description und die Meta Keywords sah es aber schon schwieriger aus mit Plugins. Und wieso eigentlich für solch eigentlich kleine Funktionalitäten irgendwelche großen Plugins installieren, deren meisten Funktionen ich sowieso nicht brauche. Also machte ich mich auf die Suche nach kleinen aber feinen manuellen Lösungen. Mit etwas Zeit, rumprobieren (ich bin ja wirklich alles andere als ein PHP Profi) und der Hilfe einiger Anleitungen im Netz bin ich schließlich zu meinem Ziel gelangt.

Die Meta Descriptions werden nun automatisch aus dem Beitragsauszug generiert (genau wie bei fast allen SEO Plugins). Entweder gebe ich im Beitrag einen Auszug ein, oder es wird jeweils der erste Text aus dem Beitrag verwendet. Warum ein Plugin verwenden, wenn die entsprechenden Felder in Wordpress eh schon da sind, und eigentlich nur ausgelesen und etwas angepasst werden müssen. Mit Hilfe des Wordpress Forums habe ich dazu folgenden Code-Schnipsel in meine header.php gepackt (Achtung, alleine funktioniert dieser Code nicht, da gehört noch 2. Teil, der Keywords Code, dahinter):

<?php if ( is_single() ) { ?>
	<?php global $wp_query;
	$zg_post_ID = $wp_query->post->ID; // Read post-ID
	$zg_post_query = new WP_Query('p=' . $zg_post_ID . ''); // Define new loop with post ID
	while ($zg_post_query->have_posts()) : $zg_post_query->the_post();
		if ($zg_post_ID== get_the_ID()) { // Make sure that we just show what we want to show (to prevent crazy output that might occure)
			$desc = strip_tags(get_the_excerpt()); ?>
			<meta name="description" content="<?php echo substr($desc,0,strpos($desc,".",160)+1); ?>" />
		<?php } endwhile;

Kleines zusätzliches PHP Schmankerl von mir, dessen Grundidee ich bei phpBuddy.eu gefunden hatte: Die Meta Description ist unterschiedlich lang. Mindestzeichen sind 160. Danach sucht sie sich den nächsten Punkt (Satzende) und geht genau bis dorthin. So wird die Meta Description nicht einfach mitten im Satz abgeschnitten, sondern endet beim nächsten Punkt nach 160 Zeichen.

Eine ähnliche Lösung verwende ich für die Meta Keywords. Auch hier galt für mich als erstes, vorhandene Wordpress Felder zu nutzen und entsprechend auszulesen. Für die Meta Keywords eigenen sich die benutzerdefinierten Felder am besten. Wird ein entsprechendes Feld im Beitrag eingegeben, wird es ausgelesen. Gibt es dieses Feld aber nicht im Beitrag, gibt es auch keine Meta Keywords. Eigentlich ganz einfach, oder?

Bei der Umsetzung hat mir der Beitrag von Frank Bültge geholfen. Ähnlich seiner Anweisungen in diesem Beitrag habe ich eine Funktion für die functions.php für das Benutzerdefinierte Feld keywords erstellt und rufe diese in meiner header.php auf.

In meiner functions.php habe ich folgende Code hinzugefügt:

function tp_keywords() {
	global $id, $post_meta_cache;
	if ( $keys = get_post_custom_keys() ) {
		foreach ( $keys as $key ) {
			$values = array_map('trim', get_post_custom_values($key));
			$value = implode($values,', ');
			if ( $key == 'keywords' ) {
				return $value;
			}
		}
	}
}

Und den obigen Code-Schnipsel der Meta Description aus der header.php habe ich um folgende Zeilen ergänzt:

	$keywords = tp_keywords();
		if ($keywords !='') { ?>
		<meta name="keywords" content="<?php echo $keywords; ?>" />
<?php } } ?>

Nun kann ich, wenn ich mag, das Benutzerdefinierte Feld keywords in meinen Beiträgen nutzen.

Damit ist das All in One SEO Pack Plugin in meinem Blog Geschichte. SEO Plugins nutze ich nun nur noch Robots Meta und den SEO Title Tag. Was anderes brauche ich für eine ordentliche Suchmaschinenoptimierung nicht ;-)

Bleib auf dem Laufenden und abonniere meinen RSS Feed Crazy Girls RSS Feed jetzt abonnieren
|
 Autor: Crazy Girl |
 Themenbereich: Blog SEO Tips
Trackback URL: http://www.crazytoast.de/meta-tags-description-keywords-generieren.html/trackback/
Ähnliche Beiträge:
↑ Ganz nach oben springen ↑
↓ zum kommentieren springen ↓
18 Kommentare:
  1. Marc schrieb am 13. April 2009 um 20:50 Uhr:
    # 1

    Hmmm…! Interessantes Thema :-)
    Ich nutze All in one Seo und habe damit meistens natürlich auch die Tags als Keywords… Eigene Keywords trage ich sehr, sehr elten ein.
    Vielleicht muss ich das die Tage mal überdenken…

  2. Psychic SEO schrieb am 13. April 2009 um 22:03 Uhr:
    # 2

    Crazy … coole Sache, dass sich mal jemand dieses Themas annimmt. Ich nutze bisher auch das Platinum SEO-Pack und habe es mir nach und nach abgewöhnt die Metas per Hand einzutragen … das führt bei mir aber auch dazu, dass sich das Plugin die Tags schnappt.
    Was meine Philosopie der Metakeywords angeht ist das auch alles andere als toll. Vielleicht werde ich mir mal Deinen Lösungsweg vornehmen – sobald ich dazu ein wneig Ruhe finde.

  3. Crazy Girl antwortete am 14. April 2009 um 07:20 Uhr:
    # 3

    Alle Plugins die ich mir angesehen habe, fügen die Tags als Keywords ein, wenn nichts angegeben wird. Und die meisten von uns haben sich mit der Zeit abgewöhnt was anzugeben ;-) Für mich sind die Tags als Keywords ein definitives “no go”, die Gefahr von Abwertungen seitens der Suchmaschinen ist mir persönlich einfach zu hoch.

  4. Camdy schrieb am 23. Juli 2009 um 00:20 Uhr:
    # 4

    Hallo Tanja,

    könntest Du mir bitte den Code vielleicht zusammenhängend per Mail schicken?! Irgendwie verstehe ich nicht welcher Code mit welchem zusammengehört und wo er hinkommt, also in der header.php nach und vor oder egal?
    Ich danke Dir

  5. Crazy Girl antwortete am 23. Juli 2009 um 09:08 Uhr:
    # 5

    @Camdy: Der erste und letzte gehört in die header.php, irgendwo vor dem </head> Tag. Der mittlere gehört in die functions.php, unten einfach dazu.
    Ich kann dir leider keine eMail mit einem zusammenhängenden Code in drei Teilen schicken, der in zwei verschiedene Dateien kommt ;-)

  6. Camdy schrieb am 23. Juli 2009 um 13:35 Uhr:
    # 6

    Okay, ich danke Dir! Aber zur functions.php habe ich da noch eine Frage: Der mittlere Code wird aber zwischen eingesetzt oder wie Du geschrieben hast unten drunter?

    P.S. Du musst mich ja komplett für bedeppert halten, aber ich habe überhaupt kein Sinn für php, etc. Und das mal nett formuliert.

  7. Camdy schrieb am 23. Juli 2009 um 13:37 Uhr:
    # 7

    Irgendwie wurde das der Code nicht übertragen. Ich meine am Ende der functions.php steht ?>. Dann noch davor oder eben hinten dran?

  8. Crazy Girl antwortete am 23. Juli 2009 um 16:20 Uhr:
    # 8

    Okidoki, also fangen wir mal ein bißchen von vorne an ;-)
    PHP wird gestartet mit <?php und beendet mit ?>. Im Fall der functions.php heißt das, dass das natürlich vor diese Ende dort reingehört. Wenn Du es dahinter schreibst wird es nicht funktionieren.

  9. Camdy schrieb am 23. Juli 2009 um 19:15 Uhr:
    # 9

    So, prima, Tanja, habe jetzt den Code eingefügt und mir das gleich mal im Quelltext anzeigen lassen. Vielen lieben Dank für Deine Hilfe!!!

  10. Crazy Girl antwortete am 24. Juli 2009 um 07:03 Uhr:
    # 10

    @Camdy: So schwer war das doch gar nicht, oder? Man muss sich nur trauen und ev. auch mal ein paar Fragen stellen. Am Anfang hatte ich auch immer Bammel da rumzuspielen und mittlerweile habe ich gar keine Skrupel mehr. Mehr passieren, als dass gerade mal kurz gar nichts mehr geht und ich das gerade geänderte wieder rückgängig machen muss, kann ja nicht. Ich freu mich auf jeden Fall, dass es geklappt hat ;-)

  11. Klaus schrieb am 8. Juni 2010 um 21:58 Uhr:
    # 11

    Hallo Tanja,

    das ist mein erstes Posting bei Dir, aber bestimmt nicht mein letztes (okay, ich bin jetzt zuerst mal für 3 Wochen in Irland – aber dann).
    Mit diesem Artikel hast Du mir auf jeden Fall schon mal sehr geholfen.
    Die “description” hatte ich nämlich noch auf meiner Todo-Liste.

    Also, vielen Dank für den Artikel und bis bald
    Klaus

  12. Crazy Girl antwortete am 9. Juni 2010 um 05:48 Uhr:
    # 12

    @Klaus: Na denn… Herzlich Willkommen und einen schönen Urlaub (falls es Urlaub ist) ;-)
    Du würdest mir einen größeren Gefallen tun, wenn Du Deinen Feed auf Volltext umstellst, so dass ich ihn auch abonnieren kann.
    Und es freut mich natürlich, wenn ich Dir helfen konnte :-)

  13. Klaus schrieb am 9. Juni 2010 um 10:24 Uhr:
    # 13

    Hallo Tanja,

    danke für den Tipp – und schon erledigt.
    Ich habe in Zukunft wohl noch viel zu lernen.
    Website schreiben ist eine Sache, WordPress ist wieder eine andere, ;-)

    Gruß
    Klaus

  14. Crazy Girl antwortete am 10. Juni 2010 um 06:10 Uhr:
    # 14

    Ahh… schön :-)
    Würde ich jetzt nicht unbedingt so stehen lassen sondern eher sagen “Bloggen und die Tricks von Wordpress zu kennen ist eine andere” ;-)

  15. Thomas schrieb am 17. Juni 2010 um 16:52 Uhr:
    # 15

    Hallo,

    kann es sein, dass “tp_keywords” nicht mit Seiten funktioniert.

    Ich habe alles eingebaut und in Beiträgen im Blog funktioniert es. Aber bei Seiten erhalte ich keine Meta-Tags.

    Danke für eine kleine Hilfe.
    Thomas

  16. Crazy Girl antwortete am 17. Juni 2010 um 19:30 Uhr:
    # 16

    @Thomas: Durch die erste Zeile des Codes “if ( is_single() )” geht hervor, dass das Ganze nur auf den einzelnen Beiträgen funktioniert. Wenn Du es für die Seiten ebenfalls haben möchtest, dann musst Du den Conditional Tag entsprechend abändern auf “if ( is_single() || is_page() )”.

  17. Thomas schrieb am 17. Juni 2010 um 20:55 Uhr:
    # 17

    Danke für die Antwort, aber Deinen Hinweis mit der Abfrage, ob eine Seite geladen ist, habe ich probiert. Genauso habe ich den Teil mit den Keywords auch mal aus der if-Abfrage rausgenommen. Beides leider ohne Erfolg.

    Zum Testen hab ich dann auch mal in

    if ($keywords !=”) {

    ein else eingebaut, um festzustellen, ob $keywords gefüllt ist. Das Ergebis: Es wird das ausgeführt, was in der else -Schleife steht. Also ist $keywords leer und meine Vermutung ist, dass das Problem in dem Code für die functions.php liegt.

    Mal schauen, ob wir dahinter kommen, wo das Problem ist.

  18. Crazy Girl antwortete am 19. Juni 2010 um 09:28 Uhr:
    # 18

    @Thomas: Ich habe ehrlich keine Ahnung wo da der Hund begraben sein sollte. Da ich die keywords als Funktion aber sowieso nicht mehr nutze, da sie außer Schönheitskosmetik keinen Wert haben, werde ich da auch keine Zeit mehr hinein investieren.

Einen Kommentar dazu schreiben:

Bitte beachtet die Datenschutzhinweise sowie zu Spammer Kommentaren.

Ich behalte mir das Recht vor, Kommentare entsprechend zu löschen oder editieren!

Kommentare mit Links, die nicht zu Blogs führen und/oder Keywords
als Namen verwenden sind nicht erwünscht und werden gelöscht!


Links beinhalten das rel=nofollow Attribut (Stammkommentatoren ausgeschlossen)!

Kommentare abonnieren ohne selbst einen Kommentar abzugeben: