WordPress SEO ohne Plugin: Meta-Description mit Benutzerdefinierten Feldern implementieren

Es muss nicht immer ein Plugin sein: Auch ohne umständige Plugins kann für jede Seite eine individuelle Meta-Description ausgegeben werden.

Im nachfolgenden zeige ich die Einbindung der Meta-Descriptions mithilfe von Benutzerdefinierten Feldern.

Was ist die Meta Description?

Die Meta Description ist ein html-Tag, dessen Inhalt von Suchmaschinen meist als Kurzbeschreibung des Inhalts angezeigt wird. Mit einer gut formatierten Meta Description kannst du mehr Besucher über Suchmaschinen anlocken. Ich habe dazu einen Beitrag verfasst, der sich mit der Suchmaschinen-Optimierung für WordPress-Artikel befasst.

Wenn du kein SEO-Plugin zur Pflege der Meta-Tags verwendest, wird ein unformatierter Auszug deines Artikels in den Suchergebnissen angezeigt.

Was sind Benutzerdefinierte Felder?

Benutzerdefinierte Felder sind zusätzliche Eingabemasken, die im Beitragseditor eingeblendet werden können und anschließend mit Funktionen im Frontend geladen werden können.

Zu allererst musst du zum Beitrags-Editor wechseln und Benutzerdefinierte Felder in der oberen Optionsleiste aktivieren:

WordPress Custom Fields aktivieren

Die dazugehörige Funktion: Meta-Description im Frontend laden

Bitte füge die nachfolgende Funktion in die functions.php deines Child – Themes oder als zukunftssicheres Modul ein, damit diese beim Theme-Update oder -Umzug nicht verloren geht.

function add_custom_meta_description() {
global $post; ?>

<meta name="description" content="<?php
    if ( get_post_meta($post->ID, "description", true) !='' )
        echo get_post_meta($post->ID, "description", true);
    ?>"/>
<?php }

add_action('wp_head', 'add_custom_meta_description', 1);

Meta-Description eingeben

wordpress-seo-meta-description-custom-fields

Nun kannst du unter jedem Beitrag bzw. Seite den Namen description eingeben – Der Wert wird dann als meta description eingefügt. Diese Vorgehensweise funktioniert natürlich auch mit Open-Graph Attributen.

WordPress SEO ohne Plugin? Wer machts?

Ich habe bisher nur bei einer kleinen Portfolio-Seite alle SEO-relevanten Attribute über Custom Fields hinzugefügt – für größere Projekte empfehle ich aber immer gern ein passendes SEO-Plugin.

Wie siehts mit dir aus? Verwendest du ein Plugin für die Suchmaschinen-Optimierung deiner WordPress-Site?

Aktualisiert am 17.08.2015

Die Code-Schnipsel verursachten einen Error und eine Notice und funktionierten folglich nicht, da die WordPress-interne Variable $post nicht bekannt war.

Code-Schnipsel vom 12.03.2017

Carsten wollte, dass bevorzugt der Auszug (excerpt) eines Beitrages genommen wird und bei nicht vorhandener description keine meta description ausgegeben wird:

