{
  "id": 185026,
  "title": "From 3 clicks to 664: what a real SEO audit found in my React SSG site",
  "url": "https://urgent.news/2026/08/05/from-3-clicks-to-664-what-a-real-seo-audit-found-in-my-react-ssg-site",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-05T18:03:10.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/forze-dev/from-3-clicks-to-664-what-a-real-seo-audit-found-in-my-react-ssg-site-2cdi"
  },
  "original_language": "en",
  "account": "Three months ago, an article was published about incorporating JSON-LD to a side project. The results showed 1,600 impressions and 3 clicks over 28 days, with an average position of 61.3, placing the site on page six of Google. Currently, the Search Console's data for the same 28-day period reveals that clicks have increased to 664 (+149%) and impressions have risen to 21,400 (+30%), averaging a position of 23. The website, devtools.abect.com, hosts 49 browser-based developer tools, including image converters, text/code converters, and SEO generators. The site is built with React 19, Vite, and statically prerendered at build time, without a backend for the tools themselves.\n\nThis piece serves two purposes: explaining the factors that contributed to growth over three months and detailing the findings from a technical audit. The audit uncovered several bugs that had been unnoticed for months, highlighting the importance of a comprehensive technical audit beyond merely analyzing source code.\n\nThe first part of the story focuses on the essential, yet often overlooked, elements that drove growth for the site. These include having one page per tool rather than one page per category, prerendering pages to static HTML, creating document content with 5,000-12,000 characters, and incorporating JSON-LD for structured data. Each page is designed to answer specific pain points, rather than focusing on broad format pairs. Additionally, titles and descriptions are tailored to the queries people typically use when searching for solutions, as opposed to the generic descriptions found on the site.\n\nThe second part of the narrative reveals that the site's initial focus on image conversion wasn't the most effective niche. Instead, the top-performing pages now include JSX to HTML conversion, TypeScript to HTML conversion, and HTML to TypeScript conversion. These pages are generating significant traffic and clicks, despite being lesser-known tools. The reason behind this success is that \"jsx to html\" and similar queries are highly specific and have fewer competing pages, making it easier for well-optimized content to rank higher in search results.\n\nThe audit uncovered three significant bugs that had gone unnoticed for months, underscoring the value of a thorough technical examination of the site. First, JSON-LD was incorrectly rendered in the body of the page, instead of the head where it should be. While Google can handle JSON-LD in the body, other validators and automated tools may not, leading to potential issues. The fix involved moving the JSON-LD script to the head section during the prerender process.\n\nSecond, the audit found that React 19 automatically hoisted common HTML elements like titles, meta tags, and links to the head, but it didn't hoist inline script tags. This meant that the JSON-LD script, which was placed within the body, was not being recognized by search engines. By modifying the component to render null on both the server and client sides, and instead serializing the JSON-LD during the prerender phase, the site could correctly incorporate the structured data without compromising the placement of other essential elements.\n\nFinally, the audit revealed an issue related to React's handling of script tags. By default, React escapes the contents of JSX script tags, which could potentially break JSON-LD markup. The solution was to serialize the JSON-LD data before escaping it, ensuring that the structured data remained intact and could be correctly interpreted by search engines.",
  "summary": "Three months ago I wrote a post about adding JSON-LD to my side project. The result was 1,600 impressions and 3 clicks over 28 days. Average position: 61.3 — page six of Google. Today's Search Console, same 28-day window: Metric Then Now Clicks 3 664 (+149%) Impressions ~1,600 21,400 (+30%) Average position 61.3 23 The site is devtools.abect.com — 49 browser-based developer tools (image…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}