<?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: Meraj Ahmed</title>
    <description>The latest articles on DEV Community by Meraj Ahmed (@merajahmed_11).</description>
    <link>https://dev.to/merajahmed_11</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%2F4124029%2Fce1a8b86-6315-42ac-a9be-4cbc332a2c0a.jpg</url>
      <title>DEV Community: Meraj Ahmed</title>
      <link>https://dev.to/merajahmed_11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/merajahmed_11"/>
    <language>en</language>
    <item>
      <title>How I Added a Pre-Filled WhatsApp Button to Every Client Website in Delhi - With Code</title>
      <dc:creator>Meraj Ahmed</dc:creator>
      <pubDate>Mon, 05 Oct 2026 09:48:11 +0000</pubDate>
      <link>https://dev.to/merajahmed_11/how-i-added-a-pre-filled-whatsapp-button-to-every-client-website-in-delhi-with-code-2bib</link>
      <guid>https://dev.to/merajahmed_11/how-i-added-a-pre-filled-whatsapp-button-to-every-client-website-in-delhi-with-code-2bib</guid>
      <description>&lt;h1&gt;
  
  
  How to Add a Pre-Filled WhatsApp Button to a Website with HTML, JavaScript &amp;amp; React
&lt;/h1&gt;

&lt;p&gt;If you build websites for businesses in India, you've probably noticed something:&lt;/p&gt;

&lt;p&gt;Many customers would rather send a WhatsApp message than fill out a contact form.&lt;/p&gt;

&lt;p&gt;For local businesses, especially service-based businesses, WhatsApp can be a much more natural conversion channel than asking someone to fill in their name, email address, phone number, and a long enquiry form.&lt;/p&gt;

&lt;p&gt;When I build websites for clients in Delhi and across India, one simple feature I often add is a &lt;strong&gt;WhatsApp click-to-chat button with a pre-filled message&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The implementation is surprisingly simple.&lt;/p&gt;

&lt;p&gt;You don't need a WhatsApp API, a complicated backend, or an npm package.&lt;/p&gt;

&lt;p&gt;You can do it with a normal link and a little URL encoding.&lt;/p&gt;

&lt;p&gt;Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  The simplest WhatsApp button
&lt;/h2&gt;

&lt;p&gt;A WhatsApp click-to-chat URL follows this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://wa.me/PHONE_NUMBER?text=YOUR_ENCODED_MESSAGE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&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;a&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://wa.me/919876543210?text=Hi%2C%20I%20found%20your%20website%20and%20would%20like%20to%20know%20more%20about%20your%20services."&lt;/span&gt;
  &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  WhatsApp Us
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's enough to create a basic WhatsApp CTA.&lt;/p&gt;

&lt;p&gt;When a visitor clicks the link, WhatsApp opens with the specified phone number and the pre-filled message.&lt;/p&gt;

&lt;h3&gt;
  
  
  Important: format the phone number correctly
&lt;/h3&gt;

&lt;p&gt;The phone number should be in international format.&lt;/p&gt;

&lt;p&gt;Don't include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;spaces&lt;/li&gt;
&lt;li&gt;brackets&lt;/li&gt;
&lt;li&gt;hyphens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+91 98765 43210
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;919876543210
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the final URL becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://wa.me/919876543210
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why use a pre-filled message?
&lt;/h2&gt;

&lt;p&gt;A generic button might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;WhatsApp Us&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's fine, but you can reduce friction even further by giving the visitor a starting message.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I found your website and would like to know more about your website development services.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a real estate website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I found this property on your website and would like to know more about it.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a salon:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I'd like to book an appointment. Could you please share your available times?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a restaurant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I'd like to know more about today's menu and availability.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The visitor can still edit the message before sending it.&lt;/p&gt;

&lt;p&gt;The purpose isn't to automate the entire conversation.&lt;/p&gt;

&lt;p&gt;The purpose is to &lt;strong&gt;make starting the conversation easier&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't manually encode the message
&lt;/h2&gt;

&lt;p&gt;This is where JavaScript becomes useful.&lt;/p&gt;

&lt;p&gt;A WhatsApp URL cannot safely contain every character exactly as it appears in a normal sentence.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I found your website!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;needs URL encoding before being placed into the &lt;code&gt;text&lt;/code&gt; parameter.&lt;/p&gt;

&lt;p&gt;Instead of manually converting spaces and special characters, use JavaScript's built-in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;whatsappUrl&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is much cleaner and less error-prone than manually creating an encoded string.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a reusable WhatsApp URL function
&lt;/h2&gt;

&lt;p&gt;If you're working on multiple websites or multiple WhatsApp buttons, you can turn this into a small reusable function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createWhatsAppUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createWhatsAppUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&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, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can reuse the same function anywhere in your application.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;salesUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createWhatsAppUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&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, I'd like to get a quote for your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;supportUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createWhatsAppUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&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, I need help with my existing service.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps the implementation simple and maintainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding WhatsApp to a React website
&lt;/h2&gt;

