What Is Automation Script In Selenium IDE and How Does It Work

Selenium IDE
Original Post: AddWeb Solution

Currently, for the good quality of the website, Selenium IDE is used for regression testing. Everyone has to face problem to make an IDE script in below cases:-

  • Pagination
  • Mouseover
  • Drag And Drop

Here, we have described the usage of commands on your website for the above cases.

Steps to test pagination on your website with the Selenium IDE:

Scenario: These are the no. of pages or a Pagination, on which user wants to go.

1

Follow the below-mentioned steps:

Step-1:

  • Right click on the page no.
  • Select ‘Inspect in FirePath’.
  • Select the XPath is used for page no. 2
  • Copy shown XPath.
2

Step-2:

  • Go to Selenium Script table and use commands.
  • Command: click & Also you can use clickAndWait
  • Target: XPath of the page(as described above image)
  • Value: Value of page
3

Or else add a command to a source file as shown below.

4

Steps to test Mouseover on your website with the Selenium IDE

Scenario: Here, is the popup, which is opened while hovering the button.

5

Follow the below-mentioned steps:

Step-1:

  • Right-click on the Start New Search button. the XPath is used the button where shown. Copy it.
  • Select ‘Inspect in FirePath’.
  • The XPath is used for the button where shown.
  • Copy shown XPath.
6

Step-2:

  • Go to Selenium Script table use below commands.
  • Command: mouseOver
  • Target: XPath of a button (as described above image)
7

Or else add command in a source file as shown below.

8

Steps to use drag and drop command to move one location to another location in any Block

Scenario: Here is the Map, which is clickable in any area on a map to find clusters or  Take other Example like Review slider.

9

Step-1:

  • Drag anywhere on Map to check the clusters at any place.
  • Select ‘Inspect in FirePath’.
  • Copy the XPath of Map which is used to move from one place to another place on a map.
10

Step-2:

  • Go to Selenium Script table use below commands.
  • Command: dragAndDrop
  • Target : XPath of page(as described above image)
  • Value : Value of page  [(x-pixels),(y-pixels)]
11
12

Check below examples for more:

  • The Value of page (x-pixels and y-pixels) is the location to drag and drop the locator from one location to another location.
  • We can use the Value as –
  1. 20,30 which moves the location to 20 pixels right and 30 pixels upper on ma a in your system screen.
13

2. 20,-30  which moves the location to 20 pixels right and -30 pixels down on Map in your system screen.

14

3. -20,30  which moves the location to -20 pixels left and 30 pixels upper on Map in your system screen.

15

4. -20,-30  which moves the location to -20 pixels left and -30 pixels down on Map in your system screen.

16

Hope you find this info.regarding Selenium helpful and need more QA assistance then contact us now. Feel free to give your reviews on it.

Advertisements

Custom Next/Prev Thumb For Slick Slider

Next-previos Vivek_June
There are so many different types of jQuery sliders available these days, sliding horizontal panels, transition effects, patch down/up, fade in/out etc… jQuery Image sliders are great for grabbing a visitor’s attention immediately and showing them the key features of your business. jQuery content sliders can be used to elegantly show information about your business without scaring off visitors.

Here, we have discussed  Slick Slider. Most popular and free jQuery slider with lots of functions and callbacks. This will be the first choice for all frontend developers when they need some slider functions for web design service.

We have used here the features of a slick slider and added custom next/prev thumbs for NEXT and PREVIOUS images. A previous/next button is added for changing the slide. Other than that we have added below the slide image a small image thumb which can be used as the previous/next button. The image thumb contains the image present in the previous/next position. This feature helps to get rid of sliding throughout the slider to view the required slider. For responsive web design service, a small description of the slide that is active is also given it. We have used simple Html, CSS and Javascript code along with slick-slider plugins.

Note: Do not forget to include slick.css, slick-theme.css, and slick.js files other than below code.

