wir haben aus diversen Gründen ein Update auf Shopware 6.2.0 RC1 durchgeführt. Der Shop war in der Version 6.1.5 kaum nutzbar. Wir können daher nicht sagen, ob das Problem bereits in der 6.1.5 bestand.
Wir lassen die Sitemaps automatisch generieren, aber es befinden sich zahlreiche URLs wie /navigation/, /widgets/ etc. in der generierten Sitemap. Laut Dokumentation sollen sich da aber nur Produkte und Kategorien befinden.
Ein manuelles anschupsen endet in einer Exception.
Generating sitemaps for sales channel 792cfe27fff3400692cc7cb5e9ee9a4a (Nebel Manufaktur) and language 2fbb5fe2e29a4d70aa5854ce7ce3e20b...
14:58:04 ERROR [console] Error thrown while running command "sitemap:generate". Message: "Provided language is not available" ["exception" => RuntimeException { …},"command" => "sitemap:generate","message" => "Provided language is not available"]
In SalesChannelContextFactory.php line 438:
Provided language is not available
sitemap:generate [-i|--salesChannelId [SALESCHANNELID]] [-f|--force] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--]
bash-4.2$ php72 bin/console sitemap:generate -vvv
Generating sitemaps for sales channel 792cfe27fff3400692cc7cb5e9ee9a4a (Nebel Manufaktur) and language 2fbb5fe2e29a4d70aa5854ce7ce3e20b...
14:58:16 ERROR [console] Error thrown while running command "sitemap:generate -vvv". Message: "Provided language is not available"
[
"exception" => RuntimeException {
#message: "Provided language is not available"
#code: 0
#file: "./vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php"
#line: 438
trace: {
./vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:438 { …}
./vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:337 { …}
./vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:134 { …}
./vendor/shopware/core/Content/Sitemap/Commands/SitemapGenerateCommand.php:114 { …}
./vendor/symfony/console/Command/Command.php:255 { …}
./vendor/symfony/console/Application.php:1030 { …}
./vendor/symfony/framework-bundle/Console/Application.php:97 { …}
./vendor/symfony/console/Application.php:272 { …}
./vendor/symfony/framework-bundle/Console/Application.php:83 { …}
./vendor/symfony/console/Application.php:148 { …}
./bin/console:68 {
› $application = new Application($kernel->getKernel());
› $application->run($input);
›
arguments: {
$input: Symfony\Component\Console\Input\ArgvInput {#1 …}
}
}
}
},
"command" => "sitemap:generate -vvv",
"message" => "Provided language is not available"
]
14:58:16 DEBUG [console] Command "sitemap:generate -vvv" exited with code "1"
[
"command" => "sitemap:generate -vvv",
"code" => 1
]
In SalesChannelContextFactory.php line 438:
[RuntimeException]
Provided language is not available
Exception trace:
at /httpdocs/vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:438
Shopware\Core\System\SalesChannel\Context\SalesChannelContextFactory->buildLanguageChain() at /httpdocs/vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:337
Shopware\Core\System\SalesChannel\Context\SalesChannelContextFactory->getContext() at /httpdocs/vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextFactory.php:134
Shopware\Core\System\SalesChannel\Context\SalesChannelContextFactory->create() at /httpdocs/vendor/shopware/core/Content/Sitemap/Commands/SitemapGenerateCommand.php:114
Shopware\Core\Content\Sitemap\Commands\SitemapGenerateCommand->execute() at /httpdocs/vendor/symfony/console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at /httpdocs/vendor/symfony/console/Application.php:1030
Symfony\Component\Console\Application->doRunCommand() at /httpdocs/vendor/symfony/framework-bundle/Console/Application.php:97
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /httpdocs/vendor/symfony/console/Application.php:272
Symfony\Component\Console\Application->doRun() at /httpdocs/vendor/symfony/framework-bundle/Console/Application.php:83
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /httpdocs/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /httpdocs/bin/console:68
Hat jemand einen Rat, woran es liegen kann, dass wir die Sitemap nicht manuell generieren können und warum sich diese Links in der Sitemap befinden?
Die /navigation/ … sind mir auch aufgefallen.
Es wird auch sowas indexiert wie /offcanvas/menu … oder alle Seiten in Modal-Dialogen - definitiv per Robots sperren und später bei lauffähigen Sitemap diese ausschließen …
@nebelmanufaktur Ich habe derzeit keine Möglichkeit, eine Sitemap zu generieren - der Live Abruf bricht naxch 30 Sekunden ab. Hast Du irgendwie Möglichkeit gefunden?
Die /navigation/ … sind mir auch aufgefallen.
Es wird auch sowas indexiert wie /offcanvas/menu … oder alle Seiten in Modal-Dialogen - definitiv per Robots sperren und später bei lauffähigen Sitemap diese ausschließen …
@nebelmanufaktur Ich habe derzeit keine Möglichkeit, eine Sitemap zu generieren - der Live Abruf bricht naxch 30 Sekunden ab. Hast Du irgendwie Möglichkeit gefunden?
Niklas
Moin Niklas,
lässt du die Sitemap denn genrieren oder generierst du diese bei Abruf? Wenn du sie beim Abruf generierst, klingt es für mich so, als wäre deine max_execution_time zu gering. Hast du den Wert mal erhöht? Zum Beispiel auf 180? Dann läuft der Thread 3 Minuten.
@nebelmanufaktur Die Sitemap kann „Live“ generiert werden, wenn ich manuell im Sitemap Controller die max_execution_time erhöhe - das ist aber meiner Meinung nach nicht Sinn und Zweck - richtiger wäre die Generierung per cli (bin/console sitemap:generate) und genau der Befehl ist faktisch defekt (wir beide kriegen den selben Fehler).
Ich habe mir aktuell soweit geholfen: Sitemap Live generiert, extrahiert und im public als „sitemap.xml“ hochgeladen.
Funktioniert so (rudimentär) - kann aber so nicht immer so ablaufen.
Und Google mehrere Minuten auf eine Antwort warten lassen (ist so bei vielen Artikeln) ist nicht drin.
@Shyim Ah, Danke für’s kümmern! Frage ist, wie wir (auch gerne mit lokaler/manueller Anpassung) das hinbekommen.
Die Saleschannel der Produktexporte sollten einfach ausgespart werden in der ganzen Generierung - wäre denke ich das einfachste und sinnvollste.
EDIT: @nebelmanufaktur Sehe, dass via sitemap:generate auch der opt. paramater salesChannelId existiert - damit lässt sich der eig. Shop ansteuern und die Sitemap kommt raus.
Same here.
Gibt es eine Möglichkeit wenn man mehrere Sales Channel hat trotzdem eine ordentliche Sitemap für die MAIN Url zu bekommen (also für .de ohne dass .de/fr .de/be .de/es etc involviert sind) ohne diese durch externe Programme zu generieren und in den /public ordner als sitemap.xml reinzulegen?
Wenn man das nicht macht kommt bei uns auch nur folgendes raus… oder kommt google search console damit zurecht?