&lt;p&gt;If you're building with React, you don't need a large library just to create a WhatsApp button.&lt;/p&gt;

&lt;p&gt;A simple component is enough:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;WhatsAppButton&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
      &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;whatsappUrl&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
      &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
      &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Chat with us on WhatsApp"&lt;/span&gt;
    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      WhatsApp Us
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&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;One advantage of using a normal &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element is that the browser already understands it as a link.&lt;/p&gt;

&lt;p&gt;You don't need JavaScript state, an &lt;code&gt;onClick&lt;/code&gt; handler, or a client-side component just to open WhatsApp.&lt;/p&gt;

&lt;p&gt;For a static CTA, a normal link is often the better solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reusable React component
&lt;/h2&gt;

&lt;p&gt;If you're building several client websites, I'd make the component configurable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;WhatsAppButton&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;children&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;WhatsApp Us&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
      &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;whatsappUrl&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
      &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
      &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Chat with us on WhatsApp"&lt;/span&gt;
    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;children&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&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;Now you can reuse it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;WhatsAppButton&lt;/span&gt;
  &lt;span class="na"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"919876543210"&lt;/span&gt;
  &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hi, I'd like to get a quote for a new website."&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;WhatsAppButton&lt;/span&gt;
  &lt;span class="na"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"919876543210"&lt;/span&gt;
  &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hi, I'd like to discuss your SEO services."&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  Talk to us on WhatsApp
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;WhatsAppButton&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach makes the component useful across different pages and projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding it to a Next.js website
&lt;/h2&gt;

&lt;p&gt;The same approach works with Next.js.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ContactSection&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to discuss my project.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Have a project in mind?&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        Send us a message on WhatsApp and let's discuss it.
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
        &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;whatsappUrl&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
        &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
        &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Discuss your project on WhatsApp"&lt;/span&gt;
      &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        Discuss Your Project
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&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;If the phone number and message are static, there's no reason to turn this into a client component.&lt;/p&gt;

&lt;p&gt;Keep it simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the message different on every page
&lt;/h2&gt;

&lt;p&gt;This is where a simple WhatsApp button can become much more useful for lead generation.&lt;/p&gt;

&lt;p&gt;You don't necessarily want the same message on every page.&lt;/p&gt;

&lt;p&gt;For example, imagine a website development agency with these pages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/services/website-development
/services/seo
/services/ecommerce
/contact
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The WhatsApp message can change depending on the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Website development page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website development service and would like to discuss my project.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  SEO page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your SEO service and would like to know more about your packages.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ecommerce page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I need an ecommerce website and would like to discuss my requirements.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Contact page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to get in touch.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives the business more context when the enquiry arrives.&lt;/p&gt;

&lt;p&gt;Instead of receiving:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;they may receive:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi, I found your website development service and would like to discuss my project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a much better starting point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate the message dynamically
&lt;/h2&gt;

&lt;p&gt;You can also generate the message based on the current page or service.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;serviceName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Website Design &amp;amp; Development&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="s2"&gt;`Hi, I found your &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;serviceName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; page and would like to discuss my project.`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be particularly useful for websites with many services.&lt;/p&gt;

&lt;p&gt;You could even generate different messages for products, properties, appointments, courses, or other types of content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add a floating WhatsApp button
&lt;/h2&gt;

&lt;p&gt;For local businesses, a floating WhatsApp button can be useful because visitors don't always want to scroll back to the top or search for the contact section.&lt;/p&gt;

&lt;p&gt;A basic React implementation could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;FloatingWhatsApp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
      &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;whatsappUrl&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
      &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
      &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Chat with us on WhatsApp"&lt;/span&gt;
      &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"fixed bottom-5 right-5 z-50 rounded-full px-5 py-3 shadow-lg"&lt;/span&gt;
    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      WhatsApp
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&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;If you're using Tailwind CSS, you can style it to match the rest of the website.&lt;/p&gt;

&lt;p&gt;But don't just place it anywhere.&lt;/p&gt;

&lt;p&gt;The button should not cover important content, navigation, cookie notices, or other fixed elements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mobile UX matters
&lt;/h2&gt;

&lt;p&gt;Most WhatsApp conversations are likely to happen on mobile, so mobile usability should be considered from the beginning.&lt;/p&gt;

&lt;p&gt;A WhatsApp CTA should be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy to tap&lt;/li&gt;
&lt;li&gt;visually recognizable&lt;/li&gt;
&lt;li&gt;large enough for touch interaction&lt;/li&gt;
&lt;li&gt;positioned without covering content&lt;/li&gt;
&lt;li&gt;accessible to keyboard and screen-reader users&lt;/li&gt;
&lt;li&gt;tested on real mobile devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't make the button so small that someone has to tap it multiple times.&lt;/p&gt;

