Canonical URL in Datenbank

Hallo zusammen,

ich habe schon sehr viele Beiträge durchgelesen, das Forum durchsucht usw aber leider nichts dazu gefunden.

Wo wird in der Datenbank die Canonical URL markiert? Das Problem ist ja das in der Tabelle OXSEO diverse URLs für den gleichen Artikel stehen. Jetzt benötige ich für eine externe Anwendung die Canonical URLs der Produkte damit diese auch verlinkt werden. Warum gibt es überhaupt so viele unterschiedliche URLs für das gleiche Produkt, macht gerade unter SEO sicht doch überhaupt keinen Sinn.

Für einen Tip wäre ich sehr dankbar, ich habe schon alle Tabellen durchgesehen, aber irgendwie nichts dazu gefunden. Muß ja aber möglich sein, im Template kann man sich diese ja auch ausgeben lassen.

Vielen Dank im Voraus,

Eike

Hallo Eike,

in einem Shopsystem ist es normal, dass es verschiedene URLs für ein und denselben Artikel gibt. Dieser kann nämlich über Hersteller und u.U. verschiedene Kategorien angezeigt werden. Um die SUMA auf die “originale” URL aufmerksam zu machen und damit DC zu vermeiden, gibt es den sog. canonical tag, der im HTML-Quelltext so ausgegeben wird:
<link rel=“canonical”

Gruß

Hallo Marco,

vielen Dank für Deine Antwort.

Wie man den Canonical in einem Template ausgibt ist mir bekannt, nur leider finde ich nicht heraus wie Oxid das in der Datenbank hinterlegt, das gewußt wird welche der URLs der Canonical ist.
Weiß da jemand bescheid?

Eike

Canonical dürfte die URL per Hauptkategorie des Produkts sein.

Hallo Oxal,

vielen Dank. Ich denke auch das es die Hauptkategorie ist bzw. die Kategorie in welche der Artikel das erste mal eingefügt wurde.
Nur wie finde ich es in der Datenbank heraus entweder die Kategorie oder einfach nur den Canonical? Irgendwie scheine ich auf dem Schlauch zu stehen.

Danke im Voraus,

Eike

[QUOTE=FoxxShirts;39816]Hallo Oxal,

vielen Dank. Ich denke auch das es die Hauptkategorie ist bzw. die Kategorie in welche der Artikel das erste mal eingefügt wurde.
Nur wie finde ich es in der Datenbank heraus entweder die Kategorie oder einfach nur den Canonical? Irgendwie scheine ich auf dem Schlauch zu stehen.
[/QUOTE]

Hi,

das würde mich auch interessieren. Bisher gab es dazu leider keine Lösung. Auch die ganzen Sitemap-Tools hier greifen immer nur die erste Kategorie, die aber i.d.R. nicht die Canonical bzw. Hauptkategorie ist. Wenn das irgendwie möglich wäre die “richtige” (canonical) URL zu finden wäre super.

Leider kann ich dir aber nicht weiterhelfen.

CYA
Firefax

Das stimmt, es wird oft falsch verwendet, auch wenn man bei OXID selber Aktionen anlegt. Das ist für Google und Co. eher nicht von Vorteil.

Hallo,

für URLs ohne Produkt gibt die Funktion getLink() immer die canonical URL zurück, für Produkt-URLs die getMainLink().

Aber ich glaub, ich hab das Problem noch nicht so ganz “verinnerlicht” :slight_smile:
Wenn ich eine sitemap aufbaue und an die Suchmaschine übergebe, bekommt die Suchmaschine alle URLs geliefert. Die SUMA crawlt die vorgeschlagenen Seiten anhand der Sitemap und stellt dabei den canonical tag fest. Oder wo liegt eigentlich der Hase im Pfeffer?

Gruß

Also, das Problem ist bei mir keins für ein Sitemap sondern für die erzeugung eines Produktfeeds. Ich habe ein Tool geschrieben welches mir alle möglichen Produktdaten ausgibt und eben auch die URL aus der Tabelle OXSEO. Hierbei ist momentan das Problem das mir die Datenbank immer die erste URL des Artikels zurückgibt, ich aber immer die “Haupturl” also den Canonical brauche. Da ich leider nicht weiß wie diese URL gekennzeichnet ist, kann ich keine entsprechende where Bedingung in die Sql abfrage einbauen.
Da dieses Tool völlig losgelöst von OXID arbeitet, kann ich auch keine Funktion getLink() verwenden.
Es muß aber ja irgendwie in der Datenbank festgehalten sein, welche URL der Canonical ist.
Dieses Problem gibt es auch wenn man Produktempfehlungen für die Startseite im Adminbereich anlegt. Da wird auch Teilweise willkürlich eine URL des Produktes genommen. Korrekt wäre es aber auf die Haupturl zu verlinken.

Ich hoffe ich habe es verständlich ausgedrückt? :wink:

Gruß, Eike

Vielleicht kannst Du es Dir so zusammenbasteln:

  1. Die Hauptkategorie findest Du über den Eintrag mit der höchsten OXTIME in OXOBJECT2CATEGORY.

  2. In der OXSEO mußt Du dann den Eintrag nehmen, in dem der entsprechende Wert der OXCATNID in der OXSTDURL enthalten ist.

[QUOTE=Firefax;39817]Hi,

das würde mich auch interessieren. Bisher gab es dazu leider keine Lösung. Auch die ganzen Sitemap-Tools hier greifen immer nur die erste Kategorie, die aber i.d.R. nicht die Canonical bzw. Hauptkategorie ist. Wenn das irgendwie möglich wäre die “richtige” (canonical) URL zu finden wäre super.

Leider kann ich dir aber nicht weiterhelfen.

CYA
Firefax[/QUOTE]

Habe jetzt endlich ein Tool, das die Haupt-URL für die Sitemap verwendet und nicht irgendwelche URLs exportiert. Melde Dich mal bei egate media, Thomas Reisacher, wenn Du Interesse daran hast.

Hallo Oxal,

vielen Dank, das ist ja ganz schön kompliziert. Der Ansatz mit dem Substring der CatID hat funktioniert, bei mir ist es nur die OXTIME die den Wert 0 hat.

Bei mir siehts dann in etwa so aus:

select oxarticles.OXTITLE, oxobject2category.OXTIME, oxseo.OXSEOURL from oxarticles, oxobject2category, oxseo
where oxarticles.OXID = oxobject2category.OXOBJECTID and oxobject2category.OXTIME = 0 and SUBSTRING(oxseo.OXSTDURL,-32) = oxobject2category.OXCATNID and oxseo.OXOBJECTID = oxarticles.OXID and OXEXPIRED = 0 and OXPARENTID =""

Gruß, Eike