The Good, the Bad, and the Ugly Examples of Link Building

The Good, the Bad, and the Ugly Examples of Link Building

For people who work in SEO service world, it is important to make smart link building decisions. One of the ways is by knowing the difference between the good, the bad, and the ugly examples of link building. Only by identifying what is good and what is bad, you can prevent yourself from making such a mistake. In fact, by knowing the difference, we can create a strategy rather than just building links. Here are the three types of links that you need to know.

The Good Links
What is assumed as good links are organic link building which takes time and effort before it can get be more valuable. This kind of links is difficult to replicate. Hence, it will give you a more dominant position in your market. There are several types of links which are considered as good links, such as follow:

  • Editorial Links

One of the good examples of link is when somebody with good reputation in your field is inspired by you, your company, your products or your service. Thus, they take initiative to write an article about you and link to your website.

Many companies are struggling to get this review, but few can obtain these links. In fact, this type of links is pretty rare to get, but Google will value it extremely high.

  • Guest Blogging

Guest blogging may rank a little below the above examples; they are not be there just for a link but also provide value to their audience. However, you need to be more cautious as Google counts guest posting as a link building tactic. Especially, if you are going away beyond the expectations of value and be extremely conservative in terms of outbound links to your own website. Therefore, to achieve good rank, you need to write something with the intent of building you brand and reaching a larger audience.

  • Niche Directories

You may assume that directories will give you nothing, but highly focused niche directories still offer you a valuable source of links. Find many sources of directories focused on your niche, and their SEO value will vary dramatically, but it’s definitely worth looking into. A good directory should be such follow:
– Instead of accepting anyone who is willing to pay the fee, you need to have a vetting process
– Publish valuable content regularly which can be accessed and indexed by search engines
– Prune broken links regularly from members who no longer have an active website.

 

The Ugly Links
Ugly links are links that don’t produce any contribution to your rank. In the other words, they don’t have much impact on your ranking. All you have is just a waste of time, money, and energy. Therefore, you need to know several kinds of ugly links. Below are kind of ugly links that you should avoid:

  • Guest Posting at Scale

Experienced SEO engineers know that article directories is the hot new thing in SEO world. This program is able to submit your article to thousands of these websites at once. Besides, most of these programs are also able to “spin” or modify the content, causing a “unique” article for each submission.

  • Links From Non-Relevant Websites

Now, Google are smart enough at identifying the topic of a website. They only need to assign significant weight to links which are relevant. So, don’t waste your time to build link building if it isn’t relevant.\

  • Header, Footer, and Sidebar Links

There are certain areas that Google doesn’t give much weight. They include headers, footers, and sidebars. This makes sitewide links become a bad idea unless they are:
– Linking to a relevant sister publication that you own
– Identifying software that runs a website, as you see with most content management, blogging, and e-commerce systems
– Identifying who designed a website

The Bad Links
Bad links are links that will make your site’s rank bad.  If you have these kinds of links, you should disavow it as they absolutely cause penalty when you’re inevitably caught. Unfortunately, Google will remember your action as an attempt to unethically manipulate ranking. Below are examples of bad links that you need to avoid.

  • Paid Links

Buying links from website owner is a big No, as Google will catch buyer or seller of paid links. This is because it will be easier for Google to follow the breadcrumbs to identify the other buyers and sellers.

  • Comment or Forum Spam

Even though, it will be easier to spread links to forum and comment sections of blogs. But, in the other hand, it can destroy your brand by doing this for this is the same with spreading spammy links all over someone else’ website. Besides, you open the risk of a link-based penalty as many website owners are able to report you to Google.

  • General Directories

General directories are also one of the potential epitomes that Google will hate. This is because customers can pay them fee. This is because there are bigger risks that they will accept any website except those promoting porn, gambling, or violence. Therefore, it will provide you with lacks of any useful content as it isn’t relevant to your website.

A trick to Speed Up your Google Fonts in WordPress

