Connect with us

SEO

What Is Header Bidding?

Published

on

What Is Header Bidding?

The header bidding technology started to develop in 2015, and has since helped many publishers to grow their revenue by as much as 40% (and even, in some cases, to levels of 100% or more.)

What Is Header Bidding?

Header bidding is a cutting-edge technique where publishers offer their ad inventory to many ad exchanges, also called Supply-Side Platforms (or SSPs), simultaneously before making calls to their ad servers.

Here are the steps a publisher needs to pass to have this technology power up its monetization.

  • Apply to SSP partners and get approval.
  • Implement Prebid.JS on website.
  • Configure ad server.
  • Choose a consent management system.
  • Test and debug.

Applying To SSP Partners

There are hundreds of SSP partners available in the list to apply, but I would like to mention what I believe to be the most popular ones:

  • TripleLift.
  • Index Exchange.
  • Amazon UAM/TAM.
  • Xandr (formerly AppNexus).
  • Teads.
  • Pubmatic.
  • Sovrn.
  • Verizon.
  • Magnite (formerly Rubicon).
  • OpenX.
  • Sonobi.
  • GumGum.
  • Sharethrough.
  • Unurly.

One needs to find their online application form and pass through the company’s verification process. For example, in the case of Xandr, the contact page looks like this:

Screenshot from Xandr, December 2022 Xandr tool

Pay attention to the minimum inventory size required to be eligible for applying.

Yes, that is a staggering high of 50M ad impressions a month.

You may need quite an impressive website to be able to apply to some of the ad networks. We will call them further bidders, as they bid on inventory in real time.

However, not all SSPs have such high thresholds for application. For example, Sharethrough only requires 20M ad impressions.

Besides, they consider also audience quality, traffic geolocation, how much time users spend on the website, etc.

It typically takes a few weeks after applying to be approved and onboarded with them, so it can be a fairly time-consuming process that may even take months to finish.

How Does Prebid.js Work?

In nutshell, here is how Prebid.js works.

When a user opens a webpage, an ad request is made to all bidders (SSP partners).

Bidders respond with their CPM bids – let’s say $1 and $1.50 – and Prebid.js makes a request to the ad server, with the highest CPM targeting. In this case, that would be $1.50.

At the ad server, in our case, Google Ad Manager, the request is received and it knows that someone is paying $1.50 USD CPM for an ad. It runs another auction with Google Adsense or AdX.

If Google offers a higher CPM, then the Google Ad will be served.

If not, our ad with $1.50 CPM will win, and be served by our SSP partner.

Header Bidding Working SchemeScreenshot from Google Ad Manager, December 2022Header Bidding Working Scheme

The trick here is that auctions happen in real-time, which creates buying pressure on Google AdX to pay the highest CPM possible.

If Google AdX doesn’t have any competition, it will offer the lowest CPM possible –as it wants to buy inventory for the cheapest price possible.

With header bidding, bidders are able to compete and push CPMs (and therefore revenue) up.

There are two ways to implement header bidding:

  • Client-side: When the auction runs via JavaScript in the browser.
  • Server-side: When the auction is run on the server.

Let’s discuss client-side header bidding.

How To Implement Client-Side Header Bidding

In order to set up header bidding, we need to implement Prebid.js on our website and configure our Google Ad Manager (or ad server).

Implement Prebid.js On Your Website

Prebid.js is a header bidding platform that has more than 200 demand sources integrated.

You need to select the SSP partners you are working with from the customize page and download the library built for your specific configuration.

Don’t forget to select Consent Management modules to comply with GDPR and GPP privacy standards.

Below is the sample code taken from the official documentation.

