Einträge in der Google-Trefferliste optimieren ("SERP Snippet Optimization") für Anfänger
am 05.05.2014 - 20:39 Uhr in
Bekanntlich verwendet Google in der Regel das Title-Tag und die Meta-Description für die Einträge in der Trefferliste, vgl. etwa http://www.seomofo.com/snippet-optimizer.html
Am besten lässt sich das nach meiner Erfahrung mit dem Modul Metatag steuern. Alternativ eignet sich für die Description auch das Modul Meta tags quick, hier kann man allerdings nicht die Title einstellen. Das geht wiederum mit dem Modul Page Title, allerdings - wenn ich das richtig sehe - nicht für jeden Node einzeln.
Bei Metatag kann man dem User das Recht geben, alles individuell für jeden Node einzustellen - wobei hier die Betonung auf alles liegt (siehe Screenshot). Den Normaluser überfordert die Fülle der Optionen.
Ich würde dem Nutzer gerne genau diese beiden Felder (Title & Description) zum Editieren anbieten - und sonst nichts. Im Grund genommen könnte man einfach alles andere von Metatag ausblenden.
Im Idealfall würden die Standardwerte (z. B. ausgegraut) schon drinstehen und man könnte die überschreiben. Das Sahnehäubchen wäre dann eine Vorschau des Google-Snippets, wie das z. B. das WordPress SEO Plugin von Yoast anbietet (siehe Screenshot).
Kennt jemand so ein Modul? Oder kann mir jemand so etwas programmieren?
Anhang | Größe |
---|---|
Screenshot_Meta_tags.png | 188.1 KB |
Screenshot_WordPress_SEO_Plugin_von_Yoast.png | 55.24 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Das könntest Du relativ
am 06.05.2014 - 19:51 Uhr
Das könntest Du relativ einfach mit einem eigenen kleinen Modul machen, hook_form_alter bietet dann die Möglichkeit, das Formular nach eigenem Belieben anzupassen, also z.B. je nach User Felder auszublenden. Ganz ohne programmieren geht das aber nicht.
Ein Anfang
am 06.05.2014 - 21:43 Uhr
Vielen Dank den Tipp mit dem hook_form_alter. Habe mich dazu ermuntern lassen, ein bisschen rumzuspielen. Das Modul ist noch nicht ideal, tut aber im wesentlichen, was es soll:
<?php
function rz_metatag_simple_form_alter(&$form, &$form_state, $form_id) {
global $user;
if (in_array('Redakteur', $user->roles)) {
switch($form_id) {
case 'article_node_form' :
case 'page_node_form' :
$form['metatags']['abstract'] = FALSE;
$form['metatags']['keywords'] = FALSE;
$form['metatags']['advanced'] = FALSE;
$form['metatags']['#description'] = FALSE;
break;
}
}
}
?>
Ungünstig ist sicherlich, den Namen der Rolle abzufragen, anstatt irgendwie über das Berechtigungssystem zu gehen. Und dann würde ich das am liebsten für alle Nodes machen und nicht jeden Inhaltstyp einzeln abfragen.
Na ja, und das bisschen jQuery bekomme ich dann auch noch irgendwie rein. ;-)
Wäre es eine Möglichkeit das
am 07.05.2014 - 00:21 Uhr
Wäre es eine Möglichkeit das Modul Meta Tag einfach zu kopieren und die kopie als eigenes Modul z.B. Semiadmin-Metatag zu implementieren.
So könntest Du recht einfach Funktionen rausnehmen, die deinem Nutzer nicht zur Verfügung stehen sollen.
In Bezug auf SEO solltest Du auch den URL-Alias im Auge behalten.
Ich persönlich würde solche Recht nur für eine eigens dafür eingerichtete Subdomain vergeben. Sonnst könnte Google dein Projekt, wegen des Fehlverhaltens deiner Nutzer, dein Projekt ganz schnell ins Nirvana schießen.
Guck Dir doch mal Domain Access an.
Gruß Frank
Immer schön um die Ecke denken.
Die Ruhe sei den Menschen heilig, nur bekloppte haben's eilig.
Wieso jQuery??? Du kannst
am 07.05.2014 - 08:27 Uhr
Wieso jQuery???
Du kannst auch nach der Rollen-Id fragen:
if (array_key_exists(2, $user->roles) )
wobei 2 jetzt beispielhaft die Rollen-Id ist.
Es ist auch besser, nur den Zugriff auf das Element zu verhindern, so kann es zu Validierungsproblemen kommen, weil Element aus dem Formular entfernt werden (hat zumindest bei mir bei irgendeiner Konstellation mal zu Problemen geführt):
$form['metatags']['abstract']['#access'] = FALSE;
Ansonsten wüsste ich jetzt nicht, was daran nicht ideal sein sollte - so macht man das mit Drupal ;-)
Wieso mein Vorredner da nun gleich eine Subdomain nutzen will, ist mir schleierhaft, aber irgednwie scheint drruebe ja für alles eine Subdomains einzurichten :-D Nein nein, genau so wird das gemacht, alles andere ist mit Kanonen auf Spatzen schießen. Ein Modul zu kopieren ist nebenbei bemerkt gar nicht so einfach, weil dann ja jede Funktion innerhalb des Moduls umbenannt werden muss - viel Spaß dabei.
Vielen Dank für die Unterstützung!
am 07.05.2014 - 10:20 Uhr
Vielen Dank für die Unterstützung!
@drruebe: Das mit dem Ausblenden der nicht benötigten Felder scheint mir schon genau das richtige zu sein und gefällt mir besser, als ein Modul zu kopieren. Das mit den Domains ist kein Problem - passiert alles auf der Domain des Kunden. URL-Aliase sind voreingestellt und können auf Wunsch verändert werden.
@tobi-berlin: Rollen-Id ist schon mal besser als Rollen-Name. Noch hübscher wäre allerdings ein Häkchen bei den Rollen-Berechtigungen in der Art "Use Simple Meta Tag".
Das mit dem jQuery bezog sich auf die Vorschau - vgl. oben Screenshot Nr. 2.
Eigentlich ist das ändern
am 07.05.2014 - 15:36 Uhr
Eigentlich ist das ändern recht simpel. Ist etwa so wie beim Subthemen.
Es gibt ja in jedem halbwegs vernünfitigem Editor die Möglichkeit suchen und ersetzen (alles ersetzen).
So hast Du auf jeden Fall die volle Zugriffsrechtesteuerung und brauchst selbst nicht programmieren.
Für mich wäre das das grauen schlecht hin. Mal davon abgesehen, dass ich vom pro. kaum eine Ahnung habe, wäre mir die Gefahr zu groß eine Hintertür aufzumachen. (Wenn ich da mal an die ganzen Wordpress-geschädigten im G.-Webmasterforum denke)
Gruß Frank
Die Ruhe sei den Menschen heilig, nur bekloppte haben's eilig.