<?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: Aniruddha Pramanick</title>
    <description>The latest articles on DEV Community by Aniruddha Pramanick (@aniruddha_pramanick_d2f91).</description>
    <link>https://dev.to/aniruddha_pramanick_d2f91</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885709%2F8eaa08bb-fa69-4891-a959-4b3c7e784357.png</url>
      <title>DEV Community: Aniruddha Pramanick</title>
      <link>https://dev.to/aniruddha_pramanick_d2f91</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aniruddha_pramanick_d2f91"/>
    <language>en</language>
    <item>
      <title>Local SEO for Indian SMBs in 2026: the GBP + Local Business schema setup I ship on every client site</title>
      <dc:creator>Aniruddha Pramanick</dc:creator>
      <pubDate>Mon, 27 Apr 2026 04:49:11 +0000</pubDate>
      <link>https://dev.to/aniruddha_pramanick_d2f91/local-seo-for-indian-smbs-in-2026-the-gbp-localbusiness-schema-setup-i-ship-on-every-client-site-3jo3</link>
      <guid>https://dev.to/aniruddha_pramanick_d2f91/local-seo-for-indian-smbs-in-2026-the-gbp-localbusiness-schema-setup-i-ship-on-every-client-site-3jo3</guid>
      <description>&lt;p&gt;I run a small web dev agency in Kolkata. Most of our clients are Indian SMBs — boutique stores, clinics, coaching centres, B2B traders. After 150+ websites, I've noticed one consistent pattern:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Founders care a lot about how the homepage looks. They care almost nothing about whether Google knows where they are.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then a few weeks after launch I get the same WhatsApp message: &lt;em&gt;"Bhai, search me toh aa hi nahi raha."&lt;/em&gt; (Brother, it's not even appearing in search.)&lt;/p&gt;

&lt;p&gt;The site is fine. The problem is that nothing on it — and nothing about it — tells Google's local stack what this business actually is, where it operates, or that it's the same entity as the Google Business Profile sitting on Maps.&lt;/p&gt;

&lt;p&gt;This post is the technical checklist I now run on every client site to close that gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two-system problem
&lt;/h2&gt;

&lt;p&gt;There are two systems Indian SMBs need to keep in sync:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google Business Profile (GBP)&lt;/strong&gt; — the Maps listing, address, hours, photos, reviews. This is what shows up in the local 3-pack and on Google Maps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The website&lt;/strong&gt; — where Google's organic crawler reads structured data, sitemap, internal links, and schema.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Local rankings improve when these two systems agree. Most of the suppression I see in client Search Console reports is because they don't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1: the GBP side (the 5-minute version)
&lt;/h2&gt;

&lt;p&gt;I'll keep this short — the founder-facing setup details are out of scope for a dev post. But before you ship anything for a new SMB client, confirm these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Profile is claimed and verified.&lt;/strong&gt; Unverified profiles get almost no Maps visibility. In India, postcard verification still dominates; video verification is now common too. Allow 5–14 days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary category is the most specific accurate option.&lt;/strong&gt; Not "Business" — "Beauty Salon", "Ayurvedic Clinic", "Web Designer", whatever fits exactly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NAP is locked.&lt;/strong&gt; Name, Address, Phone. Decide the canonical version with the client and write it down. This is the string you'll hardcode everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hours, photos, description are filled in.&lt;/strong&gt; Empty sections suppress rankings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once that's done, the website work begins.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2: LocalBusiness JSON-LD on every client site
&lt;/h2&gt;