<html>

    <head>        
        <script async src="https://www.googletagservices.com/tag/js/gpt.js"></script>
        <script async src="https://your-customized-prebid.js"></script>
        <script>
            var div_1_sizes = [
                [300, 250],
                [300, 600]
            ];
            var div_2_sizes = [
                [728, 90],
                [970, 250]
            ];
            var PREBID_TIMEOUT = 1000;
            var FAILSAFE_TIMEOUT = 3000;

            var adUnits = [
                {
                    code: '/19968336/header-bid-tag-0',
                    mediaTypes: {
                        banner: {
                            sizes: div_1_sizes
                        }
                    },
                    bids: [{
                        bidder: 'appnexus',
                        params: {
                            placementId: 13144370
                        }
                    },
                     { 
                      bidder: "conversant",
                       params: {site_id:"122869",secure:1}
                     }
                   ]
                },
                {
                    code: '/19968336/header-bid-tag-1',
                    mediaTypes: {
                        banner: {
                            sizes: div_2_sizes
                        }
                    },
                    bids: [{
                        bidder: 'appnexus',
                        params: {
                            placementId: 13144370
                        }
                    },
                    { 
                     bidder: "conversant",
                     params: {site_id:"122869",secure:1}
                    }
                     ]
                }
            ];
            
            var googletag = googletag || {};
            googletag.cmd = googletag.cmd || [];
            googletag.cmd.push(function() {
                googletag.pubads().disableInitialLoad();
            });

            var pbjs = pbjs || {};
            pbjs.que = pbjs.que || [];

            pbjs.que.push(function() {
                pbjs.addAdUnits(adUnits);
                pbjs.requestBids({
                    bidsBackHandler: initAdserver,
                    timeout: PREBID_TIMEOUT
                });
            });

            function initAdserver() {
                if (pbjs.initAdserverSet) return;
                pbjs.initAdserverSet = true;
                googletag.cmd.push(function() {
                    pbjs.que.push(function() {
                        pbjs.setTargetingForGPTAsync();
                        googletag.pubads().refresh();
                    });
                });
            }
            // in case PBJS doesn't load
            setTimeout(function() {
                initAdserver();
            }, FAILSAFE_TIMEOUT);

            googletag.cmd.push(function() {
                googletag.defineSlot('/19968336/header-bid-tag-0', div_1_sizes, 'div-1').addService(googletag.pubads());
                googletag.pubads().enableSingleRequest();
                googletag.enableServices();
            });
            googletag.cmd.push(function() {
                googletag.defineSlot('/19968336/header-bid-tag-1', div_2_sizes, 'div-2').addService(googletag.pubads());
                googletag.pubads().enableSingleRequest();
                googletag.enableServices();
            });

        </script>

    </head>

    <body>
        <h2>Basic Prebid.js Example</h2>
        <h5>Div-1</h5>
        <div id='div-1'>
            <script type="text/javascript">
                googletag.cmd.push(function() {
                    googletag.display('div-1');
                });

            </script>
        </div>

        <br>

        <h5>Div-2</h5>
        <div id='div-2'>
            <script type="text/javascript">
                googletag.cmd.push(function() {
                    googletag.display('div-2');
                });

            </script>
        </div>

    </body>

</html>

Let’s break down the code above.

  • The first lines load all required JS files and our customized Prebid.JS file.
  • Ad slots are defined in the adUnits array variable.
  • In the adslot definitions, you can see the SSP partners’ names and IDs you will be given when onboarding when them.
  • googletag.pubads().disableInitialLoad(); is called to disable ad request to be sent to Google Ad Manager until Prebid.js finishes the auction.
  • pbjs.requestBids function calls SSP partners and determines the winner.
  • initAdserver() function is called to send an ad request to the Google Ad Manager with hb_pb key, which contains the winning CPM value, e.g. hb_pb=”1.5″. (This step is connected with setting up Google Ad Manager in the next step.)
  • When Google Ad Manager gets the request with the winning bid, it runs its own auction in Google AdX, and sends back either the AdX ad with a higher CPM, or the ad of the winning SSP.

For your specific case, you may need to code differently and change the setup, but the principle stays the same.

Other than that, I would like to quickly go over how to implement lazy loading, because it is a little different.

How To Implement Lazy Loading

The Google tag for publishers has a lazy loading framework which will not work in the case of header bidding.

This is because you need to run an auction, and determine and set key values before sending a request to the ad server.

Because of that, I would advise using the Intersection Observer API to determine when to load the ad in the HTML <div> tag when it is about to enter into the viewport.

options = {
root: null, // relative to document viewport
rootMargin: '1500px', // margin around root. Values are similar to css property. Unitless values not allowed
threshold: 0 // visible amount of item shown in relation to root
};

your_observer = new IntersectionObserver( observer_handler, options );
your_observer.observe( goog_adslots[i] );

In the observer_handler call back function, you can run the prebid auction and call the ad server.

