DEV Community

tzhkai
tzhkai

Posted on • Originally published at knexio.xyz

I Spent 3 Months Getting Zero Organic Traffic — Then One Fix Brought 40 Users in 24 Hours

I Spent 3 Months Getting Zero Organic Traffic — Then One Fix Brought 40 Users in 24 Hours

I built a site with over 100 free browser tools — calculators, formatters, games, AI writing tools. I launched in January 2026. For three months, Google sent me exactly zero visitors. Not low traffic — zero.

Then, over the weekend, three fixes brought 40 real users in 24 hours. Here's exactly what was broken, what I fixed, and what I'll never skip again.

The Site (Before You Ask)

knexio.xyz — 100+ browser tools, no sign-up, free. I built it for AdSense monetization, which means Google's content quality standards are the gatekeeper. You don't pass the review unless Google actually trusts your pages.

Here's what the site had before I fixed anything:

  • ✅ 300+ pages with unique content
  • ✅ Sitemaps submitted to Search Console
  • ✅ robots.txt correctly pointing to sitemap index
  • ✅ Structured data (JSON-LD) on every page
  • ✅ Schema.org FAQ markup
  • ✅ Open Graph / Twitter card meta tags
  • ✅ Fast load times (static site, no frameworks)
  • ✅ About, Privacy, Terms pages
  • ✅ Cookie consent banner (GDPR compliant)
  • ✅ Canonical URLs on all pages

From a checklist perspective, I'd done everything right. Google did not agree.

The Audit: What Google Actually Saw

When I sat down to audit the site — not with a tool, but by reading every file like a reviewer would — three things stood out.

1. The Canonical Dead Loop

This was the silent killer.

My blog sitemap (sitemap-blogs.xml) linked to clean URLs:

/blogs/seo-checklist-for-new-websites/
Enter fullscreen mode Exit fullscreen mode

But every blog page's <link rel="canonical"> pointed to:

<link rel="canonical" href="https://knexio.xyz/blogs/seo-checklist.html" />
Enter fullscreen mode Exit fullscreen mode

And that .html URL? It returned a 308 permanent redirect back to the clean URL.

Googlebot would land on /blogs/seo-checklist/ → see canonical pointing to .html → follow redirect back to the clean URL → see canonical pointing to .htmlgive up.

The bot couldn't determine the canonical URL, so it refused to index any of my blog posts. 25 pages, invisible.

Fix: Strip .html from all canonical URLs. Match sitemap. One sed command, 24 files.

2. 43 Pages That Were "Thin Content"

I thought I had substantial content. Google's crawler counted H2 tags and came to a different conclusion.

My games directory had 33 pages with zero H2 headings. Not one. No "How to Play" section, no strategy tips, no rules explanation. Just a title, the game iframe, and an ad.

Another 10 tools had 1-2 H2s at most — not enough for Google to consider them "substantive." A single "What is this tool?" section doesn't cut it.

This is the exact pattern that triggers Google's "thin content" penalty — pages created primarily for displaying ads. AdSense reviewers actively flag this.

Fix: Added dedicated "How to Play," "Tips & Strategy," and "Why Use This" sections for every game page. Expanded thin tool pages to 3+ substantive H2 blocks. Total: 43 pages rewritten with unique, non-template content.

3. The EEAT Gap

Google's Search Quality Rater Guidelines emphasize E-E-A-T: Experience, Expertise, Authoritativeness, Trustworthiness.

My site had:

  • ❌ No author name or bio on any page
  • ❌ No "About" page that mentioned a real person with credentials
  • ❌ No external trust signals (GitHub links, LinkedIn, etc.)
  • ✅ Privacy policy (good)
  • ✅ Terms of service (good)

The site looked anonymous. Anonymous = untrustworthy in Google's eyes, especially for a site applying for AdSense monetization.

Fix: Added a team narrative to the About page (real people, not a faceless brand), footer links to GitHub profile, and surface-level trust cues across the site.

24 Hours Later: Real Traffic

After pushing the fixes and requesting re-indexing in Search Console:

Metric Before After (24h)
Organic search clicks 0 27
Active users 0 41
Top country United States (32 users)
Engagement events 0 526 (page scrolls, clicks)
Avg session duration 3 minutes

Not life-changing numbers. But after three months of nothing, seeing real humans from Google actually use your tools — that's a different feeling.

The top pages getting traffic:

  1. AI Note-Taking Apps guide
  2. Reading Time calculator
  3. Blog directory
  4. Word Counter
  5. AI Coding Assistants guide

Not the tools themselves — the content pages. Google is sending people to the information, not the widgets.

What I Wish I'd Known on Day One

1. Sitemap ≠ Indexing

Submitting a sitemap doesn't mean Google will index your pages. It means Google might look at them. The canonical fix above meant Google actually could process what it found.

2. Content Count ≠ Content Quality

I had 300+ pages and thought I was done. Half of them were invisible to Google because they lacked the structural depth Google expects. It's not about word count — it's about having clearly labeled, distinct sections (H2s, not just paragraphs).

3. The Boring Pages Matter Most

I obsessed over tool features. Google cared about:

  • Is the canonical URL consistent?
  • Does the About page show a real person?
  • Does the Privacy page actually explain cookie usage?
  • Are there contact options?

The tools were secondary to the trust infrastructure.

4. AdSense Approval Is a Content Review in Disguise

If you're building for AdSense, think like a quality rater. Every page needs to pass the "would I be satisfied if I landed here from search?" test. If a page is just a tool with a sentence of description and an ad, it fails. Google's reviewers see thousands of these, and they're trained to spot them instantly.

5. Analytics Lie Without Engagement Data

Raw visitor counts mean nothing. I had "traffic" from AI crawlers (GPTBot, ClaudeBot) showing up as Direct visits. Only when I saw scroll events and user engagement metrics did I know the traffic was real.

What's Next

  • AdSense review — literally just submitted. The fixes above were the pre-flight checklist
  • Tool content pages — building out the informational content around each tool (not just the tool itself) is where the organic traffic lives
  • Backlink building — GitHub Awesome lists, Product Hunt (launching May 6), community posts

Try it: knexio.xyz — 100+ free browser tools

GitHub: tzhkai/knexio

Built by KK Tian. I write about SEO, web tools, and the slow process of getting Google to notice your work.

Top comments (0)