&lt;p&gt;This is the single highest-leverage piece of code I add to Indian SMB sites. Drop it in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; of your homepage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;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;@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;LocalBusiness&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;Infinite Option&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;image&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://infiniteoption.com/logo.png&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;@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;https://infiniteoption.com/#localbusiness&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;url&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://infiniteoption.com&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;telephone&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;+91-90516-21062&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;priceRange&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;₹₹&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;address&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;PostalAddress&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;streetAddress&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;G2/A, 94 Shibpur Road, Mandirtala&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;addressLocality&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;Howrah&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;addressRegion&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;WB&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;postalCode&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;711102&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;addressCountry&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;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;geo&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;GeoCoordinates&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;latitude&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;22.5747&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;longitude&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;88.3197&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openingHoursSpecification&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;OpeningHoursSpecification&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;dayOfWeek&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;Monday&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;Tuesday&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;Wednesday&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;Thursday&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;Friday&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;Saturday&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;opens&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;10:00&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;closes&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;19:00&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;sameAs&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;https://www.facebook.com/infiniteoption&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://www.instagram.com/infiniteoption&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://g.page/infiniteoption&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="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few specifics that matter for India:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"addressCountry": "IN"&lt;/code&gt; — set this explicitly. Some boilerplate templates default to &lt;code&gt;"US"&lt;/code&gt; and nobody notices for months.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"telephone"&lt;/code&gt; in &lt;code&gt;+91&lt;/code&gt; format with hyphens. It must match the GBP exactly, character for character.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"sameAs"&lt;/code&gt; should include the actual &lt;code&gt;g.page/...&lt;/code&gt; link from the GBP. This is the explicit machine-readable connection between the two systems Google's algorithm needs to see.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For multi-location businesses, use &lt;code&gt;@type: "Organization"&lt;/code&gt; at the root with multiple &lt;code&gt;subOrganization&lt;/code&gt; entries — one &lt;code&gt;LocalBusiness&lt;/code&gt; per location, each with its own &lt;code&gt;@id&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Always validate with the Schema Markup Validator (&lt;code&gt;validator.schema.org&lt;/code&gt;) before pushing live. A broken schema is worse than no schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  NAP consistency at the code level
&lt;/h2&gt;

&lt;p&gt;The mistake I made on early projects was hardcoding the address in three places — the footer, the contact page, the schema — and letting them drift. Six months later the footer said "Mandirtala, Howrah" and the schema said just "Mandirtala". That's a NAP mismatch, and it quietly suppresses local rankings.&lt;/p&gt;

&lt;p&gt;Fix: one source of truth in config, rendered everywhere.&lt;/p&gt;

&lt;p&gt;For a PHP/MySQL stack (most of my client sites):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// config/business.php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Infinite Option'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'phone'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'+91-90516-21062'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'email'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'contact@infiniteoption.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'address'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'street'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'G2/A, 94 Shibpur Road, Mandirtala'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'city'&lt;/span&gt;     &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Howrah'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'region'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'WB'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'postcode'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'711102'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'country'&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'IN'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'hours'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'10:00–19:00 Mon–Sat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'gbp'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'https://g.page/infiniteoption'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then &lt;code&gt;require&lt;/code&gt; this in the footer partial, the contact page template, and the JSON-LD generator. One edit updates every surface.&lt;/p&gt;

&lt;p&gt;For WordPress, ACF Options Page does the same job. For Shopify, theme settings stored in &lt;code&gt;config/settings_data.json&lt;/code&gt;. For Next.js, a single &lt;code&gt;siteConfig.ts&lt;/code&gt; exported from &lt;code&gt;/lib&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The principle is the same regardless of stack: the address string lives in exactly one place in the codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  The footer + contact page
&lt;/h2&gt;

&lt;p&gt;Your footer should render the same NAP triple that's in the schema — visibly, in plain text, crawlable. Not baked into an image, not painted in by JavaScript after first paint. Static HTML.&lt;/p&gt;

&lt;p&gt;Same for the contact page. Plus an embedded Google Map iframe pointing to the actual GBP pin. Grab the embed URL from inside the GBP dashboard itself, not by manually searching the address on Maps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt;
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://www.google.com/maps/embed?pb=..."&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"320"&lt;/span&gt;
  &lt;span class="na"&gt;loading=&lt;/span&gt;&lt;span class="s"&gt;"lazy"&lt;/span&gt;
  &lt;span class="na"&gt;referrerpolicy=&lt;/span&gt;&lt;span class="s"&gt;"no-referrer-when-downgrade"&lt;/span&gt;
  &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Our location on Google Maps"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This iframe is a small but real signal that the website and the GBP are the same entity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sitemap + Search Console
&lt;/h2&gt;

