Most SEO guides assume you have a domain authority of 30+, a backlink profile, or a budget for links.
I had none of those.\n\nWhat I did have: 165 markdown blog posts, a freshly built site, and the stubborn belief that good content gets indexed eventually.\n\nHere is the exact playbook.
No paid tools, no shady link schemes.\n\n## The setup\n\n- Brand new domain (3 months old at the time)\n- Next.js + Cloudflare Pages\n- 6 languages via next-intl\n- 109 free browser-based tools (the actual product)\n- 165 blog posts translated into 6 languages (~990 pages total)\n- Zero backlinks (I was starting from scratch)\n- Zero marketing budget\n\n## Step 1: Make sure Google can find you\n\nBefore any content, you need three things working:\n\n*robots.txt* - explicit allow, no surprises\n*sitemap.xml* - one entry per public URL, lastmod set correctly\n*Search Console* - submit the sitemap, watch for errors\n\nI lost 3 weeks to a trailing slash mismatch (en/tools vs en/tools/).
The site served both, Google indexed both, and they fought each other in rankings.
Fix: pick one canonical form and 308 redirect the other.
Use hreflang tags for languages.\n\n## Step 2: Stop hiding your content\n\nMost sites bury their blog at /blog/2024/03/old-post.
Google has to crawl 3 levels deep.
Put everything 1-2 clicks from the homepage.\n\nMy structure:\n- /[lang]/tools/tool\n- /[lang]/blog/post\n- /[lang]/workflows (288 work flows)\n\nAll in sitemap, all 1 click from home, all interlinked.\n\n## Step 3: Internal links beat external links\n\nI have zero backlinks.
But I have hundreds of internal links.\n\nEvery blog post links to 3-5 related tools.
Every tool page links to 2-3 related blog posts.
Every category page links to all sub-pages.\n\nThis does two things:\n1.
Distributes page rank.
A high-traffic blog post can pass authority to tool pages.\n2.
Helps Google discover pages faster.
New content gets crawled within hours, not weeks.\n\nAfter 30 days: 612/736 pages indexed (83%).
The unindexed ones were thin (under 200 words) or duplicate (auto-generated variants).\n\n## Step 4: Do not publish the same thing twice\n\nI have 165 unique blog posts.
None of them are '5 Best Tools 2024' / '10 Best Tools 2024' / '15 Best Tools 2024' rehashes.
Each post is one specific topic, one specific angle, ~1500 words.\n\nIf I have to say the same thing, I update the old post.
I do not write a new one.\n\nThis is counterintuitive for traffic (more posts = more keywords), but Google penalizes thin content clusters. 5 great posts rank better than 50 mediocre ones.\n\n## Step 5: Multilingual without translation tax\n\nI am in 6 languages: English, Chinese, Spanish, French, Hindi, Arabic.\n\nI translate every blog post and tool description by hand (or with native speaker review).
No machine-translated filler.\n\nKey: hreflang tags on every page.
Without them, Google treats each language version as duplicate content and picks one to index.
The others never rank.\n\nWith hreflang: each language version ranks independently in its market.
Spanish post ranks in Google.es, Arabic in Google.com.sa, etc.\n\nTraffic from non-English markets is now 40% of total.
Would have been 0% without the hreflang setup.\n\n## Step 6: Measure, but do not obsess\n\nI check Search Console once a week.
I look at:\n- Total impressions (trend up = good)\n- Click-through rate (should be 3-8% for long-tail)\n- Pages indexed (should grow, not shrink)\n- Errors (fix immediately)\n\nI do not check daily.
Daily numbers are noise.
Weekly numbers are signal.\n\n## What did not work\n\n- Twitter / X - 0 conversions, low engagement, mostly bots\n- Reddit - account banned after 2 weeks, not worth the risk\n- Guest posting - takes 10 hours per post, returns 1-2 clicks\n- Press releases - no SEO value, zero readers\n\nWhat worked:\n- Long-tail keywords in blog posts\n- Free tool pages ranking for 'free image converter' (zero competition for 'no upload' angle)\n- Internal linking (see step 3)\n- Patience (took 60 d