Das Problem ist, dass Whitelisting robots.txt mit Disallow: /
funktioniert nicht wie erwartet mit Google.Google Sitemap enthält URLs, die von robots.txt blockiert werden Warnung
Google hat Probleme mit robots.txt Regeln zu beschränken:
User-agent: *
Host: sitename
Allow: /$
Allow: /sitemap.xml
Allow: /static/
Allow: /articles/
Disallow:/
Disallow: /static/*.js$
Wo sitemap.xml enthält /
und zahlreiche /articles/...
URLs .:
<url><loc>http://sitename/</loc><changefreq>weekly</changefreq></url>
<url><loc>http://sitename/articles/some-article</loc><changefreq>weekly</changefreq></url>
<url><loc>http://sitename/articles/...</loc><changefreq>weekly</changefreq></url>
...
Crawl/robots.txt Tester in Google Die Suchkonsole interpretiert sie korrekt. Sie zeigt diese URLs als zulässig an ("Fetch as Google" funktioniert ebenfalls):
Site-Name/
Site-Name/articles/some-Artikel
jedoch der Bericht in Crawl/Sitemaps zeigt, dass sitemap.xml Probleme für alle /articles/...
URLs bekommen hat, ist die Warnung:
Sitemap enthält Urls, die durch robots.txt blockiert
So wird nur /
indexiert (es wurde sogar irgendwann aus dem Index entfernt, obwohl Google sich im Sitemap-Bericht nie beschwert hat).
Der Grund für diese Einstellung ist, dass Google richtig SPA Routen machen nicht in der Lage ist, so dass einige SPA Routen (/
und /articles/...
) wurden (andere Routen als Fragmente und erlauben vorgerendert für das Crawling noch nicht vorgerendert, ist es nicht wünschenswert, um sie im Moment zum Crawlen verfügbar zu machen).
I vorübergehend ersetzt Disallow: /
mit schwarzer Liste aller bekannten Routen ohne Fragmente, und das Problem verschwunden:
User-agent: *
Host: sitename
Allow: /$
Allow: /sitemap.xml
Allow: /static/
Allow: /articles/
Disallow: /blacklisted-route1
Disallow: /blacklisted-route2
...
Disallow: /static/*.js$
Was ist das Problem mit dem früheren Ansatz ist? Warum verhält sich Google so?
Die Regeln von robots.txt sind ziemlich eindeutig und der robots.txt-Tester von Google bestätigt dies nur.
Also Disallow/Erlauben Reihenfolge Angelegenheiten hier und Disallow sollte zuerst kommen, oder? – estus
Sie könnten das tatsächlich versuchen ... aber ich aktualisiere meine Antwort, da es irreführend sein könnte ... – JVerstry
Nein Entschuldigung, ich habe das falsch verstanden. Ich aktualisiere meine Antwort, da sie in Ihrem Fall nicht korrekt ist. – JVerstry