<?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>Forem: Ankit</title>
    <description>The latest articles on Forem by Ankit (@growthfyi).</description>
    <link>https://forem.com/growthfyi</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%2F78461%2F2a8c9523-230c-42f7-9356-fc7c5584522e.jpg</url>
      <title>Forem: Ankit</title>
      <link>https://forem.com/growthfyi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/growthfyi"/>
    <language>en</language>
    <item>
      <title>Using BunnyCDN To Make Gatsby Faster</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Thu, 13 Aug 2020 05:11:45 +0000</pubDate>
      <link>https://forem.com/growthfyi/using-bunnycdn-to-make-gatsby-faster-2ogd</link>
      <guid>https://forem.com/growthfyi/using-bunnycdn-to-make-gatsby-faster-2ogd</guid>
      <description>&lt;p&gt;GastbyJS is fast and great. Though I can't make it greater but surely can make it faster, want to see how? Join me and see how I use BunnyCDN to make Gatsby super fast.&lt;/p&gt;

&lt;p&gt;In 2020 I moved Devxify to Gatsby. As most of people do, I too used Netlify for it. Though Netlify worked fine but as I was on free tier so the performance of CDN wasn't great for me and the paid plan started from 19USD per month, too high for a single project. &lt;/p&gt;

&lt;p&gt;I looked for ways to improve the infrastructure. The best option which I found was bringing my own CDN into the game. I had been using BunnyCDN from it's early days so I knew the team, they are great and specially the founder Dejan is very helpful and committed to add new updates. Also with BunnyCDN I get the guarantee that my site is being served by comparatively expensive zone like Asia and Oceania (whenever required), I can't assure that in Netlify or Cloudflare. Now the intro is done and let's begin with the context.&lt;/p&gt;

&lt;p&gt;So if you are too willing to switch to &lt;a href="https://www.devxify.com/go/bunnycdn" rel="noopener noreferrer"&gt;BunnyCDN↗&lt;/a&gt; then just to be clear you can't switch completely, you still will need to use Netlify as you backed build engine. Let's start with all the steps you need to follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Configure BunnyCDN
&lt;/h2&gt;

&lt;p&gt;Go to BunnyCDN and create a new pull zone. It would ask for name and origin URL, in name choose anything you like; for example &lt;code&gt;site-cdn&lt;/code&gt; then in origin URL enter the URL given by Netlify. It should look like &lt;code&gt;site-hash.netlify.app&lt;/code&gt;, keep rest settings as it is.&lt;/p&gt;

&lt;p&gt;Then add these &lt;code&gt;cdn.site.com&lt;/code&gt;, &lt;code&gt;site.com&lt;/code&gt; &amp;amp; &lt;code&gt;www.site.com&lt;/code&gt; to BunnyCDN. It's completely your choice to use www or no-www, I would still suggest you to use www for your website. In our setup Netlify will not serve any of your domain so you need not add any domain there, we will use the &lt;code&gt;site-hash.netlify.app&lt;/code&gt; for the whole setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Add CDN to Gatsby
&lt;/h2&gt;

&lt;p&gt;Now the first and most basic step to integrate a CDN into Gastby is to use it as &lt;a href="https://www.gatsbyjs.org/docs/asset-prefix/" rel="noopener noreferrer"&gt;asset prefix↗&lt;/a&gt;. What this does is, it changes all the asset path from &lt;code&gt;site.com&lt;/code&gt; to &lt;code&gt;cdn.site.com&lt;/code&gt; , by doing this all of your assets will start routing from BunnyCDN instead of Netlify. To do this you need to follow 2 simple steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, add asset prefix to Gatsby config file&lt;/strong&gt;&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="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;assetPrefix&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`https://cdn.site.com`&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;&lt;strong&gt;Second, go to Netlify setting and find menu called build &amp;amp; deploy. Then simply change the build command.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Old Build Command&lt;/span&gt;
gatsby build
&lt;span class="c"&gt;# New Build Command&lt;/span&gt;
gatsby build &lt;span class="nt"&gt;--prefix-paths&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once done, do a test build and see if everything work fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Issue:&lt;/strong&gt; If you use &lt;code&gt;.svg&lt;/code&gt; type images in your in your website markdown then this might break it. &lt;a href="https://github.com/gatsbyjs/gatsby/issues/25918" rel="noopener noreferrer"&gt;Issue↗&lt;/a&gt; has been opened. Temporary solution can be to offload then to an external provider like BunnyCDN storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Enable Perma-Cache
&lt;/h2&gt;

&lt;p&gt;Perma cache is a new technology implemented by &lt;a href="https://www.devxify.com/go/bunnycdn" rel="noopener noreferrer"&gt;BunnyCDN↗&lt;/a&gt;. According to my knowledge, they are the first one to do so. You won't find much about it but I will try to explain. When you enable perma cache, BunnyCDN collects all your resources (upon requested) and store it into a Geo-replicated storage. The main benefit of this is that even if CDN cache misses, you'll still get the benefit of asset being served from nearby location. Though it's hard for me to explain but you'll understand when you setup it yourself. Also BunnyCDN will soon add a blog post explaining this, keep an eye. Follow these steps to enable perma cache.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, go to BunnyCDN dashboard and add a storage zone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There it would ask you for name of storage zone, main storage region and geo replicated zones. To make your task easier, I have added an image of things you need to enable here, have a look.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp7qp4u2a3hxu3m92yc16.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp7qp4u2a3hxu3m92yc16.jpg" alt="Bunny Storage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyn5d9dpaltn2czfilhgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyn5d9dpaltn2czfilhgg.png" alt="Bunny Storage Replication Setting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second, enable perma cache for pull zone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now go to the pull zone you created, on the left hand side you would find a menu mentioning perma cache. Click on it and choose the storage zone you just created. I have added an image again for making it easier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F49knrz31methuffqvx7s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F49knrz31methuffqvx7s.png" alt="Enable Perma Cache"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now most of the part is done, your site has already become faster but still there is one last change we need to do. When you enable perma cache, then it by defaults set's cache-control header to max. We now need to tell the browser to not cache our &lt;code&gt;.json&lt;/code&gt; and &lt;code&gt;.html&lt;/code&gt; files. This is essential for of our content to be fresh on updates. Gatsby official &lt;a href="https://www.gatsbyjs.org/docs/caching/" rel="noopener noreferrer"&gt;documentation↗&lt;/a&gt; on caching.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Set Cache-Control Headers
&lt;/h2&gt;

&lt;p&gt;Setting this up is very necessary if you don't wish to server stale content to your visitors. BunnyCDN provides a neat tool for this, it's called edge rules. You will find this option in the same menu where you found perma cache. Once you are there, click on the button which says "add edge rule". &lt;/p&gt;

&lt;p&gt;The there would be an dropdown option named as "action", choose "override cache time" in the menu. In description you can write anything for your understanding. Then there would be another input box named with title "cache time in seconds", ideally you should put &lt;strong&gt;0 seconds&lt;/strong&gt; but I would suggest you to put &lt;strong&gt;3600 seconds&lt;/strong&gt; there. So your mentioned resources will be cached for only 5 minutes in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjuhl3qwxhnone7ek09t5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjuhl3qwxhnone7ek09t5.png" alt="Cache-Control Header Setting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then scroll down choose "match any" in condition matching section. Next in the condition part choose &lt;strong&gt;if &amp;gt; File Extension &amp;gt; Match Any&lt;/strong&gt;, then add &lt;code&gt;json&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;manifest&lt;/code&gt; and &lt;code&gt;{{empty}}&lt;/code&gt;. Look at images below to have clear understanding. Just to let you know &lt;code&gt;{{empty}}&lt;/code&gt; is to tell browser to not cache resources with no extension, this is generally your html file.&lt;/p&gt;

&lt;p&gt;Another thing you might want to do is, adding CORS header. To do this simply go to headers section in the menu for the pull zone and add the below values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eot, ttf, woff, woff2, css, json, js, svg, jpg, png, ico
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Though I have tried and tested this solution but Netlify doesn't suggest this. They say so because they because they don't want you to add a proxy between Netlify and your user but this setup only uses Netlify as a build engine nothing else.&lt;/p&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify" rel="noopener noreferrer"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify" rel="noopener noreferrer"&gt;buying me a coffee↗&lt;/a&gt; or two, I'll be thankful.&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.buymeacoffee.com/Devxify" rel="noreferrer nofollow noopener"&gt;&lt;img alt="buy me a coffee" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdevstorage.b-cdn.net%2Fbmc.svg"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Disclosure: Some link might be affiliate link but those don't make the post biased.&lt;/small&gt;&lt;/p&gt;