function observer_handler( entries, observer ) {

dynamicAdUnit =[{
code: 'your_html_div_id',
mediaTypes: {
banner: {
sizes: [728,90]
}
},
bids: [{ bidder: 'appnexus', params: { placementId: 13144370 } }, { bidder: "conversant", params: {site_id:"122869",secure:1} } ]
}];

pbjs.addAdUnits(dynamicAdUnit);

slot = window.googletag.defineSlot('/1055389/header-bid-tag-0', [728,90], 'your_html_div_id' ).addService(googletag.pubads());

lazySlotPrebid(slot, 'your_html_div_id')

}

function lazySlotPrebid(slot, div_id) {

pbjs.que.push(function() {
pbjs.request bids({
timeout: PREBID_TIMEOUT,
adUnitCodes: [div_id],
bidsBackHandler: function() {
pbjs.setTargetingForGPTAsync([div_id]);
googletag.pubads().refresh(slot);

});
});

} 
}// endd of initDynamicSlotPrebid

Now, let’s jump on setting up the ad server using Google Ad Manager.

How To Set Up GAM For Header Bidding

Ad servers need to have dozens of price priority line items with key hb_pb targeting all possible CPM values, such as hb_pb=0.04, hb_pb=0.03, etc.

hb_pb key valueshb_pb key value targetinghb_pb key values

This is the key point that makes the header bidding engine work.

  • The auction runs in the browser on page load.
  • The winning SSP partner is sent to GAM with a key value targeting hb_pb = 2.62.
  • Since the order has the same CPM value, GAM understands that there is a bid at $2.62.
  • GAM runs an AdX auction and has to pay more than $2.62 in order to win the bid and display a Google Ad.

As I mentioned above, you would need to build line items in GAM with certain granularity, say 0.01 – and for the CPM range $0-$20, you would need to create 2,000 line items, which are impossible to do manually.

For that, you would need to use GAM API.

Unfortunately, there are no solid solutions that you can simply download and run in one click.

It is a somewhat complex task, but thanks to contributors who built API tools (even though they are not actively supporting them), we can still modify it a little and make it work.

Let’s dive into how to set up Google Ad Manager and understand the following:

Step 1: Enable API Access

In the Google Ad manager Global > General settings section, make sure API access is enabled.

Click on the Add service account button and create a user with the sample name “GAM API USER” and email “[email protected]” with admin rights.

GAM general settingsScreenshot from Google Ad Manager, December 2022GAM general settings

Step 2: Create A New Project

Navigate to Google API Console Credentials page.

From the project drop-down, choose Create a new project, enter a name for the project, and, optionally, edit the provided Project ID.

Click Create.

On the Credentials page, select Create credentials, then select Service account key.

Select New service account, and select JSON.

Click Create to download a file containing a private key.

Google API Console Credentials pageScreenshot from Google API Console Credentials page, Deccember 2022Google API Console Credentials page

 

Service account detailsScreenshot from Google API Console Credentials page, Deccember 2022Service account details
Fill in the service account details you’ve created above.

Assign the role “owner” and create the service account OAuth2 credentials.

Then, click on the created user and create JSON type key, and download it.

Service account JSON keyScreenshot from Google API Console Credentials page, Deccember 2022Service account JSON key

Step 3: Download Project

Download the project zip file and unzip it, directory (alternatively, you can use the git command tool to clone the repo).

Install composer for your operating system in order to build the project.

Step 4: Change your PHP.INI

Change your php.ini (located at /xampp/php/php.ini ) file and enable “extension=soap” by removing “;” in front of and set “soap.wsdl_cache_ttl=0” and restart Apache from the control panel of XAMPP.

Step 5: Create Subfolders And Build The Project

Once you have everything set up and unzipped, open composer.json file and change “googleads/googleads-php-lib”: “^44.0.0” to use the latest version “googleads/googleads-php-lib”: “^59.0.0”.

Check for the most fresh version at the moment you perform this.

Search and replace in /app/ folder of the project “v201911” with “v202202”, because that git project wasn’t updated since 2019, to use the latest version path of libraries.

Open the command line of your PC and switch to the directory where you’ve unzipped the files (using cd command or right-click inside the folder “Git bash here” if you have git installed), and run composer update in the PC terminal or git terminal.

It will create subfolders and build the project.

Step 6: Set Up Your Google Ad Manager Credentials

Move the downloaded JSON key “gam-api-54545-0c04qd8fcb.json”  file into the root folder of the project you’ve built.

Next, download adsapi_php.ini file and set up your Google Ad Manager credentials in it.

