I Scanned 5 Popular JavaScript Sites for SEO Issues — Here's What I Found

Published: (March 29, 2026 at 06:07 PM EDT)
4 min read
Source: Dev.to

Source: Dev.to

Overview

I scanned five well‑known JavaScript‑heavy sites—react.dev, vercel.com, stripe.com/docs, linear.app, and shopify.com—running 19 SEO health checks across 10 pages each. Every site had issues; some had many.

Site Scores

SiteScoreQuick Take
react.dev74/100Best of the group; strong internal linking, all pages indexable, proper canonicals and OG tags.
vercel.com71/100Solid overall but sloppy on details (missing meta description, canonical, H1 on some pages; 9 orphan pages).
stripe.com/docs60/100Fundamentals nailed (titles, meta descriptions, H1s, canonicals, OG tags) but zero structured data, many missing alt texts, slow load times, and API failures.
linear.app57/100Heavy SPA; many orphaned pages, missing structured data, alt text, and occasional JS errors.
shopify.com39/100Largest gaps; many orphaned pages, missing H1s, no structured data, and frequent API failures.

Detailed Findings

react.dev

  • Internal linking: 3.5 average links per page, zero orphan pages.
  • Indexability: All pages indexable.
  • Meta & OG: Proper canonicals and Open Graph tags.
  • Weak spots: No structured data on any page, meta descriptions too short on 9/10 pages, a JavaScript file failed to load on /versions.

vercel.com

  • SSR: All pages indexable, good content depth, OG tags present.
  • Missing details:
    • No meta description on /abuse.
    • No canonical on /academy.
    • No H1 on a subpage.
    • 9 orphan pages out of 10 scanned.
  • Internal linking: 0 average links per page in the scanned set.

stripe.com/docs

  • Fundamentals: Titles, meta descriptions, H1s, canonicals, OG tags all present; zero orphan pages.
  • Weak spots:
    • No structured data on any page.
    • 7/10 pages missing image alt text.
    • 8/10 pages load > 3 seconds.
    • API requests failed on every page (potentially hiding content from crawlers).

linear.app

  • SPA issues:
    • 0.5 average internal links per page.
    • 4 orphan pages out of 10.
    • JS console errors on 2 pages, failed API requests on 2 more.
  • Missing structured data and alt text similar to other sites.

shopify.com

  • Locale crawl: The crawler landed on Dutch locale pages, exposing issues missed on the English site.
  • Problems:
    • 8/10 pages orphaned.
    • Failed API requests on 7/10 pages.
    • Missing H1s on 2 pages.
    • No structured data on 8/10 pages.

Common Issues Across Sites

IssueFrequency
Structured data (Schema.org)4 out of 5 sites had zero markup on every scanned page.
Meta descriptionsOften short, generic, or missing; directly affect click‑through rates.
Image alt textConsistently missing on many pages; easy 2‑minute fix per image.
Internal linkingWeak on SPAs (Linear, Shopify); server‑rendered sites performed better.
Page speedMost pages > 3 seconds to load; JavaScript‑heavy sites struggle here.
API failuresPresent on several pages, potentially hiding content from crawlers.

AI Crawlers vs. Googlebot

  • The scores reflect what Googlebot sees after JavaScript rendering.
  • AI crawlers (e.g., from ChatGPT, Perplexity) do not render JS and only see raw HTML, making client‑side rendered content invisible to them.

Recommendations

  1. Add structured data – 20–30 minutes per page type; high ROI for rich snippets.
  2. Write proper meta descriptions – 150–160 characters, unique per page.
  3. Add alt text to every image – ~2 minutes per image; improves accessibility and SEO.
  4. Fix internal linking – Ensure each important page has 2–3 real <a> links (avoid JS click handlers).
  5. Use Server‑Side Rendering (SSR) for critical pages – Helps both Googlebot and AI crawlers.
  6. Improve page speed – Optimize JavaScript, leverage caching, and compress assets to get below 3 seconds.

Tool Mention

I built JSVisible to automate these checks. It renders pages as both a user and Googlebot, compares the results, and highlights discrepancies. A free tier is available if you’d like to try it on your own site.

Note

These scans covered 10 pages per site—a snapshot, not a full audit. The patterns observed are consistent and can be verified by inspecting the raw HTML (right‑click → View Page Source) on any of the examined sites.

0 views
Back to Blog

Related posts

Read more »

Optimizing E-commerce SEO with PLP SSR

From Invisible to Indexed: Transitioning an E-commerce PLP from CSR to SSR In the world of e‑commerce, if Google can’t see your products in the initial HTML, t...