Einkaufswelten SEO Problem

Hallo zusammen, wir haben für unseren Shop, der unter SW 5 läuft, eine Einkaufswelt für die Startseite angelegt. Diese umfasst einige Banner und einen HTML-Block am unteren Ende, der mit Text gefüllt ist. Siehe https://www.breuer-versand.de Nun bin ich davon ausgegangen, dass Google die Banner und den Text spidern kann, was aber nicht der Fall ist. In Google Webmaster Tools kommt zum Vorschein, dass die Einkaufswelt aufgrund eines Eintrags in der robots.txt diesen Bereich nicht erfassen kann. Disallow: /widgets soll dies verhindern. Nun stehe ich vor einem Rätsel, denn die Startseite einer Webseite ist ja nicht ganz unwichtig. Aber wenn diese existiert und von Google ignoriert wird, ist das auch suboptimal. Was kann ich tun dass Google zumindest den Text im unteren Bereich der Seite lesen kann? Macht es Sinn den Eintrag Disallow: /widgets aus der robots.txt zu entfernen? Ich danke Euch für jeden Tipp!! Viele Grüße Werner

Hallo Werner, verstehe das Problem nicht ganz. Das /widgets bezieht sich darauf, dass Google dieser URL nicht folgen soll. Das ist auch richtig und korrekt, da Google sonst Script Bestandteile crawlen würde. Alles Wichtig kann Google in Standard problemlos lesen Sebastian

Hallo, danke für Deine Mail. Zur Veranschaulichung meines Problems habe ich einen Screenshot von Google Webmaster eingeügt Jetzt wird mein Problem sicherlich deutlich. Danke schon mal

PUSH! Kann Google nun HTMl-Elemente und deren Texte auslesen? Thema Ajax Meta… bla… Gibts hier noch eine Antwort von Shopware?

Hallo, Schau dir mal die Dokumentation von Google zum Ajax-Crawling an: https://developers.google.com/webmaster … cification Speziell diesen Part: [quote]Pages without hash fragments It may be impossible or undesirable for some pages to have hash fragments in their URLs. For this reason, this scheme has a special provision for such pages: in order to indicate that a page without a hash fragment should be crawled again in _escaped_fragment_ form, it is possible to embed a special meta tag into the head of its HTML. The syntax for this meta tag is as follows:The following important restrictions apply: The meta tag may only appear in pages without hash fragments. Only „!“ may appear in the content field. The meta tag must appear in the head of the document. The crawler treats this meta tag as follows: If the page http://www.example.com contains the meta tag in its head, the crawler will retrieve the URL http://www.example.com?_escaped_fragment_=. It will index the content of the page as http://www.example.com and will display http://www.example.com in search results. As noted above, the mapping from the _escaped_fragment_ to the #! syntax is slightly different in this case: to retrieve the original URL, the web server instead simply removes the tokens _escaped_fragment_= (note the =) from the URL. In other words, you want to end up with the URL http://www.example.com instead of http://www.example.com#!. [/quote] Der Crawler geht also hin und ruft deine Startseite auf, sieht im Quelltext den Metatag und ruft die Seite dann über den ?_escaped_fragment-Parameter auf. Entsprechend musst du auch deine Seite selbst über diesen Parameter aufrufen wenn du „Abruf wie durch Google“ benutzt. Die Elemente sind da ggf. in der Preview verschoben, aber der HTML-Inhalt ist so wie er soll. http://www.example.com/?_escaped_fragment_= ist also die Lösung. Dies liefert einen HTML-Snapshot der Seite zurück mit allen Ajax-Inhalten. Die „Abruf wie durch Google“-Seite muss also auch mit diesem Link gefüttert werden. Moritz

Hallo, Die gleiche Frage habe ich ebenfalls, und als ich /?_escaped_fragment_= (mit meinem Domain zuerst, klar) unter “search appearance/google data highlighter” verwende, schafft Google immer noch nicht, den Einkaufswelten zu laden. Abruf wie durch Google funktioniert aber nun einwandfrei. Gibt es dann eine andere Möglichkeit, tags für die erste Seite zu erstellen? Danke im Voraus! Beste Grüße, Vincent

1 „Gefällt mir“

Ich habe dasselbe Problem.

Unter Einkaufswelten habe ich ein Block mit Links und H1-Überschrift. Für SEO-Werkzeuge diesen Block nicht sichtbar ist Frown

Google hat  “/?_escaped_fragment_=” als depreceated markiert https://developers.google.com/webmasters/ajax-crawling/docs/specification
Es ist also eine frage der Zeit (oder vielleicht ist es auch schon so), dass diese technik nicht mehr funktioniert. Google selber sagt, das ihre möglichkeiten JS zu lesen inzwischen sehr weit fortgeschritten sind. Das bedeutet für mich aber noch nicht, das sie den Code dann auch wirklich lesen können und auf die per Ajax nachgeladenen Inhalte warten. 
Die Webdevelopertools (ansicht wie google) geben derzeit bei EKW Seiten nichts aus, sicherlich kann ich mit “/?_escaped_fragment_=” die anzeige in dort erzwingen. 

Hat den schonmal jemand tests gemacht ob die Einkaufswelten ranken, seit google die technik mit escaped_fragment nicht mehr nutzen möchte?

Neben der Markierung der Technik durch Google als veraltet, scheint sich die Nutzung der Einkaufswelten zudem negativ auf die PageSpeed auszuwirken, da kaum Inhalte mit dem ersten laden der Seite verfügbar sind… Gibt es Ideen oder Ansätze, um Ajax hier zu vermeiden?

Ja, du kannst es vermeiden! Wobei ich eher der Meinung bin das der Pagespeed dadurch eher sinkt, es wird ja erst gerendert wenn alle Bilder vorhanden sind. Dein PageLoad sinkt dadurch also.

Such im Template unter “frontend/home/index.tpl” mal nach 

{foreach $emotions as $emotion}
    {if $hasEscapedFragment}
        {if 0|in_array:$emotion.devicesArray}
            {action module=widgets controller=emotion action=index emotionId=$emotion.id controllerName=$Controller}
        ..........

 

Das ist die Anweisung was passieren soll, wenn _escaped_fragment_ an der url steht. Du musst das also als Standardverhalten nutzen. Genauso sollte es in der “frondend/listing/index.tpl” gehen. 
 

Gibt es neben dem Einfluss auf das PageSpeed andere Gründe, weshalb die Einkaufswelten per Default via AJAX nachgeladen werden?

 

@michaelg‍ Ohne JS kannst du dem Emotion Controller nicht die Größe des Bilderschirms mitteilen. Extra Einkaufswelten für Mobile wären also nur bedingt möglich. Du könntest eine default EKW laden und später durch eine von JS geladene ersetzen, das erzeugt aber viel mehr Traffic und Renderzeit.

 

Das von mir oben genannte Beispiel funktioniert nicht mehr, da Shopware auf “escaped_fragment” inzwischen verzichtet. Man kann das sofortige rendern aber trotzdem erzwingen. 

// am Beispiel der '/frontend/home/index'
// Shopwareversion: 5.4.3


// suche nach:
{block name='frontend_home_index_emotion_wrapper'}



// durch dieses ersetzen:


    {action module=widgets controller=emotion action=index emotionId=$emotion.id controllerName=$Controller}

 

*Boa* - nach zwei Jahren wieder ausgegraben  Wink
Oder auch einfach so:
Quick Tip: Shopping worlds without AJAX