networkCode = "899899"
applicationName = "My GAM APP"
jsonKeyFilePath = "D:xampphtdocsdfp-prebid-lineitemsgam-api-54545-0c04qd8fcb.json"
scopes = "https://www.googleapis.com/auth/dfp"
impersonatedEmail = "[email protected]"

jsonKeyFilePath is the absolute directory path to the JSON key file in the folder root.

Step 7: Set The Content Of The File

Finally, navigate to the file /script/tests/ConnexionTest.php and set the content of the file like below:

putenv('HOME='.dirname(__DIR__)."/../");
require __DIR__.'/../../vendor/autoload.php';

$traffickerId = (new AppAdManagerUserManager())->getUserId();

if (is_numeric($traffickerId)) {
echo "n====Connexion OK====nn";
} else {
echo "n===Connexion KO====nn";
}

In your terminal (or git bash console) test the connection by running the command (if you are in the /script/tests/ folder).

php ConnexionTest.php

You should see a message “====Connection OK====”

Step 8: Configure The Parameters

Navigate to the file /script/tests/ConnexionTest.php in your project and open it.

Copy and paste the below code into that file, and configure the parameters in the $entry and $buckets arrays per your needs.

putenv('HOME='.dirname(__DIR__)."/../");
require __DIR__.'/../../vendor/autoload.php';

use AppScriptsHeaderBiddingScript;

$bucket_range = array();
$Your_Advertiser_Name="Sample_Advertiser";
$buckets =
["buckets" =>[
['precision' => 2, 'min' => 0, 'max' => 4.00, 'increment' => 0.01],
['precision' => 2, 'min' => 4.01, 'max' => 8.00, 'increment' => 0.05],
]
];

foreach ( $buckets["buckets"] as $k => $bucket ){

$request_bucket = array( 'buckets' => array( $bucket ) );

$order_name="Your_Order_name ".$bucket['min'].'-'.$bucket['max'];
// echo $order_name.'<br/><br/>';


$entry = [
'priceGranularity' => $request_bucket, // can be 'low', 'med', 'high', 'auto','dense', 'test'
'currency' => 'USD',
//'sizes' => [ [1,1] ,[160, 600], [250, 250], [300, 250], [300, 600], [320, 50], [320, 100], [300, 100], [336, 280], [728, 90], [970, 90], [970, 250]],
'sizes' => [ [250, 250] ],
'orderPrefix' => $Your_Advertiser_Name, //prebid advertiserName
'orderName' => $order_name
];
$script = new HeaderBiddingScript();
$script->createGlobalAdUnits($entry);

}

Optionally you can also specify ‘geoTargetingList’ => “dz, pk, ke, pt” or custom key value targeting customTargeting’ => [‘amp_pages’ => yes’] if you want your header bidding to work only when the custom key value is set.

Run the command below and it will start creating line items per the bucket settings you’ve specified.

php ConnexionTest.php

There is a tool using Python that is used similarly; you may want to give it a try as well.

Debugging

For debugging, there are a few browser add-ons you can use to see if the auction runs without errors.

Alternatively, open your webpage URL using “/?pbjs_debug=true” parameter at the end of the URL, and watch console logs messages.

You need to make sure that hb_pb key values are passed to Google Ad Manager. Use “/?google_console=1” at the end of the URL to open the GAM console, and click on “Delivery Diagnostics” of each ad unit.

You should see that hb_pb values are set and passed to the ad server.

GAM Deliver DiagnositcsScreenshot from Google API Console Credentials page, Deccember 2022GAM Deliver Diagnositcs

Choose A Consent Management System

Users’ privacy is one of the most important factors, and you want to make sure that you comply with both GDPR and GPP.

The detailed instructions on how to set up a consent management system in your wrapper are here.

There are many providers which comply with IAB’s latest standards, and here are a few of the most popular ones:

Conclusion

You may find it surprising that setting up header bidding involves so many steps, but it is really worth it to implement. It can easily boost your revenue by +30% or more by creating selling pressure on Google Ads.

This guide is for technically savvy users – but if you have questions and issues, there is an Adops slack channel you may subscribe to and ask questions to the community.

I hope that after reading this article, you will find it easier to set up header bidding and enhance the monetization of your website.

More resources:


Featured Image: Search Engine Journal