38 Antworten auf „WordPress SEO ohne Plugin: Meta-Description mit Benutzerdefinierten Feldern implementieren“

  1. Hallo, toller Beitrag. Ich habe es auch direkt versucht umzusetzen, hat aber leider nicht funktioniert. Ich möchte nämlich ohne Seo plugin arbeiten.

    Lg

    1. Hallo Dirk,

      das ist mir vor einem Monat bei einer Kundeninstallation auch aufgefallen.

      Ich werde den Beitrag aktualisieren. Währenddessen, schau doch mal bei wpbeginner.com – dort finden sich auch Beiträge dazu!

      Einen schönen Start in die Woche und liebe Grüße,
      Pascale

  2. So, nun habe ich es wieder getestet: es erscheint in benutzerdefinierten feld meta_description, nur ausgelesen wird es nicht wenn ich die Descriptionbeschreibung einfüge 🙁

  3. Ich hatte für den Beitrage folgendes in Heder.php eingefügt – liest automatisch aus – simple Lösung – für description und keywords:

    <meta name="description" content="post_excerpt; if ($excerpt == “) { $excerpt = $post->post_content;} echo esc_attr(wp_html_excerpt(strip_shortcodes($excerpt), 200)); ?>“ />
    <meta name="keywords" content="name . ‚, ‚;
    }
    }
    ?>“ />
    <meta name="news_keywords" content="name . ‚, ‚;
    }
    }
    ?>“ />

    Möchte für Seiten nicht automatisch auslesen lassen, sondern selbst bearbeiten. Wie könnte ich die Abfrage ändern, das meta_description von der benutzerdefinierte feld auslesen kann.

    Libe Grüße
    Didi

    1. Achso!

      Dann füge doch folgendes hinzu:

      function add_custom_meta_description() {
      global $post; ?>
      
      ID, "description", true);
          ?>"/>
      < ?php }
      
      if ( is_page() ) {
      add_action('wp_head', 'add_custom_meta_description', 1);
      }
      

      Damit wird das Meta-Description Feld nur auf Seiten ausgelesen.

      Die Spamfilter machen den Code kaputt, ich schicks dir per Mail..

  4. Hi,
    eine weitere Frage: wie könnte ich den Schlagwörter Bereich auch für Seiten aktivieren, wie auch bei den Beiträgen?
    Somit bräuchte ich kein Benutzerdefiniertes Feld für Keyword/Schlagwörter und es würde direkt in die Datenbank abspeichern und direkt auslesen mit der Änderung was ich im Header.php eingefügt habe würde es super funktionieren.

  5. Ich bins noch einmal.
    Bei der Übersicht der Beiträge wird das Descriptionfeld angezeigt, aber der Eintrag in die Description nicht angezeigt. Muss das noch irgendwie aktiviert werden oder wo kann ich kontrollieren, dass die Description angenommen wird?

    1. Moin Hajo,

      Ich werde die Code-Schnipsel heute nochmal testen. Nachschauen kannst du das eigentlich, indem du auf der entsprechenden Seite im Frontend den Quelltext anschaust.

      Ich aktualisiere den Beitrag an diesem Wochenende.

  6. Der link auf „zukunftssicheres Modul“ bringt nen 404er weil der link irgendwie anders heißt, kannst Du noch ändern und danke für die super Anregung 🙂

  7. Moin Moin !
    Da hätte ich noch einmal eine Frage zu !
    Besteht die Möglichkeit in der Description eine Variable zu integrieren ? also kann ich in der description irgendwie php Code eingeben und diesen dann per echo ausgeben ?

    1. Moin Mike,

      PHP-Code kannst du in der header.php-Datei in deinem aktiven Theme hinzufügen und anpassen. Wenn du mir genauer sagst, worum es geht, kann ich dir sicher helfen!

      Grüße,
      Pascale

  8. Hi Pascale !
    Daran habe ich auch schon gedacht …. nur leider weis ich nicht wie ich den Code genau an der stelle einfügen kann wo ich ihn brauche …Dsa Problem ist nämlich derzeit das ich Yoast benutze für meine Metatags…..
    Haste nen Plan ob das damit auch gehen würde?
    Derzeit sieht meine Description ungefähr so aus: (Ist nur ein Beispiel)

    „Derzeit sind in meinem Blog viele Beiträge vorhanden.“
    sollte später werden:

    Derzeit sind in meinem Blog 34 Beiträge vorhanden.

    Wie gesagt mit dem kann ich mir vorstellen das es mit deiner Variante möglich ist…. Allerdings habe ich schon extrem viel selber am Template und auch sonst sehr sehr viel selber Programmiert was mich jetzt schon extrem viel Zeit kostet um alles so hin zu bekommen wie ich es benötige …. Daher würde ich ungern auf eine andere Art meine Metatags eingeben…..

    (Habe auch schon versucht in der DB direkt an der Stelle wo die Metatags von Yoast gespeichert sind php Code ein zu fügen …. ging aber leider nicht ….?!

  9. 2 Sachen …..
    1. Wenn ich hier auf deiner Seite einen kommentar verfasse …. und auf abschicken klicke wird die Seite nicht neu geladen …..

    2.
    Habe jetzt mal deine Version hier oben getestet … bei mir kommt dann nur :

    leider aber nicht meine description….
    Viel kann ich da doch nicht falsch gemacht haben oder ?!

    1. Du solltest für diese Zwecke nicht die im Artikel genannte Methode verwenden.

      Verstehe ich dich richtig – du möchtest auf der Startseite (woanders machts ja wenig Sinn) im -Tag die Anzahl deiner Beiträge ausgeben?

  10. Ne …. also ich habe natürlich für jeden meiner Beiträge eine eigene Meta desctiption erstellt. Aber ich möchte gerne in jeder Description auf diesen wert zugreifen können….
    weiteres Beispiel einer Description
    =“Nasenverkeinerung Dazu gibt es noch 34 weitere Beiträg auf diesem Blog“
    Ist halt nur als Beispiel !
    Auf einer anderen Seite würde dann z.B. stehen
    =“Nasenverlängerung – Wir haben in diesem Forum zu diesem thema nicht nur diesen Beitrag verfasst… Es gibt noch 34 ähnliche“

    Mir geht es halt darum das der Suchende z.B. bei google in der Description schon sehen kann das es noch viele weitere Beiträg zu diesem thema gibt ….

    1. Alles klar, so holst du dir den Wert erstmal.. Code anzeigen is hier bei WordPress nicht so sahnig:

      https://gist.github.com/PascaleBeier/440be44730c4f1ac7d85d2c444dd0efc

      Dann solltest du einfach mal nach WordPress SEO Filtern googlen – dann kannst du über die functions.php den verlinkten Code sicher an bestehende meta descriptions anhängen.

      Schau mal in der Dokumentation von denen nach Filtern, vielleicht WordPress SEO Meta Description filters oder so googeln.

  11. mmmhhh… naja wird wohl doch nicht so ganz passen …. Ich möchte ja gerne für jeden Beitrag die Variable frei verwenden können… Also nicht nur für die Startseite…. Es wäre also eigentlich nur dann möglich, wenn ich im Description text php werwenden könnte …..

  12. hey hey hey …. Da geht was …… Glaube habe gerade das passende direkt im plugin gefunden ! GEIL ! muss jezt aber leider los ! (es ist 22:45 Uhr …. machste nie feierabend ? )

    1. Moin,

      ja geil! 😀 Manchmal isses dann doch so einfach. Lass auf jeden Fall mal einen Link zu deinem Blog da! 🙂

  13. Zu früh gefreut … Leider gibt es nur Standard Variablen die man nutzen kann…. ich selber brauche aber eine für mich angepasste ( Nur Anzahl an Beiträgen aus ganz bestimmten Kategorien) Aber warten wir mal ab ob ich es nicht doch noch schaffe yoast das bei zu bringen…..
    (Mein Blog ist derzeit noch etwas unbeholfen …. will warten bis er zumindest meine grundanforderungen erfüllt …

    1. Das ist schade.

      Allerdings auch nebensächlich. Das sind doch Details, die du auch später noch feinjustieren kannst (und solltest). Frag doch mal im Yoast Forum nach – Ich kann und möchte dir auch nicht mehr an die Hand geben als der Hinweis mit der Suche nach einem entsprechenden Filter und die Methode, die Anzahl der Blog-Artikel auszulesen.

      Nicht böse gemeint 🙂 Aber an deiner Stelle würde mich das weniger interessieren.

  14. Hast recht ….. Allerdings glaube ich das ich für das Ranking somit eine bessere Chance hätte.
    Aber trotzdem bitte noch eine Frage zu o.g. Code bzw. wie man diese Benutzerdefinierten Felder erstellt.
    Ich habe ja bei jeder Seite bzw. Beitrag die Möglichkeit ein Feld zu erstellen. Kann ich irgendwo auch angeben das für jede Seite bzw. Beitrag direkt das Feld vorhanden ist ohne das ich es jedes mal für eine Seite oder einen Beitrag extra erstellen muss ?

  15. Naja ich habe extrem viel selber gebastelt an WordPress und vieles muss ich jetzt schon in meinen Beiträgen in verschiedene Datenbanken und Tabellen händisch eintragen …. Aber dafür ist es dann ganz genau so wie ich es möchte … Aber für jeden Beitrag brauche ich jetzt schon mind. 10 Minuten extra …. Alleine dafür …. Und ich möchte halt so viel wie möglich automatisch machen lassen … und wenn das Feld dann einmal da ist, dann kann ich es auch nicht so schnell vergessen das Feld auszufüllen ….

  16. YEHA ! ALLES LÄUFT ! LOL weis auch nicht warum es mir anfangs nicht in der liste gezeigt wurde !
    ABER JETZT IST ES DA ! JUHU ! vielen Dank noch einmal (melde mich wenn alles steht ! )

  17. Ein toller Tipp, genau was ich gesucht habe. 🙂 Es geht eben auch ohne Plugins.

    Aber ich frage mich, ob folgendes machbar ist und wenn ja, wie ich den Code in functions.php anpassen müsste:

    Ich habe für alle Beiträge eigene manuelle excerpts erstellt (das bot sich an, weil die automatische Generierung auch Überschriften mit verwendet – das sah manchmal recht verhunzt aus).

    Gibt es einen einfachen Weg ohne zusätzliches Feld (wobei ich dieses neue Feature gerne beibehalten würde, v.a. für die Titelseite), also automatisch, den Inhalt der manuellen excerpts zu übernehmen und diese als Meta-Tag „Description“ einzustellen?

    Sozusagen: Falls ein manuelles excerpt vorhanden ist, verwende dieses, ansonsten den Inhalt des zusätzlichen Felds „description“.

    Würde mich echt freuen wenn Du mir helfen könntest!

    Carsten

  18. Ich nochmal. Habe gerade gesehen, daß in den Listings für Kategorien oder Schlüsselbegriffe (WP nennt das glaube ich Taxonomy), das Metatag „description“ zwar erscheint, aber nicht geändert werden kann.

    Ist es möglich, den Code irgendwie abzuändern, nach dem Motto: Wenn kein Feld „description“ (oder kein Inhalt dafür), dann füge kein Meta-Tag „description“ ein?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.