<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kamlesh Choudhary</title>
    <description>The latest articles on DEV Community by kamlesh Choudhary (@devxkamlesh).</description>
    <link>https://dev.to/devxkamlesh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3674217%2F47e78025-0e41-4ce1-b080-ea63aa9b21e6.jpg</url>
      <title>DEV Community: kamlesh Choudhary</title>
      <link>https://dev.to/devxkamlesh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devxkamlesh"/>
    <language>en</language>
    <item>
      <title>How I built a bilingual site that ranks in Google and AI answers</title>
      <dc:creator>kamlesh Choudhary</dc:creator>
      <pubDate>Fri, 17 Jul 2026 17:20:14 +0000</pubDate>
      <link>https://dev.to/devxkamlesh/how-i-built-a-bilingual-site-that-ranks-in-google-and-ai-answers-5gd9</link>
      <guid>https://dev.to/devxkamlesh/how-i-built-a-bilingual-site-that-ranks-in-google-and-ai-answers-5gd9</guid>
      <description>&lt;p&gt;Rajasthan's SSO portal is one login for dozens of state services, used by millions of people. The official help is hard to follow, so people search for the basics: how to register, how to log in, how to recover a locked account. I built &lt;a href="https://rajssoidguide.in" rel="noopener noreferrer"&gt;rajssoidguide.in&lt;/a&gt; to answer those questions clearly, in both English and Hindi.&lt;/p&gt;

&lt;p&gt;The content was the easy part. The real work was getting a small site to show up against portals with far more authority. Here is what actually moved the needle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bilingual is a ranking problem, not just a translation one
&lt;/h2&gt;

&lt;p&gt;If you publish the same guide in two languages without telling search engines how the versions relate, they compete with each other and both suffer. hreflang fixes that. In the Next.js App Router it lives in the metadata:&lt;/p&gt;

&lt;p&gt;​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;alternates&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;canonical&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://rajssoidguide.in/sso-login&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;languages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;en-IN&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://rajssoidguide.in/en/sso-login&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hi-IN&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://rajssoidguide.in/hi/sso-login&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="err"&gt;​&lt;/span&gt;&lt;span class="s2"&gt;```



Now Google serves the Hindi page to Hindi searchers and the English page to everyone else, instead of guessing.

## Schema is what gets you into AI answers

FAQ and HowTo structured data turns a page into something Google and AI assistants can quote directly. Every guide carries a FAQPage block:

​

```&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;FAQPage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mainEntity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Question&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;How do I create a Rajasthan SSO ID?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;acceptedAnswer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Answer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Go to sso.rajasthan.gov.in, choose Registration, pick Citizen, and verify with your Jan Aadhaar or Google account.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="err"&gt;​&lt;/span&gt;&lt;span class="s2"&gt;```



## Write the answer for the quote

AI answers and featured snippets pull the first clear sentence that answers the question. So each page leads with a direct 40 to 60 word answer, then the detail below. Bury the answer three paragraphs down and you lose the citation to a site that put it up top.

## Find gaps instead of guessing

Instead of writing what I assumed people wanted, I looked at which specific questions the big portals answered poorly, then wrote those. Underserved, high-intent queries are far easier to rank for than broad ones.

## Takeaways

You do not need a big domain to win these queries. A small site with clear answers and correct markup can beat authority on the right questions. For anyone building info or docs sites: get hreflang right, add FAQ/HowTo schema, and put the answer in the first two lines.

Built with Next.js and Tailwind. I write about shipping real products at [devxkamlesh.com](https://devxkamlesh.com).

*Have you tried optimizing content for AI answers yet? What worked or didn't for you? I'd like to hear in the comments.*
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>nextjs</category>
      <category>seo</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
