DEV Community

Cover image for Why I added internal linking to my image converter (and what changed in Google)
Serhii Kalyna
Serhii Kalyna

Posted on

Why I added internal linking to my image converter (and what changed in Google)

I've been building Convertify — a free image converter powered by Rust + libvips. Two weeks in, Google had indexed 18 of my 186 static pages. The numbers were moving, but slowly.
Then I read a recommendation that changed my approach: internal linking is 80% of cluster SEO.

The problem

My converter pages existed in isolation. /heic-to-jpg had no idea /heic-to-png existed. Google couldn't see a cluster — just a collection of unrelated tools.

What I built

A RelatedConversions component that generates contextual links on every page:

const RELATED: Record<string, string[]> = {
  heic: ["jpg", "png", "webp", "avif"],
  avif: ["jpg", "png", "webp", "heic"],
  // ...
};

export default function RelatedConversions({ from, to }) {
  // generates links like "HEIC to PNG", "WEBP to JPG" etc.
  // deduplicates, shows related formats from both source and target
}
Enter fullscreen mode Exit fullscreen mode

On the homepage — "Popular Conversions". On converter pages — "Related Conversions". Every page now links to 6-8 related pages.

The immediate result

Deployed on day 15. The same day I submitted the key pages for re-indexing in Search Console.
Within 24 hours Google crawled the updated pages. The internal links give Googlebot a clear path through the entire site — it no longer needs to discover pages through the sitemap alone.

What's next

Still too early to see ranking changes — SEO takes weeks. But the site now looks like a cluster to Google, not a collection of isolated tools. That's the foundation for ranking multiple pages simultaneously for the same search query.

Stats so far (week 3, day 2):

18 pages indexed (up from 2 three weeks ago)

Building in public. Follow along if you're curious how Rust + Next.js SSG performs for SEO.


Building Convertify in public. Previous posts:

Top comments (0)