Connect with us


Google Publishes Guide To Current & Retired Ranking Systems



A new guide to Google’s ranking systems will keep you informed about which systems Google uses to rank search results and which ones are retired.

Additionally, Google introduces new terminology in its latest guide, distinguishing between ranking “systems” and ranking “updates.”

A system, such as RankBrain, is constantly running in the background. An update, on the other hand, refers to a one-time change to ranking systems.

For example, the helpful content system is always running in the background when Google delivers search results, though it can receive updates to improve how it functions.

Core algorithm updates and spam updates are other examples of one-time changes to ranking systems.

Now that we’re on the same page with Google’s new terminology, let’s look at the highlights in Google’s guide to ranking systems.

Current Google Ranking Systems

Here is the list, in alphabetical order, of Google’s ranking systems that are currently operational.

  • BERT: Short for Bidirectional Encoder Representations from Transformers, BERT allows Googe to understand how combinations of words can express different meanings and intent.
  • Crisis information systems: Google has systems in place to provide specific sets of information during times of crisis, such as SOS alerts when searching for natural disasters.
  • Deduplication systems: Google’s search systems aim to avoid serving duplicate or near-duplicate webpages.
  • Exact match domain system: A system that ensures Google doesn’t give too much credit to websites with domain names that exactly match a query.
  • Freshness systems: A system designed to show fresher content for queries where it would be expected
  • Helpful content system:  A system designed to better ensure people see original, helpful content, rather than content made primarily to gain search engine traffic.
  • Link analysis systems and PageRank: Systems that determine what pages are about and which might be most helpful in response to a query based on how pages link to each other.
  • Local news systems: A system that surfaces local news sources when relevant to the query.
  • MUM: Short for Multitask Unified Model, MUM, is an AI system capable of understanding and generating language. It improves featured snippet callouts and is not used for general ranking.
  • Neural matching:  A system that helps Google understand representations of concepts in queries and pages and match them to one another.
  • Original content systems: A system to help ensure Google shows original content prominently in search results, including original reporting, ahead of those who merely cite it.
  • Removal-based demotion systems: Systems that demote websites subject to a high volume of content removal requests.
  • Page experience system: A system that assesses various criteria to determine if a webpage provides a good user experience.
  • Passage ranking system: An  AI system Google uses to identify individual sections or “passages” of a web page to understand better how relevant a page is to a search.
  • Product reviews system:  A system that rewards high-quality product reviews written by expert authors with insightful analysis and original research.
  • RankBrain:  An AI system that helps Google understand how words are related to concepts. Allows Google to return results that don’t contain exact words used in a query.
  • Reliable information systems: Google has multiple systems to show reliable information, such as elevating authoritative pages, demoting low-quality content, and rewarding quality journalism.
  • Site diversity system: A system that prevents Google from showing more than two webpage listings from the same site in the top results.
  • Spam detection systems: A system that deals with content and behaviors that violate Google’s spam policies.

Retired Google Ranking Systems

The following systems are noted for historical purposes. These have been incorporated into other systems or made part of Google’s core ranking system.

  • Hummingbird: A significant improvement to Google’s ranking systems that rolled out in 2013. Systems have evolved since then, Google says.
  • Mobile-friendly ranking system: A system that prefers content rendered better on mobile devices. It has since been incorporated into Google’s page experience system.
  • Page speed system: A system introduced in 2018 that gave preferences to content that loaded fast on mobile devices. It has since been incorporated into Google’s page experience system.
  • Panda system: A system introduced in 2011 that preferred high-quality and original content. It became part of Google’s core ranking systems in 2015.
  • Penguin system: A system introduced in 2012 that demoted websites with spammy linkbuilding practices.
  • Secure sites system: A system introduced in 2014 that preferred websites secured with HTTPS. It has since been made part of Google’s page experience system.

Source: Google

Featured Image: Koshiro K/Shutterstock

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘google-publishes-guide-to-current-retired-ranking-systems’,
content_category: ‘news seo’





11 Best WordPress Login Page Plugins (Secure & Customizable)



Are you looking for the best WordPress login page plugins?

Your WordPress login page is the door to your website’s admin area. You need to make it secure, but you also need to let authorized users log in easily.

In this article, we will share some of the best WordPress login page plugins you can use.

Best WordPress Login Page Plugins

Improving the Security and Appearance of the WordPress Login Page

The default WordPress login page looks the same on all WordPress sites. It is very plain and doesn’t have any of your site’s styling or branding:

The WordPress default login pageThe WordPress default login page

Maybe you run a membership site. Perhaps you have multiple people who log in to your WordPress site. In either case, it’s best practice to customize the login page. This lets you make it look good and create a better user experience.

Plus, you may want to make logging in as seamless as possible without compromising WordPress security.

Let’s take a look at some of the best WordPress login page plugins. These can improve the login experience and security of your website.

1. SeedProd

SeedProd website builderSeedProd website builder

SeedProd is the best WordPress theme and landing page builder. It allows you to create completely custom website pages without writing any code.

SeedProd comes with a login landing page template that lets you change your default WordPress login page into a personalized login page designed to boost conversions.

Here’s a custom WordPress login page template from SeedProd:

Custom Login Page for WordPressCustom Login Page for WordPress

You can also use SeedProd to create custom login pages that cross promotes your other products, show existing users loyalty discounts, introduce new products, and more.

Login pages are a hidden revenue opportunity that many businesses do not utilize. If you have an online store or a membership site, then this plugin is a must for your site.

2. WPForms

The WPForms form builder plugin and signature addonThe WPForms form builder plugin and signature addon

WPForms is the best WordPress form builder plugin. And it comes with powerful user registration and login addon.

WPForms allows you to create custom user registration and login forms with just a few clicks.

It’s easy to add these forms anywhere on your WordPress site. Plus, you can use them as payment forms so that users need to pay to register.

For detailed instructions, see our guide on how to create a custom login page in WordPress

3. Theme My Login

Theme My LoginTheme My Login

Theme My Login is a popular plugin for creating custom WordPress login pages. You can also use it to let users register on your WordPress site without them accessing the admin area.

You can use any page on your site as the login, registration, and ‘forgot my password pages.

For more details, see our guide on how to create a custom login page using Theme My Login.

4. Temporary Login Without Password

Temporary Login Without PasswordTemporary Login Without Password

Temporary Login Without Password lets you give users access without creating an account. You can set an expiry date or time for the temporary login or delete it at any time.

This is a good option if you need to give WordPress developers access to your site. You don’t need to create a permanent account for them.

For detailed instructions, see our guide on how to create a temporary login for WordPress.

5. Shield Security

Shield SecurityShield Security

Shield Security is a multipurpose plugin. It can perform a number of useful security features for your site.

By default, WordPress does not lock users out if they try the wrong password multiple times. Shield Security lets you limit login attempts and block brute force bots automatically.

It also has features to stop comment spam, help you control automated WordPress updates, and more.

6. Nextend Social Login

Nextend Social LoginNextend Social Login

Nextend Social Login lets users log in to your WordPress site using Facebook, Google, or Twitter. That way, they can log in more quickly. They don’t need to create a separate password for your site.

The plugin is easy to set up and use. You can set a custom redirection URL to send users to a specific page after registering. You could also use their Facebook, Google, or Twitter profile picture as their avatar on your site.

7. WordPress Persistent Login

WordPress Persistent LoginWordPress Persistent Login

WordPress Persistent Login automatically checks the ‘Remember Me’ checkbox on your WordPress login page. Normally, if you don’t check this box during login, WordPress will forget your login as soon as you close the browser window.

The plugin also extends the default login status for one year whenever you visit the login page. If you’re running a membership site, then these settings will also apply to your users.

It lets you force log out users from your WordPress admin in a single click. You can monitor the total number of users logged in on your site.

8. Custom Login Page Customizer

Custom Login PageCustom Login Page

Custom Login Page Customizer lets you design your own custom login page using the WordPress theme customizer.

You could change the login page using other methods. However, many of them require you to add code. Custom Login Page Customizer makes it much easier for you.

9. Simple History

Simple HistorySimple History

Simple History makes it easy to track user activity on your WordPress site, including user logins. It keeps a simple and easy-to-understand log of basic user activity, which comes in handy to protect your website.

The plugin lets you see when a user logged in and what they did during their session. You can also see when they logged out.

For more details, see our guide on how to monitor user activity in WordPress.

10. Password Protected

Password ProtectedPassword Protected

Password Protected allows you to easily make your whole WordPress site password protected. You can allow admins and logged-in users to view it. You can also create a master password to share with others.

For step-by-step instructions, see our guide on how to password protect your WordPress site without user registration.

11. LoginWP


LoginWP allows you to redirect users to any page on your website after they log in. You can set up these redirects based on user roles and capabilities.

It can also be used to set up a redirect for individual users. This could be useful if you have several people working on different parts of your site.

The plugin also allows you to set up redirects for user registration forms as well. This enables you to properly greet newly registered users, give them instructions about the next step, or simply show them a thank you note.

