Ein Kunde schickte mir einmal eine Site, die von einer professionellen Agentur 18 Monate lang „SEO-optimiert" worden war. Die Rankings waren flach. Der Traffic war Jahr-für-Jahr rückläufig. Der Bericht der Agentur war 47 Seiten lang und enthielt einen Abschnitt zu „Brand-Voice-Alignment". Was er nicht enthielt, war die Tatsache, dass 3.400 Seiten mit dem Status-Code 200 zurückgegeben wurden, aber noindex-Tags in den Meta-Angaben eingebettet waren. Dreieinhalbtausend Seiten. Weg. Unsichtbar. Die Agentur hatte die Site nie wirklich gecrawlt.
Ich habe es in einer Woche behoben. Mit Screaming Frog und Google Search Console.
Das ist das Ding mit Technical SEO — es belohnt Menschen, die sich tatsächlich die Daten ansehen, statt darüber zu sprechen. Und ehrlich gesagt brauche ich für 90 % der Sites, die ich bei Seahawk überprüfe, Ahrefs, Semrush oder eine der großen Plattformen nicht, um die Probleme zu finden, die wirklich die Performance beeinträchtigen. Zwei Tools. Ein Prozess. Hier ist er.Seahawk, I don't need Ahrefs, Semrush, or any of the big platforms to find the problems that are genuinely hurting performance. Two tools. One process. Here it is.
---
Bevor du etwas Crawlst, Richte Screaming Frog Richtig Ein
Die meisten Leute öffnen Screaming Frog, fügen eine URL ein und klicken Start. Das ist ok für einen 50-Seiten-Blog. Bei allem Größeren wartest du 40 Minuten auf einen Crawl, der dir falsche Daten liefert.
Konfiguration ist wichtiger als Crawling-Geschwindigkeit
Erstes, das ich mache: Ich gehe zu Configuration > Spider und stelle sicher, dass ich das richtige Protokoll crawle. Falls die Website auf HTTPS läuft (sollte sie), starte ich von der kanonischen HTTPS-Homepage. Ich schalte auch das Crawling bestimmter Dateitypen aus — PDFs, Bilder, Videos — es sei denn, ich möchte diese gezielt prüfen. Das halbiert die Crawl-Zeit.Configuration > Spider and make sure I'm crawling the correct protocol. If the site is on HTTPS (it should be), I'm starting from the canonical HTTPS homepage. I also turn off crawling of certain file types — PDFs, images, videos — unless I specifically want to audit those. It halves the crawl time.
Dann stelle ich Configuration > Respect Canonical Tags auf aus. Kontraintuiv, ich weiß. Aber ich möchte jede kanonisierte URL sehen, um prüfen zu können, ob die Kanonisierung tatsächlich korrekt ist. Falls Screaming Frog kanonisierte Seiten überspringt, wirst du nie erfahren, dass sie existieren.Configuration > Respect Canonical Tags to off. Counter-intuitive, I know. But I want to see every canonicalised URL so I can audit whether the canonicalisation is actually correct. If Screaming Frog skips canonicalised pages, you'll never know they exist.
Eine Sache noch: unter Configuration > Custom Extraction stelle ich eine Extraction-Regel auf, um die rohen <title> und Meta-Description direkt aus dem HTML-Quellcode zu ziehen. Warum? Weil manche WordPress-Websites — besonders solche, die Yoast neben einem Page Builder laufen lassen — zwei Title-Tags ausgeben. Die Standard-Spalte von Screaming Frog zeigt dir nur das erste. Die Extraction-Regel zeigt dir alles.Configuration > Custom Extraction, I set up an extraction rule to pull the raw <title> and meta description directly from the HTML source. Why? Because some WordPress sites — particularly ones running Yoast alongside a page builder — output two title tags. Screaming Frog's default column only shows you the first one. The extraction rule shows you everything.
---
Der erste Durchlauf: Worauf ich in den Crawl-Daten achte
Wenn der Crawl fertig ist, starte ich nicht mit defekten Links. Jeder startet mit defekten Links. Ich starte mit dem Response Codes Tab und filtere nach 3xx Redirects.Response Codes tab and filter for 3xx redirects.
2021 übernahm Seahawk einen E-Commerce-Kunden — mittleres Möbeleinzelhhandelsunternehmen, etwa 8.000 URLs. Ihr Dev-Team hatte Redirects zwei Jahre lang ad hoc gehandhabt. Wir fanden 19 Redirect-Ketten, einige davon vier Hops lang. Seite A leitete auf Seite B um, die auf Seite C weiterleitete, die auf Seite D weiterleitete. Google sagt, es folgt bis zu 10 Hops, aber in der Praxis verschwendet alles jenseits von zwei Hops Crawl-Budget und verwässert Link-Equity. Wir haben alles auf Single-Hop-Redirects reduziert. Das allein — keine Content-Änderungen, kein Link Building — hat drei Kategorieseiten innerhalb von sechs Wochen von Seite 3 auf Seite 1 verschoben.Google says it follows up to 10 hops, but in practice, anything beyond two hops wastes crawl budget and dilutes link equity. We collapsed everything to single-hop redirects. That alone — no content changes, no link building — moved three category pages from page 3 to page 1 within six weeks.
Die Reihenfolge, in der ich die Tabs durcharbeite
- Response Codes → 3xx — Redirect-Ketten und Schleifen — redirect chains and loops
- Response Codes → 4xx — fehlerhafte Seiten (nach eingehenden Links filtern, um Prioritäten zu setzen) — broken pages (filter by inlinks to prioritise)
- Indexability → Non-Indexable — noindex, Canonicals, die woanders hinweisen, blockiert durch robots.txt — noindex, canonicals pointing elsewhere, blocked by robots.txt
- Page Titles — fehlend, dupliziert, über 60 Zeichen — missing, duplicated, over 60 characters
- Meta Description — fehlend oder dupliziert (kein Ranking-Faktor, aber Click-Through-Rate zählt) — missing or duplicated (not a ranking factor, but click-through matters)
- H1 — fehlend, dupliziert oder mehr als eins pro Seite — missing, duplicated, or more than one per page
- Images → Missing Alt Text — schneller Gewinn, besonders für Produktseiten — quick win, especially for product sites
- Directives → Canonical — prüfen, ob diese mit der tatsächlich indexierbaren URL übereinstimmen — check these match the actual indexable URL
Diese Reihenfolge ist absichtlich. Ich arbeite von strukturellen Problemen (Redirects, fehlerhafte Seiten) hinunter zu On-Page-Problemen. Das Beheben einer fehlerhaften Redirect-Kette hilft jeder Seite in dieser Kette. Das Beheben einer fehlenden Meta Description hilft einer Seite.
---
Layering in Search Console: Where Things Get Interesting
Screaming Frog tells you what's on the site. Search Console tells you what Google thinks is on the site. The gap between those two data sets is where the real problems live.
Open Coverage (or Indexing → Pages in the newer interface). You're looking at four things:Coverage (or Indexing → Pages in the newer interface). You're looking at four things:
- Error — pages Google tried to index and couldn't — pages Google tried to index and couldn't
- Valid with warnings — often "Submitted URL not selected as canonical," which is a mess you need to untangle — often "Submitted URL not selected as canonical," which is a mess you need to untangle
- Excluded — pages Google chose not to index (crawled but not indexed, noindexed, etc.) — pages Google chose not to index (crawled but not indexed, noindexed, etc.)
- Valid — pages Google has indexed — pages Google has indexed
The "Excluded" bucket is criminally underused. Most people ignore it. I go straight there. Filter by "Crawled — currently not indexed." This is Google saying: I found this page, I read it, and I decided it wasn't worth indexing. That's almost always a thin content problem. Or it's a page that's genuinely fine but is too similar to another page — a classic issue with faceted navigation or tag archives.I found this page, I read it, and I decided it wasn't worth indexing. That's almost always a thin content problem. Or it's a page that's genuinely fine but is too similar to another page — a classic issue with faceted navigation or tag archives.
Matching GSC exclusions against your Screaming Frog crawl
Export your Screaming Frog crawl to CSV. Export the "Excluded" URLs from Search Console. Load both into Google Sheets and run a VLOOKUP. Any URL that appears in the Screaming Frog crawl and in the GSC excluded list is a priority investigation.and in the GSC excluded list is a priority investigation.
Ich kenne Leute, die dafür zu Python-Skripten greifen. Du brauchst das nicht. VLOOKUP in Sheets dauert vier Minuten und gibt dir die gleiche Antwort.
---
Crawl Budget: Spielt nur eine Rolle, wenn deine Website wirklich groß ist
Okay, lass mich ehrlich sein. Wenn deine Website unter 1.000 Seiten hat, ist Crawl Budget nicht dein Problem. Du kannst dich damit aufhören zu sorgen.
Aber sobald du über etwa 10.000 URLs hinausgehst — und viele WooCommerce- oder Magento-Shops erreichen das allein durch Produktvarianten und gefilterte URLs — fängt Crawl Budget an zu schmerzen. Die Google Search Central-Dokumentation zu Crawl Budget ist eigentlich eines der klareren Dinge, die sie geschrieben haben. Es lohnt sich, es richtig zu lesen.Google Search Central documentation on crawl budget is actually one of the clearer things they've written. Worth reading properly.
Die zwei Hebel, die dir in Search Console zur Verfügung stehen, sind der Bericht Crawl Stats und das Tool URL Inspection. Crawl Stats zeigt dir die Crawl-Aktivität von Google über 90 Tage: gecrawlte Seiten pro Tag, Antwortzeiten, Antwort-Codes. Wenn du an einem bestimmten Datum einen Spike bei 404ern siehst, ist das ein schiefgelaufenes Deployment. Wenn die durchschnittliche Crawl-Zeit über 2 Sekunden liegt, ist dein Server das Problem, nicht dein SEO.Crawl Stats report and the URL Inspection tool. Crawl Stats shows you Google's crawl activity over 90 days: pages crawled per day, response times, response codes. If you see a spike in 404s on a specific date, that's a deployment that went wrong. If average crawl time is above 2 seconds, your server is the problem, not your SEO.
---
Interne Verlinkung: Das, was Agenturen immer übersehen
Ich habe bei Seahawk über hundert Websites auditiert, wo der Kunde echtes Geld für Link Building ausgegeben hat — Guest Posts, Digital PR, alles Mögliche — und verwaiste Seiten hatte, auf die kein interner Link zeigte. Google kann nicht priorisieren, was es durch deine Website-Struktur nicht finden kann.orphaned pages that no internal link pointed to. Google can't prioritise what it can't find through your site structure.
In Screaming Frog filterst du das Crawl nach Inlinks = 0. Jede Seite mit null internen Links ist eine Waise. Gleiche das mit den indexierten Seiten in Search Console ab. Wenn die Seite indexiert ist, aber keine internen Links hat, bedeutet das, dass Google sie über eine XML-Sitemap oder einen externen Backlink gefunden hat. Das ist fragil. Gib ihr einen internen Link von einer relevanten Seite und du gibst Google ein strukturelles Signal, dass diese Seite wichtig ist.Inlinks = 0. Any page with zero internal links is an orphan. Cross-reference it against Search Console's indexed pages. If the page is indexed but has no internal links, it means Google found it through an XML sitemap or an external backlink. That's fragile. Give it an internal link from a relevant page and you're giving Google a structural signal that this page matters.
Ein paar Dinge, auf die ich bei Internal Linking achte
- Paginierungsseiten, die auf Produkt-/Artikelseiten verlinken, aber diese Seiten verlinken nicht zurück auf Kategorieseiten
- Blog-Posts aus 2019, auf die noch nie von neueren Inhalten aus verlinkt wurde
- Seiten mit Dutzenden eingehenden internen Links, aber sehr wenig Traffic in GSC — oft ein Zeichen, dass die Seite selbst ein Problem hat, nicht das Linking
---
Core Web Vitals: Lies die Daten, gerät nicht in Panik
Search Console hat einen Core Web Vitals Report. Er zieht Daten aus dem Chrome UX Report von echten Nutzern, das sind Felddaten — tatsächliche Nutzer auf echten Geräten, keine Lab-Simulation. Das ist aussagekräftiger als das, was du aus einem einmaligen Lighthouse-Lauf bekommen würdest.Core Web Vitals report. It pulls from real-user Chrome UX Report data, which is field data — actual users on actual devices, not a lab simulation. This is more meaningful than what you'd get from a one-off Lighthouse run.
Der Report sortiert URLs in „Gut", „Verbesserung erforderlich" und „Schlecht" nach LCP, FID (jetzt durch INP ersetzt) und CLS. Versuche nicht, alles auf einmal zu beheben. Sortiere nach der Gruppe „Schlecht" und schau, welches URL-Muster die meisten fehlgeschlagenen Seiten hat. Normalerweise ist es ein einzelnes Template — alle Produktseiten mit CLS-Problemen, oder alle Kategorieseiten mit langsamem LCP. Behebe das Template, behebe hunderte Seiten auf einmal.
Eine Sache, die ich auf die harte Tour gelernt habe: CLS-Probleme auf Seiten mit Anzeigen oder Cookie-Bannern kommen fast immer von Elementen, die nach dem ersten Render oberhalb der Faltung eingefügt werden. Screaming Frog wird das nicht erkennen. Du musst dir die tatsächliche Seite ansehen. Nutze Chrome DevTools mit aktivierten Layout Shift Regions im Rendering-Bereich.
---
Die Robots.txt- und Sitemap-Überprüfung (dauert 10 Minuten, spart Wochen)
Gehe zu yourdomain.com/robots.txt. Lese jede Zeile. Ich habe mit eigenen Augen eine live laufende Produktionsseite mit Disallow: / in der robots.txt gesehen. Keine Staging-Seite. Produktion. Ein sieben Jahre altes Unternehmen. Ihr Entwickler hatte die robots.txt des Staging-Systems während einer Migration kopiert und niemals überprüft. Sie waren im Grunde vier Monate lang für Google unsichtbar, bevor sie es bemerkten.yourdomain.com/robots.txt . Read every line. I have seen, with my own eyes, a live production site with Disallow: / in the robots.txt. Not a staging site. Production. A seven-year-old business. Their developer had copied the staging robots.txt during a migration and never checked it. They had been essentially invisible to Google for four months before they noticed.
Gehe in der Search Console zu Sitemaps. Überprüfe, was eingereicht wurde. Überprüfe, wann Google es das letzte Mal abgerufen hat. Wenn die Sitemap länger als eine Woche nicht abgerufen wurde, stimmt etwas nicht. Überprüfe auch die eingereichte URL-Anzahl im Vergleich zur indexierten URL-Anzahl — wenn du 4.000 URLs eingereicht hast und nur 1.200 indexiert sind, ist das ein Gespräch, das du über Inhaltsqualität führen musst, nicht über technische Fixes.Sitemaps. Check what's been submitted. Check the last time Google fetched it. If the sitemap hasn't been fetched in over a week, something is broken. Also check the submitted URL count vs the indexed URL count — if you've submitted 4,000 URLs and only 1,200 are indexed, that's a conversation you need to have about content quality, not about technical fixes.
---
FAQ
Brauche ich die bezahlte Version von Screaming Frog?
Die kostenlose Version ist auf 500 URLs begrenzt. Für alles darüber hinaus — was auf die meisten lohnenswerten Audits zutrifft — brauchst du die bezahlte Lizenz. Sie kostet derzeit £259 pro Jahr. Das ist etwa der Preis für eine Stunde Agenturarbeit. Kauf sie.£259 per year as of writing. That's about the price of a single hour of agency time. Buy it.
Wie oft sollte ich ein technisches Audit durchführen?
Für aktive Seiten, die regelmäßig veröffentlichen oder Produkte häufig wechseln, würde ich sagen vierteljährlich. Für kleinere, eher statische Seiten ist zweimal pro Jahr ausreichend. Ein Audit einmal durchzuführen und es als „erledigt" zu behandeln ist wie das Öl im Auto einmal zu wechseln und zu erwarten, dass es ewig läuft.
Screaming Frog zeigt 200-Status, aber GSC zeigt, dass die Seite nicht indexiert ist — warum?
Meist ist es eines von drei Dingen: ein noindex Meta-Tag, ein noindex HTTP-Header oder ein Canonical-Tag, das woanders hinweist. Führe die URL durch das URL-Inspektionstool der Search Console aus, und es wird dir genau sagen, was gefunden wurde. Dieses Tool ist unterschätzt — es zeigt dir Googles zuletzt gecrawlte Version der Seite, einschließlich des gerenderten HTML, was JavaScript-injizierte noindex-Tags erfasst, die ein einfacher HTTP-Request nicht sehen würde.last crawled version of the page, including the rendered HTML, which catches JavaScript-injected noindex tags that a basic HTTP request wouldn't see.
Wie sieht es mit JavaScript-gerenderten Websites aus?
Screaming Frog hat einen JavaScript-Rendering-Modus unter Configuration > Spider > Rendering. Aktiviere ihn für JS-lastige Websites. Es ist langsamer — deutlich langsamer — aber es ist die einzige Möglichkeit, um Probleme mit Inhalten oder Links zu erfassen, die von JavaScript nach dem Laden des initialen HTML injiziert werden. Für eine React- oder Next.js-Website immer im JS-Rendering-Modus crawlen.Configuration > Spider > Rendering. Turn it on for JS-heavy sites. It's slower — significantly slower — but it's the only way to catch issues with content or links that are injected by JavaScript after the initial HTML loads. For a React or Next.js site, always crawl in JS rendering mode.
Reicht Google Search Console für Keyword-Recherche aus?
Ja, um herauszufinden, für welche Suchanfragen deine bestehenden Seiten ranken, ist es ausgezeichnet. Um neue Keyword-Chancen zu entdecken, nein — du brauchst dafür etwas anderes. Aber das fällt außerhalb des Umfangs eines technischen Audits.existing pages rank for, yes, it's excellent. For discovering new keyword opportunities, no — you'll need something else. But that's out of scope for a technical audit.
---
Zwei Tools. Eine Tabellenkalkulation. Ein paar Stunden. Das ist wirklich alles, was man dafür braucht. Die teuren Plattformen haben ihren Platz — ich bin nicht gegen sie — aber ich habe zu viele Website-Betreiber sehen, die davon ausgehen, dass mehr Geld mehr Erkenntnisse bringt. Die Probleme liegen fast immer in den Grundlagen. Sie brauchen nur jemanden, der tatsächlich hinschaut.