var s_trigger_pixel_load = false;
function s_trigger_pixel(){
if( !s_trigger_pixel_load ){
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 500);
window.removeEventListener(“scroll”, s_trigger_pixel, false );
console.log(‘s_trigger_pixel’);
}
s_trigger_pixel_load = true;
}
window.addEventListener( ‘scroll’, s_trigger_pixel, false);

window.addEventListener( ‘load2’, function() {

if( sopp != ‘yes’ && addtl_consent != ‘1~’ && !ss_u ){

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);

if( typeof sopp !== “undefined” && sopp === ‘yes’ ){
fbq(‘dataProcessingOptions’, [‘LDU’], 1, 1000);
}else{
fbq(‘dataProcessingOptions’, []);
}

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘header-bidding’,
content_category: ‘programmatic’
});
}
});

Source link

Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

SEO

Seven tips to optimize page speed in 2023

Published

on

Tips-to-optimize-page-speed-in-2023

30-second summary:

  • There has been a gradual increase in Google’s impact of page load time on website rankings
  • Google has introduced the three Core Web Vitals metrics as ranking factors to measure user experience
  • The following steps can help you get a better idea of the performance of your website through multiple tests

A fast website not only delivers a better experience but can also increase conversion rates and improve your search engine rankings. Google has introduced the three Core Web Vitals metrics to measure user experience and is using them as a ranking factor.

Let’s take a look at what you can do to test and optimize the performance of your website.

Start in Google Search Console

Want to know if optimizing Core Web Vitals is something you should be thinking about? Use the page experience report in Google Search Console to check if any of the pages on your website are loading too slowly.

Search Console shows data that Google collects from real users in Chrome, and this is also the data that’s used as a ranking signal. You can see exactly what page URLs need to be optimized.

Optimize-to-Start-in-Google-Search-Console

Run a website speed test

Google’s real user data will tell you how fast your website is, but it won’t provide an analysis that explains why your website is slow.

Run a free website speed test to find out. Simply enter the URL of the page you want to test. You’ll get a detailed performance report for your website, including recommendations on how to optimize it.

Run-a-website-speed-test-for-optimization

Use priority hints to optimize the Largest Contentful Paint

Priority Hints are a new browser feature that came out in 2022. It allows website owners to indicate how important an image or other resource is on the page.

This is especially important when optimizing the Largest Contentful Paint, one of the three Core Web Vitals metrics. It measures how long it takes for the main page content to appear after opening the page.

By default, browsers assume that all images are low priority until the page starts rendering and the browser knows which images are visible to the user. That way bandwidth isn’t wasted on low-priority images near the bottom of the page or in the footer. But it also slows down important images at the top of the page.

Adding a fetchpriority=”high” attribute to the img element that’s responsible for the Largest Contentful Paint ensures that it’s downloaded quickly.

Use native image lazy loading for optimization

Image lazy loading means only loading images when they become visible to the user. It’s a great way to help the browser focus on the most important content first.

However, image lazy loading can also slow cause images to take longer to load, especially when using a JavaScript lazy loading library. In that case, the browser first needs to load the JavaScript library before starting to load images. This long request chain means that it takes a while for the browser to load the image.

Use-native-image-lazy-loading-for-optimization

Today browsers support native lazy loading with the loading=”lazy” attribute for images. That way you can get the benefits of lazy loading without incurring the cost of having to download a JavaScript library first.

Remove and optimize render-blocking resources

Render-blocking resources are network requests that the browser needs to make before it can show any page content to the user. They include the HTML document, CSS stylesheets, as well as some JavaScript files.

Since these resources have such a big impact on page load time you should check each one to see if it’s truly necessary. The async keyword on the HTML script tag lets you load JavaScript code without blocking rendering.

If a resource has to block rendering check if you can optimize the request to load the resource more quickly, for example by improving compression or loading the file from your main web server instead of from a third party.

Remove-and-optimize-render-blocking-resources

Optimize with the new interaction to Next Paint metric

Google has announced a new metric called Interaction to Next Paint. This metric measures how quickly your site responds to user input and is likely to become one of the Core Web Vitals in the future.

You can already see how your website is doing on this metric using tools like PageSpeed Insights.

Optimize-with-new-Interaction-to-Next-Paint-metric

Continuously monitor your site performance

One-off site speed tests can identify performance issues on your website, but they don’t make it easy to keep track of your test results and confirm that your optimizations are working.

DebugBear continuously monitors your website to check and alerts you when there’s a problem. The tool also makes it easy to show off the impact of your work to clients and share test results with your team.

