Postgresql Installation in Linux
sudo apt install postgresql
sudo systemctl is-active postgresql
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql


sudo pg_isready


sudo systemctl restart postgresql
sudo su - postgres

ALTER USER postgres WITH PASSWORD 'root';

psql

CREATE USER fwl_db_user WITH PASSWORD 'securep@wd';
CREATE DATABASE fwl_core_db;
GRANT ALL PRIVILEGES ON DATABASE fwl_core_db to fwl_db_user;
GRANT ALL PRIVILEGES ON DATABASE postgres to fwl_db_user;

CREATE USER postgres WITH PASSWORD 'root';
GRANT ALL PRIVILEGES ON DATABASE fwl_core_db to postgres;
Find Second Largest Number in Array – Infosys -CTS -TCS JAVA Interview Question
public class SecondLargestInArrayExample{  
	
	
	
public static int getSecondLargest(int[] a, int total,int k){  
int temp;  
for (int i = 0; i < total; i++)   
        {  
            for (int j = i + 1; j < total; j++)   
            {  
                if (a[i] > a[j])   
                {  
                    temp = a[i];  
                    a[i] = a[j];  
                    a[j] = temp;  
                }  
            }  
        }  
       return a[total-k];  
}  
public static void main(String args[]){  
int a[]={1,2,5,6,3,2,7};  /// 1,2,2,3,5,6,7   7-2 =5    0,1,2,3,4,
//int b[]={44,66,99,77,33,22,55};  

int n=a.length;
int k=3;
System.out.println("Second Largest: "+getSecondLargest(a,n,k));  
//System.out.println("Second Largest: "+getSecondLargest(b,7));  
}

}  
Generate Thumbnail from Video Using Java
public String generateThumnail(String videoUrl) {

		logger.info("************************************");

		FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(videoUrl);
		logger.info(" generateThumnail videoUrl---" + videoUrl);
		String fileName = videoUrl.substring(videoUrl.lastIndexOf('/') + 1);
		logger.info("generateThumnail fileName---" + fileName);
		fileName = fileName.substring(0, fileName.lastIndexOf("."));
		logger.info("generateThumnail fileName---1" + fileName);
		String path = thumbUrl + fileName + ".png";
		String filenameS3 = fileName + ".png";
		logger.info("generateThumnail filenameS3---1" + filenameS3);
		try {
			frameGrabber.start();
			Java2DFrameConverter aa = new Java2DFrameConverter();

			BufferedImage bi;
			Frame f = frameGrabber.grabKeyFrame();
			bi = aa.convert(f);
			while (bi != null) {
				ImageIO.write(bi, "png", new File(serverPath + fileName + ".png"));
				f = frameGrabber.grabKeyFrame();
				bi = aa.convert(f);
				File myFile = new File(serverPath + fileName + ".png");
				InputStream is = new FileInputStream(myFile);
				ObjectMetadata meta = new ObjectMetadata();
				meta.setContentType("image/png");
				meta.setContentLength(myFile.length());
				s3client.putObject(new PutObjectRequest(bucketNameThumb, filenameS3, is, meta)
						.withCannedAcl(CannedAccessControlList.PublicRead));

			}
			frameGrabber.stop();
		} catch (Exception e) {

			logger.info("Error Message: " + e.getMessage());
		}

		return path;

	}
Upload Video File in Amazon S3 Storage Using Java
package com.aws.momo.project.util;

import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Date;

import javax.annotation.PostConstruct;
import javax.imageio.ImageIO;
import javax.security.auth.message.callback.PrivateKeyCallback.Request;

import org.apache.http.HttpRequest;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.DeleteObjectRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.util.Base64;
import com.aws.momo.project.controller.MomoUsersController;

@Service
public class AmazonClient {
	private static Logger logger = LoggerFactory.getLogger(AmazonClient.class);

	private AmazonS3 s3client;