HTML:
<section class="slideshow__slides slider">
    <div class="slider-image">
      <div class="image-wrap">
        <img src="images/img1.jpg" />
      </div>
      <div class="slider-caption-wrap">
        <div class="caption-details">
          <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
          tempor incididunt ut labore et dolore magna aliqua.</span>
        </div>
      </div>
    </div>
    <div class="slider-image">
      <div class="image-wrap">
        <img src="images/img2.jpg" />
      </div>
      <div class="slider-caption-wrap">
        <div class="caption-details">
          <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
          tempor incididunt ut labore et dolore magna aliqua.</span>
        </div>
      </div>
    </div>
    <div class="slider-image">
      <div class="image-wrap">
        <img src="images/img3.jpg" />
      </div>
      <div class="slider-caption-wrap">
        <div class="caption-details">
          <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
          tempor incididunt ut labore et dolore magna aliqua.</span>
        </div>
      </div>
    </div>
    <div class="slider-image">
      <div class="image-wrap">
        <img src="images/img4.jpg" />
      </div>
      <div class="slider-caption-wrap">
        <div class="caption-details">
          <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
          tempor incididunt ut labore et dolore magna aliqua.</span>
        </div>
      </div>
    </div>
    <div class="slider-image">
      <div class="image-wrap">
        <img src="images/img5.jpg" />
      </div>
      <div class="slider-caption-wrap">
        <div class="caption-details">
          <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
          tempor incididunt ut labore et dolore magna aliqua.</span>
        </div>
      </div>
    </div>
  </section>

 

CSS:
/* Slick slider Design */
.slider {
  position: relative;
  max-width: 850px;
  width: 100%;
  margin: 0 auto;
}
.slick-slide img {
  width: 100%;
}
/* Slider Caption Design */
.slider-image {
  position: relative;
}
.slider-image .slider-caption-wrap {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  background-color: rgba(0, 0, 0, .5);
  color: #FFF;
  vertical-align: top;
}
.slider-image .slider-caption-wrap .caption-details {
  display: block;
  height: 100px;
  width: -webkit-calc(100% - 430px);
  width: -moz-calc(100% - 430px);
  width: -ms-calc(100% - 430px);
  width: calc(100% - 430px);
  margin: 0 auto;
  padding: 10px 0;
  overflow: auto;
  font-size: 16px;
  line-height: 1.4;
}
/* Slider thumbnails and Slider Nav Design */
.slick-thumb-nav img {
  width: 200px;
}
.slick-arrow {
  top: auto;
  bottom: 0;
  z-index: 9;
  display: inline-block;
  height: auto;
  width: auto;
  margin-bottom: 0;
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0);
}
.slick-arrow.slick-prev {
  left: 0;
}
.slick-arrow.slick-next {
  right: 0;
}
.slick-arrow:before { display: none; }
.slick-arrow .arrow-icon {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50px;
  background-color: rgba(0, 0, 0, .5);
  color: #FFF;
  font-size: 55px;
  opacity: 0;
  -webkit-transition: .5s all ease 0s;
  -moz-transition: .5s all ease 0s;
  -ms-transition: .5s all ease 0s;
  transition: .5s all ease 0s;
}
.slideshow__slides:hover .slick-arrow .arrow-icon {
  opacity: 1;
}
.slick-arrow .arrow-icon span {
  display: inline-block;
  padding: 50px 0;
  font-size: 55px;
}
.slick-arrow .arrow-icon.prev-slick-arrow {
  left: 0;
}
.slick-arrow .arrow-icon.next-slick-arrow {
  right: 0;
}
/* Slider dot design */
.slick-dots li button:before {
  font-size: 16px;
}

/**
 * Responsive design
 */
@media (max-width: 992px) {
  /* Slider Nav Design */
  .slick-arrow .arrow-icon { display: none; }
}
@media (max-width: 640px) {
  /* Slider thumbnails Design */
  .slick-thumb-nav img {
    width: 120px;
  }
  /* Slider Caption Design */
  .slider-image .slider-caption-wrap .caption-details {
    height: 60px;
    width: -webkit-calc(100% - 260px);
    width: -moz-calc(100% - 260px);
    width: -ms-calc(100% - 260px);
    width: calc(100% - 260px);
    font-size: 14px;
  }
}
@media (max-width: 480px) {
  /* Slider thumbnails Design */
  .slick-thumb-nav img {
    width: 85px;
  }
  .slick-arrow .slick-thumb-nav {
    margin-bottom: 0;
  }
  .slick-prev .slick-thumb-nav {
    margin-left: 0;
  }
  .slick-next .slick-thumb-nav {
    margin-right: 0;
  }
  /* Slider Caption Design */
  .slider-image .slider-caption-wrap {
    position: relative;
    bottom: auto;
  }
  .slider-image .slider-caption-wrap .caption-details {
    height: 43px;
    width: -webkit-calc(100% - 185px);
    width: -moz-calc(100% - 185px);
    width: -ms-calc(100% - 185px);
    width: calc(100% - 185px);
    padding: 3px 0;
    font-size: 12px;
  }
}
@media (max-width: 380px) {
  /* Slider dot design */
  .slick-dots li { margin: 0; }
  .slick-dots li button:before {
    font-size: 12px;
  }
}

 