&lt;p&gt;Last step every time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate &lt;code&gt;sitemap.xml&lt;/code&gt; — your CMS probably already does, but verify it includes the homepage, contact page, services, and any location pages.&lt;/li&gt;
&lt;li&gt;Submit it via Google Search Console.&lt;/li&gt;
&lt;li&gt;Verify domain ownership in GSC using a DNS TXT record. More reliable than the HTML file method for clients on Hostinger/GoDaddy where file uploads sometimes get clobbered by deployments.&lt;/li&gt;
&lt;li&gt;In GSC → Settings → Associations, link the GSC property to the GBP.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last point matters and is often skipped. Until GSC and GBP are explicitly associated, they behave like two separate islands of data — even if they describe the same business.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shippable checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] GBP claimed and verified&lt;/li&gt;
&lt;li&gt;[ ] Canonical NAP locked in a config file (one source of truth)&lt;/li&gt;
&lt;li&gt;[ ] &lt;code&gt;LocalBusiness&lt;/code&gt; JSON-LD in homepage &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, validated&lt;/li&gt;
&lt;li&gt;[ ] Footer + contact page render the same NAP, crawlable plain text&lt;/li&gt;
&lt;li&gt;[ ] Embedded map on contact page points to the actual GBP location&lt;/li&gt;
&lt;li&gt;[ ] &lt;code&gt;sitemap.xml&lt;/code&gt; submitted in GSC&lt;/li&gt;
&lt;li&gt;[ ] GSC ↔ GBP associated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the code-side half. The other half — actually setting up and running the GBP, writing the description, collecting reviews, posting weekly updates — is non-dev work the founder has to own. Our content team wrote a fuller walkthrough of that side aimed at Indian business owners: &lt;a href="https://infiniteoption.com/blog/how-to-set-up-and-optimize-your-google-business-profile-in-india-in-2026" rel="noopener noreferrer"&gt;How to Set Up and Optimize Your Google Business Profile in India in 2026&lt;/a&gt;. I send it to clients during onboarding so they have a single reference for the parts I can't ship for them.&lt;/p&gt;




&lt;p&gt;If anyone has shipped a different schema pattern for Indian multi-location SMBs — especially the &lt;code&gt;Organization&lt;/code&gt; + &lt;code&gt;sub Organization&lt;/code&gt; setup with separate GBP profiles per branch — drop it in the comments. Always learning here.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Will AI Really Replace Web Developers in 2026? An Indian Agency Owner's Take</title>
      <dc:creator>Aniruddha Pramanick</dc:creator>
      <pubDate>Sat, 18 Apr 2026 08:22:42 +0000</pubDate>
      <link>https://dev.to/aniruddha_pramanick_d2f91/will-ai-really-replace-web-developers-in-2026-an-indian-agency-owners-take-28lj</link>
      <guid>https://dev.to/aniruddha_pramanick_d2f91/will-ai-really-replace-web-developers-in-2026-an-indian-agency-owners-take-28lj</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on [&lt;a href="https://infiniteoption.com/blog/will-ai-replace-web-developers-the-real-impact-of-ai-on-web-development-careers" rel="noopener noreferrer"&gt;Infinite Option&lt;/a&gt;]&lt;br&gt;
I run a web development agency in Howrah, India, and wanted to share this with the wider developer community here.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;The question of whether AI will replace web developers has become one of the most urgent conversations in the tech industry in 2026. Every week a new headline declares that AI automation is eliminating jobs and making entire skill sets obsolete overnight. For developers, students considering AI careers, and business owners who rely on web development services — the anxiety is real.&lt;/p&gt;

&lt;p&gt;But the honest answer is far more nuanced than any headline suggests. AI is transforming the future of web development — but transformation and replacement are two fundamentally different things. AI is changing what developers spend their time on, not whether developers are needed at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI Can Actually Do in Web Development Today
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;, developed by Microsoft and OpenAI, is the most widely used AI coding assistant in the world. It suggests code completions, generates entire functions from natural language descriptions, and has become standard in professional web development workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT for coding&lt;/strong&gt; has made debugging, code explanation, and rapid prototyping dramatically more accessible. Paste an error message, get a diagnosis instantly. Generate snippets in multiple languages. Explore implementation approaches without hours of documentation reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI web design tools&lt;/strong&gt; like Framer AI, Wix ADI, and Adobe Firefly can generate layout suggestions, color schemes, and complete page templates from text prompts. For simple, templated outputs, the speed is remarkable.&lt;/p&gt;