	@Value("${amazonProperties.videoUrl}")
	private String videoUrl;
	@Value("${amazonProperties.audioUrl}")
	private String audioUrl;
	@Value("${amazonProperties.thumbUrl}")
	private String thumbUrl;
	@Value("${amazonProperties.localPath}")
	private String localPath;
	@Value("${amazonProperties.serverPath}")
	private String serverPath;
	@Value("${amazonProperties.secretKey}")
	private String secretKey;
	@Value("${amazonProperties.accessKey}")
	private String accessKey;
	@Value("${amazonProperties.bucketNameVideo}")
	private String bucketNameVideo;
	@Value("${amazonProperties.bucketNameSound}")
	private String bucketNameSound;
	@Value("${amazonProperties.bucketNameThumb}")
	private String bucketNameThumb;
	@Value("${amazonProperties.bucketName}")
	private String bucketName;

	@SuppressWarnings("deprecation")
	@PostConstruct
	private void initializeAmazon() {
		AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
		this.s3client = new AmazonS3Client(credentials);
	}

	private File convertMultiPartToFile(MultipartFile file) throws IOException {

		File convFile = new File(file.getOriginalFilename());
		FileOutputStream fos = new FileOutputStream(serverPath + convFile);
		fos.write(file.getBytes());
		fos.close();
		return convFile;
	}

	private String generateFileName(MultipartFile multiPart) throws IOException {
		return new Date().getTime() + "-" + multiPart.getOriginalFilename().replace(" ", "_");
	}

	public String uploadVideoTos3bucket(MultipartFile file) {

		logger.info("uploadVideoTos3bucket");
		String fileUrl = "";
		try {

			logger.info("file.getOriginalFilename() " + file.getOriginalFilename());
			logger.info("file.getContentType()" + file.getContentType());
			logger.info("file.getInputStream() " + file.getInputStream());
			logger.info("file.toString() " + file.toString());
			logger.info("file.getSize() " + file.getSize());
			logger.info("file.getBytes() " + file.getBytes());
			logger.info("file.hashCode() " + file.hashCode());
			logger.info("file.getClass() " + file.getClass());
			logger.info("file.isEmpty() " + file.isEmpty());

			InputStream is = file.getInputStream();
			String keyName = generateFileName(file);

			logger.info("keyName" + keyName);

			logger.info("Uploading a new object to S3 from a uploadVideoTos3bucket\n");
			ObjectMetadata meta = new ObjectMetadata();
			meta.setContentType("video/mp4");
			meta.setContentLength(file.getSize());
			s3client.putObject(new PutObjectRequest(bucketNameVideo, keyName, is, meta)
					.withCannedAcl(CannedAccessControlList.PublicRead));

			logger.info("************************************");

			fileUrl = videoUrl + keyName;

		} catch (AmazonServiceException ase) {
			logger.info("Caught an AmazonServiceException, which " + "means your request made it "
					+ "to Amazon S3, but was rejected with an error response" + " for some reason.");
			logger.info("Error Message:    " + ase.getMessage());
			logger.info("HTTP Status Code: " + ase.getStatusCode());
			logger.info("AWS Error Code:   " + ase.getErrorCode());
			logger.info("Error Type:       " + ase.getErrorType());
			logger.info("Request ID:       " + ase.getRequestId());

		} catch (AmazonClientException ace) {

			logger.info("Caught an AmazonClientException, which " + "means the client encountered "
					+ "an internal error while trying to " + "communicate with S3, "
					+ "such as not being able to access the network.");
			logger.info("Error Message: " + ace.getMessage());
		} catch (IOException e) {
			logger.info("Error Message: " + e.getMessage());
		}

		return fileUrl;
	}

	


}
Application.yml
amazonProperties:
  videoUrl: 
  audioUrl: 
  thumbUrl: 
  localPath: 
  serverPath: 
   accessKey: 
  secretKey: 
  bucketNameVideo: 
  bucketNameSound:  
  bucketNameThumb:
  bucketName: 
Upload Video File in Amazon S3 Storage Using Spring Boot

Upload Video File in Amazon S3 Storage Using Spring Boot

package com.aws.momo.project.util;

import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Date;

import javax.annotation.PostConstruct;
import javax.imageio.ImageIO;
import javax.security.auth.message.callback.PrivateKeyCallback.Request;

import org.apache.http.HttpRequest;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.DeleteObjectRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.util.Base64;
import com.aws.momo.project.controller.MomoUsersController;

@Service
public class AmazonClient {
	private static Logger logger = LoggerFactory.getLogger(AmazonClient.class);

	private AmazonS3 s3client;

