Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 21. September 2020 10:40
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
[CMS V1] Breadcrumbs & die Google Search Console
Moinsen,
hab seit sehr langem wieder mal eine Webseite aufgesetzt. Basis ist die 1.12.2 (was sonst ) und das Simplex Template.
Hab das breadcrumbs Template nach dem ersten Hinweis der Console auf schema.org umgestellt. Sieht aktuell so aus:
[== smarty ==]
{if isset($nodelist)}
{$im = 1}
{strip}
<div class="breadcrumb" itemscope itemtype='http://schema.org/BreadcrumbList'>
{$starttext}:
{foreach $nodelist as $node}
{assign var='spanclass' value='crumb'}
{assign var='extraspanclass' value=''}
{if $node->current == true}
{assign var='extraspanclass' value=' current'}
{/if}
<span class="{$spanclass|cat:$extraspanclass}">
{if $node->current == true}
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<span itemprop="item">
<link itemprop="url" href="{$node->url}" />
<span class="breadcrumb--title" itemprop="name">{$node->menutext} </span>
</span>
<meta itemprop="position" content="{$im}" />
</span>
{elseif ($node->url == '' or $node->url == '#') && $node->type != 'sectionheader'}
»
{else}
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" href="{$node->url}" title="{$node->menutext}">
<link itemprop="url" href="{$node->url}" />
<span class="breadcrumb--title" itemprop="name">{$node->menutext}</span>
</a>
<meta itemprop="position" content="{$im}" />
{$im = $im + 1}
</span>
{/if}
{/foreach}
</div>
{/strip}
{/if}
Jedoch bekomm ich jetzt den Fehler Ungültige URL in Feld "id". Hab da gerade überhaupt keine Idee, wie ich den Fehler beheben könnte...
Ihr vielleicht?
Offline
#2 21. September 2020 12:07
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: [CMS V1] Breadcrumbs & die Google Search Console
Dein Code ist nicht valide.
Da fehlt ein schließendes </span> vor dem Ende der {/foreach} Schleife.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 22. September 2020 07:19
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [CMS V1] Breadcrumbs & die Google Search Console
Uiuiuiui... bin mächtig eingerostet - war der Löschfinger wohl zu schnell.
Danke dir!
Offline
#4 22. September 2020 07:23
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [CMS V1] Breadcrumbs & die Google Search Console
Console sagt "Nöö, immer noch ungültig"
Offline
#5 22. September 2020 14:33
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: [CMS V1] Breadcrumbs & die Google Search Console
Bin mir nicht ganz sicher - da Dein Code ja jetzt eigentlich valide ist - aber ich glaube Google will auch für die aktuelle Seite einen Link haben.
Im Moment ist es ja so, dass die aktuelle Seite im Breadcrumb nur ein <span>-Element ist, ohne Verlinkung.
Für solche Fälle sollte meiner Meinung nach eigentlich das <link> Element sein, damit Maschinen dann dennoch etwas mit diesem <span>-Element anfangen können.
Aber Google hat damit scheinbar ein Problem.
Oder ich verstehe das Schema an dieser Stelle falsch.
Wie dem auch sei, wenn Du auch der aktuellen Seite anstelle eines <span itemprop="item"> einfach ein <a itemprop="item" href=..."> gibst, sollte der "Fehler" verschwinden. (Was das <link>-Element wiederum obsolet macht - es klappt nämlich auch ohne)
Außerdem fällt sogar eine {if}-Abfrage im Template weg, weil der Code für die beiden Bedingungen identisch wäre.
Aber aktuell habe ich noch das Problem, dass mir Google ein Feld "item" fehlt für den Home-Link meldet, obwohl da eindeutig ein item ist. Das Ding ist identisch mit denen, die Google nicht bemängelt.
EDIT: Hängt irgendwie mit dem <meta itemprop="position" content="{$im}" /> zusammen.
Sobald die items da unterschiedliche Werte drin haben, bekomme ich den Fehler.
haben alle z.B. den Wert 2 - was eigentlich totaler Schwachsinn ist! - dann sagt Computer "Ja" .
Ehrlich? Ich scheiß auf Microdata!
Hab das Breadcrumbs Menü 1:1 als <ol> nachgebaut. Wie in diesem Beispiel. Das Beispiel erzeugt keine Fehler. Meine <ol> erzeugt einen Fehler.
Beispiel:
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope
itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses">
<span itemprop="name">Dresses</span></a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope
itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses/real">
<span itemprop="name">Real Dresses</span></a>
<meta itemprop="position" content="2" />
</li>
</ol>
Mein Code:
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="http://localhost/cmsms-1.12.2-php7/index.php/advanced-content-test-page">
<span itemprop="name">Advanced Content Test Page</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="http://localhost/cmsms-1.12.2-php7/index.php/advanced-content-test-page">
<span itemprop="name">Advanced Content Test Page</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
Mag mir einer den Unterschied erklären?
Ansonsten ... FUCK GOOGLE!
Ich kann dieses dämliche Captcha nicht mehr sehen!
Wenn ich nachher rausgehe, krieg ich bestimmt Heulkrämpfe bei Fußgängerüberwegen, Fahrzeugen, Bussen, Ampeln und Hydranten...
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 22. September 2020 21:16
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [CMS V1] Breadcrumbs & die Google Search Console
Im Moment ist es ja so, dass die aktuelle Seite im Breadcrumb nur ein <span>-Element ist, ohne Verlinkung.
Für solche Fälle sollte meiner Meinung nach eigentlich das <link> Element sein, damit Maschinen dann dennoch etwas mit diesem <span>-Element anfangen können.
Yepp, so war der Plan ...
Wie dem auch sei, wenn Du auch der aktuellen Seite anstelle eines <span itemprop="item"> einfach ein <a itemprop="item" href=..."> gibst, sollte der "Fehler" verschwinden.
Genau das wollte ich eben nicht - war froh, den Hint mit dem Link Element gefunden zu haben.
EDIT: Hängt irgendwie mit dem <meta itemprop="position" content="{$im}" /> zusammen.
Sobald die items da unterschiedliche Werte drin haben, bekomme ich den Fehler.
haben alle z.B. den Wert 2 - was eigentlich totaler Schwachsinn ist! - dann sagt Computer "Ja" .
Eben - können ja nicht alle die gleiche Position in der Nav-Struktur haben.
Ehrlich? Ich scheiß auf Microdata!
Keine Ahnung, ob das ein geheimes Ranking Kriterium ist...
Wenn ich nachher rausgehe, krieg ich bestimmt Heulkrämpfe bei Fußgängerüberwegen, Fahrzeugen, Bussen, Ampeln und Hydranten...
Und ich dachte, nur mir geht es so ...
Offline
#7 23. September 2020 13:42
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: [CMS V1] Breadcrumbs & die Google Search Console
Nachtrag: Also mein liebes Google ... mein Snippet funktioniert nicht, weil die erste URL nicht das "korrekte" Format hat. "localhost" erkennt Google nicht als gültige URL und somit stimmt die ganze Struktur für Google nicht. Zwar irgendwie "logisch", weil zumindest das Root-Element irgendwie gültig sein muss, aber irgendwie auch wieder ...
Gebe ich da an erster Stelle irgendwas nach dem Schema "blablubb.foo" an, dann funktioniert es jedenfalls. Und nochwas, zwar auch logisch, aber beim Snippet-Testen drüber gestolpert: wenn zumindest das Root-Element immer irgendwie gültig sein muss, dann darf es nie das aktuelle Element sein - sprich es muss immer einen Link haben, oder es muss das einzige Element sein.
Zu Deinem Problem: Schau Dir mal die Beispiele von Google an. Für das aktuelle Element (bei BreadCrumbs i.d.R. ja immer das letzte) wird kein "Item" verwendet.
Also einfach nur:
<span class="crumb current">
<span itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
<link itemprop="url" href="...">
<span class="breadcrumb--title" itemprop="name">...</span>
<meta itemprop="position" content="12">
</span>
</span>
Am Ende irgendwie auch logisch: Kein Link <-> kein Item.
Der Link zur aktuellen Seite steht schließlich im Head.
D.h. fürs Template:
{if isset($nodelist)}
{$im = 1}
{strip}
<div class="breadcrumb" itemscope itemtype='http://schema.org/BreadcrumbList'>
{$starttext}:
{foreach $nodelist as $node}
{assign var='spanclass' value='crumb'}
{assign var='extraspanclass' value=''}
{if $node->current == true}
{assign var='extraspanclass' value=' current'}
{/if}
<span class="{$spanclass|cat:$extraspanclass}">
{if $node->current == true}
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<link itemprop="url" href="{$node->url}" />
<span class="breadcrumb--title" itemprop="name">{$node->menutext} </span>
<meta itemprop="position" content="{$im}" />
</span>
{elseif ($node->url == '' or $node->url == '#') && $node->type != 'sectionheader'}
»
{else}
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" href="{$node->url}" title="{$node->menutext}">
<link itemprop="url" href="{$node->url}" />
<span class="breadcrumb--title" itemprop="name">{$node->menutext}</span>
</a>
<meta itemprop="position" content="{$im}" />
{$im = $im + 1}
</span>
{/if}
</span>
{/foreach}
</div>
{/strip}
{/if}
Ob das <link itemprop="url" href="..."> für die aktuelle Seite dann immer noch sinnvoll ist, kann ich nicht sagen. Bemängelt wird es jedenfalls nicht. Egal ob da oder weg.
Und ich dachte, nur mir geht es so
Jeder, der kein Bot ist.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#8 24. September 2020 11:26
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [CMS V1] Breadcrumbs & die Google Search Console
"localhost" erkennt Google nicht als gültige URL und somit stimmt die ganze Struktur für Google nicht. Zwar irgendwie "logisch", weil zumindest das Root-Element irgendwie gültig sein muss
Gut zu wissen - die URL muss also 127.0.0.1 lauten
Ob das <link itemprop="url" href="..."> für die aktuelle Seite dann immer noch sinnvoll ist, kann ich nicht sagen. Bemängelt wird es jedenfalls nicht. Egal ob da oder weg.
Google sagt, Konsole prüft - zumindest ist die Anzahl der Fehler seit meinen Änderungen schon mal runtergegangen.
Wenn es keinen Items gibt, macht auch ein Item Prop keinen Sinn. Eine Property wofür?
Ergo, als nicht sinnvoll eingestuft .
Aber irgendwie werden meine Fragen gerade mehr anstatt weniger - werd halt alt ...
Offline
#9 24. September 2020 11:37
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: [CMS V1] Breadcrumbs & die Google Search Console
Wenn es keinen Items gibt, macht auch ein Item Prop keinen Sinn. Eine Property wofür?
Für das ... ähm ... nicht-Item namens "itemListElement".
Die Elemente sind teilweise voneinander abgeleitet. Wie bei OOP. Sie erben demnach die Eigenschaften ihrer Elternelemente. "itemprop" bezieht sich also nicht explizit nur auf "item" sondern auf "thing" und somit auf irgendein Element in dessen Kontext es sich gerade befindet, welches von "thing" abgeleitet wurde.
Steht es innerhalb von "item" gehört zum Item.
Steht es innerhalb von "itemListElement" gehört es eben dazu.
usw.
Also alles, was von "thing" abgeleitet wird, hat die Eigenschaft "itemprop".
Wenns hilft, einfach mal hier reinschauen.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#10 10. Oktober 2020 20:09
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [CMS V1] Breadcrumbs & die Google Search Console
Also alles, was von "thing" abgeleitet wird, hat die Eigenschaft "itemprop".
Hast recht behalten. Hat zwar ne Weile gedauert, aber Google hat prompt wieder gemeckert ...
Feld "itemListElement" fehlt
Offline
#11 11. Oktober 2020 11:52
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: [CMS V1] Breadcrumbs & die Google Search Console
Das Template hier funktioniert bei mir. Also zumindest was die Breadcrumbs angeht, hatte es bei mir nichts zu meckern. Ich hab aber auch nur die Breadcrumbs als Code-Snippet getestet, nicht die komplette Seite.
Eines hab ich inzwischen herausgefunden: Die Fehlermeldungen sind ein wenig irreführend. Sobald auch nur irgendein Wert eines Attributes nicht das von Google gewünschte Format hat, gilt das gesamte Element als invalide. Und damit "fehlt" das Element. Bsp.: "localhost" im href-Attribut eines Items führt dazu, dass Google meint 'Unbenanntes Element: Feld "item" fehlt', obwohl alles da ist.
Ergo:
Feld "itemListElement" fehlt
Da fehlt mit Sicherheit nichts.
Da hat nur irgendeine Eigenschaft nicht den richtigen Wert oder es ist ein Folgefehler.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
Seiten: 1