&lt;p&gt;The future of programming is clearly one where AI tools handle more of the mechanical, repetitive layers of code. That shift is already happening and it is accelerating.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI Cannot Replace — And Why Human Expertise Still Wins
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Human creativity in web development&lt;/strong&gt; is the most fundamental gap. A client with a complex business problem, a unique brand identity, and specific UX requirements needs a developer who can think strategically, ask the right questions, challenge assumptions, and design solutions that no prompt can fully specify. AI in 2026 consistently struggles with the &lt;em&gt;why&lt;/em&gt;, not the &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;AI is excellent at pattern recognition within existing data — but building something genuinely new, solving an unprecedented problem, or designing a system architecture that balances ten competing business requirements is still deeply human work. AI also cannot manage client relationships, navigate ambiguous requirements, or take accountability for delivery — all core to professional web development services.&lt;/p&gt;

&lt;p&gt;The future isn't AI building websites autonomously. It's developers who use AI tools effectively being dramatically more productive than those who don't.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Taking Over Jobs — Separating Fear From Fact
&lt;/h2&gt;

&lt;p&gt;Jobs actually replaced by AI in tech so far have overwhelmingly been narrow, highly repetitive roles — data labelling, basic QA, template-based content generation.&lt;/p&gt;

&lt;p&gt;In web development specifically, AI is replacing specific &lt;em&gt;tasks&lt;/em&gt; — not the developer's role as a whole. Most vulnerable: writing boilerplate, generating placeholder content, producing basic CSS layouts, converting design files into standard templates. These were always the least valuable parts of the work.&lt;/p&gt;

&lt;p&gt;What AI is &lt;em&gt;not&lt;/em&gt; replacing: complex problem-solving, architectural decision-making, client communication, quality assurance, and creative judgment. Data from 2024 and 2025 consistently shows companies using AI automation are hiring &lt;em&gt;more&lt;/em&gt; developers, not fewer — because AI expands what's possible and creates new categories of work faster than it eliminates existing ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI Engineer — A New Career, Not a Replacement
&lt;/h2&gt;

&lt;p&gt;The most significant new path for anyone considering AI careers is the emergence of the AI engineer as a distinct professional role. An AI engineer isn't a traditional developer who uses AI tools — they build, train, deploy, and maintain AI systems, integrate machine learning pipelines, and create the infrastructure that AI tools run on.&lt;/p&gt;

&lt;p&gt;AI engineer roles are among the fastest-growing and highest-paying in tech globally and in India specifically. For web developers worried about AI making their skills irrelevant, this path is actually one of the most compelling directions available. A developer with strong web development experience who upskills into AI engineer territory — APIs, model integration, prompt engineering, ML basics — becomes one of the most valuable professionals in the market.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web Developer Skills 2026 — What You Need to Stay Relevant
&lt;/h2&gt;

&lt;p&gt;Here's what matters most right now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt engineering&lt;/strong&gt; — knowing how to instruct Copilot, ChatGPT, and other AI tools to produce production-ready output&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI tools integration&lt;/strong&gt; — embedding AI web design tools, ML models, and intelligent APIs into projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System architecture and problem solving&lt;/strong&gt; — AI handles mechanical layers; humans handle structural ones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client and business communication&lt;/strong&gt; — relationship management becomes more valuable as AI handles execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous learning&lt;/strong&gt; — skills in 2028 will look different from 2026; curiosity is the moat&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Businesses Using Web Development Services
&lt;/h2&gt;

&lt;p&gt;AI web design tools and GitHub Copilot make building faster, but they don't replace the judgment, strategy, and quality accountability that professional web development provides. A business using a cheap AI-generated site instead of a proper build is trading short-term savings for long-term performance gaps in speed, SEO, security, and brand credibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Will AI replace web developers entirely? No — and the evidence in 2026 makes this clearer than ever. Jobs actually replaced by AI in web development are the narrowest, most repetitive task layers — not the creative, strategic, and relationship-driven work that defines the profession.&lt;/p&gt;

&lt;p&gt;The AI engineer is one of the most exciting new career paths precisely because it builds on web development expertise rather than replacing it. The future belongs to developers who embrace AI as a tool, businesses that invest in quality builds with intelligence baked in, and professionals who see careers in AI as an evolution of the craft they already love.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I've written the full, longer version with more data and examples on our blog — [&lt;a href="https://infiniteoption.com/blog/will-ai-replace-web-developers-the-real-impact-of-ai-on-web-development-careers" rel="noopener noreferrer"&gt;read it here&lt;/a&gt;].&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What's your take — are AI tools making you faster, or are you worried about the long-term direction? Would love to hear from other devs in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>career</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
