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.
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 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.