&lt;p&gt;Also avoid placing multiple floating buttons on top of each other.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WhatsApp
Call
Back to top
Cookie button
Chat widget
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;can quickly turn into a mess on a small screen.&lt;/p&gt;

&lt;p&gt;A clean interface is usually better.&lt;/p&gt;

&lt;h2&gt;
  
  
  WhatsApp button vs contact form
&lt;/h2&gt;

&lt;p&gt;I don't recommend automatically replacing contact forms with WhatsApp.&lt;/p&gt;

&lt;p&gt;Different visitors have different preferences.&lt;/p&gt;

&lt;p&gt;A good business website can provide several ways to contact the company:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WhatsApp&lt;/li&gt;
&lt;li&gt;phone&lt;/li&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;contact form&lt;/li&gt;
&lt;li&gt;booking system&lt;/li&gt;
&lt;li&gt;location/map&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WhatsApp is particularly useful when a business wants fast conversations with potential customers.&lt;/p&gt;

&lt;p&gt;A contact form can be better when the business needs structured information.&lt;/p&gt;

&lt;p&gt;For example, a web development agency might ask for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name
Email
Business
Website
Budget
Project requirements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A WhatsApp conversation may be better for a simple enquiry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi, I need a website for my business.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both can have a place on the same website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't confuse a WhatsApp link with the WhatsApp Business API
&lt;/h2&gt;

&lt;p&gt;This is another important distinction.&lt;/p&gt;

&lt;p&gt;Adding a:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://wa.me/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;link is &lt;strong&gt;not the same thing as integrating the WhatsApp Business Platform/API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A click-to-chat link simply helps a visitor start a conversation.&lt;/p&gt;

&lt;p&gt;You don't need a backend, database, API credentials, or a WhatsApp API integration for that basic functionality.&lt;/p&gt;

&lt;p&gt;The architecture can be as simple as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Website
   ↓
wa.me link
   ↓
WhatsApp
   ↓
Customer conversation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A proper API integration is a different project.&lt;/p&gt;

&lt;p&gt;You might need that when building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automated messaging&lt;/li&gt;
&lt;li&gt;transactional notifications&lt;/li&gt;
&lt;li&gt;CRM integrations&lt;/li&gt;
&lt;li&gt;customer support systems&lt;/li&gt;
&lt;li&gt;message templates&lt;/li&gt;
&lt;li&gt;team inboxes&lt;/li&gt;
&lt;li&gt;automated workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't build an API-based system when all the client wants is a button.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track WhatsApp clicks
&lt;/h2&gt;

&lt;p&gt;If you're building a lead-generation website, you should also consider tracking the button.&lt;/p&gt;

&lt;p&gt;Otherwise, you may know that the website receives visitors but have no idea how many people are actually clicking the WhatsApp CTA.&lt;/p&gt;

&lt;p&gt;With Google Analytics 4, you could track an event such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;gtag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;event&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;whatsapp_click&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="na"&gt;page_location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&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;The exact implementation depends on how analytics is configured on your website.&lt;/p&gt;

&lt;p&gt;The important idea is to measure the action.&lt;/p&gt;

&lt;p&gt;You can then think about the funnel as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Google search
      ↓
Website visitor
      ↓
Service page
      ↓
WhatsApp click
      ↓
Conversation
      ↓
Qualified enquiry
      ↓
Customer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is much more useful than looking only at page views.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track which page generated the click
&lt;/h2&gt;

&lt;p&gt;You can make the tracking even more useful by including information about the page or service.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;gtag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;event&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;whatsapp_click&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="na"&gt;page_location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;website-development&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you can compare which pages generate the most WhatsApp interactions.&lt;/p&gt;

&lt;p&gt;You might discover that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Website Development → 42 clicks
SEO → 18 clicks
Ecommerce → 7 clicks
About → 2 clicks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That information can help you improve the site's conversion strategy.&lt;/p&gt;

&lt;h2&gt;
  
  
  One implementation mistake I see frequently
&lt;/h2&gt;

&lt;p&gt;I've seen developers build unnecessarily complicated systems for a feature that is basically just a link.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Website
   ↓
Custom API
   ↓
Backend
   ↓
Database
   ↓
WhatsApp integration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a simple click-to-chat button, you generally don't need any of that.&lt;/p&gt;

&lt;p&gt;You can simply have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Website
   ↓
wa.me
   ↓
WhatsApp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep the architecture proportional to the problem.&lt;/p&gt;

&lt;p&gt;If the client later needs automated messaging, CRM integration, lead management, team inboxes, or other workflows, then you can evaluate a proper API-based solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessibility considerations
&lt;/h2&gt;