For more details, see our article on how to redirect users after successful login in WordPress.

Which is the Best WordPress Login Page Plugin? (Expert Pick)

We believe SeedProd is the best WordPress login page plugin. It lets you set up your custom login page in just a few clicks and is easy for beginners.

WPForms is another great option if you’re looking for an overall form builder because it comes with user registration forms, login forms, and more.

We hope this article helped you find the best WordPress login page plugins for your website. You may also want to see our list of the top WordPress plugins for business websites and our comparison of the best business phone services for entrepreneurs.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.


Continue Reading


9 Best Schema Markup Plugins for WordPress (2022)



Are you looking for the best schema markup plugins for WordPress?

The right SEO plugin will help you properly optimize your content for search engines, so you can outrank your competitors and grow your business. You can also use schema markup plugins to create valuable rich snippets for search engines like Google.

In this article, we’ll share our expert pick of the best schema markup plugins for WordPress.

The best schema markup plugins for WordPress

Why You Should Use Schema Markup Plugins for WordPress

If your site has lots of high quality original content, then you’re already off to a great start. However, you also need to help search engines understand that content, so they can include it in relevant search results and drive more people to your website.

Schema markup is structured data that help your website communicate with search engines behind the scenes. It uses invisible code to clearly label your pages and posts, so search engines know exactly what your content is about, and when to show it to users.

Search engines such as Google also use schema to create rich snippets.

An example of a rich snippet in Google's search resultsAn example of a rich snippet in Google's search results

These valuable snippets show additional information about your pages and posts. If you manage to get a rich snippet on a search engine like Google, then your content immediately stands out from the crowd. This can improve your organic click through rate and increase your blog traffic.

Using the right schema markup is important, but it can also be complicated. Thankfully, there are WordPress SEO plugins that can walk you through the process of adding schema markup to your site. Some of these plugins will even generate the right schema automatically.

Using a schema markup plugin doesn’t guarantee that your rich snippets will appear in the search results, but it will improve your chances.

With that being said, let’s take a look at the best schema markup plugins for WordPress.


The AIOSEO SEO plugin for WordPressThe AIOSEO SEO plugin for WordPress

All in One SEO for WordPress (AIOSEO) is the best WordPress SEO plugin on the market used by over 3 million websites. This complete SEO toolkit has everything you need to outrank your competitors including support for rich snippets schema.

AIOSEO makes sure your schema markup is properly set up, so search engines can show your content to people who are searching for pages, posts, and products just like yours.

The plugin even has special schema for FAQs, courses, recipes, software, ratings, and dozens more. This helps your customers find your products, services, and digital downloads over your competitors.

If you have a physical store or business, then AIOSEO has local schema markup for your business logo, address, business phone number, opening hours, and more. This gives you the best possible chance of appearing in Google Maps and local search results.

AIOSEO’s Google Map integration has multiple location support, which is perfect for successful businesses that have multiple offices, stores, salons, or other locations.

To learn more, see our guide on how to add multiple locations schema for local businesses.

This powerful WordPress SEO plugin is also easy to set up. To start, simply enter all your website information into the plugin’s settings.

Adding schema using AIOSEOAdding schema using AIOSEO

Then, just work your way through the Schema Markup settings for each content type.

For example, you’ll typically map your Posts to the Article schema type, and Pages to the Web Page schema.

Configuring rich snippets using AIOSEOConfiguring rich snippets using AIOSEO

AIOSEO is flexible, so you can override these default settings for specific pages, posts, courses, and more from inside the content editor.

When editing your content, simply scroll to the AIOSEO Settings section and then click on ‘Generate Schema’ to open the Schema Generator.

Generating schema using the All in One SEO WordPress pluginGenerating schema using the All in One SEO WordPress plugin

You’ll now see all the different schema that you can add to this particular piece of content.

By simply repeating these steps, you can optimize your entire WordPress website without having to write a single line of code.

One of the best schema markup plugins for WordPressOne of the best schema markup plugins for WordPress

AIOSEO has support for all the modern schema types to get you rich snippets including the new FAQ schema. SEO pros can use the custom schema tab to enter any type of schema format they wish.

It also has built-in schema validation to ensure that your website is properly optimized for highest SEO rankings.

To get started with AIOSEO, please see our ultimate guide on how to set up All in One SEO for WordPress correctly.

Price: AIOSEO Pro licenses start at $49.60 per year for a single website. There’s also a free version that you can use to get started.

2. Schema Pro

The Schema Pro WordPress pluginThe Schema Pro WordPress plugin

The Schema Pro plugin has more than 20 schema types including recipe, article, book, job posting, and more.

You can add all of these schema types to your WordPress blog or website without writing a single line of code. Simply choose a schema type from a dropdown menu and then tell the plugin where to add this schema.

To help you use the correct schema, Schema Pro will even map default data such as page title, featured image, author, and data. You can then simply fine-tune these defaults to suit your content, and Schema Pro will add the correct code across your website.

If this is your first time adding schema, then the plugin integrates with the Google Structured Data Testing Tool and comes with built-in field validation. This allows you to test your schema and see whether you’re likely to get a rich snippet.

If you’re using custom post types or other unique content, then more advanced users may want to try the plugin’s Custom Schema markup tool. This allows you to create your own schema in JSON-LD format, and then test it using the Structured Data Testing Tool or Rich Results Test.

Price: You can buy an annual Schema Pro license for $67 which includes product updates, premium support, and advanced schema types.

3. WordPress Review Plugin

The Review Schema plugin for WordPressThe Review Schema plugin for WordPress

Positive customer reviews can convince shoppers to buy from your online store and will make your website seem more trustworthy. With that being said, you’ll want the search engines to highlight your reviews.

The WordPress Review plugin can add the schema that search engines need to correctly identify your customer reviews, and include them in rich snippets.

You can use this plugin to create both single and multi-criteria reviews. This helps your customers make a decision about your company or products at a glance, and then explore more detailed reviews if they want extra information.

Creating a multi criteria review for your online storeCreating a multi criteria review for your online store

The plugin can also generate rating schema and markup for your WooCommerce products, which makes it a great choice for any WooCommerce user.

The WordPress Review plugin comes with a selection of layouts that you can apply to your reviews plus support for numeric pagination. In this way, the plugin can display your reviews in a way that makes sense to shoppers as well as the search engines.

The best schema plugins for WordPressThe best schema plugins for WordPress

Despite the focus on eCommerce, this plugin can also create review schema for any page, post, or custom post type. For example, you might encourage visitors to rate their favorite blog post.

If you’re worried about spam and fake reviews, then the plugin comes with built-in support for reCAPTCHA v3. For more information on how reCAPTCHA works, please see our guide on how to add reCAPTCHA to WordPress.

Price: You can download this plugin for free from the official WordPress repository.

4. WP Review Plugin

The WP Review schema pluginThe WP Review schema plugin

WP Review is another plugin that’s perfect for anyone who sells digital downloads, products, or services online.

This plugin adds 9 different schema types and allows you to show reviews in a structured box that features star, point, and percentage ratings. You can also add user comments, affiliate buttons, and more to create an eye-catching layout.

Adding a review box to your WooCommerce websiteAdding a review box to your WooCommerce website

By presenting this data in a box with the correct schema, you can encourage search engines to include the information in their search results. For example, Google often shows star ratings next to each product.

As long as you get a high rating, this can make your products stand out from the competition and should improve your click-through rates.

WP Review’s boxes are completely customizable, so you can fine-tune them to perfectly suit your WordPress theme by changing the text color, adding a border, changing the background, and more.

Using schema to create a review boxUsing schema to create a review box

Price: You can download WP Review for free from the official WordPress repository.

5. Structured Content

The Schema Structured content WordPress pluginThe Schema Structured content WordPress plugin

This plugin allows you to add structured data to any page or post, and it then renders that information as JSON-LD.

In total, Structured Content adds 6 schema types including LocalBusiness, FAQPage, and Person. If you sell online courses, then there’s a Course structured data type that will help search engines show your training in relevant search results.

If you run a job board in WordPress, then we recommend looking at the plugin’s JobPosting schema as this can help your job listings appear in Google’s job search experience.

Here, Google will show your job listings along with your logo, plus any company reviews or ratings you’ve received. This instantly makes your job listings more interesting and should get you lots more applicants.

To help you add schema to your website, Structured Content comes with its own blocks. Simply click on any block to add it to your content.

Adding schema blocks to your WordPress websiteAdding schema blocks to your WordPress website

After that, you configure the schema markup by filling out a form.

This makes it easy to add correctly-formatted markup to your website.

Configuring a schema block in WordPressConfiguring a schema block in WordPress

Price: A free download of Structured Content is available from the WordPress repository.

6. WP SEO Structured Data Schema

The SEO Structured data schema plugin for WordPressThe SEO Structured data schema plugin for WordPress

If you want more control over your schema markup, then you may want to look at this free WordPress plugin.

Although WP SEO Structured Data Schema does have some site-wide settings, it places an emphasis on flexibility and manual customization.