a-trick-to-speed-up-your-google-fonts-in-wordpress

As web developers, you should remember for not to ignore each small portion of the overall web page. Since those small things can produce faster load times, if you can optimize them better. Web fonts is one of the good examples, even though images are still the main thing to consider. So, in today’s article, we will reveal a method for optimizing and speeding up Google Fonts in WordPress for faster web experience.
What are Google Fonts?
Google fonts is an open source (free) directory which over 800 web font families that you can download and use it on your website. You can also download locally for print and other uses. There are many great free way to enhance the look and usability of your site in Google Fonts. No wonder that there are millions of WordPress websites utilize Google Fonts nowadays.

A good web font will give the effect of professionalism and aesthetic. However, system fonts will always win when it comes to pure performance. In fact, typography has been shown to affect conversions in a positive way. Besides, it is important to understand how Google Fonts will affect speed and performance of WordPress site.

How to Use Google Fonts in WordPress

There are two opts to add Google Fonts to your WordPress site. The first way is to grab them directly from Google. This method uses their global CDN to deliver the fonts quickly from different servers from around the globe.

  • First Method

When you add them to your site there will be an external request to fonts.googleapis.com.

google api

  • Second Method

There are also external requests to fonts.gstatic.com for the WOFF or WOFF2 versions depending upon browser support.

blog2

Host Google Fonts Locally

There are many ways that you can use to speed up your Google Fonts in WordPress. For example you may add embed code from Google fonts, host Google fonts on your own CDN, and Host Google fonts locally. But today, we are going to give brief explanation on how to host Google fonts locally on your web server.

Google-webfonts-helper is a great choice to host locally, in fact, it is a free tool. By using this tool, you can download the Google fonts locally more easily and gives you all of the CSS.

Google Fonts locally is usually suitable for audience which is in a certain geographical location and close to server. Google Fonts CDN is great; however adding those additional external requests and DNS lookups can cause delays. It implies that the method will work great if you are using fast hosting such as manages WordPress hosting from Kinsta. Below is an example on how to install Google Fonts locally.