Try DebugBear with a free 14-day trial.

Continuously-monitor-your-site-performance

 

Source link

Continue Reading

SEO

What Is User Experience? How Design Matters To SEO

Published

on

What Is User Experience? How Design Matters To SEO

User experience is the foundation of a site’s usability, and it’s an aspect of on-page SEO that many people overlook.

If your site lacks the positive user experience and ease of use that end users require to navigate your site, you’ll push visitors to your competitors.

In this guide, you’ll learn what user experience (UX) entails, the types of experiences, the difference between UI and UX, and why it matters to SEO.

What Is User Experience (UX)?

UX is how people interact with your website.

You’ll also find this term used for products, but we’re focusing strictly on websites at the moment.

If you have a, intuitive user interface design, users will have an easier time navigating your site and finding the information they want.

If you do have a digital product, such as a SaaS solution, this interaction will also occur on your digital product.

User experience elicits a couple of things:

In short, user experience can provide a positive experience with your website – or it can lead to frustration among users.

Note: Usability is not UX design. It’s a component of UX that works with design to create the experience your users desire.

What Are The Types Of User Experience?

User experience evaluation must look at the three types of UX design to best understand the needs of the end user.

The three types of UX include:

  • Information: One aspect of a content strategy that goes overlooked is information architecture. Time must be spent on how information on a site is organized and presented. User flows and navigation must be considered for all forms of information you present.
  • Interaction: Your site has an interaction design pattern – or a certain way that users interact with the site. Components of a site that fall under the interaction UX type include buttons, interfaces, and menus.
  • Visual design: Look and feel matter for the end user. You want your website to have cohesion between its color, typography, and images. User interface (UI) will fall under this type of UX, but it’s important to note that UI is not interchangeable with UX.

What Is The Difference Between UI & UX?

Speaking of UX and UI, it’s important to have a firm understanding of the difference between the two to better understand user experience.

User Interface

UI design is your site’s visual elements, including:

Visual elements on your site are part of the user interface.

UI definitely overlaps with UX to an extent, but they’re not the same.

Steve Krug also has a great book on usability, titled “Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability.” It was first published in 2000, and the book is a #1 bestseller today.

Steve’s insight from over 20 years ago (although we’re now on the 3rd edition of the book) provides guidelines on usability that include:

  • Desktop.
  • Mobile.
  • Ease of use.
  • Layouts.
  • Everything UX.

If there’s one thing this book will teach you about usability, it’s to focus on intuitive navigation. Frustrating website users is the exact opposite of a good user experience.

User Experience

UX works on UI and how the user will:

  • Interact with your site.
  • Feel during the interaction.

Think of Google for a moment.

A simple landing page that is visually appealing, but Spartan in nature, is the face of the Internet. In terms of UX, Google is one of the best sites in the world, although it lacks a spectacular UI.

In fact, the UI needs to be functional and appealing, but the UX is what will stand out the most.

Imagine if you tried performing a search on Google and it displayed the wrong results or took one minute for a query to run. In this case, even the nicest UI would not compensate for the poor UX.

Peter Morville’s user experience honeycomb is one of the prime examples of how to move beyond simple usability and focus on UX in new, exciting ways.

The honeycomb includes multiple points that are all combined to maximize the user experience. These facets are:

  • Accessible.
  • Credible.
  • Desirable.
  • Findable.
  • Usable.
  • Useful.
  • Valuable.

When you focus on all of these elements, you’ll improve the user experience dramatically.

Why User Experience Matters To SEO

By this point, you understand that UX is very important to your site’s visitors and audience.

A lot of time, analysis, and refinement must go into UX design. However, there’s another reason to redirect your attention to user experience: SEO.

Google Page Experience Update

When Google’s Page Experience Update was fully rolled out, it had an impact on websites that offered a poor user experience.

The page experience update is now slowly rolling out for desktop. It will be complete by the end of March 2022. Learn more about the update: https://t.co/FQvMx3Ymaf

— Google Search Central (@googlesearchc) February 22, 2022

Multiple aspects of UX are part of the ranking factors of the update, including:

  • Intrusive adverts.
  • Core Web Vitals.
  • HTTPS Security.

You can run a Core Web Vitals report here and make corrections to meet these requirements. Additionally, you should know whether your site has intrusive ads that irritate users, and if your site lacks HTTPS.