Setting site-wide schema settings for WordPressSetting site-wide schema settings for WordPress

This plugin allows you to add schema in JSON-LD format on a page-by-page basis.

WP SEO Structured Data Schema does require a bit more setup compared to some of the other plugins on this list.

However, it is a powerful solution that gives you lots of freedom to fine-tune your schema. This makes it a good choice for users who are more familiar with schema markup.

The best schema plugins for WordPressThe best schema plugins for WordPress

Just be aware that you’ll need to upgrade to the pro version if you want to add schema to custom post types.

Price: You can download WP SEO Structured Data Schema for free from the official WordPress repository.

7. WPSSO Core

The WPSSO Core scheme plugin for WordPressThe WPSSO Core scheme plugin for WordPress

The WPSSO Core plugin supports an impressive 500 schema types and sub-types.

It also stands out from the crowd by providing structured data markup for social media sites including Facebook, Pinterest, LinkedIn, Twitter, and WhatsApp.

The best schema plugins for WordPressThe best schema plugins for WordPress

If you’re already using some of the best SEO plugins, then you’ll be happy to hear that WPSSO Core integrates with WP Product Review, WP-PostRatings, and WP Meta SEO. WPSSO Core can even read settings and data from AIOSEO.

Beyond SEO plugins, WPSSO Core also integrates with Easy Digital Downloads and WooCommerce, so we recommend checking out this plugin if you run an online store.

WPSSO Core is also a good choice if you previously tried to add schema markup manually, but encountered errors. This plugin claims to fix all schema markup errors in Google Search, Rich Results, Merchant Listings, and more.

Price: To download WPSSO Core for free, simply visit the WordPress repository.

8. Five Star Business Profile and Schema

The Five Star schema plugin for WordPressThe Five Star schema plugin for WordPress

Like many plugins on this list, Five Star Business Profile and Schema can add LD+JSON schema structured data to any page or post.

However, it also has a unique contact card feature that lets you add all your business details with the correct schema markup. This includes a Google Map, opening hours, plus your phone number and WhatsApp number with a click-to-call feature.

Search engines can then discover this information and show it next to your listing.

The best WordPress schema pluginsThe best WordPress schema plugins

If you accept appointments and bookings, or own a physical store then this will help customers contact you. In fact, if you have multiple locations then Five Star Business Profile and Schema will automatically add a dropdown menu so customers can choose between the different locations.

Even better, you can add the card to any page, post, or widget-ready area using either a shortcode or a special Contact Card block.

The Contact Form WordPress blockThe Contact Form WordPress block

Beyond the SEO-friendly contact card, this plugin has a database of every organization type schema and every rich results type.

Each schema and rich results type comes with the corresponding fields and properties. Simply fill in the default values that you want to use and the plugin will handle the rest.

Configuring the default schema for your WordPress websiteConfiguring the default schema for your WordPress website

If you want to use different values on a specific page, then you can easily override these defaults from the post editor.

Price: You can download Five Star Business Profile and Schema for free.

9. Schema and Structured Data

The Schema Structured data plugin for WordPressThe Schema Structured data plugin for WordPress

This plugin adds 16 schema types to your WordPress website including reviews, email, and comments, plus support for custom schema.

After activating the plugin, Schema and Structured Data will automatically fetch the data from your website and then enhance it in the Google search results.

If you have an online store, then this plugin is compatible with WooCommerce so you can get your products and services featured on search engines like Google. If you’re using WooCommerce extensions, then this plugin is also compatible with WooCommerce Booking and WooCommerce Membership.

If you want to add schema to lots of content, then the plugin has some useful conditional fields. This allows you to include and exclude posts, pages, and taxonomies from the schema.

Schema and Structured Data has some extra features that can help search engines understand your content. This includes support for breadcrumbs and Google AMP compatibility so you can easily enhance the markup for the AMP version of your site.

For more information about AMP, please see our guide on how to properly setup Google AMP on your WordPress site.

Price: An annual license for a single website is priced at $99.00.

Which is the best WordPress schema plugin?

After carefully evaluating all the popular schema plugins in the market, we believe that AIOSEO – All in One SEO is the best WordPress schema plugin.

In the past, websites will use their main SEO plugin and then a separate schema plugin which would lead to complication, plugin conflicts, and even performance issues.

With All in One SEO, you can use just one plugin that gives you everything you need to grow your SEO rankings.

The free All in One SEO plugin has support for on-page schema markups, but you will need the Pro version to unlock access to their powerful custom schema generator.

Frequently Asked Questions

Being the largest free WordPress resource site on the planet, we have helped tens of thousands of people choose the best WordPress SEO plugins. Below are the answers to some of the most frequently asked questions.

Does schema improve SEO?

Yes, having a proper schema markup will absolutely improve your SEO rankings. Google and other search engines reward websites with rich snippets and higher rankings when they use proper schema tags.

Does WordPress use schema?

By default, WordPress does not add schema markup. That’s why website owners use WordPress schema plugins. You can easily add schema markup in WordPress by using the All in One SEO plugin.

For a more detailed explanation, see our guide on how to add schema markup in WordPress and WooCommerce.

Does Yoast SEO plugin add schema?

Yes, Yoast SEO plugin does offer limited schema support. However they do not have powerful custom schema generators or schema validation like other plugins such as All in One SEO, Schema Pro, and others mentioned in the list above.

Can you add schema to WordPress without a plugin?

Yes, you can absolutely add custom schema markup in WordPress without using a plugin. All you need to do is simply add the custom schema code in your theme’s functions.php file.

Although we don’t recommend this because if you update your theme, then your customizations will be overwritten. This is why it’s better to future-proof your custom snippets using WPCode.

With that said, most professionals use a plugin like AIOSEO to add schema because they keep it updated with new SEO guidelines.

Will schema markup help me get a featured snippet in Google?

Yes, having a proper schema markup will increase your chances of getting a featured snippet in Google, also known as position zero. At the end of the day, Google decides which sites get the featured snippet, but generally only websites with schema markup get the featured snippet.

What’s better JSON+LD Schema vs Microdata?

Modern search engines like Google prefer JSON+LD schema markup over the microdata schema markup. This is why most large websites have switched to using JSON+LD schema, and the plugins we recommend in our list all output as JSON schema markup.

Which is the best review schema WordPress plugin?

The best review schema plugin for WordPress is All in One SEO. It lets you add review schema, so your search listings can get start ratings and other rich snippets. But unlike other plugins, AIOSEO will not force you to use their styles, so you have full control over how your website brand looks.

The second option people often use is Schema Pro which is built specifically for generating schema blocks.

Which is the best custom schema markup generator for WordPress?

We believe that All in One SEO is the best custom schema generator for WordPress. It offers a guided wizard for all markups, and for true SEO pros, it even has a fully custom schema markup input, so you can experiment further.

We hope this article helped you find the best schema plugins for WordPress. You may also want to see our guide on how to add keywords and meta descriptions in WordPress and our expert pick of the best analytics solutions.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.


Continue Reading


What 2022 SEO Shifts Could Mean For 2023 & Beyond [Webinar]



Have you ever felt overwhelmed by Google’s seemingly constant algorithm updates? If so, you’re certainly not alone.

Many SEO professionals are reeling from Google’s whirlwind of a year, with eight confirmed and several unconfirmed updates that have dropped in 2022.

And with so much volatility in search this past year, it can often feel like you’re scrambling to keep up.

But what does the chaos of 2022 mean for 2023? Can we expect more updates? Will we see more testing?

How can you get on the front end of Google’s new rollouts and make sure you’re prepared for the changes to come?

How can you adapt your SEO strategy to keep it fresh and relevant?

For SEO pros looking to get ahead of the curve, our next webinar focuses on how to handle frequent algorithm changes and market shifts.

Join Pat Reinhart, VP of Customer Success at Conductor, for an in-depth recap of this year’s biggest SEO insights, as well as expert predictions for what 2023 may hold.

Key Takeaways From This Upcoming Google Algorithm Webinar

  • What a crazy 2022 for Google means for 2023.
  • How the growth of social media search will impact strategy next year.
  • What the popularity of visual search will mean going forward.

Trends To Watch For In 2023

As technology continues to evolve and new digital trends emerge, the SEO community must quickly adapt.

With image search becoming more prominent and Google starting to prioritize short-form videos on mobile SERPs, visual content is predicted to make a major impact on search rankings, going forward.

Between the rise of social media and the explosion of short-form video content, there are several factors expected to have a major impact on SEO in 2023.

Not only are people sharing more on social platforms now, but an increasing amount of people are relying on social media search to find what they’re looking for online.

This trend, plus the growing popularity of visual search, should be key considerations in your SEO strategy for next year.

Discover more insights on how these trends could affect SEO next year by signing up for this webinar.

Optimize Your SEO Strategy

If you struggled to keep up with this year’s frequent search engine updates, the SEO predictions you’ll discover in this webinar could be a game-changer for your business.

If you want to stay competitive in 2023, it’s time to take action and start optimizing your SEO strategy.