Javascript:
(function ($) {
  $(function() {

    // Slick slider for prev/next thumbnails images
    $('.slideshow__slides').slick({
      dots: true,
      slidesToShow: 1,
      autoplay: false
    });
    setTimeout(function() {
      $('.slick-prev').prepend('
'
); $('.slick-next').append('
>
'
); get_prev_slick_img(); get_next_slick_img(); }, 500); $('.slideshow__slides').on('click', '.slick-prev', function() { get_prev_slick_img(); }); $('.slideshow__slides').on('click', '.slick-next', function() { get_next_slick_img(); }); $('.slideshow__slides').on('swipe', function(event, slick, direction) { if (direction == 'left') { get_prev_slick_img(); } else { get_next_slick_img(); } }); $('.slick-dots').on('click', 'li button', function() { var li_no = $(this).parent('li').index(); if ($(this).parent('li').index() > li_no) { get_prev_slick_img() } else { get_next_slick_img() } }); function get_prev_slick_img() { // For prev img var prev_slick_img = $('.slick-current').prev('.slider-image').find('img').attr('src'); $('.prev-slick-img img').attr('src', prev_slick_img); $('.prev-slick-img').css('background-image', 'url(' + prev_slick_img + ')'); // For next img var prev_next_slick_img = $('.slick-current').next('.slider-image').find('img').attr('src'); $('.next-slick-img img').attr('src', prev_next_slick_img); $('.next-slick-img').css('background-image', 'url(' + prev_next_slick_img + ')'); } function get_next_slick_img() { // For next img var next_slick_img = $('.slick-current').next('.slider-image').find('img').attr('src'); $('.next-slick-img img').attr('src', next_slick_img); $('.next-slick-img').css('background-image', 'url(' + next_slick_img + ')'); // For prev img var next_prev_slick_img = $('.slick-current').prev('.slider-image').find('img').attr('src'); $('.prev-slick-img img').attr('src', next_prev_slick_img); $('.prev-slick-img').css('background-image', 'url(' + next_prev_slick_img + ')'); } // End }) })(jQuery);

 

Hope this solution would have helped you out for finding a quicker solution. 

Article Source: AddWeb Solution 

Your Personal Checklist For Hiring A Dedicated Drupal Developer

Hire Drupal Developer

The hunt for a decent Drupal developer has never been a child’s play. One, because Drupal in itself is a complex tool that requires a high-end expertise and hence Drupal developers are less in number as compared to others. And second, one also has to be technically literate to a certain extent, in order to sense their expertise and hire accordingly.

Well, you need not be scared, if you aren’t that well-versed about the tech-world. Especially, when you have AddWeb Solution to your rescue. We, being a pack of powerful Drupal-ers since 2012 and currently ranked at the 24th position in the marketplace of Drupal Service Provider, you know that you can put faith in our words. And as always, we’re more than happy to guide you through your search of a good Drupal developer.

Let us share a few pointers that have to be on your checklist while shortlisting a Drupal developer for yourself.

1) Profile on Drupal community:

What better recommendation of a Drupal developer than the one coming from Drupal’s official website itself?! And guess what, Drupal doesn’t bluff! It purely works on the merit basis, where the Drupal developers’ activeness in the community and their contribution is displayed. If one doesn’t have a profile on Drupal Community, you know you’ve to think twice before hiring them!

2) Certification:

“Skills, not degrees, take you far.” True. But when in the ever-changing techno-world, you can’t shun the significance of certificates that these software companies give. So, if you come across a certified Drupal developer by Acquia, you know you’ve found the best champ to hire.

3) Work Profile:

Remember, that work speaks for itself! Well, don’t let some fraud deceive you with pretty presentations and flattery words. Ask for their work profile and invest your time and energy over analyzing them. And you’ll soon be a judge yourself, whether to trust the person or not. No wonder why a lot of companies goes all boastful about their clientele.

4) Coding Languages:

“The more the merrier” is the mantra you need to follow while choosing a Drupal Developer with the knowledge of multiple coding languages. Since Drupal is built with the PHP language, it becomes mandatory for a Drupal developer to be well-versed in it. But knowing just PHP is also not enough, he needs to be multilingual when it comes to coding languages; majorly, SQL, MYSQL, JQuery, et al. And of course, not to forget ‘English’. It may not have any technical benefit attached to it, but it will surely enhance your communication with him!

5) Activeness on Drupal Community:

Drupal is a high-end open-source content-management framework, which is available free of cost. But the prominent reason behind its growth and flourishment is its community. People from all across the world, gather-up here and share their knowledge and queries here. A Drupal developer’s activeness here in this community also speaks for the wealth of his Drupal-related knowledge.

There may not be a guaranteed checklist to help you hire only the best of Drupal developers, but a few tips like these can always prevent you from a disastrous selection. And in case, you’re still stuck in your search; remember, our super-skilled Drupal developer’s team is just a call away!

May you have a happy ride, searching a decent Drupal developer!Article Source: AddWeb Solution

Multi-Language Functionality In Ionic_v2

Multilingual with Ionic

The Multi-language functionality gives you a facility to have your ionic application in more than one languages.

In this part of the blog, we will be going to explain how you can include translations facility to your application.

We use for translation language ngx-translate npm plugin.

Ngx-translate:

It is an npm plugin that is used for translate the language and switching languages.

First of all, we need to install the above mentioned plugin in the application using the below mentioned command.

$ npm install @ngx-translate/core @ngx-translate/http-loader --save

After installing ngx-translate you need to import array in the NgModule of the application.
Below is an example of the app.module.ts file:

import { NgModule } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';

@NgModule({
  imports: [
    TranslateModule.forRoot()
  ],
Providers:[]
})
export class AppModule{}

Now after injecting the plugin in the module we must know how to use that in application. First of all we need to create multiple json files for each language that you are planning to have in your application. Let’s say for example, you are planning to have two languages English and French in your application then please create two files at the below mentioned path.

/assets/i18n/en.json and /assets/i18n/fr.json
If the i18n folder is not there then please create it at above-mentioned path and then place the json files under it.

Now let’s have a look at how those files will look like from inside.

en.json file:
{
    HELLO:"Hello World"
}
Or 
fr.json file:
{
    HELLO:"Bonjour"
}

Now as we are done with the basic setup of multilingual functionality in our application, Let’s implement it in our component. First, include the injections in app.module.ts file

app.module.ts

import { NgModule } from '@angular/core';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpModule, Http } from '@angular/http';

export function createTranslateLoader(http: Http) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
  imports: [
    HttpModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: (createTranslateLoader),
        deps: [Http]
      }
    })
  ]
})
export class AppModule{}

After implementing above mentioned code we need to use TranslatePipe and TranslateService to translate the language of view file. The TranslatePipe is an angular js pipe.

Below Example suggest how TranslatePipe to translate the language of application:

<h1> {{ 'HELLO' | translate }} </h1>

Note: Make sure this key of is declared in JSON file otherwise it will not translate the value instead it will directly print the key “HELLO” as it is.

Now let’s talk about the TranslateService, it can be used for both, to change the current language of an app and to translate JavaScript values in an application.

To use the TranslateService in your app you must first import it and set the default language.

app.component.ts

import { TranslateService } from '@ngx-translate/core';

@Component({
    selector: 'page-schedule',
    templateUrl: 'schedule.html'
})
export class SchedulePage {
    constructor(translate: TranslateService) {
        translate.setDefaultLang('en');
    }
}

Here, translate.setDefaultLang(‘en’) is set default language and we change here to language as we added to our project.

Hope this blog helped you feel free to share your feedbacks/queries, also need assistance regarding Ionic App Development then get in touch with us.

Basics Of Laravel Security