Page performance works to improve your SEO. Google’s research shows that focusing on UX can:

  • Reduce site abandonment by as much as 24%.
  • Improve web conversions.
  • Increase the average page views per session by as much as 15%.
  • Boost advertising revenue by 18% or more.

When you spend time improving your site’s UX, you benefit from higher rankings, lower page abandonment, improved conversions, and even more revenue.

Plus, many of the practices to improve UX are also crucial components of a site’s on-page SEO, such as:

  • Proper header usage.
  • Adding lists to your content.
  • Making use of images.
  • Optimizing images for faster loading times.
  • Filling content gaps with useful information.
  • Reducing “content fluff.”
  • Using graphs.
  • Testing usability across devices.

When you improve UX, you create a positive experience for users, while also improving many of the on-page SEO foundations of your website.

Final Comments

Customer experience must go beyond simple responsive web design.

Hick’s law dictates that when you present more choices to users, it takes longer to reach a decision. You’ve likely seen this yourself when shopping online and finding hundreds of options.

When people land on your site, they’re looking for answers or knowledge – not confusion.

User research, usability testing, and revisiting user experience design often will help you inch closer to satisfying the SEO requirements of design while keeping your visitors (or customers) happier.

More resources: 


Featured Image: NicoElNino/Shutterstock



Source link

Continue Reading

SEO

How to Rank for Google’s Helpful Content Update

Published

on

How to Rank for Google’s Helpful Content Update

Zero Traffic from Google—that is what more than 50% of online content gets everyday. Ahrefs found this out last 2020.

And yet, countless websites continue to put them out regularly—a problem made even worse with all the AI-powered content tools out there. The result is an endless flood of low-quality blogs and posts that are, ultimately, not useful for anyone who reads them. 

So, what did Google do in response? They put out another addition to their algorithm, called the “Helpful Content Update.” Their goal with this one was to help make sure that valuable content that actually helps their users (a.k.a., people-first content) would be able to rank. 

Much like with every update, SEO professionals like you and I need to revisit our strategies to stay ahead of the game. In this article, I will show you some tactics I use to write content for people first, while maintaining good SEO practices. 

What We Know About Google’s Helpful Content Update

The Helpful Content Update algorithm update by Google was designed to improve user experience by putting high-quality content written for people higher up in the SERPs. 

Here’s how Google put it in their own words

“The system generates a site-wide signal that we consider among many other signals for ranking web pages. Our systems automatically identify content that seems to have little value, low-added value or is otherwise not particularly helpful to those doing searches.

Any content—not just unhelpful content—on sites determined to have relatively high amounts of unhelpful content overall is less likely to perform well in Search, assuming there is other content elsewhere from the web that’s better to display. For this reason, removing unhelpful content could help the rankings of your other content.”

While this update was first announced back in September 2022, it has now progressed into a global update, impacting all languages. Google also announced that the system will continue to publish new signals over the coming months, helping their site identify more content created primarily for search engines versus people.

What does this mean for your website? Well, there are a lot of changes that others have documented in the last few months, which I summarize for you here: 

  • Purely AI-generated content is considered spam, and Google will be using its machine learning algorithm to detect it.
  • Content made for clicks (i.e., ad monetization) won’t work anymore
  • There may be no manual penalties, but sites have experienced losing organic visibility
  • It seems to affect the overall site performance, rather than hitting specific pages—and Google won’t be telling you which pieces of your content it has deemed as not useful.

Google’s Danny Sullivan also talked about this update possibly working in connection with future updates:

Google’s Danny Sullivan talking about Google

So, like Hummingbird, this update may become fundamental to ranking algorithms—which means that its exact effects could be only observed over the next few years.

Even so, it already puts a stronger emphasis on your content. Writing with a “search engine first” approach should no longer be your angle. 

After all, Google is, primarily, a space for users to learn. So, it makes sense that they’re making no room for unhelpful content.

While this update will undoubtedly be more damaging for poor-quality sites, it also presents an opportunity for well-maintained sites to take a second look at their content strategy. 

How to Optimize Your Content—and Make it More “Helpful”

With this update, we have to start thinking about our content holistically, rather than just trying to gain as many clicks as possible (or maybe even a featured snippet).

To achieve this, you have two main action points to consider: improving your intent and processes, and providing high-quality content.

Let’s go over some tips I’ve come up with in the last two months to better tackle these points (and enhance your writing): 