	@Value("${amazonProperties.videoUrl}")
	private String videoUrl;
	@Value("${amazonProperties.audioUrl}")
	private String audioUrl;
	@Value("${amazonProperties.thumbUrl}")
	private String thumbUrl;
	@Value("${amazonProperties.localPath}")
	private String localPath;
	@Value("${amazonProperties.serverPath}")
	private String serverPath;
	@Value("${amazonProperties.secretKey}")
	private String secretKey;
	@Value("${amazonProperties.accessKey}")
	private String accessKey;
	@Value("${amazonProperties.bucketNameVideo}")
	private String bucketNameVideo;
	@Value("${amazonProperties.bucketNameSound}")
	private String bucketNameSound;
	@Value("${amazonProperties.bucketNameThumb}")
	private String bucketNameThumb;
	@Value("${amazonProperties.bucketName}")
	private String bucketName;

	@SuppressWarnings("deprecation")
	@PostConstruct
	private void initializeAmazon() {
		AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
		this.s3client = new AmazonS3Client(credentials);
	}

	private File convertMultiPartToFile(MultipartFile file) throws IOException {

		File convFile = new File(file.getOriginalFilename());
		FileOutputStream fos = new FileOutputStream(serverPath + convFile);
		fos.write(file.getBytes());
		fos.close();
		return convFile;
	}

	private String generateFileName(MultipartFile multiPart) throws IOException {
		return new Date().getTime() + "-" + multiPart.getOriginalFilename().replace(" ", "_");
	}

	public String uploadVideoTos3bucket(MultipartFile file) {

		logger.info("uploadVideoTos3bucket");
		String fileUrl = "";
		try {

			logger.info("file.getOriginalFilename() " + file.getOriginalFilename());
			logger.info("file.getContentType()" + file.getContentType());
			logger.info("file.getInputStream() " + file.getInputStream());
			logger.info("file.toString() " + file.toString());
			logger.info("file.getSize() " + file.getSize());
			logger.info("file.getBytes() " + file.getBytes());
			logger.info("file.hashCode() " + file.hashCode());
			logger.info("file.getClass() " + file.getClass());
			logger.info("file.isEmpty() " + file.isEmpty());

			InputStream is = file.getInputStream();
			String keyName = generateFileName(file);

			logger.info("keyName" + keyName);

			logger.info("Uploading a new object to S3 from a uploadVideoTos3bucket\n");
			ObjectMetadata meta = new ObjectMetadata();
			meta.setContentType("video/mp4");
			meta.setContentLength(file.getSize());
			s3client.putObject(new PutObjectRequest(bucketNameVideo, keyName, is, meta)
					.withCannedAcl(CannedAccessControlList.PublicRead));

			logger.info("************************************");

			fileUrl = videoUrl + keyName;

		} catch (AmazonServiceException ase) {
			logger.info("Caught an AmazonServiceException, which " + "means your request made it "
					+ "to Amazon S3, but was rejected with an error response" + " for some reason.");
			logger.info("Error Message:    " + ase.getMessage());
			logger.info("HTTP Status Code: " + ase.getStatusCode());
			logger.info("AWS Error Code:   " + ase.getErrorCode());
			logger.info("Error Type:       " + ase.getErrorType());
			logger.info("Request ID:       " + ase.getRequestId());

		} catch (AmazonClientException ace) {

			logger.info("Caught an AmazonClientException, which " + "means the client encountered "
					+ "an internal error while trying to " + "communicate with S3, "
					+ "such as not being able to access the network.");
			logger.info("Error Message: " + ace.getMessage());
		} catch (IOException e) {
			logger.info("Error Message: " + e.getMessage());
		}

		return fileUrl;
	}

	


}
Application.yml
amazonProperties:
  videoUrl: 
  audioUrl: 
  thumbUrl: 
  localPath: 
  serverPath: 
   accessKey: 
  secretKey: 
  bucketNameVideo: 
  bucketNameSound:  
  bucketNameThumb:
  bucketName: 

Samsung introduced its Bixby voice assistant back in 2017, and it’s served as the first-party assistant on Samsung gadgets ever since. But this wasn’t Samsung’s first voice assistant, as that would be S Voice.

Unfortunately for anyone who was still using S Voice, TizenHelp reports that Samsung is now killing the legacy service. This isn’t the only Samsung service to be killed off, as it’s also shuttering Find My Car, Car Mode, and MirrorLink functionality.


