Ankündigung

Einklappen
Keine Ankündigung bisher.

Katalogobjekte werden in allen Kategorien ausgegeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Katalogobjekte werden in allen Kategorien ausgegeben

    C4.13.38 // CC4.4.22 // CE 4.5.13

    Hallo zusammen,
    woran könnte es liegen, wenn meine Objekte überall auftauchen, obwohl sie z. Bsp. per Seitenauswahl auf bestimmte Bereiche begrenzt sein sollten. Es geht hier um Referenzen die in diversen Kategorien eingeteilt sind und diese wiederum per Seitenauswahl (Attribut und Filter) begrenzt werden.
    Die Auflistung ist jeweils richtig. Hier erscheinen nur die Objekte, die auch dafür konfiguriert wurden.
    In der sitemap.xml tauchen aber für jede Kategorie immer alle Objekte auf, obwohl sie nicht dafür konfiguriert sind und aufrufen kann ich sie auch, sprich eine "falsche" Detailseite ist in einer fremden Kategorie aufrufbar.
    Ich haben schon alles mögliche umgebaut und ein- und ausgeschaltet. Die Listen werden immer sauber getrennt angezeigt und es werden auch die Details angezeigt, aber die sitemap.xml zeigt in jeder Kategorie immer alle Einträge an.

    Woran könnt das liegen?

    Danke und Gruß Andreas

  • #2
    Hi Andreas,
    ja, das entspricht den technischen Gegebenheiten.

    Die Listen, die für die Erstellung der Sitemap dienen, berücksichtigen keine Filter! Einzig das Feld "Eigene SQL Bedingung" kann berücksichtigt werden. Andere, dynamische Filter, können nicht funktionieren, weil diese z.B. Benutzer-Eingaben zu Grunde liegen (z.B. das surfen durch die Seite um die Eltern-Seite festzulegen) oder andere Benutzerspezifische Eingaben, die der Crawler schlichtweg nicht erfüllt.

    Du kannst eigene Listen je Kategorie anlegen und diese über das Feld Eigene SQL Bedingung filtern oder du legst in deinen Leser-Templates eine eigene Logik an, die die Detail-Seiten ggf. 404 laufen lässt. Das versteht der Crawler und schließt diese Einträge aus.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hallo Tim,
      danke für Deine schnelle Rückmeldung.
      Deine Antwort lässt mich aber ein wenig sprachlos zurück. Ich versuche trotzdem mal ein paar Worte dafür zu finden :-)

      Ich denke nicht, dass das wirklich gewollt sein kann. Das erzeugt ja duplicated Content. Ich habe 129 Objekte, von denen ca. 60 in einer Kategorie, 50 in einer anderen und die restlichen verteilen sich dann noch auf 4 weitere Kategorien. Alle sollten getrennt und einzeln in der Sitemap auftauchen, sprich es sollte nur 129 statt den aktuellen 774 Einträge für jeweils eine Detail-Ansicht geben. Ebenso sollte der Aufruf einer "falschen" Detailseite unterbunden und mit einer 404 quittiert werden.

      Wie ist das von Euch angedacht? Gibt es dafür Beispielskripte die man verwenden kann?
      Ich hatte ehrlich gesagt nicht erwartet, noch großartig basteln zu müssen.

      Danke und Gruß Andreas

      Kommentar


      • #4
        Hi Andreas,
        ja, das ist ein schwieriges Thema. Das ist mit Contaos News/Events/Faq Archiven nicht anders, wenn du einen Leser/Liste für diverse "Kategorien" nutzt. Du kannst deine Kategorien auch mit n-vielen Listen erstellen, eine je Kategorie. Dann hast du klare Strukturen - ohne Seitenauswahl-Filter.

        Die Weiterleitungsseite ist die Referenz für den Sitemap-Eintrag. Ausgehend von nur einer Liste, hast du bzw. der Crawler nur eine übergeordnete Referenz-Seite. Ergo, fehlen dem Seitenauswahl-Filter die Informationen für die Filterung.

        Bezogen auf den Seitenauswahl-Filter. -> dieser setzt selbsterklärend immer die jeweils aktuelle Seite oder Strang als Referenz voraus, ausgehend von der Navigation/Seitenstruktur voraus.

        Zu diesem Thema gibt es einige hilfreiche Threads hier im Forum. Auch Threads, wo wir gemeinsam nach Ansätzen suchen, dieses Thema bequemer abzuarbeiten.
        https://forum.premium-contao-themes....6513#post16513
        ---
        Unterm Strich: Mit Filtern, die vorherige Benutzer-Eingaben benötigen, wie z.B. das navigieren in der Seitenstruktur oder das aktiveren von Filter-Fomularen, sind schlichtweg technisch nicht möglich zu berücksichtigen.
        Zuletzt geändert von Tim; 27.03.2024, 07:10.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hallo Tim,
          dass das ein schwieriges Thema ist, habe ich gemerkt. :-)
          Ich möchte trotzdem nochmal unseren Fall schematisch darstellen.
          Wir haben wie schon erwähnt 129 Objekt in einem Katalog angelegt. Ich greife mal 3 davon heraus.

          Objekt01
          Attribut Seitenauswahl
          -> Seite 01 (objekt01-Kategorie)
          Objekt02
          Attribut Seitenauswahl
          -> Seite 02 (objekt02-Kategorie)
          Objekt03
          Attribut Seitenauswahl
          -> Seite 03 (objekt03-Kategorie)

          Ich habe im Filter für die Seitenauswahl die Seite selber eingestellt. Also nochmal die Seite gewählt, die jeweils beim Objekt im Attribut Seitenauswahl steht.
          Filtersammlung für die Objekt01-Liste
          Filter Seitenauswahl
          Filterung nach Seitenauswahl -> Seite 01 (objekt01-Kategorie)

          Filtersammlung für die Objekt02-Liste
          Filter Seitenauswahl
          Filterung nach Seitenauswahl -> Seite 02 (objekt02-Kategorie)

          Filtersammlung für die Objekt03-Liste
          Filter Seitenauswahl
          Filterung nach Seitenauswahl -> Seite 03 (objekt03-Kategorie)


          Leser liegt jeweils auf einer Unterseite. die Leser haben keine Einschränkung. Ich wüsste auch nicht wo ich das einstellen könnte.
          Seite 01 (objekt01-Kategorie)
          -> Details -> Leser für Objekt01

          Seite 02 (objekt02-Kategorie)
          -> Details -> Leser für Objekt02

          Seite 03 (objekt03-Kategorie)
          -> Details -> Leser für Objekt03


          Die Listen werden wunderbar, ohne Benutzerinteraktion gefiltert. Wir benutzen keine Filter für eine Benutzereingabe.
          Die Details werden sauber geladen.
          Dadurch ergeben sich folgende Aliase für die Details:
          Objekt01 -> objekt01-Kategorie/details/objekt01
          Objekt02 -> objekt02-Kategorie/details/objekt02
          Objekt03 -> objekt01-Kategorie/details/objekt03

          Was jetzt komisch ist und ich immer noch nicht nachvollzeihen kann, da es sich hierbei ja um eine strikte Filterung handelt,
          warum in der Sitemap die folgenden Einträge zu sehen sind.
          Objekt01 -> objekt01-Kategorie/details/objekt01
          Objekt01 -> objekt02-Kategorie/details/objekt01
          Objekt01 -> objekt03-Kategorie/details/objekt01
          Objekt02 -> objekt01-Kategorie/details/objekt02
          Objekt02 -> objekt02-Kategorie/details/objekt02
          Objekt02 -> objekt03-Kategorie/details/objekt02
          Objekt03 -> objekt01-Kategorie/details/objekt03
          Objekt03 -> objekt02-Kategorie/details/objekt03
          Objekt03 -> objekt03-Kategorie/details/objekt03

          Das mit Filtern, die von Benutzern ausgelöst werden ist mir klar. Aber da sich diese ja in der Regel auf einer einzigen Seite befinden und lediglich die Anzeige filtern, ist es aus meiner Sicht in Ordnung, wenn dort alle Objekte angezeigt werden.
          Aber ich habe ja jedem Objekt klar gesagt, auf welcher Seitenkategorie es erscheinen darf. trotzdem werden entgegen dem Attribut Seitenauswahl, Objekte auf anderen Seiten in der Sitemap aufgenommen und auch angezeigt, wenn man sie aufruft.
          Bevor ich das ganze auf Seitenauswahl umgestellt habe, hatte wir im Filterset eine SQL Eingrenzung über ein Kategorie-Tag, die aber auch nicht geholfen hat.

          Wo soll ich jetzt nach Deiner technisch versierten Expertise ansetzen, um das gewünschte Verhalten zu bekommen.

          Wir könnten natürlich auch 6 Kataloge einrichten, nehmen uns dann aber die Möglichkeit eine Gesamtliste zur individuellen Filterung anzubieten. So etwas kann man dann in den Seiteneinstellungen aus dem Index entfernen und evtl. über einen canonical-Tag auf den ursprünglichen Eintrag zurückführen. Das ist aber erst locker angedacht. Ich möchte mir nur nicht die Möglichkeit nehmen.
          Wir haben auch Objekte, die theoretisch in mehreren Kategorien auftauchen könnten.


          Im Grunde wäre das Thema eigentlich relativ einfach zu lösen. Es muss die Möglichkeit geben eine "Heimatseite" (für jede Sprache) zu wählen, wo der eindeutige und einzige Leser liegt, der zum Index angeboten wird. Alles andere wird zumindest per canonical-Tag darauf zurück geführt.
          Im Index wird nur die "Heimatseite" angezeigt. Dann kann man damit machen was man will. Man kann die Objekte auf jeder beliebigen Seite anzeigen und wilde Filterorigen veranstalten ohne sich SEO-technische Sorgen machen zu müssen.
          Was denkst du?

          Es gibt ja dieses Feld, Sitemap/Such-Feld/Attribut und die Weiterleitungsseite in den Katalog Einstellungen. Ich bin mir nicht sicher, aber das könnte so etwas sein.
          Nur benötigt man das nochmal auf Objektebene, wenn man mit unterschiedlichen Ausgabe-Pfaden innerhalb eines Kataloges arbeitet.


          Danke und Gruß Andreas
          Zuletzt geändert von Andreas13; 27.03.2024, 10:20.

          Kommentar


          • #6
            Du brauchst mir das nicht erklären. Ich kenne die Ausgangssitutation .

            Die Listen werden wunderbar, ohne Benutzerinteraktion gefiltert. Wir benutzen keine Filter für eine Benutzereingabe.
            Das stimmt so nicht. Das surfen durch die Seite selbst ist eine Interaktion, die der Crawler im Backend für Listen nicht kann. Es werden die Listen zum Indexieren herangezogen, die eine Weiterleitungsseite gesetzt haben.

            Wir könnten natürlich auch 6 Kataloge einrichten, nehmen uns dann aber die Möglichkeit eine Gesamtliste zur individuellen Filterung anzubieten.
            Korrekt. 6 Kataloge und 6 Listen mit 6 unterschiedlichen Weiterleitungsseiten und der Crawler hätte exakte Bindungen.
            Und auch richtig, du verlierst eine gewisse Bequemlichkeit der Darstellung und Pflege. Vor- und Nachteil.

            Es muss die Möglichkeit geben eine "Heimatseite" (für jede Sprache) zu wählen, wo der eindeutige und einzige Leser liegt,
            Sprachen werden berücksichtigt. Die Sprach-Einstellung der Wurzelseite ist ausschlaggebend.

            Sprachen sind aber keine "Kategorien".

            Aber ich habe ja jedem Objekt klar gesagt, auf welcher Seitenkategorie es erscheinen darf. trotzdem werden entgegen dem Attribut Seitenauswahl, Objekte auf anderen Seiten in der Sitemap aufgenommen und auch angezeigt, wenn man sie aufruft.
            Ich habe den technischen Grund dafür eben erklärt. Der Crawler kann nur von der Detailseite ausgehen!
            --
            Es gibt ja dieses Feld, Sitemap/Such-Feld/Attribut und die Weiterleitungsseite in den Katalog Einstellungen. Ich bin mir nicht sicher, aber das könnte so etwas sein.
            Würde auch 6 Kataloge voraussetzen. Ist aber dafür nicht konzipiert.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              6 Kategorien sind keine wirkliche Hürde oder Mühe

              Ich würde dafür ein Select-Feld anlegen für die Auswahl der 6 Kategorine. Dann die Einträge zuordnen.

              6 CC Listen mit jeweils einer Weiterleitungsseite passend zur Kategorie. Diese Listen dienen ausschließlich der Sitemap-Erstellun -> (alle darstellenden CC Listen für die Sitemap ausschließen: CC Liste Einstellung > Von Sitemap ausschließen aktivieren.

              In diesen 6 Listen als Eigene SQL Bedingung die Filterung auf das Kategorie-Select Feld ala meine_kategorie='kategorie1' usw.

              Der Crawler hat damit 6 Listen, mit klaren Zielseiten, die nur Einträge der jeweiligen Kategorie zugeordnet sind.
              Zuletzt geändert von Tim; 27.03.2024, 11:15.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Ok, das scheint jetzt zu klappen. Habe 6 extra CC Listen, wie von dir erklärt, erstellt und in einem "abgelegenen" Bereich eingebunden. Weiterleitung dort wo ich auch gerne die URL für die Detailseite hätte. Alle anderen Listen von der Sitemap ausgeschlossen. Passt. Danke dafür.

                So richtig glücklich bin ich damit aber nicht. Das ist ein zusätzlicher Aufwand, der sich in der Mehrsprachigkeit je Sprache multipliziert. Ich habe meine Idee dazu ja schon dargelegt. Es sollte einfach jeweils eine Masterseite geben, wo ein Katalog-Objekt "zuhause" ist und der Rest ist ein Fall für die Canonical-Polizei.
                Die Sitemap ist immer aufgeräumt und der SEO ist glücklich.

                Aber auf jeden Fall Danke für die schnelle Unterstützung
                und Gruß
                Andreas

                Kommentar


                • #9
                  Es sollte einfach jeweils eine Masterseite geben, wo ein Katalog-Objekt "zuhause" ist und der Rest ist ein Fall für die Canonical-Polizei.
                  Eine Masterseite ist ja genau das Problem, was oben beschrieben ist. Das ist exakt die aktuelle Ausgangssituation. Eine Liste, verlinkt auf eine "Master"-Detailseite. Dass in dieser Liste willkürliche "kategorie"-bezogene Einträge liegen, kann das System nicht auswerten. Die "Kategorien" bauen auf eine menschliche Logik auf. Das musst Du auswerten und kannst im Leser-Template ansetzen und dort 404 leiten, damit der Crawler die "falschen" Einträge ausspart.

                  SEO-technisch einen canonical setzen bei identischen Alias ist im Leser-Template kein Problem. Gibt auch diesbezüglich Threads hier im Forum:
                  https://forum.premium-contao-themes....ibut-erstellen

                  Das ändert aber an der Bereinigung der Sitemap nichts, denke ich. Man kann weiterhin die "kategorie"-fremden Einträge direkt aufrufen. Nur SEO ist glücklich
                  Zuletzt geändert von Tim; 28.03.2024, 07:33.
                  http://www.premium-contao-themes.com

                  Kommentar

                  Lädt...
                  X