Hallo Community,
gibt es in Shopware 6 keine automatische robots.txt Datei? Hat jemand eine sinnvolle Vorlage?
Ich habe mir die Shops in den Case Studies angeschaut, 8 von 2 haben eine. Hier gibt es wohl Nachholbedarf.
Gruß
Marco
Hallo Community,
gibt es in Shopware 6 keine automatische robots.txt Datei? Hat jemand eine sinnvolle Vorlage?
Ich habe mir die Shops in den Case Studies angeschaut, 8 von 2 haben eine. Hier gibt es wohl Nachholbedarf.
Gruß
Marco
Hallo,
automatisch gibt es keine, aber du kannst einfach eine in /public/robots.txt anlegen.
Bsp:
User-agent: *
Allow: /
Disallow: /*?
Disallow: /*account/
Disallow: /*checkout/
Disallow: /*widgets/
Disallow: /*navigation/
Disallow: /*bundles/
Disallow: /*impressum$
Disallow: /*datenschutz$
Disallow: /*agb$
Sitemap: https://www.deinedomain.com/sitemap.xml
Viele Grüße
Sehr gut. Danke. Das sollte evtl. in die SW6 Dokumentation übernommen werden…
@shopware Wird diese Funktion noch kommen oder muss man sich immer selbst eine robots.txt erstellen?
Vielen Dank im Voraus!
Gruß Daniel
Wie erstell man dann die robots.txt wenn man mehrere Domains hat?
Sitemap: https://www.deineErsteDomain.com/sitemap.xml
Sitemap: https://www.deineZweiteDomain.com/sitemap.xml
Das würde mich auch interessieren…
Hallo,
automatisch gibt es keine, aber du kannst einfach eine in /public/robots.txt anlegen.
Bsp:
User-agent: *
Allow: /
Disallow: /*?
Disallow: /*account/
Disallow: /*checkout/
Disallow: /*widgets/
Disallow: /*navigation/
Disallow: /*bundles/Disallow: /*impressum$
Disallow: /*datenschutz$
Disallow: /*agb$Sitemap: https://www.deinedomain.com/sitemap.xml
Viele Grüße
Mit der robots habe ich so meine Probleme…wenn ich diese erstelle und unter /public hochlade und versuche diese aufzurufen, komme ich auf eine 404 Seite …Google search console findet diese daher auch nicht … klappt der aufruf bei euch oder woran liegt es bei mir ?
Wie erstell man dann die robots.txt wenn man mehrere Domains hat?
Sitemap: https://www.deineErsteDomain.com/sitemap.xml
Sitemap: https://www.deineZweiteDomain.com/sitemap.xml
Nein. Da du hier eine Differenzierung auf Domain-Ebene hast geht das so nicht. Jede Domain muss seine eigene robots.txt und sitemap.xml haben.
Wenn du nun aber auf ein und der selben Domain z.B.: mehrere Sprachen hast. So wie:
https://www.domain.de/ (deutsch)
https://www.domain.de/en/ (englisch)
Dann würde die robots.txt so aussehen:
Sitemap: https://www.domain.de/sitemap.xml
Sitemap: https://www.domain.de/en/sitemap.xml
Achtung: robots.txt gibt es pro Domain nur eine. Also darf hier in /en/ keine neue robots.txt liegen, bzw darf, bringt aber nichts.
Solltest du mehrere Domains haben, die von ein und der selben Shopware (6) Instanz gehandhabt werden dann hast du erstmal ein Problem. Denn der Ort auf dem WebSpace wäre für:
domain1.de/robots.txt
genau der selbe wie für:
domain2.de/robots.txt
Hier hilft nur dynamisches Generieren von deiner robots.txt.
AUßER: die robots.txt ist für beide komplett identisch!
Hier sollte allerdings schon der absolute Link der sitemap.xml nicht identisch sein. Das lässt sich lösen. Indem man ihn in einen relativen Link umwandelt. Dann würde die robots.txt (der sitemap-Teil) so aussehen:
Sitemap: /sitemap.xml
Sitemap: /en/sitemap.xml
Jetzt müsste man sich eben nur ganz sicher sein, dass diese robots.txt für beide wirklich identisch ist. Aber gehen tut es so.
Was es dazu zu sagen gibt:
Laut offiziellen Dokumentationen (LINK) sollte es KEIN relatives Pfad sein, sondern MUSS ein absoluter Pfad sein. Allerdings hat Google bisher auch meine relativen Pfade erkannt. Aber darauf würde ich mich auf lange Sicht nicht verlassen!
So oder so: Shopware sollte hier dynamisch eine robots.txt generieren (und Cachen!!!) können und das für jede in die Installation gemappte Domain!
Was es noch geben soltle: Variablen, die gerendert werden können. z.B.: { domain }, { shema }, { urlBase } etc etc, die dann einfach gerendert werden und pro Domain dann abgespeichert werden und per rewrite oder einem Routing Enhancer dann eben dementsprechen ausgeliefert werden.
(TYPO3 hat sowas … wollte es nur gesagt haben)
Vielen Dank für die ausführlichen Infos.
Mir ist aber noch nicht ganz klar, wie ich das in einer Shopware Installation mit mehreren Verkaufskanälen machen muss, wenn jeder Verkaufskanal über eine andere Url erreichbar ist. Hier müsste ich doch die Robots.txt und die Sitemap.xml je Verkaufskanal / Url separat hinterlegen.
Wie mache ich das?
Gruß Daniel
können diese beiden Ressourcen wirklich problemlos gesperrt werden? Wird die „navigation“ nicht in der mobilen Ansicht als Main-Navi verwendet? Falls ja, so sollte Google diese ja zwingend aufrufen dürfen.
Das würde mich auch interessieren.
Zudem wüsste ich gerne, für was die Sterne (/*widgets/) und das Zeichen (/*impressum) bei den Regel sind.
Vielen Dank im Voraus!
Gruß Daniel
Ja ob es problemlos ist, kann ich nicht 100%ig sagen. Die Navigation hat bei mir die normale SEO href
Die Sternchen habe ich drin, weil es bei mir mehrere Verkaufskanäle mit verschiedene URLs gibt. Aber es gibt nur eine robots.txt.
z.B. /de/de/widgets und /at/de/widgets/
Moin, @HADDEN
wir haben das gleiche Setup: Eine Shopware-Instanz, aber zwei Verkaufskanäle mit 2 verschiedenen Domains (.de & .com).
Kannst du bitte ein kurzes Beispiel hier posten, wie du beide Domains in einer robots.txt Datei behandelst?
Großes Dankeschön
Ich habe mir folgendes Setting eingerichtet, und es scheint zu gehen. Die Google Search Console hat auch nicht gemeckert.
→ in der htaccess im Bereich mod_rewrite hinzufügen → RewriteRule ^robots.txt$ robots.php
→ Inhalt der robots.php-Datei
<?php
#
# dieses File dient zur automatischen Auswahl des robots.txt file je nach Domain
# das originale robots.txt im Root wird nicht beachtet
# siehe htaccess -> RewriteRule ^robots.txt$ robots.php
#
header('Content-Type: text/plain; charset=utf-8');
if($_SERVER['HTTP_HOST']=='www.domain.de'){
echo 'User-agent: *
Disallow: /*account/
Disallow: /*checkout/
Disallow: /*widgets/
Disallow: /*navigation/
Disallow: /*bundles/
Disallow: /*wishlist/
Disallow: /*informationen/
Disallow: /*rechtliches/
Disallow: /*.pdf$
Disallow: /*impressum$
Disallow: /*agb$
Host: https://www.domain.de/
Sitemap: https://www.domain.de/sitemap.xml
';
} else if($_SERVER['HTTP_HOST']=='www.domain.com'){
echo 'User-agent: *
Disallow: /*account/
Disallow: /*checkout/
Disallow: /*widgets/
Disallow: /*navigation/
Disallow: /*bundles/
Disallow: /*wishlist/
Disallow: /*informations/
Disallow: /*legal-conditions/
Disallow: /*.pdf$
Disallow: /*imprint$
Disallow: /*general-terms-and-conditions$
Host: https://www.domain.com/
Sitemap: https://www.domain.com/sitemap.xml
';
} else {
echo 'User-agent: *
Disallow: /
';
}
?>
Oh wow. Wusste nicht das sowas geht. Danke für den Post und sry dass ich erst jetzt mal wieder hier rein geschaut habe.
Obwohl die Indexierung des Impressums nach Vorlage über
Disallow: /*impressum$
verhindert werden sollte, ist die Seite im Google Index.
Kann hier jemand Hilfe geben?
Gibt es mittlerweile eigentlich auch eine Möglichkeit Seiten aus der Sitemap auszuschließen? Es macht ja keinen Sinn zuerst die Seriten in der Sitemap aufzunehmen und dann über die robots.txt wieder zu entfernen …
Per Service Decorator kannst du nach der Generierung der Sitemap diese nochmal einlesen, verändern und wieder wegschreiben. Siehe shopware6 - Exclude URL from XML sitemap in Shopware 6 - Stack Overflow
Ich habe so URLs von Produkten mit eingeschränkter Sichtbarkeit entfernt.