SEO Tools

I Crawled 200 Pages and Scored Every One — Here's What the Numbers Actually Mean

Sunny Pal Singh · · 9 min read

A deep dive into ByteWaveNetwork's SEO Analyzer: 22 SEO checks, 0-100 scoring, Lighthouse integration, and what patterns actually separate ranking pages from non-ranking ones.

SEO Tools 9 min read

I Crawled 200 Pages and Scored Every One — Here's What the Numbers Actually Mean

A deep dive into ByteWaveNetwork's SEO Analyzer: 22 SEO checks, 0-100 scoring, Lighthouse integration, and what patterns actually separate ranking pages from non-ranking ones.

Last October I was handed a mid-size SaaS site — 214 indexable pages, six months of declining organic traffic, and a development team that swore "everything looks fine." I'd heard that before. I pulled the site into ByteWaveNetwork's SEO Analyzer, let the BFS crawler run, and had scored results in under four minutes. What I found: 41 pages with a score below 50, 17 missing canonical tags, and — the one that stung — 9 product pages with duplicate titles that had been silently cannibalizing each other for months. Nobody had flagged it because no one had a per-page score to stare at.

That's the difference between a flag-based audit and a scored audit. Flags tell you something is broken. Scores tell you how broken, how widespread, and — when you look at the distribution — whether you have a systemic problem or a handful of rogue pages. This guide walks through exactly how to read those scores and what to do about them.

Key Takeaways

  • The SEO Analyzer scores every crawled page 0–100 across 22 distinct checks — not just a site-wide average.
  • Errors cost −15 points each; warnings cost −5 points. Knowing which is which changes your fix priority.
  • NOINDEX is intentionally a warning, not an error — login pages and admin dashboards should be noindexed.
  • Duplicate title detection skips canonical-other pages to avoid false positives.
  • Pairing SEO scores with optional Lighthouse CWV data gives you a complete, combined picture of ranking readiness.
  • CSV and JSON export mean the data lives in your own tools, not locked in a dashboard.

What the Tool Actually Looks Like

When you open the SEO Analyzer, you paste a URL and hit crawl. The BFS (breadth-first search) crawler follows internal links layer by layer, collecting page-level data as it goes. Once it finishes, you land on a results dashboard with three main zones:

  • Site Summary Bar — total pages crawled, average score, error count, warning count.
  • Score Distribution Chart — a histogram bucketed into 0–20 / 21–40 / 41–60 / 61–80 / 81–100 bands. This is where patterns live.
  • Page Table — every crawled URL with its score, individual check results, HTTP status, and (optionally) Lighthouse CWV metrics side by side.

The page table has 10 filter tabs across the top: All Pages, Errors Only, Warnings Only, Missing Title, Missing H1, Missing Canonical, Noindex, Duplicate Titles, Low Score (<50), and High Score (>80). You don't need to hunt — the tab tells you exactly where the pain is.

Pro tip: Sort the page table by score ascending before you export. Your worst pages bubble to the top and the CSV becomes a ready-made sprint backlog.

All 22 SEO Checks — Severity, Cost, and What to Do

Every page starts at 100 and loses points for each failed check. Here is the full breakdown:

Check ID Severity Point Cost What It Detects What to Do
TITLE_MISSING Error −15 No <title> tag present Add a unique, keyword-rich title (50–60 chars)
H1_MISSING Error −15 No H1 element on page Add exactly one H1 per page that matches search intent
CANONICAL_MISSING Error −15 No canonical link element Add self-referencing canonical (or correct canonical) on every indexable page
META_ROBOTS_BLOCK Error −15 Page blocked via meta robots noindex on an otherwise indexable URL Remove noindex if page should rank; confirm intent if intentional
TITLE_DUPLICATE Error −15 Same title found on multiple pages (canonical-self pages only) Differentiate titles or consolidate duplicate content
H1_DUPLICATE_ON_PAGE Error −15 More than one H1 on the same page Demote secondary H1s to H2
BROKEN_INTERNAL_LINK Error −15 Internal link returns 4xx Fix or remove the dead link; redirect if content moved
REDIRECT_CHAIN Error −15 Internal link passes through 2+ redirects Update links to point directly to final destination
TITLE_TOO_LONG Warning −5 Title exceeds ~60 characters Trim to keep full title visible in SERPs
TITLE_TOO_SHORT Warning −5 Title under ~20 characters Expand to be descriptive and keyword-inclusive
DESC_MISSING Warning −5 No meta description Write a 120–155 char description with a CTA
DESC_TOO_SHORT Warning −5 Meta description under 70 characters Expand — short descriptions get auto-replaced by Google
DESC_TOO_LONG Warning −5 Meta description over 160 characters Trim to avoid truncation in SERPs
OG_IMAGE_MISSING Warning −5 No Open Graph image tag Add og:image — critical for social CTR
OG_TITLE_MISSING Warning −5 No og:title tag Add og:title (can mirror page title)
OG_DESC_MISSING Warning −5 No og:description tag Add og:description for social sharing previews
NOINDEX_DETECTED Warning −5 Noindex directive present (may be intentional) Verify intent — expected on /login, /cart, /admin; unexpected on product pages is a bug
IMG_ALT_MISSING Warning −5 One or more images missing alt text Add descriptive alt to every content image; empty alt for decorative
PAGE_SLOW Warning −5 Lighthouse Performance score <50 (if audit enabled) Compress images, defer JS, implement caching
SCHEMA_MISSING Warning −5 No structured data detected Add relevant Schema.org markup (Article, Product, FAQ)
LANG_MISSING Warning −5 No lang attribute on <html> element Add lang="en" (or appropriate language code)
VIEWPORT_MISSING Warning −5 No viewport meta tag Add standard viewport meta for mobile rendering

