Probleme mit der Indexierung – Seiten verschwinden aus dem Google-Index

Hallo zusammen,

ich habe ein Problem mit der Indexierung meines Shopware 6 Shops und hoffe, dass jemand eine Idee hat, woran es liegen könnte.

Ausgangslage:
• Der Shop ging vor etwa einem Jahr live.
• Anfangs wurden Seiten schnell indexiert, aber Meta-Daten und Varianten waren nicht optimal.
• Nach einiger Zeit haben wir die Kategorien, Meta-Daten und URLs überarbeitet, da uns anfangs Erfahrung mit Shopware, SEO und Kundenverhalten gefehlt hat.
• Seit der Umstellung sind unsere organische Sichtbarkeit und indexierte Seiten fast auf null gesunken.

Bisherige Prüfungen:
• robots.txt geprüft → keine Einschränkungen.
• .htaccess geprüft → keine Fehler festgestellt.
• Sitemap in der Google Search Console überprüft & hochgeladen → wird korrekt eingelesen.
• Indexierungsstatus in GSC geprüft → einige Seiten wurden indexiert, dann aber wieder entfernt.
• Seitenstatus überprüft → alle wichtigen Seiten liefern Status 200.
• Shop-Performance geprüft → keine kritischen Probleme gefunden.
• Diverse URL-Checks durchgeführt → keine Hinweise auf Indexierungsprobleme.

Maßnahmen & aktueller Stand:
• Im Oktober 2024 haben wir alle Produkte neu angelegt, um eine saubere Struktur zu schaffen.
• Alle alten Produkte & Weiterleitungen wurden aus der Datenbank entfernt.
• Neue Produkte wurden mit neuen URLs und Artikelnummern angelegt.
• Nach ca. 3 Monaten erschienen die ersten neuen Produkte im Index.
• Die indexierten Produkte wuchsen auf maximal 150 von insgesamt 340.
• Doch bevor alle Produkte erfasst wurden, sind einige bereits indexierte wieder verschwunden.
• Aktuell sind nur noch 12 Seiten im Index – und es werden weniger.
• Seitdem wurden keine Änderungen durchgeführt, die das erklären würden.

Mögliche Ursache – Artikelanlage?
• Ich habe Hauptartikel mit bis zu 120 Varianten angelegt.
• Der Hauptartikel ist deaktiviert, nur die Varianten sind aktiv.
• Jede Variante hat eine eigene URL & eigene Meta-Daten, aber eine identische Beschreibung (da sich nur die Eigenschaften ändern).
• Hauptartikel hat keine SEO-Infos & verweist nicht auf eine Variante als kanonisches Produkt.

Hat jemand ähnliche Erfahrungen gemacht oder Ideen, woran es liegen könnte? Liegt es an der Artikelstruktur oder könnte es noch andere Gründe geben?

Falls es hilfreich ist hier noch die Shop URL:

Vielen Dank im Voraus für eure Hilfe!

Wie begründet die SearchConsole, dass die URLs nicht indexiert werden?

Kann es sein das Google die wegen duplicate Content gelöscht hat?

Produkte Neu angelegt.

Aber das ist nur raten an der Stelle.

Wenn Google etwas ablehnt oder feststellt bekommst du eine Info in der GSC da müsste es dann stehen was war.

Schonmal versucht Seiten manuell per kompletter URL einzureichen? falls nicht versuch das mal mit einer fehlenden URL vlt wird da bereits ein Problem angezeigt.

Weshalb aktuell die Seiten wieder rausfliegen kann ich noch nicht sehen. Es dauert wohl wieder einige Tage bis ich den Bericht sehe.

Mir wurde jetzt geraten in der Robots.txt den Cockout zu entfernen.
Macht das Sinn ?

Nein, das macht absolut kein Sinn.

Ich würde auch generell keinem Ratschlag von einer Person folgen, die so etwas vorschlägt.

1 „Gefällt mir“

Sorry, hab den Beitrag erst jetzt mitbekommen.

Mittlerweile sind nur noch drei Seiten indexiert. Ich sehe - auf den ersten flüchtigen - Blick keine groben Verstöße in der Struktur der Seiten oder beim Content.

