Closed ghost closed 12 years ago
You can add arbitrary tags to the page header in the page layout.
--- Originally created on August 26th, 2010, at 03:15pm
Hi Leo,
Bu that would mean having a unique page layout for each page that you need to implement rel="canonical" for.
It really needs to be a field in site structure where you can enter the relevant url. It could be a new page type?
Duplicate content is a real SEO "faux pas", Wordpress Joomla, Magento have all recently included this functionality.
Please can you reconsider?
--- Originally created by Doublespark on August 26th, 2010, at 03:25pm
you can write an extension that adds this field to the regular page and to the TL_HEAD section prior to output of the page.
The big problem is, how do you want to specify the canonical URL, next problem is, what if several other modules want to add a canonical page? Let's say you have several lister modules on the same page, each of those will want to specify the default sort order as canonical, this will result in "the last one winning" or even worse, multiple pages specified as canonical. Therefore a general solution is not possible (at least in my opinion) and it is therefore up to you to specify the canonical the way you need it. Either by adding it to the fe_page.tpl, adding it to the page layout or by writing a small extension that adds the field to the Page DCA and renders it accordingly.
--- Originally created by xtra on August 26th, 2010, at 03:38pm
First of all, you can use insert tags in the page layout to dynamically add the URL. Second of all, Contao already generates canonical URLs, therefore the feature is not required at all and will not be added to the core. You can add it as an extension though if you really think you need it.
--- Originally created on August 26th, 2010, at 03:54pm
--- Originally closed on August 26th, 2010, at 03:15pm
I have a totally different view. What about external pages? ;-(
...Contao already generates canonical URLs... I never saw that, can you give me an example?
Why do you think the URLs are not canonical?
Contao macht leider viele Inhalte unter zwei oder mehr URL's erreichbar (einfaches Bsp. die Home-Seite) wenn du das meinst.
Ich rede aber vom Canonical-Bereich im Head.
<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
Wo es darum geht, zwei Seiten mit dem selben Inhalt als kanonisch zu markieren (SEO). Die Doublette kann auf einer externen oder internen Seite liegen. Wie soll ich jetzt eine externe oder interne Seite im Contao als kanonisch markieren?
Ich würde stark empfehlen das canonical-Tag im _fepage hinzuzufügen. Leo, du hast Recht, dass Contao saubere Urls erstellt. Contao stellt trotzdem unter vielen unterschiedlichen Urls den gleichen Inhalt zur Verfügung:
Google weiß somit nicht auf welche Seite er die Nutzer schicken soll und vergibt schlechtere Rankings.
Das Problem lässt sich in der Zwischenzeit ganz leicht lösen (Plugin, etc. sind alles nicht nötig): 1. Erstelle eine Datei _fe_pagecustom.html5 in deinem Template-Ordner mit folgendem Inhalt:
<!-- Template fe_page_custom.html5 -->
<?php $this->extend('fe_page'); ?>
<?php $this->block('meta'); ?>
<?php $this->parent(); ?>
<link rel="canonical" href="{{env::url}}/{{page::alias}}.html" />
<?php $this->endblock(); ?>
2. Unter Layout > Themes > Seitenlayout bearbeiten > Experten-Einstellungen > Seitentemplate _fe_pagecustom auswählen und speichern 3. Fertig, ab jetzt wird jetzt Seite von Google unter genau einem Namen indiziert.
Google weiß somit nicht auf welche Seite er die Nutzer schicken soll
Die Frage ist aber, wie Google von den "falschen" URLs überhaupt erfährt? Wenn ich z.B. Seitenaliase nicht explizit deaktiviere, generiert mir Contao niemals eine URL im Format <domain>/<id>.html
. Wie sollte also Google an diese URL gelangen?
Beispiel 1: Die Startseite ist unter example.org und unter example.org/home-de.html verfügbar
Verwende für deine Startseite den Alias index
, dann passiert das nicht ;-)
<link rel="canonical" href="{{env::url}}/{{page::alias}}.html" />
Das ist falsch!
Damit killst du jede Reader Page, bei einer Reader Page wäre die kanonische URL nämlich: <link rel="canonical" href="{{env::url}}/{{page::alias}}/{{input::auto_item}}.html" />
@leofeyer können wir die ID URLs nicht kicken? Vielleicht über eine Checkbox analog zu Keine Seitenaliase verwenden
dann halt Keine numerischen IDs in der URL verwenden
?
@leofeyer können wir die ID URLs nicht kicken? Vielleicht über eine Checkbox analog zu Keine Seitenaliase verwenden dann halt Keine numerischen IDs in der URL verwenden?
Nicht so einfach. Die nummerischen IDs werden benutzt falls das Feld "alias" leer ist. Was immer der Fall ist wenn du ne Seitenstruktur kopierst...
@aschempp ganz ehrlich, diese Seiten sind mir in dem Moment egal weil
Ich würde die Seite also einfach nicht verfügbar machen (mit einem Hinweis im Backend).
Ich würde die Seite also einfach nicht verfügbar machen (mit einem Hinweis im Backend).
Das wäre aber ein Major BC-Break. Viel einfacher wäre es, die ID zu ignorieren falls ein Alias vorhanden ist.
@aschempp deshalb soll das ja als optionale Checkbox in die Systemeinstellungen, dann wäre es kein BC Break ;-) Aber die Idee, die ID zu ignorieren falls ein Alias vorhanden ist, wäre ebenso ein BC Break :-P
Das ist leider immer noch nur eine halbe Lösung, die Startseite wird dann von Google immer noch bei mehrsprachigen Seiten doppelt indiziert.
@rolandschuetz wieso das? Die lauten doch dann /de/
oder /en/
oder /fr/
? Die werden doch dann nicht doppelt indiziert?
@tristanlins Wenn ich eine Startseite unter z.B. example.org habe, zweigt diese je nach Browser die Seite in z.B. DE or EN an. Zusätzlich gibt es dann noch example.org/home.html und example.org/startseite.html. Somit wird Englisch zweimal indiziert, einmal mit und einmal ohne Seiten-Pfad. (Die Option die Sprache zur Url hinzuzufügen ist ja optional.)
@rolandschuetz Wie schon weiter oben von @tristanlins erwähnt: Verwende für die Startseite den Seitenalias "index", damit Contao für diese Seite(n) keinen Alias in der URL generiert.
@rolandschuetz gerade zur Lösung dieses Problems ist die Option "Sprache zur URL hinzufügen" da.
Deaktivierst du diese Funktion, kannst du meines Wissens (müsste ich aber testen) nur einer der beiden Seiten den Alias index
setzen.
D.h. du hast example.com/
für Deutsch und example.com/home.html
für Englisch (oder umgekehrt, je nach dem welche Seite den Alias index
hat). Aktivierst du "Sprache zur URL hinzufügen", dann kannst du bei beiden den Alias index
setzen und hast die bereits oben genannten Startpunkte example.com/de/
und example.com/en/
. => Problem gelöst! :-)
Ich finde eben genau diese lange Diskussion zeigt, dass es hier viele Möglichkeiten gibt etwas falsch zu machen. Ich glaube Nicht-Entwickler oder Leute ohne SEO-Erfahrung wissen von alle dem nichts und die Chance hier etwas falsch zu machen ist sehr groß. Contao kann also (abgesehen von den ids) richtig konfiguriert werden, die Chance es falsch zu machen ist aber doch noch recht groß.
Bei SEO was falsch machen? :dancers:
SEO ist solange richtig bis was anderes definiert wurde... Lasst es draußen. Leute die SEO und Canonicals nicht kennen vermissen es nicht und brauchen es auch nicht.
Der Rest weiß was er tut und kann es selber einbinden oder auch nicht...
@rolandschuetz dafür gibt es Dokumentation - die mittlerweile sogar wieder richtig brauchbar ist - und uns, die Community ;-) Es gibt KEIN System bei dem du nicht etwas falsch machen kannst. Aber die Flexibilität ist notwendig, weil kein Projekt ist wie das andere.
BTW obwohl ich schon seit 2009 bei Contao bin, kenne ich den index
Trick erst seit letztem Jahr :-D
Ich halte es für keine optimale Lösung, gerade dass du 4 Jahre Contao genutzt hattest und immer noch im Sinne von Google "Fehler" gemacht hattest zeigt meiner Meinung nach, dass hier Optimierungsbedarf besteht.
Ich scheine aber hier eine andere Meinung zu haben als die Mehrheit, es wird also so bleiben.
Viele Wege führen zum Ziel, ich habe mich letztlich niemals um dieses "Problem" gescherrt, weil es ohnehin keine Auswirkung auf das Ranking hat. Das "Duplicated Content" Phantom ist und bleibt ein Phantom. Ich konnte bisher niemals eine verbesserung / verschlechterung des Rankings dadurch feststellen.
@tristanlins Die offiziellen Aussagen von Google behaupten immer noch das Gegenteil. Google produziert eine Menge an Dokumentation zum Thema Duplicated Content und das GWO Team macht regelmässig Videos zum Thema, in dem sie sagen wie wichtig dies ist. Die Leute bei Google sind wirklich smart, ich glaube also dies ist ein wichtiges Thema.
Ich denke es gibt einfach zu viele Möglichkeiten wie man etwas unabsichtlich falsch machen kann. Ich denke, in den meisten Contao Installationen sind Seiten unter mehreren Urls verfügbar.
Wie wäre es schlicht und einfach mit einem Freifeld in den Seiteneigenschaften, das genutzt werden kann um ergänzende, individuelle Angaben zum Header einzelner Seiten einzufügen? Diejenigen, die es nutzen wollen, können darin dann canonical-Angaben oder aber auch anderes Zeug wie z.B. META-property Angaben (Twitter, facebook, etc.) oder sonstige META-/LINK-/etc-Angaben einfügen.
Wenn es also für all diese Zwecke einfach eine optionale Textarea in den Seiteneigenschaften gäbe, wäre allen geholfen. Kein BC-Break, nichts aufgedrängtes für Leute die es nicht wollen, aber volle Flexibilität für diejenigen die es benötigen.
Und ja, bitte in den Seiteneigenschaften, denn es geht explizit um Felder die individuell pro Seite sind (daher nicht im Seitenlayout einfügbar).
Hier mal eine Auswahl beliebter Seiteneigenschaften für den Header, damit ihr versteht, weshalb ich ein Freifeld für sinnvoll halte. Natürlich heißt es nicht, dass man die alle einsetzt, nur als Beispiel was es u.a. so gibt:
<link rel="canonical" href="">
<meta name="robots" content="noodp">
<meta name="page-topic" content="">
<meta name="page-type" content="">
<meta name="geo.country" content="">
<meta name="geo.region" content="">
<meta name="geo.placename" content="">
<meta name="geo.position" content="">
<meta name="ICBM" content="">
<meta property="og:title" content="">
<meta property="og:type" content="">
<meta property="og:image" content="">
<meta property="og:url" content="">
<meta property="og:description" content="">
<meta property="twitter:title" content="">
<meta property="twitter:card" content="">
<meta property="twitter:creator" content="">
<meta property="twitter:image" content="">
<meta property="twitter:url" content="">
<meta property="twitter:description" content="">
Sagte ich lasst es draußen? https://github.com/contao/core/issues/2474#issuecomment-52542248
Macht es rein. SEO Experten rennen einem damit die Türen ein... @NinaG Ob ich an dieser stelle ein freies Textfeld machen würde: Jein, aber die Möglichkeit den canonical frei zu definieren finde ich eine gute Idee.
@Zeromax Nur weil Leute die canonials nicht kennen es nicht vermissen, heißt nicht dass sie es nicht brauchen. SEO ist leider immer noch ein Argument für Wordpress und gegen Contao. Wordpress macht hier automatisch alles richtig.
@rolandschuetz SEO oder hauptsächlich GEO letzten Endes gibt es immer ein anderes Steckpferd das gerade geritten wird. Zu Wordpress sag ich lieber mal nichts... Aber du hast schon recht man kann es auch für die einbinden welche es nicht kennen. was aber nach wie vor nicht davor schützt, dass es falsch angewendet wird.
Könnte man nicht bereits ergänzende Meta-Informationen über das neue Template-System lösen? Und mittels HTML Inhaltselement Meta-Informationen verteilen? Also vllt so in diese Richtung
<?php $this->extend('fe_page') ?>
<?php $this->block('meta'); ?>
<?php echo $this->html; ?>
<?php $this->endblock(); ?>
Hierzu finde ich diese Übersicht ganz gut, was ein modernes CMS in Bezug auf SEO/Social/etc. leisten sollte (unter der Grafik gibt es die dazu gehörenden Beschreibungen + Links u.a. zu Google-Anleitungen: http://www.stateofdigital.com/cms-seo-requirements-checklist-2015-edition/
Einige Punkte erfüllt Contao, bei anderen hinkt es hinterher. Aus meinem Agenturalltag kann ich bestätigen, dass moderne Kunden (also die mit etwas Ahnung) nach diesen Dingen fragen. Von den Dingen die Contao noch nicht (vollständig) im Core hat, fragen meine Kunden am meisten nach:
- Social Tags (Open Graph, Twitter, etc.)
Core :)
Core :)
ja, ich weiß ;-)
Vielleicht will sie @leofeyer ja integrieren?! ;-)
In den nächsten Wochen werden wir unsere Erweiterung noch im die spezifischen Twitter und Google+ Tags ergänzen
Please can we have a new field in site structure that gives the ability to add a rel="canonical" meta tag to the header?
More info on rel"canonical" here:
http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=139394
--- Originally created by Doublespark on August 26th, 2010, at 03:06pm (ID 2474)