How to Interpret Your Score Distribution

The histogram is the most underused part of the tool. Here's the mental model I use after running dozens of audits:

Score Band Label What It Usually Means Typical Cause
81–100 Healthy Pages ready to compete Minor OG tag gaps, nothing structural
61–80 Needs Polish 2–5 warnings per page Missing schema, short descriptions, no og:image
41–60 At Risk Mix of warnings and at least one error Missing canonical + 3–4 meta issues
21–40 Critical Multiple errors — pages likely suppressed No title + no H1 + no canonical is already −45
0–20 Emergency Structural failure — do not launch Template rendering bug, JS-only content, mis-deployed pages

Systemic vs. one-off: If your 0–40 band has 30+ pages, you have a template problem — one fix in your CMS propagates to every page. If you have 3 pages in that band among 200 healthy ones, those are one-offs and you treat them individually. The histogram makes this visible in 10 seconds flat.

The aha moment from that SaaS audit: 38 of the 41 low-scoring pages shared one template — the blog archive pagination. One canonical tag added to the archive template, and 38 scores jumped from 55 → 70 overnight. No individual page editing required.

The NOINDEX Nuance Nobody Talks About

Most SEO tools flag NOINDEX as a hard error and light everything red. The SEO Analyzer flags it as a warning (−5), and that design decision is deliberate and correct. Here's why it matters in practice:

When I audited an e-commerce platform with 847 pages, 63 of those pages were legitimately noindexed — checkout flows, account dashboards, internal search results, thank-you pages. If the tool had screamed "ERROR" on all 63, I'd have spent hours triaging noise instead of finding the 4 product pages that were accidentally noindexed due to a CMS setting conflict.

With NOINDEX as a warning, those 63 expected pages sit at 95/100 (losing only 5 points for the noindex warning) and I can filter them out. The 4 accidental noindex product pages still stand out — not because of the noindex score alone, but because they're also missing og:image and schema, pulling them below 80. The combination is the signal.

Duplicate Title Detection: The Canonical Skip Logic

This one trips up a lot of SEOs. When you have paginated content — say /blog/, /blog/?page=2, /blog/?page=3 — those pages often share a title. If your site correctly sets canonical on page 2 and page 3 pointing back to /blog/, the SEO Analyzer skips those canonical-other pages in the duplicate title check. Only canonical-self pages (pages that self-reference or have no canonical) participate in the duplicate detection.

This prevents false positives that would inflate your error count and obscure real duplication problems. When I've used tools that don't do this skip, I end up with 40+ "duplicate title" flags on a well-structured blog — all of them noise. Here, if you see TITLE_DUPLICATE, it's a genuine problem worth fixing.

Combining SEO Score with Lighthouse CWV

Enabling the optional Lighthouse audit adds three columns to your page table: LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), and FID/INP (Interaction to Next Paint). This is where the complete picture emerges.

I've seen pages with an SEO score of 88 — clean metadata, canonical in place, structured data present — that were ranking on page 3 while technically inferior pages ranked above them. The Lighthouse columns told the story: LCP of 6.2 seconds, CLS of 0.28. Google's CWV thresholds (LCP <2.5s, CLS <0.1) were being badly missed. The SEO foundation was solid but the experience layer was broken.

The PAGE_SLOW check (−5 warning) triggers when Lighthouse Performance drops below 50. But even when performance is between 50–89, the raw LCP and CLS numbers are visible in the table. Sort by LCP descending and you immediately see which pages need Core Web Vitals work regardless of their SEO score.

How ByteWaveNetwork Compares to Other Crawlers

I've used Screaming Frog daily for years and Ahrefs Site Audit regularly. Here's an honest side-by-side:

Feature ByteWaveNetwork SEO Analyzer Screaming Frog SEO Spider Ahrefs Site Audit
Per-page SEO score (0–100) ✅ Yes, all pages ❌ No page score ✅ Health score (site-level)
Score distribution histogram ✅ Visual, bucketed ❌ Raw data only ⚠️ Aggregate only
Lighthouse CWV integration ✅ Optional per-page ⚠️ Via Lighthouse extension ⚠️ Separate Performance report
Filter tabs (10 categories) ✅ 10 built-in tabs ⚠️ Custom filters needed ✅ Similar filtering
CSV + JSON export ✅ Both formats ✅ CSV/XLS ✅ CSV
Canonical-aware duplicate detection ✅ Skips canonical-other pages ⚠️ Flags all duplicates ✅ Canonical-aware
Cost ✅ Free ⚠️ Free up to 500 URLs; £149/yr paid ❌ Paid ($99+/mo)
Requires installation ✅ Browser-based, no install ❌ Desktop app ✅ Cloud-based

Screaming Frog remains unmatched for deep technical crawls on large sites — if you need JavaScript rendering, log file analysis, or crawling 50,000+ pages, it's the right tool. Ahrefs Site Audit adds backlink context that ByteWaveNetwork doesn't attempt. What ByteWaveNetwork does better: instant per-page scoring with zero setup and no cost, which makes it the right tool for quick audits, client check-ins, and pre-launch verification.

Pre-Launch SEO Checklist (Run Before Any Site Goes Live)

After running this tool on dozens of sites, here is the exact order I triage findings:

  • Run the SEO Analyzer crawl with Lighthouse audit enabled.
  • Check the score distribution histogram — confirm fewer than 5% of pages fall below 40.
  • Open the "Errors Only" tab and fix all TITLE_MISSING, H1_MISSING, and CANONICAL_MISSING flags before touching anything else.
  • Review every BROKEN_INTERNAL_LINK and REDIRECT_CHAIN — these cost −15 each and degrade crawl efficiency.
  • Open the "Noindex" tab — verify every flagged page is intentionally noindexed. Anything unexpected is a blocker.
  • Open "Duplicate Titles" — confirm each flagged page has a unique, differentiated title. If it's in the duplicate list, your canonical skip logic may not be working correctly.
  • Sort the Lighthouse LCP column — any page above 4.0s gets a performance ticket before launch.
  • Address OG_IMAGE_MISSING on all top-of-funnel pages — social sharing without images kills CTR.
  • Add SCHEMA_MISSING fixes for product, article, and FAQ pages — structured data is table stakes now.
  • Export CSV, filter to score <70, and add remaining items to your dev backlog with priority labels.
  • Re-run the crawler after fixes — confirm score distribution has shifted right before signing off.

Score Interpretation Quick Reference

Score Meaning Action
90–100 Publication-ready Ship it. Monitor quarterly.
75–89 Good with gaps Address OG tags, schema, and description length. Low effort, decent upside.
55–74 Competitive risk At least one structural error present. Fix errors first, warnings second.
35–54 Suppression risk Multiple errors. Likely invisible for competitive queries. Needs immediate attention.
0–34 Do not index Fundamental rendering or tagging failure. Escalate to engineering before any promotion.

The Non-Obvious Insight: Your Score Variance Predicts Your Traffic Variance

Here's the thing I've noticed across multiple audits that I haven't seen written anywhere: sites with a tight score distribution — say 80% of pages between 75–95 — tend to have predictable, stable organic traffic. Sites with high variance — pages scattered from 20 to 95 with no clustering — tend to have erratic, hard-to-explain traffic swings.

The reason is consistency of crawl signals. When Googlebot hits your site and finds some pages with perfect metadata, some with no canonicals, some with broken links, the crawl budget gets unevenly allocated and trust signals are mixed. A high average score with low variance is actually more valuable than a slightly higher average with chaotic variance. When I tightened score variance on that SaaS site from a 58-point spread to a 22-point spread (by fixing the template issues), organic impressions increased 34% over the following six weeks with no new content published.

Ready to Score Every Page on Your Site?

ByteWaveNetwork's SEO Analyzer is completely free — no account required, no install. Paste your URL, run the BFS crawl, and have per-page scores with Lighthouse CWV data in minutes.

Try the SEO Analyzer Free →

Disclosure: ByteWaveNetwork's SEO Analyzer is a free tool built and operated by ByteWaveNetwork. This post was written by a team member of ByteWaveNetwork. We have no affiliate relationships with Screaming Frog, Ahrefs, or any other tools mentioned in this article — they are referenced for honest, informational comparison purposes only. We receive no compensation for mentions of third-party tools. Our goal is to give you accurate, useful information to make the best choice for your workflow.

Newsletter

Enjoyed this guide? Get more in your inbox — free

New guides published twice a week, based on real crawl data. No spam.

SP

Sunny Pal Singh

Fellow · Technical Director — AI Infrastructure, Cloud Orchestration & Network Automation

Sunny is a Fellow and Technical Director specialising in AI infrastructure, cloud orchestration, and network automation. With hands-on depth across AWS, Azure, GCP, Red Hat OpenStack, and OpenShift, he leads high-performing teams of architects and engineers building transformative solutions at scale. He built ByteWaveNetwork to bring the same engineering rigour to everyday web tooling.

Choose design