&lt;p&gt;A good CTA shouldn't only look good.&lt;/p&gt;

&lt;p&gt;It should also be understandable to users who rely on assistive technologies.&lt;/p&gt;

&lt;p&gt;For example:&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;a&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://wa.me/919876543210"&lt;/span&gt;
  &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
  &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Chat with us on WhatsApp"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  WhatsApp Us
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;aria-label&lt;/code&gt; provides additional context for screen-reader users when the visible text isn't sufficiently descriptive.&lt;/p&gt;

&lt;p&gt;Also make sure that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the button has sufficient contrast&lt;/li&gt;
&lt;li&gt;keyboard users can reach it&lt;/li&gt;
&lt;li&gt;the focus state is visible&lt;/li&gt;
&lt;li&gt;the clickable area is large enough&lt;/li&gt;
&lt;li&gt;the CTA doesn't rely only on color&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accessibility should be part of the implementation rather than something added later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security and privacy considerations
&lt;/h2&gt;

&lt;p&gt;A WhatsApp link itself is simple, but remember that the phone number is publicly exposed in the page source.&lt;/p&gt;

&lt;p&gt;For a business website, that's usually expected.&lt;/p&gt;

&lt;p&gt;Don't put private phone numbers into publicly accessible WhatsApp links.&lt;/p&gt;

&lt;p&gt;If a client doesn't want their personal number exposed, they should use an appropriate business number instead.&lt;/p&gt;

&lt;p&gt;Also avoid putting sensitive customer information into pre-filled messages.&lt;/p&gt;

&lt;p&gt;For example, don't automatically construct messages containing private information that shouldn't be visible in a URL.&lt;/p&gt;

&lt;p&gt;Keep the message generic and let the customer provide the details themselves when appropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the actual user journey
&lt;/h2&gt;

&lt;p&gt;Before delivering the website, test the complete flow.&lt;/p&gt;

&lt;p&gt;Don't just check whether the link looks correct.&lt;/p&gt;

&lt;p&gt;Test it on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Desktop&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;iPhone&lt;/li&gt;
&lt;li&gt;Different browsers&lt;/li&gt;
&lt;li&gt;WhatsApp installed&lt;/li&gt;
&lt;li&gt;WhatsApp Web where applicable&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Click the button and verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the correct phone number opens&lt;/li&gt;
&lt;li&gt;the correct message appears&lt;/li&gt;
&lt;li&gt;special characters work&lt;/li&gt;
&lt;li&gt;spaces work&lt;/li&gt;
&lt;li&gt;punctuation works&lt;/li&gt;
&lt;li&gt;the link opens in the expected way&lt;/li&gt;
&lt;li&gt;the button doesn't cover other mobile UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A five-minute real-device test can prevent a surprisingly embarrassing client issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  A production-ready simple implementation
&lt;/h2&gt;

&lt;p&gt;If you just need a straightforward version, this is the implementation I'd start with:&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;a&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://wa.me/919876543210?text=Hi%2C%20I%20found%20your%20website%20and%20would%20like%20to%20know%20more%20about%20your%20services."&lt;/span&gt;
  &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
  &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Chat with us on WhatsApp"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  WhatsApp Us
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And if the message needs to be generated dynamically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;919876543210&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi, I found your website and would like to know more about your services.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whatsappUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's really all you need for a basic WhatsApp click-to-chat implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I use on client websites
&lt;/h2&gt;

&lt;p&gt;For local businesses, my basic setup is usually:&lt;/p&gt;

&lt;p&gt;Fast website&lt;br&gt;
      ↓&lt;br&gt;
Clear service information&lt;br&gt;
      ↓&lt;br&gt;
Strong CTA&lt;br&gt;
      ↓&lt;br&gt;
WhatsApp click-to-chat&lt;br&gt;
      ↓&lt;br&gt;
Pre-filled enquiry&lt;br&gt;
      ↓&lt;br&gt;
Business conversation&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


The WhatsApp button is only one part of the conversion system.

A website still needs:

* useful content
* fast loading times
* mobile usability
* clear service pages
* trust signals
* good technical SEO
* strong calls to action
* analytics
* an easy way to contact the business

For businesses looking for a **website design and development service in Delhi NCR**, I work on websites that combine these elements with features such as WhatsApp CTAs, lead-generation forms, booking functionality, SEO-ready development, and custom functionality.

You can learn more about the approach here:

**https://www.smarterdigi.com/services/website-design-development**

## Final thoughts

The interesting thing about web development is that useful solutions don't always require complicated technology.

A pre-filled WhatsApp button is a good example.

The implementation itself is only a few lines of HTML or JavaScript.

The real work is deciding:

* where the CTA should appear
* what message should be pre-filled
* how it should behave on mobile
* how the interaction should be tracked
* how it fits into the site's overall conversion journey

For an Indian local business, those details can matter much more than adding another JavaScript library.

Sometimes the best implementation is simply the one that removes one unnecessary step between a potential customer and the business.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>website</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Why Your Competitor's Website Ranks on Google and Yours Doesn't</title>
      <dc:creator>Meraj Ahmed</dc:creator>
      <pubDate>Mon, 21 Sep 2026 09:50:43 +0000</pubDate>
      <link>https://dev.to/merajahmed_11/why-your-competitors-website-ranks-on-google-and-yours-doesnt-3326</link>
      <guid>https://dev.to/merajahmed_11/why-your-competitors-website-ranks-on-google-and-yours-doesnt-3326</guid>
      <description>&lt;p&gt;You searched your own business on Google, and your competitor showed up. You didn't.&lt;/p&gt;

&lt;p&gt;That's frustrating - especially when you know your work is better than theirs.&lt;/p&gt;

&lt;p&gt;But here's the truth: Google doesn't rank the best business. It ranks the best optimised website. And there's a good chance your competitor figured that out before you did.&lt;/p&gt;

&lt;p&gt;Let's break down exactly why their website ranks and yours doesn't - and what you can do about it.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Their Website Loads Fast. Yours Probably Doesn't.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Google has confirmed page speed is a ranking factor. A website that takes more than 3 seconds to load loses both visitors and rankings.  &lt;/p&gt;

&lt;p&gt;Slow websites are usually caused by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Uncompressed images&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cheap shared hosting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bloated WordPress themes with too many plugins&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No caching configured&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your competitor likely has a lightweight, fast-loading website - even if it doesn't look fancy. Speed beats design in Google's eyes.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Run your website on &lt;a href="https://pagespeed.web.dev" rel="noopener noreferrer"&gt;Google PageSpeed Insights&lt;/a&gt;. If your score is below 70 on mobile, that's hurting your ranking right now.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Their Pages Have Proper Headings. Yours Are a Wall of Text.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Google reads your website like a document. It looks for H1, H2, and H3 headings to understand what each page is about.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A well-structured page looks like this:  &lt;/p&gt;

&lt;p&gt;H1: Web Design and Development Services in Delhi NCR H2: What We Build H3: Business Websites H3: E-Commerce Websites H2: Our Process H2: Frequently Asked Questions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If your website has one giant block of text with no structure, Google can't figure out what the page is about - so it ranks it for nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Every page needs one H1 that includes your main keyword. Subheadings should break the content into clear sections.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Their Title Tags and Meta Descriptions Are Optimised. Yours Are Probably Default.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Open your website. Right-click → View Page Source. Search for &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;What does it say?&lt;/p&gt;

&lt;p&gt;If it says something like "Home - My Business" or just your business name, that's the problem. Your competitor's title tag probably says something like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Web Design Company in Delhi NCR | Affordable Custom Websites&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That's a keyword-rich title that tells Google exactly what the page is about and tells the searcher exactly why to click.&lt;/p&gt;

&lt;p&gt;Meta descriptions don't directly affect rankings but they affect &lt;strong&gt;click-through rate&lt;/strong&gt; - which does. A well-written meta description is the difference between someone clicking your result or your competitor's.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Their Website Has More Pages Targeting More Keywords.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your homepage can only rank for so many things. Your competitor probably has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A dedicated page for each service&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A blog with articles answering questions their customers search&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Location-specific pages if they serve multiple areas&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each page is an opportunity to rank for a different keyword. If you have a 5-page website and your competitor has 30 pages of useful content, they will always outrank you - because they've given Google 30 chances to rank them versus your 5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Start with service-specific pages. If you offer business websites, e-commerce websites, and WordPress development, each should have its own page, not one combined "Services" page.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Their Website Is Mobile-Optimised. Yours Might Not Be.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over 60% of Google searches happen on mobile. Google uses &lt;strong&gt;mobile-first indexing&lt;/strong&gt; - meaning it ranks your website based on how it performs on a phone, not a desktop.&lt;/p&gt;

&lt;p&gt;If your website looks broken, cramped, or hard to navigate on a phone, Google knows. And it penalises you for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Open your website on your phone right now. Can you read the text without zooming? Are the buttons easy to tap? Does the form work? If any answer is no, you have a mobile problem.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Their Website Has Backlinks. Yours Doesn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A backlink is when another website links to yours. Google treats backlinks like votes of confidence - the more credible websites that link to you, the more Google trusts your website.&lt;/p&gt;