Es ist völlig okay, in einem Online-Shop bestimmte Seiten nicht indexieren zu lassen bzw. in der robots.txt darum zu bitten: Checkout, Profile, Tax & Delivery etc.

Aber der Rest des Katalogbereiches und der Start-/Landingpages sollte irgendwie auffindbar sein.

Ist möglicherweise durch die .htaccess-Datei etwas versehentlich für alle Crowler ausgesperrt? Können wir diese Datei hier mal sehen?

Im Grunde sieht es für mich nicht wie ein Verstoß beim Content aus, für den man möglicherweise im Ranking etwas abgestraft werden könnte (es sei denn, alle Inhalte sind von einer anderen Seite geklaut, wovon ich erstmal nicht ausgehe). Ich denke, der Corpus Delicti liegt hier eher irgendwo in der aktiven Aussperrung während der Entwicklungsphase und irgendjemand hat vergessen, diesen Eintrag rauszunehmen :wink:

@marco.steinhaeuser: ja, die Seiten verschwinden wieder nach und nach. In der GSC stehen auch etliche Einträge unter „Gecrawlt - nicht indexiert“.

Hier die htaccess:

# KONSOLEH AREA START - PLEASE DO NOT EDIT MANUALLY BETWEEN THESE LINES
DirectoryIndex index.php
# KONSOLEH AREA END - PLEASE ADD MANUAL CHANGES BELOW

# BEGIN Shopware
# The directives (lines) between "# BEGIN Shopware" and "# END Shopware" are dynamically generated. Any changes to the directives between these markers will be overwritten.

DirectoryIndex index.php

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    # Sets the HTTP_AUTHORIZATION header removed by Apache
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    # If the requested filename exists, simply serve it.
    # We only want to let Apache serve files and not directories.
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    # Rewrite all other queries to the front controller.
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

<IfModule mod_headers.c>
    <FilesMatch "\.(?i:svg)$">
        Header set Content-Security-Policy "script-src 'none'"
    </FilesMatch>
</IfModule>

# END Shopware

# BEGIN Komprimierung
<IfModule mod_deflate.c>
    # Komprimierung für HTML, CSS, JavaScript, Text, XML und Schriftdateien aktivieren
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/font-woff2
    AddOutputFilterByType DEFLATE application/font-woff
    AddOutputFilterByType DEFLATE font/ttf
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE image/svg+xml

    # Exclude ältere Browser, die Probleme mit Komprimierung haben
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

# Optional: Brotli-Komprimierung aktivieren, wenn mod_brotli installiert ist
<IfModule mod_brotli.c>
    AddOutputFilterByType BROTLI_COMPRESS text/html
    AddOutputFilterByType BROTLI_COMPRESS text/plain
    AddOutputFilterByType BROTLI_COMPRESS text/xml
    AddOutputFilterByType BROTLI_COMPRESS text/css
    AddOutputFilterByType BROTLI_COMPRESS application/xml
    AddOutputFilterByType BROTLI_COMPRESS application/xhtml+xml
    AddOutputFilterByType BROTLI_COMPRESS application/rss+xml
    AddOutputFilterByType BROTLI_COMPRESS application/javascript
    AddOutputFilterByType BROTLI_COMPRESS application/x-javascript
    AddOutputFilterByType BROTLI_COMPRESS application/font-woff2
    AddOutputFilterByType BROTLI_COMPRESS application/font-woff
    AddOutputFilterByType BROTLI_COMPRESS font/ttf
    AddOutputFilterByType BROTLI_COMPRESS font/otf
    AddOutputFilterByType BROTLI_COMPRESS image/svg+xml
</IfModule>
# END Komprimierung

Sorry für den Edit Deines Posts: Ich hab das mal für alle lesbar gemacht.

In der .htaccess sehe ich jetzt erstmal auch keinen Grund für die Nicht-Indexierung.

Was sagt denn GSC genau über die Gründe darüber? Das bekommt man oft über einen Klick auf den entsprechenden Eintrag heraus :wink:

@marco.steinhaeuser danke fürs formatieren. :wink:

Auffällig ist der Abschnitt „gecrawlt - nicht indexiert“. Da sind etliche Seiten drin die live sein sollten. Prüfe ich einer der Seiten, steht angeblich der Indexierung nichts im Weg.

Bei den indexierten Seiten, stehe. Diverse Verweise. Hier weiß ich nicht warum z.B. die Seite „über uns“ verweist bzw. ob das so so sein soll.

Bei beiden Einträgen wird keine Sitemap erkannt.


Ich habe heute unsere gesamten URLs noch mal via Bulk-Aktion aktualisiert. Bis auf die Kategorien hat jetzt jede Produktseite eine neue Adresse. Indexiert wird aber nur der Elternartikel.

Ich habe die Vermutung das irgendwo dadrin im System ein Fehler war, da laut GSC die verweisenden Seiten nicht richtig angezeigt hat bzw. keine Sitemap dazu gefunden hat.

Zu verlieren habe ich ja aktuell nichts.

Um die GSC nicht weiter zu verwirren, habe ich nur die neue Sitemap eingereicht. Reicht das oder sollte ich noch einen Punkt anstoßen?

Ganz ehrlich? Grad remote ohne Systemzugriff usw. gerate ich echt an meine Grenzen und weiß nicht, warum Google so radikal nicht indexiert. Selbst ohne Sitemap sollte problemlos gecrawlt werden können - schliesslich gibt es eine interne Verlinkung.

Was mich in GSC stutzig macht ist „Verweisende Seite: Nicht gefunden“. Das ist aber auf der anderen Seite auch logisch, weil die /fbt/ den canonical Tag auf die erste Variante setzt. Was passiert denn, wenn Du mal nach dieser URL (des canoncial Tags) schaust, warum diese nicht indexiert ist?

Hi @marco.steinhaeuser,
ich habe ja Anfang der Woche paar Veränderungen im Shop vorgenommen.

SEO-URLs neu generiert: Mithilfe der Erweiterung „SEO Professionell“ habe ich alle URLs neu generiert. Dabei wurden die kanonischen URLs bei Varianten auf eine Variante gesetzt sowie die Attribute index und follow entsprechend aktualisiert.

Sitemap aktualisiert: Anschließend habe ich die Sitemap neu erstellt und in der Google Search Console hinterlegt. Daher könnten aktuelle Ergebnisse in der Search Console für den Artikel FBT bzw. dessen Variante momentan nicht aussagekräftig sein.

Mir ist gestern aber noch was aufgefallen.
Beim Laden der regulären Sitemap in der Search Console werden 340 Seiten gefunden.

Zusätzlich habe ich die Sitemap https://shop-verladesysteme.de/sitemap/salesChannel-01891bb8df7a7344b42d297b3f8c8742-2fbb5fe2e29a4d70aa5854ce7ce3e20b/01891bb8df7a7344b42d297b3f8c8742-01891bb8df88705f8a9a552f0c586856-sitemap-shop-verladesysteme-de-1.xml.gz eingereicht, wobei hier nur 86 Seiten erkannt wurden, was tendenziell eher passt.

Ich würde mal beide Sitemap-URLs in der Search Console stehen lassen und ein paar Tage warten bis die Bots wieder fleissig waren.

Falls du einen Lösungsansatz hast, könnte ich dir temporär Zugriff gewähren.

Hallo Marco,
ich bin langsam echt ratlos. Nachdem ich die URLs neu gesetzt, die Sitemap aktualisiert und Google ausreichend Zeit zum Crawlen gegeben habe, werden die Seiten weiterhin nicht indexiert. Selbst bei manueller Eingabe einzelner URLs passiert nichts.

Die Search Console zeigt 10 Seiten im Index an, doch in den Google-Suchergebnissen tauchen sie nicht auf dafür aber andre. Interessanterweise sind die 3 indexierten Seiten über Google Ads getrackt – erkennbar an den URL-Parametern. Das nicht mehr Seiten durch Google Ads im Index stehen erkläre ich mir damit, das die Robots.txt seit kurzem das crawlen aller URLs mit „/?“ blockiert.