S Voice debuted on the Galaxy S3 in 2012, coming at roughly the same time as Google Voice Search and Google Now. But Google streaked ahead by launching the Assistant in 2016, offering faster, more accurate, and more diverse interactions.

Samsung responded with Bixby in 2017, launching alongside the Galaxy S8 series (and appearing on all later flagships). The firm later followed up with a Bixby 2.0 release that offered more supported languages and better natural language recognition.

We’re more surprised that Samsung didn’t shut down S Voice sooner. Nevertheless, those still using older phones and wearables with the service will either need to switch to Bixby or another voice assistant.

It wouldn’t be the first major voice assistant to be killed off on Android either, as Microsoft confirmed late last year that it was ending support for Cortana on the platform too.

Last week, we reported that Xiaomi is finally launching laptops in India. The company’s Indian fans have waited long for its MacBook-inspired machines, which have received pretty favorable reviews around the world.

Now, Xiaomi has confirmed that it will launch a brand new Mi-branded laptop in India on June 11. The brand has also sent us a media invite for the launch which will take place online across Xiaomi’s social media channels at 12PM IST on the aforementioned date. The invite has a Mi Notebook hashtag too.

The June launch date was previously leaked by 91Mobiles in collaboration with tipster Ishan Agarwal. The leakers claimed that the company will launch an Intel Core i7-powered RedmiBook 13 in India. However, Xiaomi’s latest announcement suggests this will be a brand new machine, tailored specifically for the Indian market.
According to a Windows Central report, Xiaomi’s new laptop in India will be a custom variant of the Mi Notebooks that it sells in China. It’s expected to feature a 13-inch FHD display, an Intel processor, at least 8GB of RAM, and 256GB of storage.


Huawei MateBook 14 review: A sexy design ruined by the dreaded nose-cam
Some Mi laptop models were also recently certified by Bluetooth SIG and a number of them, including a Mi Notebook 14 with model number XMA1904, are brand new laptops that don’t exist in China. It’s possible that one of these is the Xiaomi laptop headed to India.

Then again, as tipped by Ishan Agarwal, we could also see a rebranded RedmiBook with some altered specifications.

For now, all that’s confirmed is an India launch date. We’ll update you as and when we know more about Xiaomi’s laptop plans in India.

  • An Attractive Website
    The first step to Run a Successful Online Business is a website that should be designed well, Fast loading, Up-to-date, customer-friendly, and represents your business well.

As we all know First impression is the last impression. When a customer opens your website, it looks attractive and well designed.

Everything should be placed at the right place, so that customers don’t get confused. Your customer will take your product and services easily.

  • Content Marketing
    Always Remember Content is the king. Unique Content makes your brand unique and increases brand value.

We always care about content and duplicate content. Duplicate content don’t attract the customers. Its lower the brand value of the company.

We have to make unique content from compititors so that customers attract to our website and product and buy it.

  • SEARCH ENGINE OPTIMIZATION (SEO)
    SEO is the process of optimizing your website to rank higher on Google to drive more traffic to your website.

Once you have done good SEO of your website with best link building strategy. Your website traffic and conversion and business revenue will increase.

Also check: 7 Reason Why SEO Is Important For Your Business In 2020?

  • Social Media Marketing
    All Big Brands are on Social Media. it is the best way to promote your products or services and increase your brand awareness and increase sales.

If People are not aware your brand or products how they get to know about your products or services.

Social media is the best way to promote your products and services organically and get costumers to your business easily.

Also Check: How to become a millionaire: 6 tips to reach your goal

  • Google AdsGoogle Ads(PPC)
    Google ads or PPC drive more traffic and bring more potential customers which generate more leads and sales to your business.

When people type any keyword related to your business niche for example: if your business is selling ice cream. customer will type best ice cream center . Your website will be shown at the top of the search engine result page as a form of ads.

Due to this more and more customer will come to your website.

  • Email Marketing
    People around the world use Email. We can shoot emails to our potential buyers and generate more leads. Even we can check the analytics and open rate of email.

Email also generates a lot of leads and conversion, if and only if you do it in the right way.

Get Latest DoFollow Backlink Sites List
Today, I will tell you the best and latest Do follow backlink site that increases your website rank.

The Backlink Strategy is the widely used and old technique to boost the online presence.