&lt;p&gt;Your competitor may have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Been listed on business directories (Clutch, JustDial, IndiaMart)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Written guest articles on other websites&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Been featured in local news or industry blogs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need hundreds of backlinks. Even 10-15 quality backlinks from relevant websites can significantly move your rankings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Start with free business directories - Google Business Profile, JustDial, Sulekha, IndiaMart, &lt;a href="http://Clutch.co" rel="noopener noreferrer"&gt;Clutch.co&lt;/a&gt;. Each listing is a backlink and also drives direct traffic.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. They Have Schema Markup. You've Never Heard of It.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Schema markup is a small piece of code added to your website that helps Google understand your content better. It's what makes some Google results show star ratings, FAQs, prices, and business hours directly in the search results.&lt;/p&gt;

&lt;p&gt;If your competitor's result shows FAQ dropdowns and yours is just a plain blue link - that's schema markup doing its job. More visual space in search results = more clicks = better rankings over time.&lt;/p&gt;

&lt;p&gt;Common schema types for business websites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;LocalBusiness schema&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FAQPage schema&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service schema&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;BreadcrumbList schema&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8. Their Google Business Profile Is Complete. Yours Isn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For local searches like "web development company in Delhi" Google Business Profile is often more important than your actual website.&lt;/p&gt;

&lt;p&gt;If your competitor has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;50+ reviews&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regular posts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Photos uploaded&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Services listed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Questions answered&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you have a half-filled profile with 3 reviews - they will always show above you in local results regardless of how good your website is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Go to &lt;a href="https://business.google.com" rel="noopener noreferrer"&gt;Google Business Profile&lt;/a&gt; today. Fill every single field. Ask your past clients for reviews. Post once a week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So What's the Real Difference?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your competitor's website ranks not because they spent more money. It ranks because someone paid attention to the technical and structural details that Google actually cares about.&lt;/p&gt;

&lt;p&gt;The good news: every single point above is fixable.&lt;/p&gt;

&lt;p&gt;If you want a website that's built with all of this handled from day one - proper structure, fast load times, on-page SEO, schema markup, and mobile optimisation included as standard - that's exactly how we build websites at Smarter Digi.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.smarterdigi.com/services/website-design-development" rel="noopener noreferrer"&gt;See how we build websites that are designed to rank - Smarter Digi Website Design &amp;amp; Development&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We work with businesses across Delhi NCR and internationally. Free consultation, fixed pricing, no hidden costs.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SEO isn't magic. It's a checklist - and your competitor is simply further down that checklist than you are right now.&lt;/p&gt;

&lt;p&gt;Start with the basics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fix your page speed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Structure your headings properly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimise your title tags&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complete your Google Business Profile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get listed on directories&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do those five things, and you'll already be ahead of most businesses in your city.&lt;/p&gt;

&lt;p&gt;And if you want someone to handle all of it for you - &lt;a href="https://www.smarterdigi.com/services/website-design-development" rel="noopener noreferrer"&gt;we're one call away&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>smallbusiness</category>
      <category>seo</category>
      <category>marketing</category>
    </item>
    <item>
      <title>I Built 50+ Websites for Delhi Businesses. Here's What Nobody Tells You Before You Start.</title>
      <dc:creator>Meraj Ahmed</dc:creator>
      <pubDate>Mon, 14 Sep 2026 06:57:48 +0000</pubDate>
      <link>https://dev.to/merajahmed_11/i-built-50-websites-for-delhi-businesses-heres-what-nobody-tells-you-before-you-start-4i6p</link>
      <guid>https://dev.to/merajahmed_11/i-built-50-websites-for-delhi-businesses-heres-what-nobody-tells-you-before-you-start-4i6p</guid>
      <description>&lt;p&gt;I Built 50+ Websites for Delhi Businesses. Here's What Nobody Tells You Before You Start.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Posted by Meraj Ahmed - Co-Founder, &lt;a href="https://www.smarterdigi.com" rel="noopener noreferrer"&gt;Smarter Digi&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I have been building websites for businesses in Delhi NCR for over 10 years.&lt;/p&gt;

&lt;p&gt;In that time I have built sites for real estate agents, clinics, coaches, restaurants, startups, and everything in between. I have seen budgets from ₹8,000 to ₹3,00,000. I have seen clients who got exactly what they needed and clients who paid twice because the first developer disappeared halfway through.&lt;/p&gt;

&lt;p&gt;This post is not a tutorial. It is everything I wish someone had told me - and told my clients - before we started.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;1. Most business owners have no idea what they are actually buying&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When a client says "I want a website," they mean different things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some want a digital business card - 5 pages, contact form, done&lt;/li&gt;
&lt;li&gt;Some want a lead generation machine - landing pages, CTAs, SEO, tracking&lt;/li&gt;
&lt;li&gt;Some want a web application - bookings, payments, user accounts, dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem is that 90% of web developers in Delhi will say yes to all three and build the same thing for all three. A 5-page WordPress site with a contact form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned:&lt;/strong&gt; Before quoting anything, I now spend 20–30 minutes understanding what the client actually needs the website to &lt;em&gt;do&lt;/em&gt;. Not what it should look like. What it should &lt;em&gt;do&lt;/em&gt;. Get calls? Sell products? Book appointments? The answer completely changes the build.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;2. A slow website is not a design problem - it is a business problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I once audited a clinic website in South Delhi. Beautiful design. Clean layout. Clear contact number.&lt;/p&gt;

