Hash-URLs sind ein GRAVIERENDES Problem:
Wie Crawler Hash-URLs sehen:
- Ihre URL:
example.com/#/products/shoes - Was der Crawler sieht:
example.com/ - Alle Hash-Routen = für Crawler eine Seite
Die Lösung – History API nutzen:
// Vorher (Hash-Routing)
<Route path="/#/products/:id" />
// Nachher (Browser History)
<Route path="/products/:id" />
// React Router konfigurieren
<BrowserRouter>
<Routes>
<Route path="/products/:id" element={<Product />} />
</Routes>
</BrowserRouter>
Server-Konfiguration nötig:
# nginx – index.html für alle Routen ausliefern
location / {
try_files $uri $uri/ /index.html;
}
Priorität: Das ist tatsächlich wichtiger als Prerendering. Hash-URLs bedeuten, dass Crawler Ihre Seiten buchstäblich nicht unterscheiden können.
Erst URLs fixen, dann Prerendering implementieren.