</description>
      <category>gatsby</category>
    </item>
    <item>
      <title>Showcase Of Privacy Friendly Analytics</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Mon, 27 Jul 2020 06:46:37 +0000</pubDate>
      <link>https://forem.com/growthfyi/showcase-of-privacy-friendly-analytics-14ff</link>
      <guid>https://forem.com/growthfyi/showcase-of-privacy-friendly-analytics-14ff</guid>
      <description>&lt;p&gt;In this article we are going to compare 3 privacy friendly analytics, namely Simple Analytics, Fathom and Plausible, so let's begin the journey.&lt;/p&gt;

&lt;p&gt;In recent years we have seen a drastic rise in awareness for user privacy. Also the new law like &lt;a href="https://gdpr-info.eu" rel="noopener noreferrer"&gt;GDPR↗&lt;/a&gt; have forced businesses across the globe to take privacy in a serious way. It was something we all needed; don't you hate seeing a repetitive ad about the product you searched for?&lt;/p&gt;

&lt;p&gt;There were (and still) are some excessive tracking and privacy violation on the web. Companies like G##gle and Faceb##k had created their whole business model over selling and mishandling of user data. Analytics played a key role there. Most part of user tracking and tracing were done by analytics tools owned by large giants like them. With the increase in awareness there came demand of privacy first products. One such domain was privacy friendly web analytics. Privacy has become one key decision making point in choosing analytics for a website.&lt;/p&gt;

&lt;p&gt;Another great reason to use them is that you get free performance boost. GA makes your site lag with tons of JavaScript, choosing one of them ensures that your analytics doesn't make your site slow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here’s the brief overview of script sizes:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simple Analytics- &lt;strong&gt;5.4 kB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Fathom Analytics- &lt;strong&gt;4.8 kB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Plausible Analytics- &lt;strong&gt;1.3 kB&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Want to know where Google Analytics stand?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;45.7 kB&lt;/strong&gt;, about 10x the average size. It includes the size of actual Google Analytics and Google Tag Manager.&lt;/p&gt;

&lt;p&gt;In past few years we have seen how the demand made multiple players enter the ground to compete. As of now there are 3 well known "Cookie-Free &amp;amp; Privacy Friendly" web analytics service, namely Simple Analytics, Fathom and Plausible. All three are made by owned and well managed by a small team of Indie Hackers who are aggressively bootstrapping their business. Also, a very important point is that by using any of these service you get the option to skip the cookie pop-up and it does makes the UI cleaner. Let's take a quick dive and see what are they offering and how different they are from each other.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; All three come with basic features like tracking no. of visits and visitors, they all also provide geographical data which is mostly accurate (not 100% though). Along with this they also give you a brief of top referrers and top pages. These three also give you an easy way to share your dashboard to the public for visibility to all (only if you wish). As these are common among three so I won't be mentioning these, among others.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Simple Analytics
&lt;/h2&gt;

&lt;p&gt;Now this is the product that I have known since the days it was just a beta (as the product was built in open) product and a one-person lead company. They started in the year 2018 (I guess so) and since then they have been pushing improvements regularly. As the name suggests their service is based upon simplicity, if you will look at their dashboard then you will be quickly able to understand this. Though it doesn't look the most intuitive among the others but they really have some great stuff under their belt.&lt;/p&gt;

&lt;p&gt;One their unique feature which I love the most is that you can track all the tweets on Twitter linking back to your webpage's, that means no more seeing confusing links from t.co, this alone cloud be a separate offering but it's good to have. &lt;a rel="sponsored nofollow noopener noreferrer" href="https://www.devxify.com/go/simple-analytics"&gt;Simple Analytics↗&lt;/a&gt; also lets you have custom domain/sub-domain for you tracking script. It's very useful, trust me when I say that. Using this simple method, you will be able to bypass most of the blockers around the web. Though you will find this same feature in others too, but they were the first one to implement this (Ahem! Ahem!). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4pwda6ofqwj7dga5lcqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4pwda6ofqwj7dga5lcqy.png" alt="Simple Analytics"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simple Analytics also supports event tracking like Google Analytics but in a cookie less way, though it's still in beta as of now but you can still try it. I also want to disclose that I have been using their service personally and I do plan to continue along with them in the future too. Another benefit you will find that reaching the team is extremely easy (benefits of working with startups), once I had an issue in tracking in my region and I mailed them, &lt;a href="https://twitter.com/AdriaanvRossum" rel="noopener noreferrer"&gt;Adriaan↗&lt;/a&gt; (Maker of Simply Analytics) quickly got in touch with me and helped me solve it. Though I couldn't find any cons but I did had some feature requests (Feature such as Time On Page is in progress and Bounce Rate is planned). Really wish that these two get implemented soon, if you are a Simple Analytics customer then please go and give a like to the issue on GitHub to increase priority. &lt;/p&gt;

&lt;p&gt;Price of Simple Analytics start from 19$ per month or 108$ per year for 100k pageviews and unlimited sites. Though the monthly price is bit high, but the yearly plan is very well priced. For just over a 100 bucks you will be contributing to make the web privacy friendly and also will be able to own the data. If you wish to try their product first then you can opt for a &lt;a rel="sponsored nofollow noopener noreferrer" href="https://www.devxify.com/go/simple-analytics"&gt;free trial↗&lt;/a&gt; too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fathom Analytics
&lt;/h2&gt;

&lt;p&gt;Correct me if I'm wrong but Fathom Analytics is the oldest among the three. &lt;a rel="sponsored nofollow noopener noreferrer" href="https://www.devxify.com/go/fathom"&gt;Fathom Analytics↗&lt;/a&gt; was started Jack &amp;amp; Paul in 2018 and since then they have been bootstrapping. One of the non-functional thing that I love about them is their color palette which looks so tempting to your eyes. Now let's back to their core offerings. As much as I experienced it looks like a much closer privacy friendly competitor of Google Analytics. Apart from just telling you about number of visits and visitors they also tell you the average time on page (dwell time) and they even calculate bounce rate for you. These two features alone are enough to help marketers help optimize content on page and improve low performing pages. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F88vtrfspp0v79lhtcy1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F88vtrfspp0v79lhtcy1s.png" alt="UseFathom"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fathom Analytics have some other cool and unique features too like they offer free uptime monitoring. This makes their offering super tempting as you will be able to save few bucks which were supposed to be spent on a uptime monitoring tool. They use PingPing to monitor and notify you about any downtime, you can choose to get notified with a wide array of method including mail, slack, text-message, and telegram. They also support unlimited email reports to unlimited people, this comes really handy when your business has multiple people operating it. I really wished Simple Analytics had this option, the only way around is to take the higher plan but that still has a different way implementation most of you won't want.&lt;/p&gt;