/* roboto-regular – latin */
@font-face {
font-family: ‘Roboto’;

font-style: normal;

font-weight: 400;

src: local(‘Roboto’), local(‘Roboto-Regular’),

url(‘https:/perfmatters.io/fonts/roboto-v15-latin-regular.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */

url(‘https://perfmatters.io/fonts/roboto-v15-latin-regular.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* roboto-500 – latin */

@font-face {

font-family: ‘Roboto’;font-style: normal;

font-weight: 500;

src: local(‘Roboto Medium’), local(‘Roboto-Medium’),

url(‘https://perfmatters.io/fonts/roboto-v15-latin-500.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */

url(‘https://perfmatters.io/fonts/roboto-v15-latin-500.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */

}

/* roboto-700 – latin */
@font-face {
font-family: ‘Roboto’;

font-style: normal;

font-weight: 700;

src: local(‘Roboto Bold’), local(‘Roboto-Bold’),

url(‘https:/perfmatters.io/fonts/roboto-v15-latin-700.woff2’) format(‘woff2’), /* Chrome 26+,
Opera 23+, Firefox 39+ */

url(‘https://perfmatters.io/fonts/roboto-v15-latin-700.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */

}

The Complete Guide to Proper JavaScript Usage with WordPress

The complete guide to proper Javascript Usage With WordPress

WordPress has become one of the most popular blogging platforms and content management systems worldwide, therefore, in web development, JavaScript is necessary to be learnt about and as a web developer, you need to learn a bit deeper about JavaScript, like how to enqueue JavaScript files inside our pages and how to pass translatable data to the JavaScript code. Check this out!

  • The Right Way to Use JavaScript with WordPress

There are two main problems while using JavaScript in WordPress Projects, duplicate code on the same page and problems with translation. But don’t worry we have the solutions for both of the problems, for the first problem you can simply “registering  and “enquequeing” the JS files with the two core functions of WordPress: wp_register_script() and wp_enqueue_script(). The second problem’s solution is easier than the first problem: The core wp_localize_script()function allows you to pass translatable data into your JS code.

  • Registering JavaScript Files

The first step is to “register” them before you can “enqueque” the JavaScript files. And that’s done simply using a function called wp_register_script():

<?php wp_register_script( $name, $url, $dependencies, $version, $load_in_footer ); ?>

Some notes on the parameters:

  • Name (required, string): You can choose any name that you want for the name of the script, providing that’s not used by another script.
  • URl (required, string): The URL of the script.
  • Dependencies (optional, array): The name(s) of other scripts that our script depends on. For example, if your script depends on jQuery , it will need to be loaded after jQuery. In this case, you should use array( ‘jquery’ ) for this parameter.
  • Version (optional, string): its version number for your script. There are three options are provided, you can choose between providing a string, setting the parameter to or leaving it empty. If you set it to string, that’s going to be added to the output code like my-script.js?ver=1.2. If you leave the parameter empty, the version of your WordPress installation will be added as the version number. If you set it to null , nothing will be added.
  • Load in Footer (optional, Boolean): When you enqueue this registered script, it will be loaded in the <head> But if you set this parameter to true , it will be loaded right before the closing <body> tag.

Moreover, scripts which are already registered by the core or other plugins with the wp_deregister_script()function can also be “deregistered”. It only accepts a ‘name’ parameter, which you provide the name of the script to be “deregistered”.

  • Enqueueing JavaScript Files

You can register a script but that doesn’t mean that it’s going to be loaded automatically. After registering your scripts, you should “enqueue” them with the wp_enqueue_script()function:

<?php wp_enqueue_script( $name, $url, $dependencies, $version, $load_in_footer ); ?>

Some notes on the parameters:

  • Name (required, string): The name of the script.
  • URL (optional, string): The URL of the script. As you can see, you can just provide the name and you’re good to go because if you already registered the script, this time the URL parameter is optional. But if you didn’t register your script, you must provide a URL for this parameter.
  • Dependencies (optional, string): The version number of script.
  • Load in footer (optional, Boolean): The script will be loaded right before <body>

You can also “dequeue” scripts with the wp_dequeue_script() function.  Moreover, it only accepts a ‘name’parameter, similar to the wp_deregister_script()function.

Hooks to Enqueue Your Scripts

Apply the hooks below as the right way to enqueue your scripts:

  • Wp_enqueue_scripts-This one enqueues scripts in the front end of your website.
  • login_enqueue_scripts –This one enqueues scripts in your login screen.
  • Admin_enqueue – This one enqueues scripts in the back end of your website.
1

2

3

4

5

6

<?php

function my_scripts_loader() {

wp_enqueue_script( ‘my-js’, ‘filename.js’, false );

}

add_action( ‘wp_enqueue_scripts’, ‘my_scripts_loader’ );

?>

You musn’t use the hooks named, due to compatibility issues:

admin_print_scripts or admin_print_styles.

Passing Translatable Data Inside JavaScript

Since so many people  doesn’t know the neat little function called wp_localize_script()uJavascript is always a problem with WordPress when it comes to localization:

01

02

03

04

05

06

07

08

09

10

11

12

13

<?php

$l10n_data = array(

‘nextItem’ => __( ‘Next’, ‘my-script’ ),

‘prevItem’ => __( ‘Previous’, ‘my-script’ ),

‘imageTitle’ => __( ‘Image %d of %d’, ‘my-script’ )

);

 

wp_localize_script(

‘name-of-the-script’, // (required) the name of the script, ‘my-script’ for example

‘nameOfTheObject’, // (required) the name of the script, ‘my-script’ for example

$l10n_data // (required) the data to be passed, which can be translatable with the __() function

);

?>

You can pass the localized variable in your script after registering, enqueueing and localizing the script by using the name of the object and names of the data, like alert( nameOfTheObject.prevItem );