Register for this webinar and learn more about how Google’s recent past will inform the future.

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘seo-shifts-2023-webinar’,
content_category: ‘seo seo-strategy webinar’


Continue Reading


Is IP Address A Google Ranking Factor?



Does the IP address of your website’s server affect your rankings in search results? According to some sources around the internet, your IP address is a ranking signal used by Google.

But does your IP address have the potential to help or harm your rankings in search? Continue reading to learn whether IP addresses are a Google ranking factor.

The Claim: IP Address As A Ranking Factor

Articles on the internet from reputable marketing sites claim that Google has over 200 “known” ranking factors.

These lists often include statements about flagged IP addresses affecting rankings or higher-value links because they are from separate C-class IP addresses.

Screenshot from, June 2022IP address from hubspot

Fortunately, these lists sparked numerous conversations with Google employees about the validity of IP addresses as ranking factors in Google’s algorithm.

[Ebook:] The Complete Guide To Google Ranking Factors

The Evidence Against IP Address As A Ranking Factor

In 2010, Matt Cutts, former head of Google’s webspam team, was asked if the ranking of a client’s website would be affected by spammy websites on the same server.

His response:

“On the list of things that I worry about, that would not be near the top. So I understand, and Google understands that shared web hosting happens. You can’t really control who else is on that IP address or class c subnet.”

Ultimately, Google decided if they took action on an IP address or Class C subnet, the spammers would just move to another IP address. Therefore, it wouldn’t be the most efficient way to tackle the issue.

Cutts did note a specific exception, where an IP address had 26,000 spam sites and one non-spammy site that invited more scrutiny but reiterated that this was an exceptional outlier.

In 2011, a tweet from Kaspar Szymanski, another former member of Google’s webspam team, noted that Google has the right to take action when free hosts have been massively spammed.

In 2016, during a Google Webmaster Central Office Hours, John Mueller, Search Advocate at Google, was asked if having all of a group’s websites on the same c block of IP addresses was a problem.

He answered:

“No, that’s perfectly fine. So that’s not something where you artificially need to buy IP address blocks to just shuffle things around.

And especially if you are on a CDN, then maybe you’ll end up on an IP address block that’s used by other companies. Or if you’re on shared hosting, then these things happen. That’s not something you need to artificially move around.”

In March 2018, Mueller was asked if an IP change with a different geo-location would affect SEO. He responded:

“If you move to a server in a different location? Usually not. We get enough geotargeting information otherwise, e.g., from the TLD & geotargeting settings in Search Console.”

A few months later, Mueller replied to a tweet asking if Google still counted bad neighborhoods as a ranking signal and if a dedicated IP was necessary.

“Shared IP addresses are fine for search! Lots of hosting / CDN environments use them.”

In October 2018, Mueller was asked if the IP address location mattered for a site’s rankings. His response was simply, “Nope.”

A few tweets later, within the same Twitter thread, another user commented that IP addresses mattered regarding backlinks. Mueller again responded with a simple “Nope.”

In June 2019, Mueller received a question about Google Search Console showing a website’s IP address instead of a domain name. His answer:

“Usually, getting your IP addresses indexed is a bad idea. IP addresses are often temporary.”

He suggested that the user ensure the IP address redirects to their domain.

A few months later, when asked if links from IP addresses were bad, Mueller tweeted:

“Links from IP addresses are absolutely fine. Most of the time, it means the server wasn’t set up well (we canonicalized to the IP address rather than the hostname, easy to fix with redirects & rel=canonical), but that’s just a technical detail. It doesn’t mean they’re bad.”

In early 2020, when asked about getting links from different IP addresses, Mueller said that the bad part was the user was making the backlinks themselves – not the IP addresses.

Then, in June, Mueller was asked what happens if a website on an IP address bought links. Would there be an IP-level action taken?

“Shared hosting & CDNs on a single IP is really common. Having some bad sites on an IP doesn’t make everything on that IP bad.”

In September, during a discussion about bad neighborhoods affecting search rankings, Mueller stated:

“I’m not aware of any ranking algorithm that would take IPs like that into account. Look at Blogger. There are great sites that do well (ignoring on-page limitations, etc.), and there are terrible sites hosted there. It’s all the same infrastructure, the same IP addresses.”

In November, Gary Illyes, Chief of Sunshine and Happiness at Google, shared a fun fact.

“Fun fact: changing a site’s underlaying infrastructure like servers, IPs, you name it, can change how fast and often Googlebot crawls from said site. That’s because it actually detects that something changed, which prompts it to relearn how fast and often it can crawl.”

While it’s interesting information, it seems to impact crawling and not ranking. Crawling is, of course, required to rank, but crawling is not a ranking factor.

In 2021, a Twitter user asked if IP canonicalization could positively affect SEO. Meuller replied:

“Unless folks are linking to your site’s IP address (which would be unexpected), this wouldn’t have any effect on SEO.”

Later in December, when asked if an IP address instead of a hostname looks unusual when Google evaluates a link’s quality, Meuller stated, “Ip addresses are fine. The internet has tons of them.”

If you’re worried about your IP address or hosting company, the consensus seems to be: Don’t worry.

Get More Google Ranking Factor Insights.

Our Verdict: IP Address Is Not A Ranking Factor Anymore

Is IP Address A Google Ranking Factor?

Is IP Address A Google Ranking Factor?

Maybe in the past, Google experimented with IP-level actions against spammy websites.

But it must have found this ineffective because we are not seeing any confirmation from Google representatives that IP addresses, shared hosting, and bad neighborhoods are a part of the algorithm.

Therefore, we can conclude for now that IP addresses are not a ranking factor.

Featured Image: Paulo Bobita/Search Engine Journal

Ranking Factors: Fact Or Fiction? Let’s Bust Some Myths! [Ebook]Ranking Factors: Fact Or Fiction? Let’s Bust Some Myths! [Ebook]

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘is-ip-address-a-google-ranking-factor’,
content_category: ‘seo’


Continue Reading


How to Achieve 7-Figures with Your Law Firm Website



Many law firms are simply leasing space when it comes to their online marketing.

Whether it’s Google pay-per-click (PPC) ads, Facebook Ads, or social media, these channels often yield only temporary wins. Once you pull the investment, your results go away entirely.

Your website, on the other hand, can be a 24/7 selling tool for your law firm practice. It can effectively become your greatest asset, getting leads and cases while you sleep.

In this guide, we’ll talk about how to turn your website into the ultimate marketing tool for your law firm practice and generate seven figures in revenue for your business.

A Well-Optimized Law Firm Website Can Yield Huge Results

With your law firm’s website, you can use content marketing to your advantage to generate lucrative results for your business. Content and SEO allow you to attract users organically and convert traffic passively into new cases for your law firm.

As an example, a high-ranking webpage in a competitive market getting 1,000 users per month can get huge results:

  • Convert visitors at 2-5% = 20-50 leads.
  • Convert even 10-20% of leads = 2-10 cases.
  • Average $8000 revenue per case = $16,000-$80,000 monthly revenue from one page.

Over the course of a year, this could lead to high six-figures to seven-figures in revenue!

The Foundations Of A Revenue-Generating Law Firm Website

At its core, your law firm website should serve to speak to the needs, struggles, and interests of your target audience. It should be laser-focused on your practice area, who you serve, and what you have to offer.

With this in mind, a well-crafted website content strategy should define:

  • Your business goals (the cases you want).
  • What competitors are doing.
  • What pages to write and keywords to target.
  • How to use your content budget.
  • Your editorial calendar.
  • The purpose/intent of each page.
  • PR and backlink strategy.

Below, we’ll dive deeper into how to develop this strategy, build out amazing content, and achieve your seven-figure revenue goals.

1. Define The Cases You Want

The first step to developing a successful website marketing strategy is to define the types of legal cases you want.

This activity will help you determine the types of people you want to reach, the type of content you should create, and the types of SEO keywords you need to target.

That way, you end up marketing to a more specific subset of potential clients, rather than a broad range of users.

Not sure where to set your focus? Here are a few questions that might help:

  • Which of your cases are the most profitable?
  • What types of cases are you not getting enough of?
  • In what markets are you strongest?
  • In which markets do you want to improve?
  • Are there any practice areas you want to explore?

At the end of this activity, you might decide that you want to attract more family law cases, foreclosure law cases, or DUI cases – whatever it is, getting hyper-focused on the types of cases you want to attract will only make your website marketing even stronger.

2. Identify Your Top Competitors

One of the best ways to “hack” your website marketing strategy is to figure out what’s working for your competitors.

By “competitors” we mean law firms that are working to attract the types of cases you’re trying to attract, at the same level at which your law firm is currently operating.

I say this because I see many law firms trying to out beat and outrank the “big” fish and this can feel like a losing battle. You want to set your sights on your closest competitors, rise above them, and then get more competitive with your strategy.

