Alternat Link auf die Seite selbst fehlt

  • Hi,

    Ich habe eine Website mit 2 Sprachen. DE+EN. Joomla 3.9.28 PHP 7,4

    Alles funkioniert zu meiner Zufriedenheit. Menus/Kategorien/Beiträge/Module alles 2x angelegt und miteinanderverknüpft.


    Beim SEP Check der englischen Seite bekomme ich die Nachricht : Der Alternate Link auf die Seite selbst fehlt

    Englische Seite :

    Code
    <link href="https://www.polymersynthese.de/de/produkte.html" rel="alternate" hreflang="de-DE" />
    	<link href="https://www.polymersynthese.de/en/products.html" rel="canonical" />

    Bei der deutschen Seite sieht es so aus:

    Code
    <link href="https://www.polymersynthese.de/de/" rel="alternate" hreflang="de-DE" />
    	<link href="https://www.polymersynthese.de/en/" rel="alternate" hreflang="en-GB" />

    Ich habe viele Beiträge zu diesem Thema hier gefunden, aber so richtig geholfen hat keiner. Habe es so gemacht wie tdotcom es vorgeschlagen hat.

    In der index.php vom Template das hier eingebaut:

    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="en" />
    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="de" />

    Wenn ich das mache sagt SEO:

    Alternate Link fehlerhaft.


    Hat jemand von euch eine Idee wie ich das hinbekomme?


    Vielen Dank

  • Hast du die Einstellungen im Plugin "Plugins: System - Sprachenfilter" korrekt? Bei einer "meiner" Seiten steht da alles auf JA (wohl Standardeinstellungen, da ich da nie was geändert habe) und ich sehe überall 3 altenate-Links.


    de-DE

    en-GB

    x-default


    Und das scheint mir falsch

    PHP
    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="en" />
    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="de" />

    weil

    Code
    JURI::current();

    ja den Link der aktuell geöffneten Seite anzeigt, was ja für die in der anderen Sprache sicher falsch ist. Also z.B. deutscher Link in der hreflang=en,


    Außerdem brauchst das

    Code
    $myabsoluteurl=

    darin nicht, nur nebenbei.

  • Danke für die Nachricht.

    Bei mir im Plugin alles auf Ja, nur URL-Sprachkürzel entfernen stand auf nein. Habe ich jetzt geändert.


    Bei den deutschen Seiten bekomme ich keine SEO Nachricht, aber bei den englischen.

    Code
    <link href="https://www.polymersynthese.de/de/produkte.html" rel="alternate" hreflang="de-DE" />
    	<link href="https://www.polymersynthese.de/en/products.html" rel="canonical" />

    Hat sich nichts verändert.


    Für einen nicht PHP Laien wie mich:

    Was soll ich Deiner Meinung nach in die index.php des Templates eintragen.


    Vielen Dank

  • In der index.php vom Template das hier eingebaut: ....

    Brauchst du nicht manuell machen, da es bei richtiger EInstellung automatisch gemacht wird, siehe #2. Bei mir sehe ich dann auch diese 3 Links (bei 2 Sprachen).


    EDIT: Hat sich gerade überschnitten. Meine Einstellungen:

    "Sprachauswahl für neue Seitenbesucher" steht auf "Seitensprache".

    "URL-Sprachkürzel entfernen" habe ich auf "Nein".

    "X-default-Sprache" habe ich auf "Standard-Website-Sprache"

    Alles andere auf "ja".


    Beachte auch, was oben im Plugin noch so an Hinweisen geschrieben steht!

  • Bei den Einstellungen stimmen deine Codes aus #1 aber gar nicht. Weil, angenommen, Standardsprache ist DE, das

    Code
    /de

    gar nicht in den Codes erscheinen sollte, falls die Links tatsächlich vom Joomla-Plugin kommen, weil du hast ja "Sprachkürzel" entfernen gewählt. Bist sicher, dass da nicht noch was anderes reinpfuscht? Template, Erweiterung? Ist das ein Protostar-Template? Link zur Seite?

  • Jetzt bin ich gänzlich verwirrt:

    - Sprachkürzel entfernen steht auf JA. Trotzdem sind sie nicht entfernt.

    - Wo kommt der Canonical-Link her? Joomla-Standard hat so was nur, wenn man z.B. im SEF-Plugin (zu 99% unnötig und störend und "falsch") was eingetragen hat. (Wobei bei mir beim Testen gar kein Canonical angezeigt wird ;) )


    Jedenfalls kann ich bestätigen, dass sobald im SEF-Plugin eine Domain eingetragen wird, die der aufgerufenen Seite exakt entspricht, einer der alternate-Links verschwindet.


    Also z.B.

    Domain-Teil der URL in der Browserzeile https://example.com

    und exakt der Domain-Teil im SEF-Plugin.


    Natürlich von mir mit den Domains der Testseite geprüft und nicht example.com.


    Ob das ein Bug ist oder nicht, müssen andere entscheiden. Vielleicht steckt ja auch ein Sinn dahinter?


    Das hat sich gelöst

    Code
    Wobei bei mir beim Testen gar kein Canonical angezeigt wird

    Ich habe ein eigenes Plugin, das Canonicals radikal entfernt.


    Ändert aber am obigen Ergebnis nichts bzgl. was im SEF-Plugin eingetragen.

  • SEF-Plugin aktiviert.

    Aber da kann ich kine Eintragung machen. Feld ist grau.


    Sprachkürzel entfernen steht jetzt wieder auf "JA"


    Hatte zwischenzeitlich die Auswirkungen dieser Eintragung getestet.

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von stbrandon mit diesem Beitrag zusammengefügt.

  • Aber da kann ich kine Eintragung machen. Feld ist grau.

    Sollst ja auch nix eintragen ;) Bei mir ist das auch grau, aber ich könnte was eintragen.


    Und SEF-Plugin MUSS ansonsten aktiviert sein!


    Wenn nix drinsteht, bleibt die Frage, wo das Canonical in der Seite herkommt. Z.B.:

    Code
    <link href="https://www.polymersynthese.de/produkte.html" rel="canonical" />

    Manche Templates machen das hart-kodiert. Aaaaber ich habe keine Ahnung, ob das und wie zu deinem Problem führt. Sehe das nur mit dem SEF-Plugin.

  • Aber keine Möglichkeit einer Eingabe.

    Na ja, dann muss ja noch irgendwas anderes am Werkeln sein. Das ist ein Core-Plugin und die Eingabe ist erlaubt. Aber natürlich kann ein anderes Plugin die Eingabe sperren, was ziemlich dämlich ist. Das ist mit Sicherheit kein Core-Plugi, sondern irgendwas zuinstalliertes.


    Die Frage nach dem Canonical hast du noch nicht beantwortet. Da musst du nach suchen. Plugin, dämliches Template.


    Wenn dieses sperrende Plugin bzw. Erweiterung ähnlich arbeitet wie das SEF-Plugin bzgl. Canonicals ist das Verschwinden des zweiten alternate Tags logisch. Nachdem ich den SEF-Code angeschaut habe, hat es einfach einen "Bug", was das verursacht. Es liegt aber auch an Joomla selbst, dass dieser "Bug" durchschlagen kann. Nicht, dass ich ihn nicht aus eigenen Plugins kenne in anderem Zusammenhang.


    Der Hintergrund, wen's interessiert, ist der Einsatz von

    Code
    $doc->addHeadLink(

    Man sollte besser verwenden:

    Code
    $doc->addCustomTag(

    , weil man eben Gefahr läuft, dass sich was überschreiben könnte, was in

    Code
    $doc->_links[

    den selben Key schon enthält. In diesem Fall leider die URL.


    Keine Ahnung, ob man so was nun einreicht oder ob das bekannt ist. Gewollt jedenfalls nicht so ganz.


    Vielleicht hat ja zero24 irgendwann Zeit, wenn sich der Joomla-Update-Stress gelegt hat, der von Idioten wie mir unachtsam in die Länge gezogen wurde [Einen Schäm-Smiley finde ich leider nicht]

  • Vielleicht hat ja zero24 irgendwann Zeit, wenn sich der Joomla-Update-Stress gelegt hat, der von Idioten wie mir unachtsam in die Länge gezogen wurde [Einen Schäm-Smiley finde ich leider nicht]

    Hab ich etwas verpasst? Meldungen über Fehler sind immer gut und an den Install From Web Installer hat bis dahin nur keiner gedacht gehabt ;)


    Brauchst dich nicht schämen, keine Angst solche Hinweise sind wichtig :)

    Eingereicht hatte es schon wer. Ich habe hier noch mal meinen Senf dazu gegeben: https://github.com/joomla/joom…16#issuecomment-899563358

    Hab ich gesehen aber spontan auch keine Lösung bereit ggf. kann vorher geprüft werden "existiert der Key schon" aber auch sonst ist es ja so "das letzte Plugin gewinnt"

  • Hab ich gesehen aber spontan auch keine Lösung bereit ggf. kann vorher geprüft werden "existiert der Key schon" aber auch sonst ist es ja so "das letzte Plugin gewinnt"

    Sind halt 2 Core-Plugins, die da im Konflikt sind. Habe den Code nicht so exakt gelesen, aber nachdem ja zuvor wohl ein bestehendes Canonical sowieso entfernt wird, sollte man vielleicht besser addCustomTag verwenden. Ich glaube ein "exists already" ist gar nicht nötig.


    Aber auch das language-Dingens, was es ja schon an einer Stelle macht. Aber eben nicht an der kritischen.


    Muss ich da was änden?

    Abschalten halt, wenn es außer Aussagen von SEO-Tools, die da seit je her Quatsch erzählen, keinen triftigen(!!!) Grund für das Plugin gibt.


    Da ich nicht weiß, wo das Plugin herstammt und ob kostenlos, kann ich auch nicht nachschauen. Aber sollte ich oben recht haben, ist das ein Bug im Plugin und gehört von den Anbietern gefixt. Es ist halt dann nicht kompatibel mit mehrsprachigen Seiten.

  • Danke für die Info. Super-Support hier.

    Wieder raus gemacht.

    Jetzt sieht es so aus:

    Auf fast allen Seiten sind die Einträge in Ordnung. Nur bei der Produktübersicht nicht.

    Auf der Seite https://www.polymersynthese.de/produkte.html ist alles ok.

    Auf der Seite https://www.polymersynthese.de/en/products ist es falsch.

    Code
    <link href="https://www.polymersynthese.de/de/produkte.html" rel="alternate" hreflang="de-DE" />
    	<link href="https://www.polymersynthese.de/en/products.html" rel="canonical" />

    Dabei handelt sich um oberste Kategorie.

    Alle Unterkategorien sind in Ordnung.

    Menu, Menueintrag und Kategorie sind richtig verknüpft.

    Hat jemand eine Idee woran das liegen könnte?