&lt;p&gt;PageSpeed score: 23 on mobile.&lt;/p&gt;

&lt;p&gt;The owner had been running Google Ads for 6 months with a 4.2% conversion rate wondering why it was "so low." We rebuilt the site on a clean WordPress stack with proper caching and image optimisation. PageSpeed went to 87. Conversion rate went to 9.1% on the same ad spend.&lt;/p&gt;

&lt;p&gt;Same business. Same ads. Same budget. Different website speed.&lt;/p&gt;

&lt;p&gt;Google has made page speed a direct ranking factor. But more importantly - real users on 4G connections in Delhi will leave a site that takes more than 3 seconds to load. Every second of load time costs you conversions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt; Every website I build now goes through PageSpeed Insights before launch. I will not hand over a site that scores below 80 on mobile. It is not a nice-to-have. It is a baseline.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;3. SEO is not a service you add after the website is built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the mistake I see most often - and the one that costs clients the most money.&lt;/p&gt;

&lt;p&gt;A business pays ₹40,000 for a website. It launches. Six months later they come back and say "we are not ranking on Google, can you do SEO?"&lt;/p&gt;

&lt;p&gt;And the answer is: yes, but we are going to have to fix the foundation first. Because the site was built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No heading hierarchy (three H1 tags on the same page)&lt;/li&gt;
&lt;li&gt;URLs like &lt;code&gt;/page?id=47&lt;/code&gt; instead of &lt;code&gt;/services/dental-clinic-delhi/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;No meta descriptions&lt;/li&gt;
&lt;li&gt;No schema markup&lt;/li&gt;
&lt;li&gt;Images with file names like &lt;code&gt;IMG_20240312_143221.jpg&lt;/code&gt; and no alt text&lt;/li&gt;
&lt;li&gt;No Google Search Console setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of these has to be fixed before SEO work can start. Which means paying for work that should have been done during the build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do now:&lt;/strong&gt; SEO architecture is part of the build spec, not an optional extra. Clean URLs, proper heading structure, schema markup, image alt text, Search Console setup on launch day - all standard. If you are looking for this kind of build, this is what our &lt;a href="https://www.smarterdigi.com/services/website-design-development" rel="noopener noreferrer"&gt;website development services in Delhi&lt;/a&gt; are built around.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;4. The cheapest quote will cost you the most money&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have rebuilt more "₹8,000 websites" than I can count.&lt;/p&gt;

&lt;p&gt;Here is what a ₹8,000 website in Delhi typically is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A pre-installed WordPress theme (purchased for ₹500 or pirated)&lt;/li&gt;
&lt;li&gt;Your logo dropped in, colours changed to match&lt;/li&gt;
&lt;li&gt;5 pages of Lorem Ipsum replaced with your content&lt;/li&gt;
&lt;li&gt;Hosted on shared hosting that goes down twice a month&lt;/li&gt;
&lt;li&gt;Zero SEO setup&lt;/li&gt;
&lt;li&gt;No SSL certificate (or a free one that expires in 3 months)&lt;/li&gt;
&lt;li&gt;Developer unreachable after handover&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The client pays ₹8,000. Six months later they pay ₹35,000 to have it rebuilt properly. Total spend: ₹43,000. They could have paid ₹35,000 once and had it done right.&lt;/p&gt;

&lt;p&gt;I am not saying cheap is always bad. A ₹20,000 WordPress site from a competent developer is genuinely good value for a small business. But ₹8,000 for a "complete website with SEO and hosting" is not a deal. It is a warning sign.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The question to ask:&lt;/strong&gt; "Can you show me 3 live websites you have built in the last year?" If they cannot, or if the live sites are slow and broken, move on.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;5. Your clients do not care about your tech stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one took me a while to learn.&lt;/p&gt;

&lt;p&gt;When I started building with Next.js and Laravel, I was excited. I wanted to tell every client about server-side rendering, edge functions, and Core Web Vitals optimisation.&lt;/p&gt;

&lt;p&gt;Nobody cared.&lt;/p&gt;

&lt;p&gt;What they cared about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Will it show up on Google when someone searches for my service?&lt;/li&gt;
&lt;li&gt;Can I update the content myself without calling you?&lt;/li&gt;
&lt;li&gt;How long will it take?&lt;/li&gt;
&lt;li&gt;What happens if something breaks?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is it. That is the entire list for 95% of small business clients in Delhi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this changed:&lt;/strong&gt; I now lead every client conversation with outcomes, not technology. "Your site will load in under 2 seconds on mobile and be set up in Google Search Console on launch day" lands better than "we are building on Next.js 14 with ISR and edge middleware."&lt;/p&gt;