Ich verstehe nicht, warum die Sitemap nicht richtig greift oder warum falsche Verweise in der Search Console auftauchen. Tools wie Screaming Frog und XOVI zeigen keine Fehler: Canonicals sind korrekt, Statuscodes sind 200, die Struktur passt.

Hast du eine Idee, wo ich noch ansetzen könnte? Falls nötig, könnte ich dir temporären Zugriff auf die Search Console und das Backend geben.

Danke dir schon mal!

Google nimmt sich teils Wochen bis Monate Zeit, wenn es eine Website als nicht wirklich relevant ansieht. So alt ist der Thread noch nicht wirklich.

Eine Domain-Property bei der Search Console angelegt?

Hi Max,
das Problem besteht ja schon seit über 1 Jahr. Wir haben auch mehrere Monate nichts an der Struktur verändert. Erst seit 3-4 Wochen versuchen wir es erneut mit diversen Umstellungen.

In der Search Console haben wir die Domain und URL-Präfix angelegt.

Schließen sich die beiden Optionen nicht gegenseitig aus?

Wenn du möchtest, schaue ich gerne kurz in der Seach Console nach. Dann schreibe ich dir per privater Nachricht mein Google Account.

Ich glaub, ich hab was gefunden: Der A-Record ist nicht richtig gesetzt, er verweist lediglich auf www.shop-verladesysteme.de (also mit www). Einen A-Record mit der richtigen TLD ohne www (also, wo sich die Inhalte befinden), gibt es auf dem Server gar nicht. Offenbar gibt es auch keine Zwangsumleitung von https://www auf https://. Versuch das mal entsprechend abzuändern und schau was passiert.

Und noch etwas. Wenn ich das richtig sehe, werden hier mehrere HTTP-Header ausgegeben, einmal 301 und einmal 200 (teils random). Da ist doch irgend etwas nicht richtig eingestellt auf dem Server…

HTTP/1.1 301 Moved Permanently
Date: Thu, 13 Mar 2025 17:50:52 GMT
Server: Apache
Location: https://shop-verladesysteme.de/
Content-Length: 311
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 200 OK
Date: Thu, 13 Mar 2025 17:50:52 GMT
Server: Apache
Server-Timing: 
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-frame-options: deny
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Age: 6251
Cache-Control: no-cache, private
Set-Cookie: _GRECAPTCHA=1; expires=Sat, 12 Apr 2025 16:06:41 GMT; Max-Age=2585749; path=/; samesite=lax
Upgrade: h2
Connection: Upgrade, Keep-Alive
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=100
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

Dass es einzig an der Sitemap liegen soll, kann ich mir nicht so recht vorstellen, allerdings kam justerment heute dazu ein recht interessanter Beitrag vorbeigeschneit. Vielleicht hilft’s ja dem ein oder anderen:

Ich muss mich korrigieren. Ist hier bei Hetzner nur anders umgesetzt als ich das bisher gesehen hatte:

> server 213.133.100.102
Default server: 213.133.100.102
Address: 213.133.100.102#53
> set type=a
> shop-verladesysteme.de
Server:		213.133.100.102
Address:	213.133.100.102#53

Name:	shop-verladesysteme.de
Address: 78.46.181.24
> www.shop-verladesysteme.de
Server:		213.133.100.102
Address:	213.133.100.102#53

www.shop-verladesysteme.de	canonical name = shop-verladesysteme.de.
Name:	shop-verladesysteme.de
Address: 78.46.181.24

Also alles fein mit dem 1. Punkt :wink:

Also der A-Record passt deiner Meinung nach doch?

Können die 301 Header damit zusammen hängen, das die meisten Seiten schon mal unter einer anderen URL verfügbar waren?

Den Beitrag bezüglich XML-Feed ist interessant. Hier läuft aber alles super.

Danke schon mal für deine Unterstützung

@marco.steinhaeuser ich hätte noch mal eine Frage zu dem Header.

Im Backend habe ich nur die https://shop-verladesysteme hinterlegt. In der htaccess habe ich eine Weiterleitung der www Adresse eingerichtet.

Kann es sein das der folgende Eintrag für den 301 Eintrag sorgt?

# RewriteCond %{ENV:REDIRECT_STATUS} ^$ # RewriteRule ^index.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]