The website that needs a greater exposure over search engine to require quality backlinks.

The fresh list of DoFollow Backlink Sites List and build SEO quality backlinks will be discussed in this blog post.

Build SEO Quality Backlinks 2020
Search Engine Optimization (SEO) has changed a lot in the past few years. Every year or in months google make changes in the algorithm.

In SEO check point of view, link building is important for a website. If you have more backlinks from the high PageRank [PR] site, your search engine ranking will definitely increase.

What are the benefits of building SEO quality Backlinks?
Building SEO quality backlinks have more benefits than you think for the Online Marketing and website ON-Page & Off-Page activity. Some of the major benefits of free dofollow Backlink action on your website are listed below.

Improves your SEO – Search Engine Optimization & SERP – Search Engine Result Page
Drive huge Referral Traffic to your Website
Build Authority and Increased Credibility to your Website
Noticed by many people and thus improves your Brand Visibility
Increases Trustworthy of the Website.


List of High DA DoFollow Backlink Directory Submission Sites
https://www.freeadstime.org/
https://www.wallclassifieds.com/
https://www.giganticlist.com/
https://www.advertiseera.com/
https://www.h1ad.com/
https://www.findermaster.com/
https://www.classifiedsfactor.com/
https://www.rectanglead.com/
https://www.superadpost.com/usalistingdirectory.com
somuch.com
sitepromotiondirectory.com
alistdirectory.com
highrankdirectory.com
bedwan.com
marketinginternetdirectory.com
9sites.net
usalistingdirectory.com
happal.com


List of DoFollow Backlink Profile Creation Sites
vimeo.com
pinterest.com
myspace.com
typepad.com
createspace.com
theverge.com
qualtrics.com
visual.ly
gameinformer.com
pearltrees.com
8tracks.com
yudu.com
magcloud.com
dead.net
armorgames.com
warriorforum.com
skillsforhealth.org.uk
hostsearch.com
onrpg.com


List of DoFollow Backlink Blog Commenting Sites
avdhootblogger.com
hedonistit.com
suejprice.com
joaoleitao.com
migrationology.com
5losttogether.com
we3travel.com
walkingtheimaginaryline.com
successfulblogging.com
torrefsland.com
blog.blogbing.com
expresswriters.com
growmap.com
peterbeckenham.com
chrisdeewaard.com
davidmerrill101.com
poweraffiliateclub.com
mjthompson.net
danguillermo.com


List of DoFollow Backlink Web 2.0 Submission Sites
wordpress.com
blogspot.com
kinja.com
purevolume.com
kiwibox.com
minds.com
tumblr.com
storeboard.com


List of High DA DoFollow Backlink Article Submission Sites
http://www.realestateproarticles.com/
http://www.thearticleblogs.com/
http://www.webgenio.com/
http://www.articles.org.in/
http://www.palsra.org/
http://www.bestarticless.com/
http://www.article-treasure.com/
http://www.articleshouse.com/
http://www.the-article-directory.com/
http://www.seosubmitarticle.com/
http://www.pressreleasenews.org/
http://www.localpressreleaser.org/
http://www.expressrelease.in/
http://www.LocalPressReleaser.net/
http://www.onlinepressrelease.co/
http://www.pressreleasecompany.co.uk/
http://www.wordpressrelease.co.uk/
http://www.articleSuggestions.com/
http://www.premiumArticles.biz/
http://www.hiphoparticles.info/
List of High DA DoFollow Backlink Forum Submission Sites
http://answers.microsoft.com/en-us
http://archiveoflinks.com/
http://community.sitepoint.com/
http://del.icio.us/
http://dondir.com/
http://filesharingtalk.com/
http://forum.deviantart.com/
http://forum.joomla.org/
http://forums.cnet.com/
http://forums.hostgator.com/
http://forums.mysql.com/
http://forums.searchenginewatch.com/
http://simplemachines.org/community/index.php
http://www.247webdirectory.com/
http://www.2daydir.com/
http://www.9dir.com/Submit
http://www.9sites.net/
http://www.9w1.net/
http://www.a1webdirectory.org/
http://www.abacusseo.com/

Search Engine Optimization is one of the best ways to increase profits of a business by improving the traffic to the website or webpage. The more the clicks a website gets, the higher will be the share of its profits.