&lt;p&gt;Just like Simple Analytics, &lt;a rel="sponsored nofollow noopener noreferrer" href="https://www.devxify.com/go/fathom"&gt;Fathom↗&lt;/a&gt; also supports event tracking in form of goals (it's named goals actually). Using this you can easily track actions like number of clicks on a particular link or number of signups. It's pretty cool and handy. Recently they have also implemented support for custom domains so that you can bypass ad-blockers and you are using a privacy friendly tool and don't deserve such harsh blockade. Apart from all these, they also let you automatically mail stats of a particular website in your account to multiple mail addresses. Super useful for agencies.&lt;/p&gt;

&lt;p&gt;Fathom Analytics is priced at 14$ per month and 140$ per year for 100k pageviews and unlimited sites. They are among the most expensive one but it ok by European and US standards (I'm from India where the value of dollars is a bit high). For 140$ a year you get a privacy friendly analytics tool, an uptime monitor and ownership of you data. They too have a trial if you wish to have it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plausible
&lt;/h2&gt;

&lt;p&gt;Plausible is the youngest among the three. &lt;a href="https://twitter.com/ukutaht" rel="noopener noreferrer"&gt;Uku Täht↗&lt;/a&gt; first started it and then &lt;a href="https://twitter.com/MarkoSaric" rel="noopener noreferrer"&gt;Marko Saric↗&lt;/a&gt; joined him soon. It was launched in 2019 by Uku as a budget friendly and privacy focused &amp;amp; cookie free analytical tool. (BTW, I love how their dashboard looks. Your views might defer.) &lt;/p&gt;

&lt;p&gt;Plausible is a fairly new to the market so I can't expect much of unique and advanced features but there are still some worthy of mention. One of them is that you can connect &lt;a href="https://plausible.io" rel="noopener noreferrer"&gt;Plausible↗&lt;/a&gt; to your Google Search Console and pull some of the data from there, by doing this you can easily check your top pages and traffics by Google search. Though you can easily see the same data on Google Search Console dashboard by having all at one place does makes it handy. Also, they have recently added support for time on page too. Just like the other two, Plausible too has support for goals &amp;amp; conversions tracking. The trigger can be either a pageviews in a certain page or a custom event. Also just like Simple Analytics it also shows all the tweets mentioning your website in them, it's good to have it but I sincerely think that there is a scope of improvement in the UI (Would be great if the team works on it after reading this).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flwsmmxctnspx3vifkwq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flwsmmxctnspx3vifkwq4.png" alt="Plausible"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Though Plausible is not the tool with the most number of features but it does have one major benefit over others, that's pricing. It's the cheapest among its competitors, for reference it would cost you 12$per month or 96$ annually for 100k pageviews and unlimited sites. The magical part is that, they have a smaller plan too. So if you have a personal blog or portfolio with few thousand views then you need not spend 100 dollars on analytics. Their smallest plan with 10k pageviews cost only 6$ per month or 48$ annually and that's what help them reach a larger number of small sites. It's always good to have players like these as not all site owners are able to pay larger sum of amount. I do think that others must also come up with smaller plans. &lt;/p&gt;

&lt;h2&gt;
  
  
  Which One Is For You?
&lt;/h2&gt;

&lt;p&gt;Now this is the question most of you might have. I know and understand this, and I think that I can help you choose one based upon your use case and other factors. Check the below list for all conditions and find your perfect partner.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Does your budget allows you to go as high as triple digit dollar figures?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt; then you can Fathom (Great UI, uptime monitoring plus few extra stuff). If &lt;strong&gt;no&lt;/strong&gt; then blindly go with Simple Analytics or Plausible (Simple Analytics monthly plan is priced a bit high, prefer the yearly plan. Plausible is the cheapest one though).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you wish to track tweets in a proper way?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt; then Simple Analytics (implementation is just perfect) is the one to go. You can also track tweets with Plausible too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you have an agency and wish to automatically share logs/reports with you clients?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt; then Fathom is the only one supporting it as of now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you wish to have a nice support team?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt;, then the answer would be all three of them. Most bootstrapped business care their customers in a proper way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Need to monitor uptime too along with analytics?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt;, then the only one is Fathom.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Last but not the least, do you love privacy?&lt;/strong&gt; If &lt;strong&gt;yes&lt;/strong&gt;, then go with any of the three mentioned above (&lt;strong&gt;Simple Analytics&lt;/strong&gt;, &lt;strong&gt;Fathom&lt;/strong&gt; &amp;amp; &lt;strong&gt;Plausible&lt;/strong&gt;). If &lt;strong&gt;no&lt;/strong&gt;, then go with the one whose name is forbidden in my books.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now that you have a good idea of all the three, which one are you going with? Also if you still have doubts the the comment section is open for you and I'm pretty active there. Another note worthy thing to mention is that Simple Analytics let's me gift you a &lt;strong&gt;free month&lt;/strong&gt; of their service and I'm an existing user, simply click on &lt;a rel="sponsored noopener noreferrer" href="https://www.devxify.com/go/simple-analytics"&gt;this link↗&lt;/a&gt;. If the founders of Fathom and Plausible wish to distribute a coupon or extended trial, then do drop a text and I'll add it here.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; I didn't talked about server side analytics because they limit users to a particular infrastructure, I believe you should be free to use whatever you want and not what the provider wants.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify" rel="noopener noreferrer"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify" rel="noopener noreferrer"&gt;buying me a coffee↗&lt;/a&gt; or two, I'll be thankful.&lt;/p&gt;

&lt;p&gt;Do visit &lt;a href="https://www.devxify.com" rel="noopener noreferrer"&gt;Devxify&lt;/a&gt; for more such awesome content.&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.buymeacoffee.com/Devxify" rel="noreferrer nofollow noopener"&gt;&lt;img alt="buy me a coffee" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdevstorage.b-cdn.net%2Fbmc.svg"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Disclosure: Some link might be affiliate link but those don't make the post biased.&lt;/small&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>privacy</category>
    </item>
    <item>
      <title>How To Add Comments On Static Site</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Thu, 23 Jul 2020 23:46:37 +0000</pubDate>
      <link>https://forem.com/growthfyi/how-to-add-comments-on-static-site-5h3p</link>
      <guid>https://forem.com/growthfyi/how-to-add-comments-on-static-site-5h3p</guid>
      <description>&lt;p&gt;Are you travelling in the new bandwagon of static JAMstack website? If yes the you must be missing some of the ways to add the lost dynamic features like blog comments. Some of you might have even thought of completely removing it but let me ask you a question first, is a blog worth it if readers can’t share their feelings? I’ll share an example, few days back I wrote an article on &lt;a href="https://dev.to/devxify"&gt;Dev.to↗&lt;/a&gt; about web accessibility. It looked great to be but later I got to know I messed up with Markdown and some words were just completely omitted in during HTML generation, thanks to the readers and the comment section that I got to know about that very soon. Now ask yourself, does your blog needs a comment system?&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits Of Comments
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Better Interaction&lt;/li&gt;
&lt;li&gt;Easy Feedback Collection&lt;/li&gt;
&lt;li&gt;Increased Time On-Page&lt;/li&gt;
&lt;li&gt;Increased Trust&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So after all these I too was looking for a comment system for my site, earlier I did had comments on my website provided by Just-Comments but they planned to shut down their service due to low revenue &amp;amp; traction and I was now left with no comment system. Also I didn’t want to miss the awesome but occasional constructive feedback some of you guys leave in the comment section.&lt;/p&gt;

&lt;p&gt;Now I had a tough decision to choose a comment system among different offering in the market, to do this I made a list of all viable and well known provider. My list compromised of :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Disqus&lt;/li&gt;
&lt;li&gt;Hyvor Talk&lt;/li&gt;
&lt;li&gt;Commento&lt;/li&gt;
&lt;li&gt;Utteranc.es &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now even though I had created a small list but I still had few requirements in back of my mind. The first and foremost was that the UI shouldn’t suck and I do believe ads make the UI suck unless implemented in an extremely user friendly way. My second requirement was that the comment system must be light-weight and should load in a breeze (I’m a lover of webperf). The third and the last one was to be privacy friendly, if you guys have followed me then you much know how much value I give to user privacy accessibility.&lt;/p&gt;

&lt;p&gt;( &lt;strong&gt;P.S.&lt;/strong&gt; Spoiler Alert, I went with Utterances)&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Didn’t Choose Disqus
&lt;/h2&gt;

&lt;p&gt;As much as I know, &lt;a href="https://disqus.com/" rel="noopener noreferrer"&gt;Disqus↗&lt;/a&gt; is the largest by all terms among this list. They are a pretty matured business and as a comment system they have everything you wish but they also have somethings you don’t wish for. First and foremost is that they come with ads in their free plan also apart from ads they also collect user data which means its very unfriendly to your privacy. Apart from privacy issue, they have performance issue too. If you implement their widget then that makes your webpage load slower than usual.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.devxify.com%2Fstatic%2F10c7538065f2e1007365594d9b1a4041%2F1ae1d%2Fdisqus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.devxify.com%2Fstatic%2F10c7538065f2e1007365594d9b1a4041%2F1ae1d%2Fdisqus.png" title="Disqus Landing Page" alt="Disqus Landing Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Though comments are important to me but I won’t have them at the price of user privacy and web performance. So this was the reason to keep myself away from Disqus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Didn’t Choose Hyvor Talk
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://talk.hyvor.com" rel="noopener noreferrer"&gt;Hyvor Talks↗&lt;/a&gt; looks great works great. It’s just like a Disqus but with better privacy and faster load time. Hyvor Talk even has a generous free plan for upto 40,000 pageviews, when I had a look, it did felt awesome.&lt;/p&gt;

&lt;p&gt;Though I didn’t have any issues regarding privacy, UI or performance but had some different kind of issue. The first issue I faced is in the way they charge users. The thing I found that though they based in Sri Lanka but still collect nation specific taxes like GST &amp;amp; VAT. I even had a chat with its maker and after few mails he told me that he would be getting back to me soon after discussing with their payment provider (It’s Paddle Payment Gateway if you wish to know). I later got a response and after all that I believe that their whole tax thing is managed by Paddle and I personally am a very big fan of their service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.devxify.com%2Fstatic%2F83374cf3e0cd6a5be1c057cfabc9c610%2F70374%2Fhyvor-talk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.devxify.com%2Fstatic%2F83374cf3e0cd6a5be1c057cfabc9c610%2F70374%2Fhyvor-talk.png" title="Hyvor Talk" alt="Hyvor Talk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apart from this the another issue was my past experience with Just-Comments, though I wish Hyvor Talk a great success but still startups do work on the swords edge and didn’t want my comment system provider to vanish soon. Also a lack of annual plan was a bummer for me as annual plan generally have a discounted price compared to monthly. Though it’s completely my feeling, you are free to take a trial and share your experience in the comment system, I have seen some people who are pretty happy and satisfied with Hyvor Talk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Didn’t Choose Commento
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://commento.io/" rel="noopener noreferrer"&gt;Commento&lt;/a&gt; is a privacy focused commenting tool. They too have most of the features you wish from a comment system but they require a minimum payment of 5$ per month which is on a higher side for small blogs and portfolio sites. Apart from this they have everything you wish for.&lt;/p&gt;

&lt;p&gt;If your wallet allows then you will have access to automatic moderation tool, API access, shadow banning, single sign-on, sticky comments and much more. Even though I didn’t went with them but they are indeed worth a try. Also Commento has a self-host version too where you can skip paying them and directly host them, I didn’t self-host it because I believe in static and &lt;a href="https://www.devxify.com/jamstack-for-web/" rel="noopener noreferrer"&gt;JAMstack↗&lt;/a&gt; sites and avoid managing servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Chose Utterances
&lt;/h2&gt;

&lt;p&gt;If you visit my site you will see that I have already implemented &lt;a href="https://utteranc.es/" rel="noopener noreferrer"&gt;Utterances↗&lt;/a&gt; there to manage comments. Also among all others Utterances is the most unique one in terms of managing comments. They use GitHub issues to store and display comments on to your webpage and each webpage is identified as a different issues.&lt;/p&gt;

&lt;p&gt;I went with Utterances because it free to use as long as you stay under the limits of GitHub issues API. Also as my site is more focused to developers so everyone generally has a GitHub account and it makes the sign-in process ease. I believe that Utterances is the most basic offering here but sometimes basic is what you.&lt;/p&gt;

&lt;p&gt;Though I have been using them for a while but they still have some cons, the biggest is lack of moderation of comments. It’s practically impossible to moderate comments and GitHub doesn’t has such feature as of now, the only way around is to personally block/delete comments which you find useless or spam. Also as it uses GitHub issues API so you also get to use reactions on others comments. If you are like me who gets few comments on your webpage then this not an issue. Last but not the least, Utterances implements comments on your webpage within a rendered &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; which mean that Utterances has no SEO benefit, on the brighter site the spam (if any) won’t affect your SEO in a negative way too.&lt;/p&gt;

&lt;h3&gt;
  
  
  Utterances Implementation
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a GitHub repo to store your comments.&lt;/li&gt;
&lt;li&gt;Install Utterances Bot to the repo.&lt;/li&gt;
&lt;li&gt;Go to Utterances site and generate script based on repo name and style.&lt;/li&gt;
&lt;li&gt;Simple paste the script after the end of the content.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!--Here's the sample code for Utteranc.es--&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://utteranc.es/client.js"&lt;/span&gt;
        &lt;span class="na"&gt;data-repo=&lt;/span&gt;&lt;span class="s"&gt;"owner/repo-name"&lt;/span&gt;
        &lt;span class="na"&gt;data-issue-term=&lt;/span&gt;&lt;span class="s"&gt;"pathname"&lt;/span&gt;
        &lt;span class="na"&gt;data-theme=&lt;/span&gt;&lt;span class="s"&gt;"github-light"&lt;/span&gt;
        &lt;span class="na"&gt;crossorigin=&lt;/span&gt;&lt;span class="s"&gt;"anonymous"&lt;/span&gt;
        &lt;span class="na"&gt;async&lt;/span&gt;&lt;span class="nt"&gt;&amp;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;Phew! It’s done go and write your first comment. Also just to let you know that as Utterances is based upon GitHub issues so it does support markdown natively which is a great plus if your audience is mostly web developers. Now that it’s done you can play with it or me and the Utterances community to make it better. Currently I am working on a way to cache GitHub API calls on client side so that I can reduce number of API lookups in case of multiple refreshes (If you refresh multiple time GitHub blocks API request for few minutes), I am trying to use service workers to solve this and if I am able to do so then I’ll surely update this article (In-case you feel you can help me the do let me know in the comment section or mail me).&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Utterances is a great option for anyone whose audience comprises of mostly developers/coders. Using GitHub login makes it easier for all developers to comment and interact. Other features like reaction and markdown support comes handy too and make the system efficient.&lt;/p&gt;

&lt;p&gt;Please don’t test the comment system here, visit &lt;a href="https://utteranc.es" rel="noopener noreferrer"&gt;utteranc.es↗&lt;/a&gt; to test.&lt;/p&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify" rel="noopener noreferrer"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify" rel="noopener noreferrer"&gt;buying me a coffee↗&lt;/a&gt; or two, I’ll be thankful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/Devxify" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdevstorage.b-cdn.net%2Fbmc.svg" alt="buy me a coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jamstack</category>
    </item>
    <item>
      <title>Proven Ways To Optimize Your Design For Better Conversion</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Mon, 20 Jul 2020 23:46:37 +0000</pubDate>
      <link>https://forem.com/growthfyi/proven-ways-to-optimize-your-design-for-better-conversion-2o7o</link>
      <guid>https://forem.com/growthfyi/proven-ways-to-optimize-your-design-for-better-conversion-2o7o</guid>
      <description>&lt;p&gt;The web has evolved so is the competition. In present days you have few seconds to engage you visitor otherwise it’s a lost business. Though people says look doesn’t matter, but it does in the digital space. The experience your website or app provides the plays a key role in conversion. A website with an average product but great design/experience can see higher conversion compared to website with great product with a average design/experience. Whether or not a visitor converts into a customer completely depends upon the type of experience you provide.&lt;/p&gt;

&lt;p&gt;If you are a marketing guy and reading then make sure your business has a great website as that will work 7 days a week and 365 days a year for you and won’t even take salary for that. Rather than hiring multiple sales executive, it’s better to invest on a great &lt;a href="https://www.letsnurture.com/blog/10-reasons-why-website-user-experience-is-important.html"&gt;web experience↗&lt;/a&gt; first. Make sure you correctly identify your target audience and design accordingly, for example don’t create a webpage with super small font size if your target audience are senior citizen. Small font size might look great to teenager and young adults but it’s a pain for the elders. These small things will go a long way in building an subconscious relation between your brand and customers. Now that you know all these, let’s see some great ways to optimize your site for user satisfaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Clutter Free UI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;No one likes a mess, be it physical or digital. It’s always better and safe to keep your design and user interface as simple as possible unless are a design guru. Most people compare simple to boring white and black webpages but that’s not the case. Look at &lt;a href="https://uxdesign.cc/google-how-the-biggest-search-engines-homepage-has-changed-over-the-last-20-years-3b59db931a0d"&gt;Google’s homepage↗&lt;/a&gt; elegant, simple and get’s the job done. I believe the minimalistic approach is the best. Try to provide some free space and play with colors. This white space is also known as negative space.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/A0Ev_4zto4Y"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Another thing to note, if you are animating vectors or images on your webpage then you better do that is a right way. Keep in mind that not all of your visitors will have a great device, some would be on low-end devices and I’m pretty sure you don’t want to mess with that. Always test your user interface on the campiest device you could found. When I design something then I ensure to check it once on Internet Explorer and once on a cheap Android device. If your site works well on low-end devices then it would work great in general mid level devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Clear &amp;amp; Focused CTA&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://blog.hubspot.com/marketing/call-to-action-examples"&gt;Call to Action↗&lt;/a&gt; or better known as CTA is the key link to conversion and it’s your job to ensure it’s visibility. Always ensure that you CTA is of proper size and appealing color which compliments the aesthetic of the webpage. Also as I mentioned above minimalism is the key and most of the times rest is more. Refrain from using long phrase on you CTA buttons like “proceed to checkout page” or “sign up for free trial” instead use phrases like “checkout” and “get started”. If you still need to share something use &lt;code&gt;&amp;lt;small&amp;gt;&lt;/code&gt; tag with very small font and place it below your CTA. This will give you a much cleaner look.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_18oxw1O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/86367bd0b891117c653c9facef29e413/ba998/buffer.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_18oxw1O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/86367bd0b891117c653c9facef29e413/ba998/buffer.jpg" alt="Buffer Landing Page" title="Buffer Landing Page" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The placement and color also plays an important role in how effective of ineffective you CTA is, always ensure that the CTA compliments the background and attracts user’s focus towards it. Also if possible place them on different location on your webpage in an (un)obstructive manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Faster Speed, Better Conversion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you have followed me over past years then you would surely know I’m a sucker of web performance and I believe you don’t want to frustrate your visitor by taking 10-12sec to load your page. Website’s that load faster have proven to see &lt;a href="https://www.cloudflare.com/learning/performance/more/website-performance-conversion-rates/"&gt;better conversion↗&lt;/a&gt;. If you are able to make your webpage load under 3sec then kudos, you rocked it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8bMGwCvt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://devstorage.b-cdn.net/webperf-conversion.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8bMGwCvt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://devstorage.b-cdn.net/webperf-conversion.svg" alt="Web Performance For Conversion" width="661" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Though I have seen lots of websites suck at it but you shouldn’t. If you wish to know in-depth ways to optimize your webpage then we have already wrote about it. One of the most easiest ways to make your webpage load faster is by optimizing images on your website and switching to a hosting provider with better infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Provide Point Of Interaction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Just imagine you are at a product page and you have just a small but critical query about it. You try hard to find a way to get in touch but you couldn’t, what will you do? Most of us will look for a different place to buy it and enquire. This the reason why you need to have a point of interaction between your support team and user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_G0TsoIX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/b5f5192f56ffa0a9b02ecacc261822d2/1ae1d/poi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_G0TsoIX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/b5f5192f56ffa0a9b02ecacc261822d2/1ae1d/poi.png" alt="Chat Feature on Website" title="Chat Feature on Website" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Point of interaction can be in form of chat box (stay away from chat bots, please), mailto and tel links. Adding any of them would ensure you are able to get in touch with a confused user and convert better.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Efficient Copywriting&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A website without a appealing text is like a pizza with no cheese. Boring and undesirable. Having efficient copy ensures that user’s understands what message you want to convey. Copywriting converts your boring website into a conversion machine by using words that hits the bullseye of user attraction. Learn more about copywriting at &lt;a href="https://kopywritingkourse.com/what-is-copywriting/"&gt;Kopywriting↗&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LTNiGxPf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/88a055e51f6fce1e12de8f9e0cb05ac2/82273/basecamp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LTNiGxPf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/88a055e51f6fce1e12de8f9e0cb05ac2/82273/basecamp.jpg" alt="Basecamp Landing Page" title="Basecamp Landing Page" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As far as I have seen, this is the most neglected part in most of the digital business. Most of the people don’t even know the meaning of it. Don’t be that guy please. Copywriting is the best way to convey the message your product/service is trying to pass. This will affect your conversion rate significantly. If you wish to have a helping hand then we are just a &lt;a href="//mailto:hi&amp;amp;64;devxify.com"&gt;mail↗&lt;/a&gt; away.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Wise Use Of Colors&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Colors create the first impression in your users mind regarding your brand. Having a color which suites your brand niche is very important for branding as well as marketing. It’s a very powerful tool and using it wisely is a skill. Did you know the color you choose affects the behavior of you user on the webpage? Colors give you the power to tap into the mindset of the user without letting them know about it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pM84qO4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/83a5b16d4bfe3dd56039c06a59b45987/18e80/black.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pM84qO4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/83a5b16d4bfe3dd56039c06a59b45987/18e80/black.jpg" alt="Black Color Psychology" title="Black Color Psychology" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;small&gt;Illustration by Cindy Chung, Verywell(Original Owner)&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Let’s understand this with few examples. Have you seen the RedBull logo? The most prominent color there is &lt;a href="https://www.verywellmind.com/the-color-psychology-of-red-2795821"&gt;red↗&lt;/a&gt;. It signifies the aggressiveness and energetic nature of the brand. Another great example would be Apple’s website. Black is the predominant color with pinch of complimenting white. The black of their website signifies the sophistication and exclusivity in their product which is very important for a brand like Apple which is sought of a premium brand.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Even though these might look a lot to implement but it’s just the tip of the iceberg. Consider them to be just the basics of UX modification for better conversion. There is still a whole ocean to cover like use of whitespace (aka negative space), color composition, behavior analytics and much more. If you are a very interested into it then there are lot’s of such guide available on the web.&lt;/p&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify"&gt;buying me a coffee↗&lt;/a&gt; or two, I’ll be thankful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/Devxify"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S4MS4wZJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://devstorage.b-cdn.net/bmc.svg" alt="buy me a coffee" width="145" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ux</category>
    </item>
    <item>
      <title>JAMstack- The New Web Stack</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Sat, 18 Jul 2020 23:46:37 +0000</pubDate>
      <link>https://forem.com/growthfyi/jamstack-the-new-web-stack-1kl4</link>
      <guid>https://forem.com/growthfyi/jamstack-the-new-web-stack-1kl4</guid>
      <description>&lt;p&gt;The world of technology is changing faster than one could ever imagine. In fact, the past is repeating itself. The revival of static sites is here but they have evolved with lots of superpowers. The full form of JAMstack is JavaScript, API, Markup stack. Just like &lt;a href="https://www.ibm.com/cloud/learn/mean-stack-explained"&gt;MEAN stack↗&lt;/a&gt;, MERN stack it is also a stack. Also, the whole site code lives on CDN so cheaper and faster hosting.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JAMstack: Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup. &lt;strong&gt;- Mathias Biilmann, Netlify co-founder.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a new way of developing and serving web application with better performance, security, and scalability. JAMstack is not a tool, it is a composition of JavaScript, Markdown and API.&lt;/p&gt;

&lt;p&gt;JavaScript is used to build the whole site and manage and respond to requests.&lt;/p&gt;

&lt;p&gt;API is used to do multiple tasks which makes them equal to full-fledged dynamic sites. These API can be used to perform dynamic tasks like search, form-handling, and others similar tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jGTUJzIO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/s3ykwh8fhywt9zozs1eb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jGTUJzIO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/s3ykwh8fhywt9zozs1eb.png" alt="JAMstack" width="800" height="780"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.markdownguide.org/"&gt;Markdown↗&lt;/a&gt; is an upgraded Markup language just like HTML. This is widely used by static site generators and headless CMS for content on site.&lt;/p&gt;

&lt;p&gt;Just like maple syrup goes complimentary with pancakes, JAMstack also has some technologies which compliments its existence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSG&lt;/strong&gt; (bridge between hard coded html and CMS) &lt;br&gt;
&lt;strong&gt;PWA&lt;/strong&gt;  (client-side caching, offline capability &amp;amp; installable)&lt;br&gt;
&lt;strong&gt;Serverless&lt;/strong&gt;  (easy backend with use-as required model)&lt;/p&gt;

&lt;p&gt;Though they got developed individually but these are got combined together upon maturity and development. All these together contributed to similar vison of faster browsing, easy development control and reduced vulnerability.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why JAMstack Came Into Existence?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before JAMstack the web was pretty much dominant by the LAMP and MEAN stack. As the usage of mobile devices increase so did the demand for light weight web technologies. The people surfing the web wanted things to load in a breeze. Big brands like Google and Facebook heard it and started to develop something or the other.&lt;/p&gt;

&lt;p&gt;In 2016, Google started testing its AMP project rigorously. &lt;a href="https://amp.dev/"&gt;AMP project↗&lt;/a&gt; was meant to create AMP pages instead of normal web pages, its major components were AMP-HTML, AMP-Cache and AMP-JS. The key thought process behind this was to create a static version of a page and then serve it rapidly using Google’s globally distributed AMP CDN.&lt;/p&gt;

&lt;p&gt;Facebook even started testing a same thing is 2015 known as &lt;a href="https://developers.facebook.com/docs/instant-articles/"&gt;Instant Articles↗&lt;/a&gt;, it too came with the same goal of making web pages load faster on a every device irrespective of network or computing limits.&lt;/p&gt;

&lt;p&gt;The only answer to these needs were to build a completely new stack which required little to no computing. That is when static became the new need of market. With all the progressive enhancements we got the stack which we now call &lt;a href="https://jamstack.org/"&gt;JAMstack↗&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Advantages of JAMstack&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Better Performance -&lt;/strong&gt;  As the whole site lives on global CDN network hence the content is delivered at a faster pace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secure -&lt;/strong&gt;  As JAMstack sites are more of a static site, which means they lack databases. This makes them very less vulnerable to cyber-attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cheap or Free Hosting -&lt;/strong&gt;  JAMstack site require no computing and the only resources they consume are bandwidth and storage. You can easily get free hosting for your JAMstack site from Vercel and Render.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy Version Control -&lt;/strong&gt;  Developers tend to often break something or other while pushing new features or upgrades. The beauty of JAMstack is that it is based-on Git and every change can be reversed with click of a button.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Thin Border Between Frontend &amp;amp; Backend&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As &lt;a href="https://twitter.com/codebeast/status/1133927268697305091"&gt;Christian Nwamba↗&lt;/a&gt; once said that the line between frontend and backend is shrinking is due to the continuous progressive development in JAMstack. Developers need not manage the backend and frontend separately. JavaScript is the only programming language they need to manage bits of their application. Most of the heavy lifting and dynamic features are manged by wide number of APIs and SaaS providers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is a shot list of things that can be easily offloaded:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Form Handling&lt;/li&gt;
&lt;li&gt;Full Site Search&lt;/li&gt;
&lt;li&gt;Image Delivery&lt;/li&gt;
&lt;li&gt;Comment System&lt;/li&gt;
&lt;li&gt;Custom Functions&lt;/li&gt;
&lt;li&gt;User Authentication&lt;/li&gt;
&lt;li&gt;Backend Functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are just a few, there are plenty more. You can easily Google them as find ones that suits your need the best.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;JAMstack Workflow&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The whole concept of JMAstack is to serve static webpages. For the same reason JAMStack has a pretty easy workflow to understand, we tried to illustrate it using the graphic below. Do have a look on it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zDFu8GHz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/9f8c75da3fb6f8d15f49b2a33274f8cf/38189/jamstack-workflow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zDFu8GHz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/9f8c75da3fb6f8d15f49b2a33274f8cf/38189/jamstack-workflow.png" alt="JAMstack Workflow" title="JAMstack Workflow" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;JAMstack Edge’s Over Traditional Stack&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;JAMstack is a way different than traditional stack. JAMstack’s build and hosting are two different processes and has different architecture. While the build process is done via standard build engine while hosting is managed via a globally distributed CDN nodes. While in a traditional stack the build and hosting are coupled into one backend server.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;JAMstack&lt;/th&gt;
&lt;th&gt;MERN/MEAN stack&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build &amp;amp; Hosting decoupled&lt;/td&gt;
&lt;td&gt;Build &amp;amp; Hosting Coupled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Whole application served via CDN&lt;/td&gt;
&lt;td&gt;Only static assets served via CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content managed by GIT or Headless CMS&lt;/td&gt;
&lt;td&gt;Content Managed by traditional CMS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Benefit Of Headless CMS Over Traditional CMS&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Since existence JAMstack site have always been running parallel to headless CMS. Unlike traditional CMS like WordPress where backend and frontend are tied into one single unit, in headless CMS the frontend and backend are completely different units. &lt;a href="https://www.storyblok.com/tp/headless-cms-explained"&gt;Headless CMS↗&lt;/a&gt; only builds the page when changes are pushed and same is served until new changes are received whereas traditional CMS builds page on every request. This gives JAMstack’s headless CMS and performance edge over traditional CMS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z4bBAj50--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/0263065d23670c8f0c250bb354554f37/38189/headless-cms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z4bBAj50--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.devxify.com/static/0263065d23670c8f0c250bb354554f37/38189/headless-cms.png" alt="Headless CMS" title="Headless CMS" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why JAMstack Could Be The Next Big Thing&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Well I say so because of the great hidden potential I see in it. JAMstack has revolutionised they way we use to develop sites, from managing servers to pushing changes on git and from handling security issues regularly to near to nil security issues.&lt;/p&gt;

&lt;p&gt;JAMstack has proved its effectiveness to developers and big brands by providing better performance, higher security, and low operational cost. As we all know that &lt;a href="https://www.cloudflare.com/learning/performance/more/website-performance-conversion-rates/"&gt;performance is the key conversion metric↗&lt;/a&gt;, so this technology is leveraged to get the maximum out of it. JAMstack has made managing and collaborating to any project way more easier using Git.&lt;/p&gt;

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

&lt;p&gt;JAMstack is still a new kid in the block. You can call it a work in progress thing too. Though its still not able to completely replace every other web development technology but we see a great future ahead. Make sure to keep your eyes on this and use wherever possible to develop performance-oriented web application.&lt;/p&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify"&gt;buying me a coffee↗&lt;/a&gt; or two, I’ll be thankful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/Growthfyi"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S4MS4wZJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://devstorage.b-cdn.net/bmc.svg" alt="buy me a coffee" width="145" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jamstack</category>
    </item>
    <item>
      <title>Proper Use Of HTML For SEO</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Fri, 17 Jul 2020 23:46:37 +0000</pubDate>
      <link>https://forem.com/growthfyi/proper-use-of-html-for-seo-23hg</link>
      <guid>https://forem.com/growthfyi/proper-use-of-html-for-seo-23hg</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CpsdIOC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/vagbkpii9tfk3c7t4tbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CpsdIOC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/vagbkpii9tfk3c7t4tbs.png" alt="HTML SEO" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now SEO is very important for website owners like us, we do a lot of hard work to create content and we do desire to have a good reachability. Over years Google has become the largest search engine and it contributes to large number of traffic to every site. SEO optimization is very important if we wish to rank well on searched terms on Google.&lt;/p&gt;

&lt;p&gt;Personally, I do not like inorganic ways like link building to improve my SEO score, but I do all I can in an organic way. Well that includes writing your HTML is best possible way. Always remember, this is secondary, writing high quality content is primary.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Benefits:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Better Visibility&lt;/li&gt;
&lt;li&gt;Improved Traffic&lt;/li&gt;
&lt;li&gt;Increase in Revenue&lt;/li&gt;
&lt;li&gt;Higher Conversion&lt;/li&gt;
&lt;li&gt;Google Loves You&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let us start with the steps with write the best SEO friendly HTML.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Title Tag&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What’s a man without a name and what’s a webpage without a title? Title tag is very important for a webpage, it is the tag which gives brief about the page content. One must always add title properly and refrain from using terms like homepage, blog, and others. Try to be descriptive using minimal words.&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="c"&gt;&amp;lt;!-- ❌ Poor description using title --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Homepage&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Blog&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Proper description using title --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Devxify - Level Up Your Web Skills&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Web Development Guides and Articles by Devxify&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Use Of Rel Canonical &amp;amp; Icon&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;These two might sound like small bits but they are very important. The rel canonical states the original link of the webpage. Here is an example, for example you webpage is accessible by multiple URLs like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.devxify.com"&gt;https://www.devxify.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.devxify.com/"&gt;https://www.devxify.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.devxify.com#home"&gt;https://www.devxify.com#home&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But we only want the first to be indexed on Google, this is where we use rel=‘canonical’, it also helps us with reducing the chances of internal content duplicity.&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;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"canonical"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://www.devxify.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similarly, rel=‘icon’ is also very important, it hold the destination of your favicon which is nothing but a small brand icon which in show in browser window. This help users remember your site even by the icon. Who does not want to build a brand after all?&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;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"icon"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"image/x-icon"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"favicon.ico"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Proper Use Of Meta Tags&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I believe that meta tags are the most important tags when giving basic description of your site to any search engine. Meta tags contain wide array of data like site title, description, social image, social title, and social description.&lt;/p&gt;

&lt;p&gt;Meta tags even make your site look the way you wish on web results and social media sites. Below are few essential meta tags one must have, if you are a bit lazy then you use any generator like &lt;a href="https://metatags.io/"&gt;metatags.io↗&lt;/a&gt; and your job will be done.&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="c"&gt;&amp;lt;!-- Basic Meta Tags --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Title Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Description Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Facebook Meta Tags --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://www.devxify.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:logo"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"images/brand-logo.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:type"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"website"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Title Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Description Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"images/brand-social-image.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Twitter Meta Tags --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"twitter:card"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"summary_large_image"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"twitter:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Title Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"twitter:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Awesome Description Here"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"images/brand-social-image.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Chrome Theme (URL Bar Color) --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"theme-color"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"#1a62f2"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Use Of Schema Markup&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://neilpatel.com/blog/get-started-using-schema/"&gt;Schema Markup↗&lt;/a&gt; has a similar job compared to meta tags but it is in much descriptive way. You can go as deep as you wish like sharing details about product, pricing and much more. I will share a very basic example, but you are free to visit the official Schema documentation for in-depth study and implementation. Below is an example of schema of our 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;http://www.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;WebSite&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;Devxify&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;alternateName&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;Devxify.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;description&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;Helping you be a pro in web development, want to?&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;http://www.devxify.com/images/logo.jpg&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://www.devxify.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;creator&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;Person&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;Ankit Ghosh&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;email&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@devxify.com&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;h2&gt;
  
  
  &lt;strong&gt;Semantic Use Of Heading Tags&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I have seen plenty of website owners mess up here. Most of the time search engine bots interpret even non-semantic HTML but you do not need to pay extra tax to write proper HTML? So why not do it in the correct way? Here is an example of wrong and correct uses of heading tags.&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="c"&gt;&amp;lt;!-- ❌ Page should have single H1 tag --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ❌ Heading should be structured --&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Like H3 cannot be placed under H2 --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Heading 3&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Structured heading tags with hierarchy hy --&amp;gt;&lt;/span&gt;            
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Heading 3&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Use of Alt Attribute in Images&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Not all people are physically privileged like us, some people use screen reader and won’t be able to see the images you add so to tell them about the image we need to add a small text to describe the image.&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="c"&gt;&amp;lt;!-- ❌ Alt attribute not used --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/funny-cat.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Alt attribute used --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/funny-cat.png"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"funny cat"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Friendly URLs&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;So, whenever you write and are about to publish it, ensure that you write well formatted URL. I share the correct and incorrect example below, have a look.&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="c"&gt;&amp;lt;!-- ❌ Poor sub-directory naming --&amp;gt;&lt;/span&gt;
https://example.com/29-07-2020/abc-book-review.html
&lt;span class="c"&gt;&amp;lt;!-- ✅ Proper sub directory naming --&amp;gt;&lt;/span&gt;
https://example.com/book-review/abc.html

&lt;span class="c"&gt;&amp;lt;!-- ❌ Poor naming &amp;amp;lack of desc --&amp;gt;&lt;/span&gt;
https://example.com/holiday.html                                   
&lt;span class="c"&gt;&amp;lt;!-- ✅ Proper naming with desc --&amp;gt;&lt;/span&gt;       
https://example.com/how-i-spent-my-holiday.html               

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Valid Robots.txt File&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Robots.txt is essential file which is used be bots to see what all pages are allowed by them to crawl and index. There are small chances that you might mess up and block them from crawling and indexing of your pages. Here is a sample of a valid &lt;code&gt;robots.txt&lt;/code&gt;, you can simply copy this and add for your use&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="c"&gt;&amp;lt;!-- ❌ Blocks Every Path (This is a comment &amp;amp; not part of Robots.txt) --&amp;gt;&lt;/span&gt;              
User-Agent: *
Disallow: /
Allow: /index.html
Sitemap: https://example.com/sitemap.xml                

&lt;span class="c"&gt;&amp;lt;!-- ✅ Allows Every Path Except Admin &amp;amp; Dashboard (This is a comment &amp;amp; not part of Robots.txt) --&amp;gt;&lt;/span&gt; 
User-Agent: *
Disallow: /admin.html
Disallow: /dashboard.html
Allow: /
Sitemap: https://example.com/sitemap.xml

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For better understanding check the code below which has been written with proper comments. Also when copying from below remember to remove comments from your &lt;code&gt;robots.txt&lt;/code&gt; as it does not support comments, I added to make you understand in a easy way.&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="c"&gt;&amp;lt;!-- Allow full access --&amp;gt;&lt;/span&gt;
User-agent: *
Disallow:

&lt;span class="c"&gt;&amp;lt;!-- Block all access --&amp;gt;&lt;/span&gt;
User-agent: *
Disallow: /

&lt;span class="c"&gt;&amp;lt;!-- Blocks a folder --&amp;gt;&lt;/span&gt;             
User-agent: *
Disallow: /folder/

&lt;span class="c"&gt;&amp;lt;!-- Block a file --&amp;gt;&lt;/span&gt;       
User-agent: *
Disallow: /demo.html

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Descriptive Link Tags&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is a very common issue I found among bloggers, I found that they tend to use terms like here, go, buy, and add links to them. The problem is they are meaningless. Always add links to text which have a meaning. See below to understand more.&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="c"&gt;&amp;lt;!-- ❌ Link with non descriptive text --&amp;gt;&lt;/span&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;"/funny-cat.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;more&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Link with descriptive text --&amp;gt;&lt;/span&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;"/funny-cat.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;more funny cat pic&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;These were some extremely basic guidelines one must follow for better HTML and SEO, though their are much more but these basics are important too. If you are already following these then kudos to you.&lt;/p&gt;

&lt;p&gt;If you really liked the article then do share it with your friends and colleagues. If you find a error or just want to do addition to this post then feel free to drop a message on &lt;a href="https://twitter.com/devxify"&gt;Twitter↗&lt;/a&gt;, also do follow us for quick updates. For weekly updates on web performance and optimization do subscribe to our newsletter. If you wish to support my work (which I do here for free) then you can do so by &lt;a href="https://www.buymeacoffee.com/Devxify"&gt;buying me a coffee↗&lt;/a&gt; or two, I’ll be thankful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/Growthfyi"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S4MS4wZJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://devstorage.b-cdn.net/bmc.svg" alt="buy me a coffee" width="145" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>html</category>
    </item>
    <item>
      <title>I am planning to move my blog to Dev.to</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Sun, 05 Jul 2020 04:09:57 +0000</pubDate>
      <link>https://forem.com/growthfyi/i-am-planning-to-move-my-blog-to-dev-to-58e1</link>
      <guid>https://forem.com/growthfyi/i-am-planning-to-move-my-blog-to-dev-to-58e1</guid>
      <description>&lt;p&gt;Hi Mates,&lt;/p&gt;

&lt;p&gt;I am planning to move blog to Dev.to platform and solely write here as I plan to work on my newsletter and Dev.to is less hassle even for a non-techie.&lt;/p&gt;

&lt;p&gt;Though I write mostly tech content but I sometimes plan to write about off topics like analyzing user feedback to create better products (focused on solo developers and product owners who do are on Dev.to) also sometimes I might write review products/service I use like email marketing tool or services for developers to monetize their content like BuyMeACoffee. Sometimes there might be one or two affiliate like which I will give brief disclosure of, are these allowed? I want to know thins be I don't want unintentionally abuse this platform.&lt;/p&gt;

&lt;p&gt;If you all could acknowledge me then it would be very greatful.&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>Wrote A JS Script To Validate Email</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Fri, 05 Jun 2020 05:21:20 +0000</pubDate>
      <link>https://forem.com/growthfyi/wrote-a-js-script-to-validate-email-2h6a</link>
      <guid>https://forem.com/growthfyi/wrote-a-js-script-to-validate-email-2h6a</guid>
      <description>&lt;p&gt;Hie mates, I am &lt;strong&gt;Ankit&lt;/strong&gt; from &lt;a href="https://www.devxify.com"&gt;Devxify&lt;/a&gt;. Few days back I was try to build a custom signup form where the user could enter the email and I could validate and tell him about the action(output) on the same page itself in a non-obstructive way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It had 3 different messages:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter your email (Default Message)&lt;/li&gt;
&lt;li&gt;Kindly check your email format (Error Message)&lt;/li&gt;
&lt;li&gt;Done! Please check your email to confirm (Success Message)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Also, need a small suggestion. Do you think I should build a separate page (on &lt;strong&gt;Github&lt;/strong&gt; or &lt;strong&gt;Devxify&lt;/strong&gt;) for this script for others with very elaborate documentation. It would be free though. Do have a look and let me know.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now let's start from seeing the output first. In the below live sample try to with try to enter correct mail and incorrect mail format.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: This does not collect any email so you will not be receiving any confirmation email to check. Also we ❤ privacy.&lt;/em&gt;&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/devxify/embed/dyGPmKq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Now that we have seen the demo, let's start with the code itself. Also in this example we would be using &lt;a href="https://bulma.io"&gt;&lt;strong&gt;Bulma CSS&lt;/strong&gt;&lt;/a&gt; framework for the styling purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Creating HTML Skeleton
&lt;/h2&gt;

&lt;p&gt;In the HTML skeleton we are going to define the structure of our subscription form. Also we would be adding the messages (in sleek format). Some of them will be hidden by using inline CSS.&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;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdn.jsdelivr.net/npm/bulma@0.8.2/css/bulma.min.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!--Subscription Form Begins--&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"has-text-centered"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  On-page email validation by &lt;span class="nt"&gt;&amp;lt;a&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;href=&lt;/span&gt;&lt;span class="s"&gt;"https://www.devxify.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;b&amp;gt;&lt;/span&gt;Devxify&lt;span class="nt"&gt;&amp;lt;/b&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;.
&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Iframe used to ensure page doesn't gets redirected on submission --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"hidden_iframe"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hidden_iframe"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"subscribe"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display: block"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"has-text-centered"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"menu-label"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Can I please help you too stay updated with latest posts?&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"sform"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"zcampaignOptinForm"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"hidden_iframe"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"field has-addons has-addons-centered"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"control"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"input"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"awesome@email.com"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"CONTACT_EMAIL"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"EMBED_FORM_EMAIL_LABEL"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"control"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"formHandle(document.sform.CONTACT_EMAIL);"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"button is-link"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"SIGNUP_SUBMIT_BUTTON"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"zcWebOptin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          Subscribe
        &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="c"&gt;&amp;lt;!-- User Output Messages Below --&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"normal"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tag is-light"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display: inline-flex"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Awesome Content Ahead&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"success"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tag is-link is-light"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display: none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Check Confirmation Mail&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"error"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tag is-danger is-light"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display: none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Check Your Email Format&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!--Subscription Form Ends--&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you simply paste this code, then you will notice that the form is looking in the exact way of the sample. Do remember that this code is not semantic. The stylesheet should be placed in the &lt;strong&gt;head&lt;/strong&gt; section or at the end of page. Also the form must be inside the body.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Use JavaScript To Handle Input
&lt;/h2&gt;

&lt;p&gt;Now this is the main part. Here we would be using to create a syntax of the acceptable email. Also we would be using this script to manipulate the CSS of the elements. Use script tag to add this onto your page.&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="nx"&gt;formHandle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputText&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;//The mail format would be accepting extensions to 2-6 units only, you can modify the part {2,6}&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailformat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;/^&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;([\.&lt;/span&gt;&lt;span class="sr"&gt;-&lt;/span&gt;&lt;span class="se"&gt;]?\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;*@&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;([\.&lt;/span&gt;&lt;span class="sr"&gt;-&lt;/span&gt;&lt;span class="se"&gt;]?\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;(\.\w{2,6})&lt;/span&gt;&lt;span class="sr"&gt;+$/&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mailformat&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;normal&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;success&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;inline-flex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;normal&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;success&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;inline-flex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done? Bang on. It's done. Now you have created an awesome subscription form for you visitors. &lt;strong&gt;Do feel proud and share this article&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hope you like this article, if you have any other thoughts then feel free to tweet &lt;a href="https://twitter.com/devxify"&gt;Devxify on twitter&lt;/a&gt;. Also, for more freshly brewed content &lt;a href="https://devxify.substack.com/welcome"&gt;subscribe to our newsletter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>form</category>
      <category>html</category>
    </item>
    <item>
      <title>🤓🔥How To Make Websites Accessible To All 💯</title>
      <dc:creator>Ankit</dc:creator>
      <pubDate>Thu, 04 Jun 2020 19:00:12 +0000</pubDate>
      <link>https://forem.com/growthfyi/how-to-make-websites-accessible-to-all-mcj</link>
      <guid>https://forem.com/growthfyi/how-to-make-websites-accessible-to-all-mcj</guid>
      <description>&lt;p&gt;Hey, I'm Ankit a lover of "Accessible &amp;amp; Fast Web". Have you ever thought that how blessed we are to be &lt;strong&gt;normal&lt;/strong&gt; ?&lt;br&gt;
If not, then you better start. &lt;/p&gt;

&lt;p&gt;As a part of the web developer community its our job to ensure that the web is accessible to all. The W3 even has a separate guidelines for  &lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/#:~:text=WCAG%202.0%20and%20WCAG%202.1%20are%20stable%2C%20referenceable%20technical%20standards,A%2C%20AA%2C%20and%20AAA." rel="noopener noreferrer"&gt;&lt;strong&gt;web content accessibility&lt;/strong&gt;&lt;/a&gt; . After all the web should be a better place to be even if the world isn't.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8l5ycmba8i0kfgsf1t4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8l5ycmba8i0kfgsf1t4w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today let's talk about the basics and let's see if I can help you be at-least semi-compliant with WCAG 2.1. In this article I would be guiding you through the steps to make you webpage accessible with devices like screen reader. Let's begin.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Pages Must Have Proper Title&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This the most basic tip you will ever read or listen regarding web accessibility. Having a proper title ensure that the specially-abled visitor gets a quick info of what the page is about. I request you to use terms like &lt;strong&gt;page 1&lt;/strong&gt;, &lt;strong&gt;blog&lt;/strong&gt;. It's horrible, instead use phrases like &lt;strong&gt;Continuation of Abc article&lt;/strong&gt; or &lt;strong&gt;Dev.to Blog, One stop for all developers&lt;/strong&gt;.&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="c"&gt;&amp;lt;!-- ❌ Homepage? Does that even has proper meaning? --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Homepage&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Descriptive --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Devxify - Level Up Your Web Development Skills&lt;span class="nt"&gt;&amp;lt;/tile&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Though its easy to understand but still there are few things to remember when writing a title.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Must be descriptive&lt;/li&gt;
&lt;li&gt;Must not be used to fool visitors&lt;/li&gt;
&lt;li&gt;Title should be unique from page to page&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Proper Labelling of Elements&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Not all of your visitors would be reading your text, some might be using tools like screen reader. As a developer you must ensure that all of the required elements are marked properly for screen readers. In an article about  &lt;a href="https://www.devxify.com/learn/writing-better-and-accessible-html-forms.html" rel="noopener noreferrer"&gt;&lt;strong&gt;HTML form design&lt;/strong&gt;&lt;/a&gt; , I too talked about form labeling. Labeling ensures that your visitor is given information in a way you want. Coming back to topic, labeling and giving role can be easily done using &lt;strong&gt;aria-label&lt;/strong&gt;, &lt;strong&gt;aria-labelledby&lt;/strong&gt;, &lt;strong&gt;role&lt;/strong&gt;  and others.&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="c"&gt;&amp;lt;!-- Example 1: The role tells that it's is a separator for section/page --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"has-text-centered is-size-4 has-text-grey-light"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"separator"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;• • •&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Example 2: Aria Label tells page reader about external page --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Hie I am &lt;span class="nt"&gt;&amp;lt;a&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;href=&lt;/span&gt;&lt;span class="s"&gt;"https://twitter.com/devxify"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Devxify Website"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Devxify&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;, wbu&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Example 3: Telling Screen Reader About Navigation --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"navigation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Links Must Have Descriptive Name&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Whenever using an anchor tag to add links to your website, remember that the linked text should give a brief hint of the following linked page. Don’t use texts like more, go, see to link to other pages/articles on or outside your site. It is bad.&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="c"&gt;&amp;lt;!-- ❌ Link with non descriptive text --&amp;gt;&lt;/span&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;"/funny-cat.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;more&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Link with descriptive text --&amp;gt;&lt;/span&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;"/funny-cat.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;more funny cat pic&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Semantic Use of Heading&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Headings partly define the structure of the webpage. When you mess up with it then you mess up with your content structure too. Heading tags should always be using according to their hierarchy and a page must contain only a single H1 tag, below is an example of correct and wrong use of heading structure.&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="c"&gt;&amp;lt;!-- ❌ Page should have single H1 tag --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ❌ Heading should be structured --&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Like H3 cannot be placed under H2 --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Heading 3&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt; 

&lt;span class="c"&gt;&amp;lt;!-- ✅ Structured heading tags with hiearchy --&amp;gt;&lt;/span&gt;            
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Heading 1&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Heading 3&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading 2&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Making Font Size Readable&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Does your webpage have proper font size? You might have written an awesome blog or guide but is that of any use when people can’t even read that?&lt;/p&gt;

&lt;p&gt;There is a suggested size of min 11px for text on page but that might not be the number you should stick too. As a webmaster you should know your audience, are your audience elderly people or people with poor eyesight? If that’s the case, then you better have a higher number than said 11px.&lt;/p&gt;

&lt;p&gt;Apart from sticking with px as a unit for your font-size, try dynamic units like rem and em which change font-size according to the viewport.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Elaborating Text In HTML&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Sometime use shortforms of text which aren't known by everybody like BBC (British Broadcasting Channel? Confusion). For this we have abbreviation tags at our service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;The &lt;span class="nt"&gt;&amp;lt;abbr&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"British Broadcasting Corporation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;BBC&lt;span class="nt"&gt;&amp;lt;/abbr&amp;gt;&lt;/span&gt; is a great platform.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Semantic Use Of HTML Tags&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;HTML has few tags which visually do the same thing but are actually different and very few developers know this.&lt;/p&gt;

&lt;p&gt;For example &lt;strong&gt;&amp;lt;strong&amp;gt;&lt;/strong&gt; and &lt;strong&gt;&amp;lt;b&amp;gt;&lt;/strong&gt; tag visually do the same thing which is making text bold. Semantically they are different, &lt;strong&gt;&amp;lt;strong&amp;gt;&lt;/strong&gt; tag is to bold the text and also mark this as important part of the text whereas &lt;strong&gt;&amp;lt;b&amp;gt;&lt;/strong&gt; tag is just a visual element to show text in bold format.&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;strong&amp;gt;&lt;/span&gt; I am really important&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;b&amp;gt;&lt;/span&gt;I am just a bold text&lt;span class="nt"&gt;&amp;lt;/b&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This also means that you need to use the correct tags for the correct purpose. For example buttons must be enclosed between &lt;strong&gt;&amp;lt;button&amp;gt;&lt;/strong&gt; tag and not &lt;strong&gt;&amp;lt;a&amp;gt;&lt;/strong&gt; tag. Similarly on-page functions like onClick JavaScript functions should use &lt;strong&gt;&amp;lt;button&amp;gt;&lt;/strong&gt; and not &lt;strong&gt;&amp;lt;a&amp;gt;&lt;/strong&gt;.&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="c"&gt;&amp;lt;!-- ✅ Using Button tag for buttons --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ❌ Using Anchor Tag for buttons is semantically wrong --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ✅ Using Button tag for JS function --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onClick=&lt;/span&gt;&lt;span class="s"&gt;"demo()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- ❌ Using Anchor Tag for for same is wrong --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;onClick=&lt;/span&gt;&lt;span class="s"&gt;"demo()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Did you like what I wrote? Feel free to share your views in the comment section. Also if you wish to check how much accessible your website is then the best tools would be &lt;strong&gt;Google LightHouse&lt;/strong&gt; and &lt;strong&gt;Accessibe's Ace&lt;/strong&gt;. These tools will provide you with a comprehensive list of tests your webpage passed and one's failed.&lt;/p&gt;

&lt;p&gt;Hope you like this article, if you have any other thoughts then feel free to tweet &lt;a href="https://twitter.com/devxify" rel="noopener noreferrer"&gt;Devxify on twitter&lt;/a&gt;. Also, for more freshly brewed content &lt;a href="https://devxify.substack.com/welcome" rel="noopener noreferrer"&gt;subscribe to our newsletter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also feel free to visit &lt;a href="https://www.devxify.com" rel="noopener noreferrer"&gt;Devxify&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