Review Your Intent and Your Audience

Before you even start on your next blog post, you need to know who your audience is. 

Ask yourself, who are you writing for? What are their needs, and why are they asking these questions? What do they need help with?

These questions will help you tailor your content to help your target audience. Otherwise, it’s likely that whatever you write won’t be considered helpful by Google—and you won’t be able to reap the benefits from your work. 

If you’re having trouble understanding who your audience is, then take a look at your Google Analytics data, under your demographic details report. This is the best place to gain some insight into who is currently looking at your content, as well as other things they might be interested in. 

So, beyond inserting your keyword into your blog post, consider factoring both your intended audience and relevant adjacent content. 

Provide Real Expertise, Insights, and Experiences

When it comes to making helpful, valuable content, it’s a big plus if you have some first-hand expertise to add to your writing. 

Avoid writing on topics that are trending, but you know nothing about. I also highly recommend against simply regurgitating information you’ve seen in other posts. Instead, your insights and experiences with the topic should be the main focus of your writing.

Not an expert on the particular topic you’re currently drafting? That’s okay—not everyone can be one. You can still produce helpful content by doing your due diligence, diving deep into research, and sharing what you’ve learned. 

Remember, readers can see right through you if you’re faking being an expert, so avoid making false claims at all costs. 

Use AI Content Strategically

Though this update may be primarily aimed at reducing the amount of AI-generated content out there, that doesn’t mean your tools no longer have a place in your work. 

AI tools, such as the increasingly popular ChatGPT or our recently-reviewed Content Marketing Platform from SE Ranking, can still be used to improve your work and productivity. The key is to use them strategically. 

Use them to lighten your workload, and avoid depending solely on them. For example, you can use your tools to help you generate better titles or introductions—but always remember to add a human touch to whatever they make. And, make sure that the bulk of the ideas come from you! 

Try to Hit Related Queries (Such as the People Also Ask (PAAs))

I mentioned that we have to start approaching our writing holistically, and that means providing as much valuable information to our readers as possible. 

Now that being helpful is the name of the game, it’s a great time to take a look at all the related queries users have for your intended topic. Here’s what comes up when I google ‘wedding catering:’

PAAs and related searches for the keyword "wedding catering"

Check the PAAs and related searches that pop up when you type in your keyword. These aren’t just generated questions Google thinks people might ask—they’re actually being searched up by real people! These will provide good subheadings to include in your next blog article.

Ask Yourself: Will Readers Be Satisfied After Reading Your Content?

Things like word count and keyword density are now a thing of the past with this update. The most important thing now is that your audience enjoys what they’re reading, or they learn something of value from your article. 

In short, they leave your site feeling satisfied

So, always gauge your writing by asking this question: will people be satisfied after reading this?

For example, if you’re writing an article on how to properly brew specialty coffee, will the reader come away from your article with more knowledge than before? Will they have all their questions answered? Will they know how to properly brew their new coffee beans?

If the answer is yes, then you’re doing great. But, if you’re unsure—or the answer is a resounding no—you must make some changes. 

That said, not every reader that comes across your work will be happy with what you’ve written. It is, after all, impossible to please everyone each time you publish something. However, as long as a majority of your audience is satisfied, then you’re doing something right! 

Revisit Your Old Posts

Lastly, because this update affects you sitewide, it’s a good idea to look at your previous work. 

If you’re like me, then you’ve been blogging for upwards of a decade—and that might mean some of your posts aren’t as valuable to readers today. The content might be outdated, or not up to snuff with newer guidelines, but either way, this bank of legacy content can bring your traffic down.

So, revisit your work and review its ability to provide your readers with the answers and experience they’re looking for. Take the time to check if you need to make some additions to make it useful once again, or redirect them to newer content. I highly recommend prioritizing evergreen content, which is something I covered in my Blog Writing 101 guide.

This is especially important if you’re in any industry that moves fast (think fashion or tech). Content here usually goes from helpful to obsolete in a matter of months! 

Key Takeaway

Google has always favored people-first content, and this recent update is just the latest in many of their attempts to make sure the right content gets to their users. 

The Helpful Content Update will continue to release tweaks to their signals over the coming months, so it’s prime time for us SEO specialists to take a second look at our content and writing strategies.

Luckily, this update could be a win for you—just keep these tips in mind, and you’re on the right track to getting the most value from your content efforts. 

Source link

Continue Reading

Trending