Laravel Security
Introduction

  • Security is most important part of the website.
  • Laravel provides different mechanisms to secure website.
  • Its give surety to the users of the website that their data is secured.

Configuration

  • Laravel implements authentication it’s very simple.
  • The authentication configuration file in app/config/auth.php directory.
  • Laravel give default model as User model which is located in app/models.

Storing Passwords

  • Laravel service provides Hash class for secure Bcrypt hashing
  • make() function will take the value as an argument and will return the hashed value

Verifying A Password Against A Hash:

Checking If A Password Needs To Be Rehashed

Authenticating Users:

  • Another main security feature is authenticating the user and perform some action.
  • When log a user into your application, you may use the Auth::attempt method.
  • When the attempt method is called, the Auth::attempt event will be fired. If the authentication attempt is successful and the user is logged in, the Auth::login event will be fired as well.
  • The Auth::attempt method will take credentials as argument and will verify those credentials against the credentials stored in database and will return true if it is matched or false otherwise.

Determining If A User Is Authenticated

  • If the user is already logged into your application, you may use the Check method:

Authenticating A User With “Remembering”

  • If you like to provide “remember me” functionality into your application then you just pass true as the second argument in the Auth:: attempt method :

Determining If User Authed Via Remember

If you are “remembering” user logins, you may use the viaRemember method to determine if the user was authenticated using the “remember me” for the cookie:

Accessing The Logged In User

When a user is authenticated, you may access the User model/ record:

When authenticated user retrieve user’s ID, you may use the id method:

Validate User Credentials for Without Login

The validate method allows you to validate a user’s credentials without logging into the application:

Logout Logged In User

Manually Logging Users

If you need manually logged in in the application, you may just call the login method:

This is equivalent to logging in a user via credentials using the attempt method.

Protecting Routes

Route filter allows for only authenticated users to access routes. Laravel provides auth

Filter by default:

CSRF Protection

Laravel provides method for protecting your application from cross-site request forgeries :

CSRF Token used Into Form

Validate The Submitted CSRF Token

Avoiding SQL Injection

  • SQL injection vulnerability exists when an application inserts unfiltered user input in the SQL query.
  • By default Laravel protect your query builder and Eloquent with use PHP Data Objects (PDO) class.
  • PDO allows you to safely pass any parameters.

Cookies

  • In Laravel, it very easy to create, read, and expire cookies with its Cookie class and cookies is automatically signed and encrypted.

Forcing HTTPS when exchanging sensitive data

  • HTTPS prevents attackers on the same network to intercept private information such as session variables, and log in as the victim.

Hope this helps you well, feel free to add your comments/feedbacks and need more assistance regarding Laravel services or OctoberCMS development services, be in touch

How to Make a Website Pixel Perfect

How to Make a Website Pixel Perfect

Check out some tricks for designing testing by using various way with Responsive and Resizing.

  • Fields used in any pages like textbox, radio buttons, drop-down etc. lists should be aligned properly either by Left or Right.
  • Values used As Numeric should be right justified unless specified.
  • Spaces between Each Error or validation messages, Columns, Rows should be consistent for all pages
  • Check for Scrollbar which should be enabled only when necessary…
  • Font Family, size, style and colour for the headline, description text, labels, Input data should be as per the standard requirement. For Testing – Use ColorZilla, WhatFont Add-ons.
  • Text box for Description should be multi-line for the end user.
  • When the fields are disabled it should be greyed & non – clickable.
  • On click on an input text field, mouse arrow should be a cursor.
  • Input values filled by users should be highlighted when there is an error or validation message on page submission. After correcting the errors user should be able to submit the form.
  • Dropdown list options or values are readable and should not be truncated due to field size limit.
  • Page Content should be left justified.
  • The user can select only one radio option and any combination of check boxes.
  • Check design should be compatible in different browsers with different OS.
  • Alignment from top to bottom(Header to footer) and left to right should be proper.
  • Buttons or Links to different pages should be easily visible and consistent on all web pages
  • Hover and select effect on fields, links, button etc. should be consistent and highlight properly.
  • Check Images for the different section should be displayed properly and should resize as per required size for a section.Check by uploading different size of image, Also by Portrait & Landscape images
  • Check editor works as expected with front CSS.
  • Check sections size or Image size using scaling and measurement tools. For Testing – Use PageRuler, Measureit  Add-ons.
  • Check responsive design and make sure website works on multiple devices. Text, images, blocks etc. should not display out of the screen. For Testing: Use Resize Window, Emulator, Device Mode
  • Menus should design properly for responsive or devices and should be consistent on all pages. Also, check Menu in responsive view, it should display with Hamburger icon.
  • Check content should not be overlapped by section or block and should not go outside across the block on devices.
  • Also, We can follow the design testing as per W3C standard format using this, it shows all the errors & warning related to web design service standard.

