DEV Community

Cover image for I built 33 free browser gaming tools with Next.js, Here's what I learned about SEO and PageSpeed
ToolsBracker
ToolsBracker

Posted on • Originally published at toolsbracker.com

I built 33 free browser gaming tools with Next.js, Here's what I learned about SEO and PageSpeed

A few days ago I launched toolsbracker.com — 33 free
browser-based gaming benchmark tools. CPS test, reaction
time, WPM test, aim trainer, memory tests, color blind
test and more. No download, no signup, no ads.

Here's what building it actually taught me.

The stack

Next.js 15 App Router, TypeScript, Vercel. All 33 tool
pages are pre-rendered at build time with
generateStaticParams. Zero server cost, instant TTFB,
and the site works offline once loaded.

What I got right: SSG for tool sites

Static Site Generation is underrated for sites like this.
Because nothing is dynamic until the user actually clicks
a tool, pre-rendering all 33 pages gives you a 99 mobile
PageSpeed score without any optimization tricks. The score
came free from the architecture decision.

What I almost got wrong: flat site structure

I launched with 33 tool pages all sitting directly under
the root. Google saw 33 unrelated pages instead of an
organized authority site.

The fix was building category hub pages — /click-tests,
/reaction-tests, /memory-tests, /typing-tests. Each hub
links down to its tools. Each tool breadcrumbs back to
its hub. Now Google sees a structured hierarchy and ranks
the hubs for category-level keywords.

Schema markup is not optional in 2026

Every tool page has four JSON-LD blocks:
SoftwareApplication, FAQPage, HowTo, and BreadcrumbList.
The homepage has Organization, WebSite with SearchAction,
and ItemList.

This got me 100/100 on PageSpeed's SEO audit on day 3.
Most sites never achieve this because they treat schema
as optional. It's not.

The footer bug that was leaking link equity

My footer had 5 "Popular Tools" links all pointing to
href="#tools" — a homepage anchor. Google was following
those links and hitting a dead end instead of crawling
the actual tool pages. One fix, massive internal linking
improvement.

The sitemap mistake nobody talks about

I had lastModified: new Date() in my sitemap. This means
every single deploy told Google that all 33 pages changed
today. Google learns to ignore your freshness signals when
everything is always "updated."

Fix: static dates per page. Top 5 tools get a recent date.
Stable utility pages get their original publish date.

Results so far

Day 5: 98 mobile PageSpeed, 100 SEO score, 42 pages
indexed, visitors from 5 countries, blog post getting
traffic on day 1.

The site is at toolsbracker.com if you want to check
the source or try any of the tools.


What questions do you have about the architecture or
the SEO setup? Happy to share specific code in the
comments.


All tools are free at toolsbracker.com — no signup, works offline.

Top comments (0)