&lt;p&gt;Save the tech talk for developer communities like this one.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;6. The handover is where most agencies fail their clients&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A website launch is not the end of the project. It is the beginning of the client's relationship with their website.&lt;/p&gt;

&lt;p&gt;Most agencies in Delhi hand over login credentials and disappear. The client is left with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A website they do not know how to update&lt;/li&gt;
&lt;li&gt;No documentation on what was built or why&lt;/li&gt;
&lt;li&gt;No idea how to check if their site is being indexed&lt;/li&gt;
&lt;li&gt;No understanding of what to do when something breaks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I started including a 30-minute handover call on every project. We go through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to update content, add pages, upload images&lt;/li&gt;
&lt;li&gt;Where to find Google Search Console and what to look at&lt;/li&gt;
&lt;li&gt;What hosting they are on and how to renew it&lt;/li&gt;
&lt;li&gt;What to do if something breaks (and who to call)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It adds 30 minutes to my time and it has reduced post-launch support requests by about 70%. More importantly, clients actually feel confident using their own website.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;7. One page that ranks beats ten pages that do not&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have seen agencies deliver 20-page websites to small business clients. Home, About, Services (8 sub-pages), Blog (no posts), Team, Careers, Gallery, FAQ, Contact, Privacy Policy, Terms.&lt;/p&gt;

&lt;p&gt;Most of these pages get zero traffic. Ever.&lt;/p&gt;

&lt;p&gt;A better approach for most small businesses in Delhi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 homepage that clearly explains what you do and who for&lt;/li&gt;
&lt;li&gt;1 services page (or one page per core service if you have 3–4)&lt;/li&gt;
&lt;li&gt;1 location page targeting your city + service keyword&lt;/li&gt;
&lt;li&gt;1 about page&lt;/li&gt;
&lt;li&gt;1 contact page&lt;/li&gt;
&lt;li&gt;A blog that you actually publish on&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Six pages done properly - fast, SEO-optimised, with clear CTAs - will outrank a 20-page site where nothing is properly built.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The principle:&lt;/strong&gt; Depth beats breadth. One page that thoroughly answers what a potential client is searching for will rank above ten thin pages every time.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;8. Mobile is not a feature. It is the baseline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over 75% of web traffic in India comes from mobile devices. In Delhi specifically - where most users are on Android phones on 4G - this number is likely higher.&lt;/p&gt;

&lt;p&gt;I still see websites being built desktop-first in Delhi. The desktop version looks great in the agency's presentation. The mobile version is an afterthought that breaks on anything below 390px width.&lt;/p&gt;

&lt;p&gt;Every website I build starts in mobile view. Desktop is the scale-up, not the other way around.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick test&lt;/strong&gt;: Open your own website on your phone right now. If you have to pinch to zoom to read anything, or if buttons are too small to tap, or if the layout is broken - that is costing you leads today.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What I would tell someone starting out in web development in Delhi&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learn to explain what you do in outcomes, not technology&lt;/li&gt;
&lt;li&gt;Never take a project without a written scope and fixed price&lt;/li&gt;
&lt;li&gt;Build SEO into every project from day one - not as an extra&lt;/li&gt;
&lt;li&gt;Always do a handover call - it saves you 10x the time in support later&lt;/li&gt;
&lt;li&gt;Your portfolio is everything - build 2–3 excellent showcase projects before chasing clients&lt;/li&gt;
&lt;li&gt;The client who wants a ₹5,000 website will also want 6 months of free support. Learn to say no early.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Where to go from here&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are a developer in Delhi building client sites, I hope some of this saves you the mistakes I made.&lt;/p&gt;

&lt;p&gt;If you are a business owner in Delhi looking to build or rebuild your website, most of what I have described above is exactly how we approach projects at Smarter Digi. You can read more about our process and see what a properly built website looks like on our &lt;a href="https://www.smarterdigi.com/services/website-design-development" rel="noopener noreferrer"&gt;website development services page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Either way - build things that actually work for the people using them. The tech is secondary.&lt;/p&gt;




&lt;p&gt;Meraj Ahmed is the founder of &lt;a href="https://www.smarterdigi.com" rel="noopener noreferrer"&gt;https://www.smarterdigi.com&lt;/a&gt;, a web development and digital marketing agency based in Delhi NCR. He builds websites on WordPress, Laravel, and Next.js for businesses across India.*&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>wordpress</category>
      <category>javascript</category>
      <category>career</category>
    </item>
  </channel>
</rss>