Add-ons for testing design for different purposes:

  • Responsive Testing – Resize Window, Simulator, Emulator, Device Mode
  • Text, Images, Frames – ColorZilla, WhatFont, Perfect Pixel
  • Section, Image Size – Page Ruler, MeasurIt
  • W3C HTML Checker
  • Javascript errors notifiers

Hope this blog helped you in making your website work flawlessly and you can also refer our website testing blog. Feel free to provide your vital feedbacks, suggestions are welcomed!

Original Post: AddWeb Solution

How to Increase WordPress Site Performance

How to Increase WordPress Site Performance
Nowadays everyone wants the site they are accessing should be faster. No one wants to wait till the site gets loaded. Because of this, it has become a necessity to improve our site performance as much as possible.
To increase WordPress site performance we need to take care of following things from professional WordPress developers:
1) Host
When you selecting any host for your site, you need to keep following things in your mind:
  • Your hosting should be capable to respond quickly. Response time will be vary based on server i.e. server response time of Apache is differ
  • Your hosting should be able to handle multiple requests at a time. It should be slow down while there is heavy traffic.
2) WordPress Theme
  • A theme which you select for your WordPress site is also responsible for the performance of your site.
  • Your theme should be lightweight and quite speedy.
  • The theme should not unnecessary images in theme, all image should be optimized.
  • A number of files should be less to display the page on your site. For that, we need to combine multiple CSS into a single file. The file should be optimized.
  • You should minify your CSS and javascript.
3) Use Effective Caching
  • Caching is the process of storing data in cache memory.
  • Cache is a temporary storage area. Whenever you request for a page first time, it will save it in the cache memory and then second time onwards server will serve this page from a cache memory. By this way, it will save your execution time and network burden of additional traffic.
There are many plugins available for WordPress like W3 Total CacheWp Super Cache, etc.
 
4) Optimize Images
  • Your site should have a way to optimize an image. If user uploads image with heavy file size, then it will affect your page load time. So as a solution, you should have installed a plugin which will optimize an image to reduce file size not reducing quality.
  • There are many plugins available for this like Wp-SmushItOptimus, etc.
5) Add an Expires Header to Static Resources
  • An Expires header is a way to specify a time far enough in the future so that the clients (browsers) don’t have to re-fetch any static content such as CSS file, javascript, images etc. This will help you to reduce load time for the regular user of your site.
  • You just need to add following code in your root .htaccess file:
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
6) Add LazyLoad to your Image
  • LazyLoad is the process of having only the images visible in the visitor’s browser window, then, when reader scrolls down, the other images begin to load, just before they come into view.
  • As a result, it will increase your page load time as well as it will save your bandwidth because you are loading less data for users who don’t scroll all the way down on your page.
  • There are many plugins available to implement this functionality, like jQuery Image LazyLoadLazy Load, etc
7) Disable Hotlinking and Leaching of Your Content
  • Hotlinking means, you are loading content from another site like google fonts, some images etc.
  • This will increase your bandwidth and page speed.
  • To overcome this situation, load content as much from your site only. Download external content in your site and load it from there.
8) Remove Unnecessary Plugins
Remove all inactive plugins from your site. You should also remove duplicate plugins(more than one plugin for the same purpose).
By doing this it will not load assets( like CSS, js, etc) of that plugins in your page or it will not perform and process which plugins does before page load.
9) Enable Gzip Compression
Enabling gzip compression on your site will dramatically reduce the amount of data sent from your server to the visitor’s browsers, thus increasing the page-load speed.
Hope this blog helps you out. Hire WordPress Developer to improve your WordPress website’s performance.