No doubt, then that Search Engine Optimization has become one of the most used tools for digital marketing which have high ROI

Search Engine Optimization: SEO Trends [2019]

  • CREATE EXCEPTIONAL CONTENT
    SEO TREND: CREATE EXCEPTIONAL CONTENT
    Content is one of the best ways for search engine optimization. Keyword research will fetch fruitful results only when those keywords have been used in your content.

The content has to be designed as per the audience’s interests. It will help in earning backlinks as well, which is the linking of a page to another webpage.

A website or page with many backlinks will feature higher in web search results.

  • INCREASE EXPERTISE, AUTHORITY, TRUSTWORTHINESS
    INCREASE EXPERTISE, AUTHORITY, TRUSTWORTHINESS
    It is no more an unknown fact that there is an influx of information on the net. There are millions of websites on the internet.

The web has become as competitive as it can get. Users are inclined in such situations to stick to what they trust and think of as authentic.

They look for high-quality content and high-quality Backlinks to your website and therefore content and name building assumes prime importance.

Internet users of today are exceptionally well informed and therefore opt for content suiting their best interests.

Businesses can only build trust over a period only if they are able to attract the users; they have to create a niche for themselves in an already crowded market.

  • STRUCTURED DATA MARKUP IS KEY
    STRUCTURED DATA SEO
    Structured data refers to on page markup, which helps search engines to comprehend better the information on your business’s web page.

It then makes the use of such information to improve search engine page results, featuring your website higher in the search results.

It is the extra information, which often includes the essential items related to the business like name, place, and address.

  • GO BEYOND GOOGLE SEARCH
    GO BEYOND GOOGLE SEARCH
    Relying on a single source of search engine traffic can often prove detrimental. In case of exigencies or crisis, the business can suffer losses and therefore a need for alternatives arises.

Google is indeed the most popular search engine, but having a base on other search engines is equally valuable, some examples include- Mozilla, Bing, Yahoo, Social media search engines (Youtube, Facebook) , etc.

  • GET READY FOR VOICE SEARCH
    GET READY FOR VOICE SEARCH
    With the increasing use of voice search, the voice search becomes one of the fundamental aspects of SEO. The popularity of Google home assistants and Google voice and Apple siri and other voice assistants has seen a great rise.

The speaking part is easier and quicker for a user. The key here is to judge how your customers are going to speak about your business, the phrases they may use or the content they may require.

  • INVEST IN TECHNICAL SEO
    INVEST IN TECHNICAL SEO
    Technical SEO is helpful, as search engines tend to prefer websites with good technical characteristics. This can be anything, from a secure connection to quicker loading time. Some of the ways this can be achieved are:

increasing the speed of the website
fixing of duplicate content issues
being more mobile friendly
using secure socket layers

  • WIN WITH ON PAGE OPTIMIZATION
    WIN WITH ON PAGE OPTIMIZATION
    On-page optimization refers to all the steps that can be taken within the website itself.

This can happen by providing exceptional content, improving the title tags, meta descriptions, trust generation, focusing on the target audience, etc.

Improving titles on the website is one of the best ways to do this.

  • OPTIMIZE FOR RICH SNIPPETS & OTHER GOOGLE SERP FEATURES
    OPTIMIZE FOR RICH SNIPPETS & OTHER GOOGLE SERP FEATURES
    A snippet is nothing but what a user is shown when they carry out a search. A rich snippet incorporates extra information for the user, enabling them to be better informed.

They have a better click rate than normal snippets. Structured data can help in doing this; it is a code of a particular format, which search engines can easily understand.

Search engine result page (SERP) is the page that appears after a user searches for something.

It can include advertisements too. Some of the SERP tools which can be used for SEO are-

Google’s Structured Data Testing Tool, Data Highlighter, Yotpo (it has a lot of SERP enhancing features), Rank Ranger’s SERP Features Tool, etc.

  • UNDERSTAND YOUR AUDIENCE & USER INTENT
    UNDERSTAND YOUR AUDIENCE & USER INTENT
    Any good digital marketing requires the identification of the audience. They are the key to the profits that accrue in any business. Understanding customer needs is, user behaviour, behaviour flow, user session, user bounce rate [ by Google Analytics, Google Tag manager, Google Search console] therefore, the most crucial aspect of any business.