Here are a few ways to identify your closest competitors:

  • Conduct a Google search of your legal practice area + your service area (e.g., “family law Kirkland”, “DUI lawyer LA”, “Denver probate attorney” etc.). Take note of the top-ranking domains (i.e., websites).
  • Use SEO tools like Semrush or Ahrefs to search your domain name. These tools will often surface close competitors to your domain.
  • Using the same tools above, conduct organic research on your domain to see what keywords you are already ranking for. Search these keywords in Google and see what other domains come up.
  • Use these tools to determine the domain authority (DA) of your domain. Compare this to the other top-ranking domains to see which domains have an authority score that’s similar to your own.

Be sure to look at your known business competitors as well.

These may or may not be ranking well in Google Search, but it’s still worth a peek to see if they are targeting any high-priority keywords that your website should be targeting.

3. Conduct A Content Audit Of Your Website

Your next step is to conduct an audit of your current website. This will allow you to take stock of what content is performing well, and what content requires improvement.

First, start with your main service pages.

Use SEO tools like Semrush or Ahrefs again to review the rank (position), performance, and keywords of each page. Identify any pages that are ranking low, or not at all.

Then, find “low-hanging fruit” pages. These are the pages that are ranking around position 5-10. They require less effort to optimize to reach those higher rank positions – compared to pages ranking at, say, position 59.

Next, use the same tools to conduct a “gap analysis” (most SEO tools have this feature).

This compares your website’s performance to that of your closest competitors. It will show you a list of keywords that your competitors are ranking for that your website is not ranking for at all.

Finally, create an inventory of what pages you already have, which need to be revised, and which you need to create. Doing so will help you stay organized and stay on task when developing your content strategy.

4. Plan Your Content Silos

By this step, you will have a pretty good idea of what pages you already have, and which pages are “missing” from your strategy (based on the list of keywords you are not yet targeting).

From here, you will plan what’s called “content silos”.

Here is the basic process:

  • Review an existing service page (if you have one) and optimize it as best you can. Ideally, this is a page that’s already performing well and is otherwise a “low-hanging fruit” page.
  • If you don’t have any existing service pages, create one based on one of your high-priority keywords. Again, these should be a keyword that is meant to attract your preferred type of cases.
  • Next, build a “silo” of content around your main page. In other words, create new pages that are topically related to your main service page, but that target slightly different keywords (ideally, “long-tail”, lower competition keywords).
  • Add internal links between these pages and your primary service page.
  • Over time, build backlinks to these pages (through guest posting, PR, content marketing, etc.)

Below is an example of a content silo approach for “personal injury:”

Image from author, November 2022Personal Injury law content silo

5. Identify Supporting Topics

As part of your website content strategy, you’ll then want to create other supporting content pieces. This should be content that provides value to your potential clients.

FAQs, blogs, and other service pages can support your main pages.

For example, if you are a DUI lawyer, you might want to publish an FAQ page that addresses the main questions clients have about DUI law, or a blog post titled “What to Do When You Get a DUI.”

There are a few tools you can use to research supporting topics:

  • Semrush – Use this tool to identify untapped keywords, content topics, and more.
  • AlsoAsked – Identify other questions people have searched for relevant to your primary topic.
  • Answer the Public – Use this search listening tool to identify topics and questions related to your practice area.

Below is an example of how the full content silo can come together for “Los Angeles Car Accident Lawyer:”

Accident lawyer content siloImage from author, November 2022Accident lawyer content silo

6. Build An Editorial Calendar

Once you have all of your content ideas down on paper, it’s time to develop your editorial calendar.

This is essentially a plan of what content you need to create when you want to publish it, and what keywords you plan to target.

This can be as simple as a Google Sheet or as fancy as a project management tool (like or Asana).

Here are a few tips to get you started:

  • Always prioritize main pages. These should be the first content pieces you create on your website.
  • Create or revise your main pages and monitor their performance. Use Google Analytics and other SEO tools to keep your eye on how your content is performing.
  • Depending on budget and urgency, you might start with all main pages, or go silo by silo. Determine which service pages are most important to you. You can create all of your main pages at once, or develop the entire silo as you go.
  • Keep a record of your target keywords. Just because you “optimize” for them doesn’t mean your content will automatically rank for your target keywords. In your editorial calendar, keep track of the keywords you wish to target – by page – so you have a record of your original SEO strategy.

What Makes A Winning Law Firm Website Strategy?

The key to achieving seven figures with your law firm website is content.

Content allows you to target your ideal clients, attract your preferred cases, engage your audience, and so much more.

A well-thought-out content strategy will empower your website to achieve more for your business than any other marketing channel could!

Above, I outline a few steps to developing this type of winning strategy. But, achieving excellence takes time.

I recommend keeping your eye on the prize, monitoring performance, and making updates as you go along.

This will help you reach your desired result.

More resources: 

Featured Image: PanuShot/Shutterstock

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘init’, ‘239948206198576’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘seven-figure-law-firm-website-marketing’,
content_category: ‘content vertical-seo’


Continue Reading


Essential Functions For SEO Data Analysis



Learning to code, whether with PythonJavaScript, or another programming language, has a whole host of benefits, including the ability to work with larger datasets and automate repetitive tasks.

But despite the benefits, many SEO professionals are yet to make the transition – and I completely understand why! It isn’t an essential skill for SEO, and we’re all busy people.

If you’re pressed for time, and you already know how to accomplish a task within Excel or Google Sheets, then changing tack can feel like reinventing the wheel.

When I first started coding, I initially only used Python for tasks that I couldn’t accomplish in Excel – and it’s taken several years to get to the point where it’s my defacto choice for data processing.

Looking back, I’m incredibly glad that I persisted, but at times it was a frustrating experience, with many an hour spent scanning threads on Stack Overflow.

This post is designed to spare other SEO pros the same fate.

Within it, we’ll cover the Python equivalents of the most commonly used Excel formulas and features for SEO data analysis – all of which are available within a Google Colab notebook linked in the summary.

Specifically, you’ll learn the equivalents of:

  • LEN.
  • Drop Duplicates.
  • Text to Columns.
  • Find and Replace.
  • IF.
  • IFS.
  • Pivot Tables.

Amazingly, to accomplish all of this, we’ll primarily be using a singular library – Pandas – with a little help in places from its big brother, NumPy.


For the sake of brevity, there are a few things we won’t be covering today, including:

  • Installing Python.
  • Basic Pandas, like importing CSVs, filtering, and previewing dataframes.

If you’re unsure about any of this, then Hamlet’s guide on Python data analysis for SEO is the perfect primer.

Now, without further ado, let’s jump in.


LEN provides a count of the number of characters within a string of text.

For SEO specifically, a common use case is to measure the length of title tags or meta descriptions to determine whether they’ll be truncated in search results.

Within Excel, if we wanted to count the second cell of column A, we’d enter:

Screenshot from Microsoft Excel, November 2022LEN formula excel

Python isn’t too dissimilar, as we can rely on the inbuilt len function, which can be combined with Pandas’ loc[] to access a specific row of data within a column:


In this example, we’re getting the length of the first row in the “Title” column of our dataframe.

len function pythonlen function python
Screenshot of VS Code, November, 2022

Finding the length of a cell isn’t that useful for SEO, though. Normally, we’d want to apply a function to an entire column!

In Excel, this would be achieved by selecting the formula cell on the bottom right-hand corner and either dragging it down or double-clicking.

When working with a Pandas dataframe, we can use str.len to calculate the length of rows within a series, then store the results in a new column:

df['Length'] = df['Title'].str.len()

Str.len is a ‘vectorized’ operation, which is designed to be applied simultaneously to a series of values. We’ll use these operations extensively throughout this article, as they almost universally end up being faster than a loop.

Another common application of LEN is to combine it with SUBSTITUTE to count the number of words in a cell:


In Pandas, we can achieve this by combining the str.split and str.len functions together:

df['No. Words'] = df['Title'].str.split().str.len()

We’ll cover str.split in more detail later, but essentially, what we’re doing is splitting our data based upon whitespaces within the string, then counting the number of component parts.

word count PythonScreenshot from VS Code, November 2022word count Python

Dropping Duplicates

Excel’s ‘Remove Duplicates’ feature provides an easy way to remove duplicate values within a dataset, either by deleting entirely duplicate rows (when all columns are selected) or removing rows with the same values in specific columns.

Excel drop duplicatesScreenshot from Microsoft Excel, November 2022Excel drop duplicates

In Pandas, this functionality is provided by drop_duplicates.

To drop duplicate rows within a dataframe type:


To drop rows based on duplicates within a singular column, include the subset parameter:

df.drop_duplicates(subset="column", inplace=True)

Or specify multiple columns within a list:

df.drop_duplicates(subset=['column','column2'], inplace=True)

One addition above that’s worth calling out is the presence of the inplace parameter. Including inplace=True allows us to overwrite our existing dataframe without needing to create a new one.

There are, of course, times when we want to preserve our raw data. In this case, we can assign our deduped dataframe to a different variable:

df2 = df.drop_duplicates(subset="column")

Text To Columns

Another everyday essential, the ‘text to columns’ feature can be used to split a text string based on a delimiter, such as a slash, comma, or whitespace.

As an example, splitting a URL into its domain and individual subfolders.

Excel drop duplicatesScreenshot from Microsoft Excel, November 2022Excel drop duplicates

When dealing with a dataframe, we can use the str.split function, which creates a list for each entry within a series. This can be converted into multiple columns by setting the expand parameter to True:

df['URL'].str.split(pat="/", expand=True)
str split PythonScreenshot from VS Code, November 2022str split Python

As is often the case, our URLs in the image above have been broken up into inconsistent columns, because they don’t feature the same number of folders.

This can make things tricky when we want to save our data within an existing dataframe.

Specifying the n parameter limits the number of splits, allowing us to create a specific number of columns:

df[['Domain', 'Folder1', 'Folder2', 'Folder3']] = df['URL'].str.split(pat="/", expand=True, n=3)

Another option is to use pop to remove your column from the dataframe, perform the split, and then re-add it with the join function:

df = df.join(df.pop('Split').str.split(pat="/", expand=True))

Duplicating the URL to a new column before the split allows us to preserve the full URL. We can then rename the new columns:🐆

df['Split'] = df['URL']

df = df.join(df.pop('Split').str.split(pat="/", expand=True))

df.rename(columns = {0:'Domain', 1:'Folder1', 2:'Folder2', 3:'Folder3', 4:'Parameter'}, inplace=True)
Split pop join functions PythonScreenshot from VS Code, November 2022Split pop join functions Python


The CONCAT function allows users to combine multiple strings of text, such as when generating a list of keywords by adding different modifiers.

In this case, we’re adding “mens” and whitespace to column A’s list of product types:

=CONCAT($F$1," ",A2)
concat Excelconcat Excel
Screenshot from Microsoft Excel, November 2022

Assuming we’re dealing with strings, the same can be achieved in Python using the arithmetic operator:

df['Combined] = 'mens' + ' ' + df['Keyword']

Or specify multiple columns of data:

df['Combined'] = df['Subdomain'] + df['URL']
concat PythonScreenshot from VS Code, November 2022concat Python

Pandas has a dedicated concat function, but this is more useful when trying to combine multiple dataframes with the same columns.

For instance, if we had multiple exports from our favorite link analysis tool:

df = pd.read_csv('data.csv')
df2 = pd.read_csv('data2.csv')
df3 = pd.read_csv('data3.csv')

dflist = [df, df2, df3]

df = pd.concat(dflist, ignore_index=True)


The SEARCH and FIND formulas provide a way of locating a substring within a text string.

These commands are commonly combined with ISNUMBER to create a Boolean column that helps filter down a dataset, which can be extremely helpful when performing tasks like log file analysis, as explained in this guide. E.g.:

isnumber search ExcelScreenshot from Microsoft Excel, November 2022isnumber search Excel

The difference between SEARCH and FIND is that find is case-sensitive.

The equivalent Pandas function, str.contains, is case-sensitive by default:

df['Journal'] = df['URL'].str.contains('engine', na=False)

Case insensitivity can be enabled by setting the case parameter to False:

df['Journal'] = df['URL'].str.contains('engine', case=False, na=False)

In either scenario, including na=False will prevent null values from being returned within the Boolean column.

One massive advantage of using Pandas here is that, unlike Excel, regex is natively supported by this function – as it is in Google sheets via REGEXMATCH.

Chain together multiple substrings by using the pipe character, also known as the OR operator:

df['Journal'] = df['URL'].str.contains('engine|search', na=False)

Find And Replace

Excel’s “Find and Replace” feature provides an easy way to individually or bulk replace one substring with another.

find replace ExcelScreenshot from Microsoft Excel, November 2022find replace Excel

When processing data for SEO, we’re most likely to select an entire column and “Replace All.”

The SUBSTITUTE formula provides another option here and is useful if you don’t want to overwrite the existing column.

As an example, we can change the protocol of a URL from HTTP to HTTPS, or remove it by replacing it with nothing.

When working with dataframes in Python, we can use str.replace:

df['URL'] = df['URL'].str.replace('http://', 'https://')


df['URL'] = df['URL'].str.replace('http://', '') # replace with nothing

Again, unlike Excel, regex can be used – like with Google Sheets’ REGEXREPLACE:

df['URL'] = df['URL'].str.replace('http://|https://', '')

Alternatively, if you want to replace multiple substrings with different values, you can use Python’s replace method and provide a list.

This prevents you from having to chain multiple str.replace functions:

df['URL'] = df['URL'].replace(['http://', ' https://'], ['https://www.', 'https://www.’], regex=True)


Extracting a substring within Excel requires the usage of the LEFT, MID, or RIGHT functions, depending on where the substring is located within a cell.

Let’s say we want to extract the root domain and subdomain from a URL:

left mid right ExcelScreenshot from Microsoft Excel, November 2022left mid right Excel

Using a combination of MID and multiple FIND functions, this formula is ugly, to say the least – and things get a lot worse for more complex extractions.

Again, Google Sheets does this better than Excel, because it has REGEXEXTRACT.

What a shame that when you feed it larger datasets, it melts faster than a Babybel on a hot radiator.

Thankfully, Pandas offers str.extract, which works in a similar way:

df['Domain'] = df['URL'].str.extract('.*://?([^/]+)')
str extract PythonScreenshot from VS Code, November 2022str extract Python

Combine with fillna to prevent null values, as you would in Excel with IFERROR:

df['Domain'] = df['URL'].str.extract('.*://?([^/]+)').fillna('-')


IF statements allow you to return different values, depending on whether or not a condition is met.

To illustrate, suppose that we want to create a label for keywords that are ranking within the top three positions.

Excel IFScreenshot from Microsoft Excel, November 2022Excel IF

Rather than using Pandas in this instance, we can lean on NumPy and the where function (remember to import NumPy, if you haven’t already):

df['Top 3'] = np.where(df['Position'] <= 3, 'Top 3', 'Not Top 3')

Multiple conditions can be used for the same evaluation by using the AND/OR operators, and enclosing the individual criteria within round brackets:

df['Top 3'] = np.where((df['Position'] <= 3) & (df['Position'] != 0), 'Top 3', 'Not Top 3')

In the above, we’re returning “Top 3” for any keywords with a ranking less than or equal to three, excluding any keywords ranking in position zero.


Sometimes, rather than specifying multiple conditions for the same evaluation, you may want multiple conditions that return different values.

In this case, the best solution is using IFS:

=IFS(B2<=3,"Top 3",B2<=10,"Top 10",B2<=20,"Top 20")
IFS ExcelScreenshot from Microsoft Excel, November 2022IFS Excel

Again, NumPy provides us with the best solution when working with dataframes, via its select function.

With select, we can create a list of conditions, choices, and an optional value for when all of the conditions are false:

conditions = [df['Position'] <= 3, df['Position'] <= 10, df['Position'] <=20]

choices = ['Top 3', 'Top 10', 'Top 20']

df['Rank'] =, choices, 'Not Top 20')

It’s also possible to have multiple conditions for each of the evaluations.

Let’s say we’re working with an ecommerce retailer with product listing pages (PLPs) and product display pages (PDPs), and we want to label the type of branded pages ranking within the top 10 results.

The easiest solution here is to look for specific URL patterns, such as a subfolder or extension, but what if competitors have similar patterns?

In this scenario, we could do something like this:

conditions = [(df['URL'].str.contains('/category/')) & (df['Brand Rank'] > 0),
(df['URL'].str.contains('/product/')) & (df['Brand Rank'] > 0),
(~df['URL'].str.contains('/product/')) & (~df['URL'].str.contains('/category/')) & (df['Brand Rank'] > 0)]

choices = ['PLP', 'PDP', 'Other']

df['Brand Page Type'] =, choices, None)

Above, we’re using str.contains to evaluate whether or not a URL in the top 10 matches our brand’s pattern, then using the “Brand Rank” column to exclude any competitors.

In this example, the tilde sign (~) indicates a negative match. In other words, we’re saying we want every brand URL that doesn’t match the pattern for a “PDP” or “PLP” to match the criteria for ‘Other.’

Lastly, None is included because we want non-brand results to return a null value.

np select PythonScreenshot from VS Code, November 2022np select Python


VLOOKUP is an essential tool for joining together two distinct datasets on a common column.

In this case, adding the URLs within column N to the keyword, position, and search volume data in columns A-C, using the shared “Keyword” column:

vlookup ExcelScreenshot from Microsoft Excel, November 2022vlookup Excel

To do something similar with Pandas, we can use merge.

Replicating the functionality of an SQL join, merge is an incredibly powerful function that supports a variety of different join types.

For our purposes, we want to use a left join, which will maintain our first dataframe and only merge in matching values from our second dataframe:

mergeddf = df.merge(df2, how='left', on='Keyword')

One added advantage of performing a merge over a VLOOKUP, is that you don’t have to have the shared data in the first column of the second dataset, as with the newer XLOOKUP.

It will also pull in multiple rows of data rather than the first match in finds.

One common issue when using the function is for unwanted columns to be duplicated. This occurs when multiple shared columns exist, but you attempt to match using one.

To prevent this – and improve the accuracy of your matches – you can specify a list of columns:

mergeddf = df.merge(df2, how='left', on=['Keyword', 'Search Volume'])

In certain scenarios, you may actively want these columns to be included. For instance, when attempting to merge multiple monthly ranking reports:

mergeddf = df.merge(df2, on='Keyword', how='left', suffixes=('', '_october'))
    .merge(df3, on='Keyword', how='left', suffixes=('', '_september'))

The above code snippet executes two merges to join together three dataframes with the same columns – which are our rankings for November, October, and September.

By labeling the months within the suffix parameters, we end up with a much cleaner dataframe that clearly displays the month, as opposed to the defaults of _x and _y seen in the earlier example.

multi merge PythonScreenshot from VS Code, November 2022multi merge Python


In Excel, if you want to perform a statistical function based on a condition, you’re likely to use either COUNTIF, SUMIF, or AVERAGEIF.

Commonly, COUNTIF is used to determine how many times a specific string appears within a dataset, such as a URL.

We can accomplish this by declaring the ‘URL’ column as our range, then the URL within an individual cell as our criteria:

Excel countifScreenshot from Microsoft Excel, November 2022Excel countif

In Pandas, we can achieve the same outcome by using the groupby function:

Python groupbyScreenshot from VS Code, November 2022Python groupby

Here, the column declared within the round brackets indicates the individual groups, and the column listed in the square brackets is where the aggregation (i.e., the count) is performed.

The output we’re receiving isn’t perfect for this use case, though, because it’s consolidated the data.

Typically, when using Excel, we’d have the URL count inline within our dataset. Then we can use it to filter to the most frequently listed URLs.

To do this, use transform and store the output in a column:

df['URL Count'] = df.groupby('URL')['URL'].transform('count')
Python groupby transformScreenshot from VS Code, November 2022Python groupby transform

You can also apply custom functions to groups of data by using a lambda (anonymous) function:

df['Google Count'] = df.groupby(['URL'])['URL'].transform(lambda x: x[x.str.contains('google')].count())

In our examples so far, we’ve been using the same column for our grouping and aggregations, but we don’t have to. Similarly to COUNTIFS/SUMIFS/AVERAGEIFS in Excel, it’s possible to group using one column, then apply our statistical function to another.

Going back to the earlier search engine results page (SERP) example, we may want to count all ranking PDPs on a per-keyword basis and return this number alongside our existing data:

df['PDP Count'] = df.groupby(['Keyword'])['URL'].transform(lambda x: x[x.str.contains('/product/|/prd/|/pd/')].count())
Python groupby countifsScreenshot from VS Code, November 2022Python groupby countifs

Which in Excel parlance, would look something like this:


Pivot Tables

Last, but by no means least, it’s time to talk pivot tables.

In Excel, a pivot table is likely to be our first port of call if we want to summarise a large dataset.

For instance, when working with ranking data, we may want to identify which URLs appear most frequently, and their average ranking position.

pivot table ExcelScreenshot from Microsoft Excel, November 2022pivot table Excel

Again, Pandas has its own pivot tables equivalent – but if all you want is a count of unique values within a column, this can be accomplished using the value_counts function:

count = df['URL'].value_counts()

Using groupby is also an option.

Earlier in the article, performing a groupby that aggregated our data wasn’t what we wanted – but it’s precisely what’s required here:

grouped = df.groupby('URL').agg(
     url_frequency=('Keyword', 'count'),
     avg_position=('Position', 'mean'),

groupby-pivot PythonScreenshot from VS Code, November 2022groupby-pivot Python

Two aggregate functions have been applied in the example above, but this could easily be expanded upon, and 13 different types are available.

There are, of course, times when we do want to use pivot_table, such as when performing multi-dimensional operations.

To illustrate what this means, let’s reuse the ranking groupings we made using conditional statements and attempt to display the number of times a URL ranks within each group.

ranking_groupings = df.groupby(['URL', 'Grouping']).agg(
     url_frequency=('Keyword', 'count'),
python groupby groupingScreenshot from VS Code, November 2022python groupby grouping

This isn’t the best format to use, as multiple rows have been created for each URL.

Instead, we can use pivot_table, which will display the data in different columns:

pivot = pd.pivot_table(df,
pivot table PythonScreenshot from VS Code, November 2022pivot table Python

Final Thoughts

Whether you’re looking for inspiration to start learning Python, or are already leveraging it in your SEO workflows, I hope that the above examples help you along on your journey.

As promised, you can find a Google Colab notebook with all of the code snippets here.

In truth, we’ve barely scratched the surface of what’s possible, but understanding the basics of Python data analysis will give you a solid base upon which to build.

More resources:

Featured Image: mapo_japan/Shutterstock

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘transitioning-from-excel-to-python-essential-functions-for-seo-data-analysis’,
content_category: ‘seo web-development’


Continue Reading


7 Ways To Improve Local SEO & Attract New Business



There is a big difference between the way standard organic SEO works and the way we should approach Local SEO.

Not only is searcher intent likely different, the algorithms Google uses to show the map pack differs from the main organic algorithms.

In this article, I’ll be taking you through the ways you can win new customers and improve your visibility through local SEO.

Top Ways To Improve Your Local SEO

1. Keep An Eye On Your Competitors’ Google Business Profile Q&As

Google Business Profile (GBP) has a great function that can do wonders for growing new business – the questions and answers feature.

If you use it well for your own organization, it can help convert customers who are otherwise on the fence.

But don’t stop there. Spend time researching your competitors’ Q&As, too. See what your potential customers are asking others in your industry.

How GBP Q&A Works

On your Google Business Profile, you may notice an “Ask a Question” button. Once clicked, users are taken through to a screen that allows them to submit a question.

Screenshot from Google Business Profile, September 2022Screenshot of Google Business Profile Ask A Question Feature

This next bit is key. The question does not get submitted to the owner of the profile. It gets submitted to the profile. That means it is visible to anyone who sees a Google Business Profile listing.

Once a question has been posted to your competitors’ Google Business Profile listing, you will be able to see it.

And once the question is answered, that information – and the engagement – is there for all in the future to see.

How Does This Help Build New Business?

These questions are a great way to encourage new business from local searchers. Questions are likely to be asked by people who have never visited that business before but are in your target market.

They are already engaging with the brand but need a bit more information before they commit to a visit.

For Your Own Listing

On your own GBP, you can use this opportunity to converse with a potential local consumer who is far down the conversion funnel.

If they are at the stage where they have found you and are considering you enough to ask some questions, a thoughtful response may be all it takes to see them walk through your doors.

On A Competitor’s Listing

Look at what questions your competitors’ customers and potential customers are asking. Use this to better fill out the information on your own profile and website.

If you are noticing a lot of questions being asked about the availability of gluten-free pizza from other pizza restaurants in your area, for example, you want to make sure you highlight your gluten-free products on your site and listing.

This type of research can keep you one step ahead of local competitors, especially if the questions they have been asked are slightly negative in tone.

Consider this question: “Do you still play loud music?”

If a potential restaurant-goer sees that question asked of another business, it immediately makes them consider the environment they will be eating their meal in.

It may make them wonder if they will really be able to enjoy the catch-up with their friends over a meal as they have planned.

Answer the questions being asked of your competitors on your own website and GBP before anyone asks. State in your description that customers will enjoy a meal accompanied by relaxing, ambient music.

This can put you at a significant advantage over your competitors for winning new business in your geography.

When you proactively answer a potential customer’s question before they even have to ask it, you demonstrate that you understand their needs and wants.

2. Tweak A Google Product Listing To Get More Exposure

Google allows businesses with GBP to upload details of the products they offer. This can be viewed by potential customers on both mobile and desktop search results.

The listings appear in the GBP in a carousel format on Maps and in both a carousel and under the Products tab in Search.

Both formats allow users to click on the product cards for more detail, to call, or visit the website.

How GBP Product Listings Work

Uploading your products to a Google Business Profile has gotten simpler. Google has released a new way of doing this called “Pointy.” Pointy is a device that is plugged in between the barcode scanner and the point-of-sale device. As products are scanned in, Pointy adds them to Google.

This is a quick way of uploading your product inventory to your Google Business Profile. There are restrictions around this, however, as Pointy is only available in some countries and also isn’t suitable for products without barcodes (bunches of flowers, for instance).

It is still possible to upload products manually. Simply sign in to your profile and click Edit Profile > Products > Add Product.

How Does This Help Build New Business?

You may be looking to showcase some products over others for a variety of reasons. You may have a surplus of stock in one of your locations, for example.

Bringing that stock to the forefront of that location’s GBP listing will help alert local customers to it. It will allow you to target specific products more to relevant audiences, dependent on their location.

For instance, seasonal products may be better served first. Perhaps the geographic location of your car repair shop is set for an unseasonal snow flurry. Edit your snow tire listings to bring them to the beginning of the carousel.

This could enhance the visibility of your product at just the right time for a new customer in your target location to see them.

3. Use Google’s Business Messages While You Can

Google Business Profile can include functionality that allows businesses to correspond with customers straight from the SERPs.

When activated, GBP will display a Message button that users can click on to start direct messaging with the business.

How GBP Business Messages Work

This functionality has existed since 2017 in Google Business Profile and since 2018 in Google Maps. It has only recently made it onto the desktop, however.

If you are an owner of a GBP, you should see the option in your desktop dashboard to Turn on messaging under the Messages tab.

Google My Business Turn on messaging option.

Google My Business Turn on messaging option.

You can then set items like an initial auto-responder to be sent out when a visitor first messages you are using this service.

To make sure the service is a timely one, Google recommends you reply to all messages within 24 hours.

If you don’t, Google may deactivate the messaging service on your account. Your response times can also show in Google Search and Maps.

Google may display ‘Usually responds in a few minutes,’ ‘Usually responds in a few hours,’ ‘Usually responds in a day,’ or ‘Usually responds in a few days,’ depending on your average reply time.

How Does This Help Build New Business?

Not everyone has the time (or inclination) to call up a business they have yet to engage with. Allowing potential local customers to message you straight from your GBP is an excellent way of streamlining conversations with them.

If you respond quickly, your chances of that potential customer converting are greatly increased.

This is of particular use to local businesses that perhaps don’t use centralized call centers or messaging. It can be another touch point that shows the personalization of the business based on the location that the consumer is in.

Consider the offers, services, and tone of voice that might be most appropriate to your customers in that particular geography. This is your opportunity to highlight again how well you know your customers.

Make use of the local name for the area your business is in. Talk about the specific events and charities you support in the area.

Any additional indication that your business serves the local population specifically can help to reinforce your relevance to the potential customer who has contacted you.

Now that the functionality is available in such a wide range of places on the web, it would be a wasted opportunity not to engage with your potential customers in this way.

4. Update Your GBP With All Relevant Newly Available Attributes

Google keeps updating the features available through its Google Business Profile property. Make sure you keep your listing fully populated with the relevant attributes as they become available.

How Do New Attributes Work

Google frequently adds functionality to Google Business Profile that your business might be eligible to use. Not every new feature is available to all types of businesses, however.

Whether you can access new updates depends on what category is set as your primary in GBP.

To keep up to date with what new features are becoming available and who is eligible for them, visit Google’s GBP announcements page.

How Does This Help Build New Business?

With any new change to Google Business Profile, early adoption will put you ahead of the pack. Although these attributes will not necessarily affect your rankings in the map pack, they can make your business more attractive to prospective local customers.

For instance, attributes can include details of the business’s ownership. For example, it’s possible to include attributes like “women-owned” and “black-owned” to your Business profile.

Google also introduced the option to denote a business’s support for the LGBTQ+ community through “LGBTQ+ friendly” attributes.

A business showing that it is inclusive and supportive of minority groups can help members of those groups to feel welcomed. For some people, knowing they will be welcomed at a business can be the difference between them visiting there instead of a competitor whose support isn’t guaranteed.

LGBTQ+ Support AttributeScreenshot from Google Business Profile, September 2022LGBTQ+ Support Attribute

5. Join Local Marketplaces And Forums

The key to marketing your local business well is understanding what your audience is looking for. A great way of understanding your target market is by spending time where they are.

This includes online.

Make sure you register your business in local directories and forums. This is not so much for the traditional citation benefit. It’s so you can be amongst your prospective customers, hearing what they are talking about.

How Local Marketplaces & Forums Work

Online Marketplaces

Look on platforms like Facebook for marketplaces relevant to your location and products. You don’t necessarily need to be engaging with the audience to learn more about who they are and what they respond to.

For instance, if you sell locally created craft products in your store, you can get a feel for how much your audience is willing to pay for products by seeing what similar items are being sold for in your town’s Facebook Marketplace.

By watching what your local audience is saying about prices, quality, shipping, and sourcing of products, you can begin to understand more about your audience’s preferences.


If you are a local pizza restaurant, you would do well to join Reddit subreddits for your city and read the threads that talk about restaurants in your area.

What is your local audience saying about your competition? Are they sick of pizza restaurants and really want someone to bring something new to the area?

Perhaps they are enthusiastic about local independent shops and want to support them more.

How Does This Help Build New Business?

This kind of information can help you to tailor your search marketing strategy, tone of voice, and more.

Go to places where your target audience members are talking freely about your local area. Find out what they want from their local businesses.

If you are feeling brave, you can even interact with your audience on these platforms. This has to be done sensitively and authentically.

Most people don’t want to be mined for information without their consent. Be open and honest when reaching out for feedback on these sites.

The more you can watch and learn from your audience, the more likely you are to be able to offer products and services they will respond well to.

6. Don’t Neglect Bing, DuckDuckGo, And Others

Google is not the only search engine you need to be concerned with. There are others, too, that might be the first port of call for users looking for information on local businesses.

How Other Search Engines Work

You may see the vast majority of the organic traffic going to your site coming from Google. Don’t forget that you might not be tracking all of the ways customers discover you through search.

Your profile showing in the SERPs might not generate a click. As a result, it will not show up in your web analytics program.

So, unless you are measuring impressions across different search engines, you will not know that your business has been seen on the likes of Bing or DuckDuckGo.

DuckDuckGo’s maps are powered by Apple Maps. Therefore, if you want your business to appear in the DuckDuckGo local map pack, you will need to have your business set up with an Apple Maps Connect profile.

Similarly, Bing uses Bing Places to power their local map functionality. Setting up and optimizing a Google Business Profile listing will not help you with increasing organic visibility on Bing.

We are seeing an increase in the popularity of other search engines over time, and for some locations, Google is not the primary search engine used.

If you have physical stores or business locations outside of the U.S., you should look at which search engines are also popular in those regions.

Make sure you utilize the local map functionality of these other search engines.

How Does This Help Build New Business?

Yet again, being where your competitors are not will put you in good stead.

If your competitors are not appearing in the Apple Maps results in DuckDuckGo, you are going to be far more likely to win the business of local searchers using that platform.

7. Keep An Eye On Your Reputation

You may be keeping a close eye on the reviews left on sites like TripAdvisor. You even check your own Google Business Profile listing regularly.

But are you keeping on top of some of the other places in the SERPs which might be giving potential customers an outsider’s view of your business?

How Reputation Monitoring Works

Top and middle-of-the-funnel local search queries, such as [car mechanic telford], can bring back a variety of features in the SERPs.

Prominently Featured Review And Directory Sites

Take a look at this SERP result:

Prominently Featured Review And Directory SitesScreenshot from search for [car mechanic telford], Google, September 2022Prominently Featured Review And Directory Sites

The top carousel lists large directories, social media sites, and niche directories. This gives potential customers access to information about your company – and potentially even reviews – on sites you may not even be checking.

Aside from the inaccurate data about your company that these sites may contain, what have customers, former employees, or even competitors said about you?

Given that links to these sites appear as the first feature in the Google SERPs for this query, it would stand to reason they may get a lot of visibility from your potential customers.

People Also Ask

If customers are in the process of narrowing down their choice of business, they might start searching for specific information about those businesses. That can often trigger a “People Also Ask” feature to appear.

When searching for [is (name of a mechanic) in Telford any good], the following PAA box appeared, talking specifically about that brand.

PAA for car mechanic brand.Screenshot from Googe search, September 2022PAA for car mechanic brand.

That first “People Also Ask” question is, “why is [brand] so expensive?” That does not inspire much confidence in the value for money of this particular mechanic.

Although there is not much you can do to control what questions appear in the “People Also Ask” section, it is important to try to influence the perception of those who may click on this question.

Write a page addressing this question and try to get it ranking. That way, when someone interested in your local business clicks on this question, they at least will see your response around “the quality service,” “not compromising by using cheap parts,” and “highly-skilled technicians who you pay well for their expertise.”

How Does This Help Build New Business?

It is crucial to remember that what a potential customer sees about you may not just be the information you are writing on your website or Google Business Profile listings.

It might not even be the reviews left on sites you are closely monitoring and responding to.

A potential customer will be influenced heavily by others’ opinions and experiences of your business. Local businesses tend to attract a lot of reviews because they are promoted by sites that encourage them to be left.

A negative perception of your business will likely be the difference between you winning or losing a new customer.

Always monitor the SERPs around your core lead-generating search terms. Identify where negative perceptions of your business could be formed.


There are many aspects of SEO that you need to consider if you want your business to do well with your local audience.

How your website appears for searches with local intent in Google Maps and the standard SERPs can make or break your business.

If you want your brick-and-mortar business to succeed online, make sure you develop a robust local SEO strategy.

More Resources:

Featured Image: Rido/Shutterstock

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

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

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


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

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘ways-to-improve-local-seo’,
content_category: ‘local-search’


Continue Reading