How to Restore the Get Shortlink Button in WordPress

Do you want to create a shortlink of your WordPress blog posts or pages? WordPress shortlinks are useful for sharing in your emails, facebook messages, or even text messages. It was a default feature until WordPress version 4.4. Recently, one of our readers asked how to bring back the get shortlink feature in WordPress. In this tutorial, we will share how to restore the get shortlink button in WordPress.

How to Get the Get Shortlink Button in WordPress

What is the Get Shortlink Button in WordPress?

Get Shortlink button is a WordPress feature that allows you to easily get a short link of your WordPress blog post or page. It used to be located right next to the permalink area in the post edit screen.

Get Shortlink Button

However if you recently started your blog, then you will not see this feature on your WordPress site because it was removed after WordPress version 4.4.

We find this feature to be quite useful for easily getting shortlinks for our blog posts that look like this:

If you want to bring back the get shortlink feature on your WordPress site, then you’re in the right place.

Let’s take a look at how to bring back the get shortlink button back in WordPress.

Method 1: Using WP Bitly plugin to Add Get Shortlink Button

This method is easier and recommended for most users. This method also allows you to create custom branded short URLs for your website.

First thing you need to do is install and activate the WP Bitly plugin. For more details, see our step by step guide on how to install a plugin in WordPress.

Upon activation, this plugin will automatically add the Get Shortlink button on your post edit screen.

Get Shortlink Button

Once you click on this button, it will show you the shortlink for your WordPress posts and pages. This shortlink can be shared in your emails and messages, so your audience can reach directly to the page.

Page Shortlink

You can also use the WP Bitly plugin to create custom branded shortlinks for your blog posts like we do on WPBeginner. See our step by step guide on how to create your own customized short url in WordPress.

Method 2: Manually Adding Get Shortlink Button

This method requires you to add code to your WordPress files. If you haven’t done this before, then please take a look at our guide on how to copy and paste code in WordPress.

You will need to add the following code to your WordPress theme’s functions.php file or a site-specific plugin:

add_filter( 'get_shortlink', function( $shortlink ) {return $shortlink;} );

This code will add the shortlink filter to display the Get Shortlink button in your WordPress pages and posts.

Get Shortlink Button

You can click on this button to get the shortlink for your post or page.

We hope this article helped you bring back the Get Shortlink button in WordPress. You may also want to check out our list of the must have WordPress plugins for business websites.

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.

The post How to Restore the Get Shortlink Button in WordPress appeared first on WPBeginner.

How to Change the Default Search URL Slug in WordPress

Do you want to change the default search URL slug in WordPress? By default, WordPress search URLs are not user friendly. In this article, we will show you how to easily change the default search url slug in WordPress and make it more SEO and user friendly.

Changing default WordPress search URL slug

Why Change Default Search URL Slug in WordPress

WordPress uses SEO friendly URL structure for all pages on your website. Typical SEO friendly WordPress URLs look like this:

As you can see, these URLs are quite easy to understand for users as well as search engines.

However, WordPress still uses non-friendly URL for search results page. A typical search URL in WordPress looks like this:

This URL structure doesn’t match the rest of your website URLs. While some WordPress search plugins improve the search results, most don’t do anything about the search URL itself.

What if you can make your search URL look like:

Let’s take a look at how to make the WordPress search page URL slug more SEO friendly.

Changing Search Page URL Slug in WordPress

For this tutorial you will need to edit your WordPress theme files. If you haven’t done this before, then please take a look at our guide on how to copy and paste code in WordPress.

Method 1. Change WordPress Search URL Slug via Functions File

This method is easier and recommended for most users.

First, you need to copy and paste the following code in your theme’s functions.php file or a site-specific plugin:

function wpb_change_search_url() {
	if ( is_search() && ! empty( $_GET['s'] ) ) {
		wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
add_action( 'template_redirect', 'wpb_change_search_url' );

Don’t forget to save your changes.

You can now go to your website and try using the search feature. You will notice that the search URL looks like this:

Method 2. Change Search URL Slug via htaccess File

The .htaccess file is often used to set up redirects and other website configuration tasks. You can also use it to change the default search URL slug in WordPress.

Your .htaccess file is located in your website’s root folder, and you will need to use FTP or File Manager app in cPanel to edit it. Refer to this guide, if you can’t find the .htaccess file.

In your .htaccess file, you need to paste the following code at the bottom:

# Change WordPress search URL
RewriteCond %{QUERY_STRING} \?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]

Don’t forget to save your changes and upload the .htaccess file back to the server.

You can now go to your website and use the search feature. You will notice the search URL will now look like this:

We hope this article helped you change the default search URL slug in WordPress. You may also want to see our list of 55+ most wanted WordPress tips, tricks, and hacks.

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.

The post How to Change the Default Search URL Slug in WordPress appeared first on WPBeginner.

Let’s celebrate International Women’s Day!

Today, we celebrate International Women’s Day. And, as we are celebrating, we offer a 11% discount on all of our products! In this post, I’ll first explain the importance of International Women’s Day. After that, I’d like to invite you all to celebrate International Women’s Day with us. Share your story about a WordPress woman who inspired you. You can leave your story in the comments or share  it on social #awesomeWPwomen.

So everyone, go grab your 11% discount today

We’ve come a long way!

When my grandmother was born, in 1917, women weren’t allowed to vote in the Netherlands. When my mother was born in 1952, married women weren’t allowed to work. But when I was born in 1981, I had all the same rights and opportunities my older brother had. Within three generations, the legal position of women in the Netherlands had changed tremendously. This was the work of lots of powerful feminists like Mary Wollstonecraft, Simone de Beauvoir, Wilhelmina Drucker and many many others. That’s why today, we should celebrate the progress of women’s rights we’ve made so far!

But still…A long way to go

Although a lot has improved for many women across the world, inequality between gender remains. Women still face sexual violence and gender discrimination. We’ve come a long way, but at the same time, we still have a long way to go. It remains important to strive for total equality. The best results will be achieved when the best, most qualified people are hired for the most important positions, regardless of their gender. Intelligence, perseverance, discipline, and capabilities instead of gender should decide who gets that one important job.

Women in tech

Gender inequality is especially persistent in the tech community. If you Google ‘Women in Tech statistics’ you’ll not find much to celebrate. Women are really, really underrepresented in the tech sector, especially in executive functions and management roles. They earn less, face sexual harassment and quit much more often. 

Become a technical SEO expert with our Technical SEO 1 training! »

Technical SEO 1 training Info

What about WordPress?

The WordPress community is also a tech community. Nevertheless, it feels really open, really friendly towards women. At least that’s my experience. There are much more women at WordCamps than at other tech conferences. At WordCamps, at least 25% of the visitors are female. That’s a lot, compared to other tech conferences (yes, I know that’s sad). Some WordCamps even get a 50/50 rate for male and female speakers at their event. Still, there’s a lot of room for improvement, also in the WordPress community.

We need powerful role models

Solving the problem of gender inequality is not going to happen overnight. The causes for it lie within societal and cultural factors that are really hard to change. What we CAN do is to raise awareness of the inequality and the necessity to change it. At the same time, we should celebrate all of the successful women out there. We need powerful role models. We need to know and see women we can look up to.

A few weeks ago, my 8-year old daughter came home from her first lessons in coding. I asked her what she liked best. She started telling me about CSS and about what Irene – one of our developers at Yoast who was teaching the course – told her about it. And, that she wanted to learn to write code and be a developer just like Irene. For her, Irene was a role model. Somebody she could identify with. My daughter said: ‘I like Irene best, of course, because she is a girl. And because we have the same hair.’ 

Inspiring role models are always people we can identify with. Gender is a really important aspect of identifying. Let’s give our daughters those inspiring role models. Let’s give those female developers, female CEO’s and female presidents a big stage. That’s why international women’s day is important. That’s why it’s important to give a stage to as many women as possible on those tech conferences, on WordCamps. And that’s why I want a round of applause for some of the women from the WordPress community that serve as role models and inspirations (at least for me).

A big hooray for some of my big inspirations:

I am a very big fan of Julliette Reinders Folmer, who’s a consultant, developer, public speaker, a major contributor to WordPress and basically an all-round superhero. Thank you Julliette, for your leading role in the WordPress community and for being such an inspiration for me. You inspired and helped me to take the stage (on WordCamps) myself.

And, my daughter isn’t the only one who is very impressed by Yoast’s Irene Strikkers. Irene is a big inspiration for me too. Irene came to work at Yoast only two years ago and did not know how to write code. What she learned within those two years is so amazing. And I am totally sure she’s going to do many more amazing things in the years to come. Irene, you are an awesome WP woman!

Within the WordPress Community, we have so many more women to look up to. For example: Heather Brunner, Helen Hou-Sandi, Tammie Lister, Heather Burns, Rian Rietveld and Mika Epstein. But there are many, so many more. Which WordPress woman was an inspiration to you? And why? Please share your story in the comments or on social #awesomeWPwomen. Let’s give those awesome WP women that stage today!

My all-time biggest inspiration was born 8 years ago. My daughter Wende. She’s the brightest, most talented, most beautiful and funniest girl alive. She doesn’t understand gender inequality. And I don’t want her to ever understand.

Now, go grab your 11% discount !

Read more: ‘3 reasons why Open Source is awesome’ »

The post Let’s celebrate International Women’s Day! appeared first on Yoast.

The journey towards Yoast SEO 7.0

Joost de Valk founded Yoast. For a long time, Joost was the only developer working on Yoast SEO. He came up with all the features and implemented all the code; he did everything. As the company grew, we created a large development team. Joost always remained part of the development team and came up with most of the new features, but he did not write much code himself anymore. Until this release. Joost de Valk wrote most of the code of the Yoast SEO 7.0 release himself. So why is that? And what makes this release so very special? Time to ask Joost de Valk some questions about Yoast SEO 7.0.

Why did you do the coding for this release yourself?

“I had promised myself to get more involved with the product again. The growth of the company had me preoccupied with other things, and I wanted to get back to the core business of Yoast SEO again. I enjoy writing code. It makes me happy.”

And, as you started out, you just decided to make it the biggest release in years?

“Well, as I was diving into the code we were also updating our online course on the plugin. So I was making all kinds of videos and screencasts explaining the plugin. I noticed so many things that were outdated or just not user-friendly. So many things were tough to explain. That process of making our online course gave me many ideas for improvements. And once I started improving, I came up with even more ideas. One thing led to the next… and the next…” 

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin Info

What did you like best about your coding adventure?

“I was in awe of the progress our development team has made. Working with them was great fun. Back in the days, it was just me and my computer. Now, somebody gets to review my code, and someone else does the acceptance test. That’s a great system. That process has made me a better developer. I learned so much in just these last few weeks. The team has become so much better.”

What thing in this release are you most proud of?

“We made solid progress in UX here. We had so many options and toggles in Yoast SEO. Most of the questions were asked in such a difficult way. They were so very technical, aimed at SEOs like I was myself when I first built the plugin. I think this release takes us a step closer to our mission: SEO for everyone. Our plugin isn’t just for SEOs and developers. Everyone should be able to use it. I feel we made it a lot more user-friendly with the new changes. That’s what I’m most proud of.”

What will the reactions of our users be? Were you nervous?

“No, I wasn’t nervous at all. We tested with users and the first responses were really positive. Everybody is enthusiastic. I do understand that some people will miss some old features and toggles. Some people might need to re-do some screenshots, I know we certainly have to. But overall, I don’t expect people to be upset by this release. It’ll make Yoast SEO so much easier to set up.”

Read more: ‘Yoast SEO 7.0: Making SEO easier for everyone’ »

The post The journey towards Yoast SEO 7.0 appeared first on Yoast.

Understanding Readme.txt

At it’s heart, the Readme.txt file is pretty basic. You put in the information, it generates a WordPress page. Of course, it’s not all simple magic, and there are some weird things to be aware of.

To help people better understand how it works, the Plugin Directory documentation has been updated, but here’s a quick primer:

If you use Tags, so will the directory

If you put the stable version of 1.2.3 in your readme, the rest of the content will be pulled from /tags/1.2.3 and not the trunk folder.

Readmes use Markdown (mostly)

Most Markdown calls work as expected. Tables do not. But this means don’t put JS or CSS in your readme. It will break things.


A YouTube or Vimeo link on a line by itself will be auto-embedded. It’s also possible to embed videos hosted on VideoPress using the wpvideo shortcode.

(File) Size Matters

If your Readme is over 10k, weird parsing things happen. Some tips to keep it small:

  1. Move your previous versions’ changelogs to their own file – changelog.txt
  2. Self-host seriously intensive documentation
  3. Make your readme a ‘how to’ and ‘why this is awesome’ but not a sales pitch for your pro version
  4. Don’t keyword stuff (someone dropped their readme by 4k when they cleaned it up)

Well written readmes get more users

Want to rank higher? Write a good readme. It’s actually much less about keyword stuffing than it is keeping users. After all, we’ve all seen a plugin with 20k downloads but only 10+ active users. That means you’re getting people’s attention and not delivering. So write a good readme that sells what you do, and sells it well. Don’t embellish, like saying you’re the ‘best’ contact form plugin. Ditch the hyperbole and just write good. If you can’t, hire a copy writer. It’ll pay off.

How to Create an Online Marketplace using WordPress

Do you want to create an online markeplace using WordPress? Online marketplace websites allow your users to buy and sell items by setting up their own mini stores within your eCommerce website. In this article, we will show you how to easily create an online marketplace using WordPress.

Building an online marketplace using WordPress

What Do You Need to Start an Online Marketplace using WordPress?

First you need to make sure that you are using the right website platform, and since you’re reading this article, you’re in the right place.

There are two types of WordPress available: vs One is a limited blog hosting service while the other is known as the self-hosted WordPress which you’ve likely heard tons about. See the full comparison between vs

We recommend using because it gives you the freedom and access to all WordPress features out of the box.

To start an online marketplace using self-hosted WordPress you will need the following:

  • A domain name (For example,
  • Web hosting account (This is where your website’s files are stored)
  • SSL Certificate (To securely accept online payments)
  • WooCommerce (best WordPress eCommerce addon)
  • Online marketplace addon

The entire setup can take up to 40 minutes, and we will walk you through every step one by one.

Ready? Let’s get started.

Step 1. Setting up Your Ecommerce Platform

First step is to buy a domain name and a web hosting account. You don’t just need a web hosting, but you will need a service that specializes in WooCommerce hosting because this is the software that we will be using as our eCommerce platform.

Typically a domain name costs $14.99/year, web hosting 7.99/month, and SSL certificate 69.99/year.

Now this seems like a lot of money if you are just starting out.

Fortunately, Bluehost an officially recommended WordPress and WooCommerce hosting provider has agreed to offer our users free domain + SSL and discount on their cloud WordPress hosting.

Basically, you can get started for $6.95 / month.

→ Click Here to Claim This Exclusive Bluehost Offer ←

Once you have purchased hosting, then follow our step by step tutorial on how to start an online store for complete setup instructions.

You would now have a WordPress website with WooCommerce installed on it. However, by default WooCommerce assumes that your website is a single vendor website, so it is not possible for other users to add their own products to your website.

Let’s change this.

Step 2. Turn Your WooCommerce Site into an Online Marketplace

First you need to install and activate the WC Vendors plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, head over to WooCommerce » WC Vendors page to configure marketplace settings.

WC Vendors settings

On this screen, you need to set a commission rate that you will pay to each vendor. This rate could also be overridden for individual products or vendors.

The default settings on the page will work for most sites, but you can review and change them as needed.

Don’t forget to click on the ‘Save General changes’ button to store your settings.

Next, you need to switch to the products page. On this screen, you can choose which items to hide from vendors when they are adding a product.

Configure products settings for vendors

WC Vendors allows you to setup vendor capabilities and permissions. Head over to the Capabilities tab on the WC Vendors settings page.

WC Vendors capabilities

Next item on the WC Vendors settings page is to setup pages.

The plugin will automatically create pages to use for vendor dashboard, shop settings, and orders page. You can use a different page if you would like by using the shortcodes shown below each page.

Setting up vendor pages

One page that is not automatically created by the plugin is the terms page. These are the terms that a vendor has to agree to when submitting their application.

To create a terms page, you can simply create a new page in WordPress and add the terms and conditions in plain text describing what vendors can sell, how they will get paid, how to settle disputes, etc.

Once you have created a terms page, you can return back to this section and select your newly created page here.

The final item on WC Vendors settings page is the most important one, the Payments. By default, WC Vendors uses PayPal Adaptive Payments to pay vendors.

You will see a link to setup PayPal adaptive payments. After you have set it up, you can choose when you want to pay the vendors.

Scheduling payments

Now that WC Vendors is all set up, let’s setup WooCommerce for a multi-vendor environment.

Step 3. Enable Account Management in WooCommerce

First you need to visit WooCommerce » Settings page and click on the ‘Accounts’ tab. From here you need to check the boxes next to customer registration option.

Enable customer registration in WooCommerce

Don’t forget to save your changes.

Step 4. Setting Up Navigation Menus

Now that your multi-vendor marketplace setup is finished. It is time to make it easy for your users to find their way around your website.

To do that, you need to visit Appearance » Menus page. You will need to add your user account and checkout pages to the navigation menu.

Add to menu

Don’t forget to click on the ‘Save Menu’ button to store your changes. For more detailed instructions, see our guide on how to add navigation menus in WordPress.

If you don’t have a My Account page, then simply create a new page in WordPress and add the following shortcode in the post editor.


Step 5. Testing Your Marketplace Website

Your online marketplace website is now ready for testing. You can visit your website in a new browser window and create a new account by clicking on the My Account link at the top.

Testing your website

From here, both customers and vendors can login to their accounts as well as create a new account.

Register as vendor

Once users create a new account, you will recieve an email notification. If you are unable to recieve email notifications, then take a look at our guide on how to fix WordPress not sending email issue.

You can also view new vendor applications by visiting Users » All Users page. You will see all new vendor requests as ‘pending vendor’, and you can approve or deny applications by clicking the link under their username.

Approve vending vendors

Once approved, these vendors can log in to their accounts and add their products by visiting their vendor dashboard. They can also view their orders and sales reports.

Vendor dashboard

The first thing your vendors need to do is to setup their shop settings by clicking on ‘Store Settings’ link.

Shop settings

They will need to provide their PayPal email address to recieve payments. After that they can enter their shop name and description.

Once a vendor adds a new product, you will get a notification email and see an icon next to the products menu. You can then edit a product, approve it, or delete it.

Pending products

Your shop page will clearly show the products sold by vendor’s shop name.

Sold by vendor

We hope this article helped you learn how to create an online marketplace using WordPress. You may also want to see our pick of the best WooCommerce themes, best WooCommerce plugins, and the ultimate WordPress SEO guide for beginners.

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.

The post How to Create an Online Marketplace using WordPress appeared first on WPBeginner.

Reminder: Paying for reviews is a guideline violation

Normally this comes up because we have to explain that paying a single person for a review is bribery.

This isn’t that.

I’m talking about when company or consultant on those websites like Fourrer (not it’s real name) offers to, for $50 or $450, leave 5 star reviews on your plugin. That’s a practice known as ‘salting’ (go look up ‘salting mines’ if you’re interested in why) and it is prohibited behaviour.

Reviews of your plugins should be made by users who actually use the plugin. When you pay people, either individually or en masse, to review your product, you get disingenuous reviews that are inclined to be of a higher nature. When you pay a company to get a series of 5-star reviews, you’re outright lying to people. You’re making them believe other users have reviewed when they have not.

If we catch you paying for reviews, you will lose ALL reviews made during the time period. Sadly, this is because we do not have a way to quickly or easily verify each and every review and user account. It’s an inefficient use of our resources to do so manually. In addition, we cannot accept a developers ‘word’ about which are and are not the purchased reviews, as many have lied about that in the past, and few have incentives to be fully honest. Finally, the fate of ‘valid’ reviews caught up in the removals are considered ‘fruit of the poisoned tree’ and cannot be restored.

And if that’s not bad enough, if you do it again, you lose your plugins.

Don’t pay off people for reviews.

Indexing in Yoast SEO: Show x in search results?

Before a search engine can rank a page or a post it needs to index it. A crawler must discover a piece of content before it can evaluate if it is a valuable addition to its index. One of the ways crawlers discover pages, is by crawling XML sitemaps. After a page has been indexed, a search engine can rank the piece of content if it fits the users search query best. Yoast SEO makes it easy for you to determine what should be indexable.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin Info

This is part of the new Yoast SEO 7.0 release »

Show x in search results?

Determining what has to be indexed by crawlers and what not tends to be hard to understand and it’s easy to make a mistake. You wouldn’t be the first to have unknowingly set a whole post type to noindex, making it unavailable to search engines. We’ve thought long and hard about this and drastically simplified this process for you. Now it all boils down to asking you a straightforward question: Do you want x to appear in search engines?

show in search results xml sitemaps

You can find the individual settings for making your content available for indexing in the corresponding parts of Yoast SEO. You’ll find the setings for posts and pages in the Content Types part of the Search Appearance tab. Taxonomies like categories and tags can be found in the Taxonomies tab.

By saying Yes to the ‘Show Posts in search results’ question in the post settings, for instance, you make sure that your posts will appear in the XML sitemap and, therefore, in the search results.

If you want to exclude something, you can switch this toggle to No, and the taxonomy or post type will not appear in the XML sitemap. Because of that, it will not appear in the search results. Whenever you set something to not appear in search engines, it will be noindexed and kept from the XML sitemap.

We’ve taken away a lot of the confusion around indexing content and XML sitemaps by simplifying things. But, most importantly, it is now so much easier to determine what should and should not appear in search results.

More on XML sitemaps

XML sitemaps are a kind of treasure map for search engine robots. They crawl them to discover new or updated content on your site. Every site benefits from a sitemap. Your rankings won’t soar if you add one, but it does help the crawlers to discover your content that much easier. If you need more information about the use of XML sitemaps on your site, we have some further reading for you:

Read more: ‘What is an XML sitemap and why should you have one?’ »

Keep reading: ‘The sense and nonsense of an XML sitemap’ »

The post Indexing in Yoast SEO: Show x in search results? appeared first on Yoast.

Help us test Yoast SEO 7.0

We have got something special for you, but before we release it for real, we need your help testing it: Yoast SEO 7.0. This is one of the biggest releases we have ever done, hence the jump from version 6.3 to 7.0. We’ve greatly simplified the interface, deprecated unused features and combined others into smarter features. By cleaning up our code, we have also drastically improved the performance of the plugin. Now, we need your help testing Yoast SEO 7.0 so we can fix every bug we can find before the final release two weeks from now.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin Info

How to test Yoast SEO 7.0

You can test the latest beta for Yoast SEO 7.0 by downloading it and installing it in your WordPress backend. We would advise you to install it on a test install or staging environment. Installing it on a live site is at your own risk. As always, make a backup before playing with beta software.

Download Yoast SEO 7.0 beta here »

Please report any issues you find in our Yoast SEO GitHub repository. You can find more information about the process on the Contributing to Yoast SEO page. Together, we can make this an incredible release.

What’s changing in Yoast SEO 7.0?

There’s going to be a lot of changes in Yoast SEO 7.0, both visible and invisible. See the changelog for the full list of changes. Here, I’ll go over some of the most obvious changes within your favorite SEO plugin. It all started with a quest to simplify things…

We’re asking you simple questions

The configuration pages will be different, simpler, more user-focussed.

meta robots old

Old situation with Meta Robots toggle

Compare this old situation with the new one below:

meta robots new

New situation with user-friendly question

The “Meta Robots” setting in the old version does exactly the same as the “Allow search engines” question in the new one but is understandable to people who have less experience with SEO.

The menu looks drastically different too:

old vs new menu yoast seo 7.0

Left: the old menu. Right: the new menu

In the old situation, Yoast SEO had an XML sitemaps menu item. In it, you could exclude “post types” (like Posts and Pages) and “taxonomies” (Categories and Tags, for example) from appearing in the XML sitemap. The only reason you would want to exclude post types and taxonomies from the XML sitemap is when you don’t want them to appear in the search engines. So… If your answer to the question above was “No”, I don’t want <x> to appear in the search engines, we now also exclude them from the XML sitemap. This might seem like a simple change, but it took a large portion of our options away in one fell swoop.

You could also disable XML sitemaps entirely on this menu item. This is what we call a “feature toggle”. This toggle has been moved to the Features tab on the Dashboard.

Titles & Metas becomes Search Appearance

The Titles & Metas menu item has been renamed “Search Appearance”. There are a few more settings on this page now, but in a more logical arrangement:

Old titles & metas menu

Old titles & metas menu

new search appearance yoast seo 7.0

New Search Appearance menu

General & Homepage have been combined. This tab also features the contents of the “Your Info” / “Company Info” tab we had on the Dashboard before. Media is new and is explained below. Breadcrumbs and RSS were moved here from the Advanced menu item, which is now completely gone.

Media (or: Attachment URLs)

When you upload an image or a video to WordPress, WordPress automatically creates an attachment URL for it, next to allowing you to link to the media item directly. This is much the same as a post URL, but it has no real SEO value. Most sites therefore never use these attachment URLs, but because WordPress sometimes links to them, they do start being indexed by search engines.

Yoast SEO long had a feature that allowed you to redirect attachment URLs for images to the post they were embedded in. This seems logical. But an image can be embedded in multiple posts, and as the Media part of WordPress gets better, this happens more often. At this point, where do you redirect an attachment URL to?

It also means that images that are not attached to a post could not be redirected. So we’ve changed that behavior: there’s now a toggle that will disable all attachment URLs. If you enable that (which will be the default for new sites), we redirect all attachment URLs to the media item itself. Clean, simple, much better SEO wise and much easier to understand.

The Advanced menu item had three tabs: Breadcrumbs, Permalinks and RSS. Breadcrumbs and RSS have been moved to Search Appearance; Permalinks is gone. There were two features there that we kept around:

  • The feature that allows removing /category/ from category URLs. This is useful in some cases, so we’ve moved it to the Taxonomies menu under Search Appearance.
  • The feature that removed ?replytocom variables from URLs. This is a core “feature” that makes it possible to reply to other people’s comments when JavaScript is disabled in your browser. Every comment gets its own link because of this feature, so if you have 100 comments, you get 100 extra links to a post, and search engines have to index every one of these links. This is stupid. So: our feature to remove those is now on by default and doesn’t have a setting anymore. This falls in line with WordPress’ core philosophy: decisions, not options. There is a ticket open to change this behavior in WordPress core too.

Advanced features toggle

For a while, Yoast SEO had a toggle for advanced features. This felt like a good idea at the time, but instead of properly explaining features, we hid them. In Yoast SEO 7.0, we’ve improved all features that we’re hard to explain. Luckily there were only a few of those, and they were so old that I’ve had to delete code that I wrote myself ten years ago.

Under the hood

Under the hood, there have also been several performance optimizations. We’ve changed how we set and retrieve options. We’ve removed all functions that had been deprecated before 2017. This is old code that we no longer use but was kept around for backward compatibility. These changes lead to less memory usage and a faster plugin overall.

But why now?

Well, to be honest, I have to give credit to Yoast Academy for this one. I was recording screencasts of the backend and couldn’t stand some of the things I had to explain. So we decided to start fixing them. Our development team has worked very hard to keep up with all the ideas, and we’re very proud to show you what we’ve built.

One more thing: a new icon

Because 7.0 is a big thing, we thought we’d make it even bigger: Yoast SEO is getting a new icon. The traffic light we’ve used for so long has turned out not to be a good metaphor across all cultures. In fact, we’ve learned that traffic lights differ per country and green is sometimes on top, and sometimes on the bottom.

So, without further ado: this is the new icon for Yoast SEO:Yoast SEO new icon

Awesome, right?

When will Yoast SEO 7.0 be ready?

We’re planning to release the final version of Yoast SEO 7.0 on Tuesday, March 6th. Since this is such a big release, we’ve decided to extend the testing period by two weeks so we can get as many eyes as possible on this release before we push it to everyone. You can help us find and fix issues by installing the release candidate, as mentioned above and go on a bug hunting trip. Add any issue you find or feedback you have to GitHub.

Happy testing!

Read more: ‘Why every website needs Yoast SEO’ »

The post Help us test Yoast SEO 7.0 appeared first on Yoast.

How to Create a Micro-Job Website Like Fiverr with WordPress

Recently one of our readers asked if it was possible to create a micro-job website like Fiverr using WordPress? A micro-job website allows users to offer their services on your website. This allows you to charge money for job posting or get a commission when the job is finished. In this article, we will show you how to easily create a micro-job website like fiverr with WordPress without any coding knowledge.

Creatng a fiverr like micro-job site with WordPress

Staring a Micro-Job Website using WordPress

There are plenty of ways to make money online using WordPress. One of them is to build a job board with WordPress.

First you need to make sure is that you are using the right platform. To build a micro-job website, you will need a self-hosted website (see: vs for more details).

To start a WordPress site, you will need the following things:

  • A domain name (This will be your website’s address. For example,
  • A WordPress hosting account (This is where your website’s files are stored)
  • SSL Certificate (You need this to accept online payments)
  • A Micro-Job addon and theme

The set up will take less than 40 minutes, and we will walk you through every step.

Normally a domain name costs $14.99 / year, SSL certificate $69.99 / year, and WordPress hosting would cost you $7.99 / month.

This sounds like a lot of money if you are just starting out.

Luckily, our friends at Bluehost are offering WPBeginner users a free domain, free SSL, and 60% off on WordPress hosting.

Basically, you can get started for as low as $2.75/month.

→ Click Here to Claim This Exclusive Bluehost Offer ←

Bluehost is one of the largest web hosting companies in the world and an officially recommended WordPress hosting provider.

Once you have purchased hosting, head over to our guide on how to make a website for step by step setup instructions.

That being said, now let’s see how to create a micro-job website with WordPress.

Setting up a Micro-Job Website with WordPress

First thing you need to do is install and activate the Microjob Engine theme. For detailed instructions, see our beginner’s guide on how to install a WordPress theme.

Once you have activated the theme, you will be redirected to the theme’s welcome page. On this screen, you will need to enter your license key which you can find under your EngineThemes’ account.

Enter license key

Next, you need to click on the ‘Install Demo’ button to import and setup a demo website. This will allow you to quickly setup the website to look exactly like the demo. You can then replace the content with your own.

MicrojobEngine comes with two skins to choose from. Once you have imported the demo data, you can select one of the skins to use on your website.

Select skin for your micro-job site

Your website is now set up just like the theme demo. You can visit your website to see it in action.

Selecting Payment Methods and Packages

Microjob Engine works with PayPal and 2Checkout out of the box. You can purchase addons to add other payment gateways like, PayU, PayStack, and Stripe.

You can setup your preferred payment gateway by visiting the Engine Settings » Payment Gateways page in your WordPress admin area.

Set up payment metods

Packages Explained

Microjob engine allows you to earn money in two ways:

  1. You can get comission when a job is finished
  2. You can sell packages allowing users to submit gigs for a certain amount.

Setting a payment barrier right from the beginning may prevent some users from signing up, but it will also help keep the spam away.

On the other hand, enabling free job posting will help you attract more freelancers to your website.

You can always change the settings once your website starts getting enough attention from both freelancers and employers.

To set up these options, you need to visit the Engine Settings » Theme Options page and click on the Payment Type tab.

Choose payment model

From here, you can enable or disable free posting. If you disable free posting, then you can add packages that freelancers can purchase to submit their offers.

Changing Branding and Website Content

Next, you would want to change the branding and content to make it your own. You can do this by going to Appearance » Customize page where you can change the theme settings with a live preview.

Customizing your theme

Take your time and go through the different options and adjust them to your liking. Don’t forget to click on the Publish button at the top to save your changes before exiting the customizer.

Testing Your Micro-Job Website

Microjob Engine Preview

Once you have set up your theme, it is time to thoroughly test every corner of your website.

Open your website in a new tab and try to use it like your users. Start by posting an ad, and then as an employer by hiring a service.

Each user on your website whether freelancer or employer will get their own profile page. Freelancer profiles will show their details, bio, recent gigs, and ratings.

User profiles

Each user will also be able to manage their account from a custom dashboard. This is where all their chats, messages, and jobs are displayed.

User account dashboard

You may also want to make sure that you and your users can receive email notifications from your website. Sometimes WordPress sites run into an email deliverability issues. You can check out our guide on how to fix WordPress not sending email issue.

Managing Your Micro-Job Site

Even though, your users (both freelancers and employers) wouldn’t need to visit the WordPress admin area, you will still manage all aspects of your website from WordPress dashboard.

You can see all orders placed on your micro-job site by visiting Engine Settings » Orders.

view all orders

You can also see all completed jobs that need to be verified by visting Jobs Verification page. From here you can approve, keep pending, decline, or verify a job status.

Once approved, the freelancer will be able to withdraw their money.

Managing job verification

To view all withdrawl activity, you need to visit Engine Settings » Money Withdrawl tab. On this page, you will see a list of freelancers who have withdrawn their earnings.

Money Widthdrawal

You can manage all site functions from the admin area of your WordPress site, and you can even peek into conversations between your users.

This helps make sure that freelancers are not insisting clients to use other unverifiable payment methods. It also helps during the dispute resolution between freelancers and employers.

More Resources

Microjob Engine is a powerful app theme with tons of cool features. However as your website grows, it can be quite heavy on your servers. To make sure your site performs well, see our guide on how to improve WordPress speed and performance.

Even then, as your site grows you will run out of shared hosting resources. In that case, you will need to upgrade to a managed WordPress hosting or VPS hosting.

We hope this article helped you learn how to easily create a micro-job site in WordPress. You may also want to see our guide on bringing more traffic to your new WordPress site.

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.

The post How to Create a Micro-Job Website Like Fiverr with WordPress appeared first on WPBeginner.

Keyword Stuffing is Spamming

In January 2017 we clarified what was meant by not spamming in the directory.

Since then, the language has been tweaked slightly, but the crux of the matter remains as follows: Public facing pages on (readmes) must not spam

To whit:

Public facing pages, including readmes and translation files, may not be used to spam. Spammy behavior includes (but is not limited to) unnecessary affiliate links, tags to competitors plugins, use of over 12 tags total, blackhat SEO, and keyword stuffing.

If you have a keyword or phrase repeated over 30 times in your plugin, you’re probably spamming. There are exceptions, especially when a term is a common word or you’re listing your shortcodes. However please be reasonable. If we see you using the same word 50 or more times in the readme, you’ll likely be receiving a warning.

Please take these warnings seriously. If you get asked to fix one plugin, we expect you (and ask you) to take care of any plugins we didn’t list as well. Be mature humans.


Handling old WordPress and PHP versions in your plugin

New versions of WordPress are released about three times a year, and WordPress itself supports PHP versions all the way back to 5.2.4.

What does this mean for you as a plugin developer?

Honestly, many plugin developers spend too much time supporting old versions of WordPress and really old versions of PHP.

It doesn’t have to be this way. You don’t need to support every version of WordPress, and you don’t have to support every version of PHP. Feel free to do this for seemingly selfish reasons. Supporting old versions is hard. You have to “unlearn” new WordPress and PHP features and use their older equivalents, or even have code branches that do version/feature checks. It increases your development and testing time. It increases your support burden.

Economics might force your hand here… a bit. You can’t very well, even in 2018, require that everyone be running PHP 7.1 and the latest version of WordPress. But consider the following:

97% of WordPress installs are running PHP 5.3 or higher. This gives you namespaces, late static binding, closures, Nowdoc, __DIR__, and more.

88% of WordPress installs are running PHP 5.4 or higher. This gives you short array syntax, traits, function-array dereferencing, guaranteed <?= echo syntax availability, $this access in closures, and more.

You get even more things with PHP 5.5 and 5.6 (64% of installs are running 5.6 or higher), but a lot of the syntactic goodness came in 5.3 and 5.4, with very few people running versions less thatn 5.4. So stop typing array(), stop writing named function handlers for simple array_map() uses, and start using namespaces to organize and simplify your code.

Okay, so… how?

I recommend that your main plugin file just be a simple bootstrapper, where you define your autoloader, do a few checks, and then call a method that initializes your plugin code. I also recommend that this main plugin file be PHP 5.2 compatible. This should be easy to do (just be careful not to use __DIR__).

In this file, you should check the minimum PHP and WordPress versions that you are going to support. And if the minimums are not reached, have the plugin:

  1. Not initialize (you don’t want syntax errors).
  2. Display an admin notice saying which minimum version was not met.
  3. Deactivate itself (optional).

Do not die() or wp_die(). That’s “rude”, and a bad user experience. Your goal here is for them to update WordPress or ask their host to move them off an ancient version of PHP, so be kind.

Here is what I use:

View code on GitHub

Reach out on Twitter and let me know what methods you use to manage PHP and WordPress versions in your plugin!

Do you need WordPress services?

Mark runs Covered Web Services which specializes in custom WordPress solutions with focuses on security, speed optimization, plugin development and customization, and complex migrations.

Please reach out to start a conversation!


How to Fix the WordPress 429 Too Many Requests Error

Are you seeing the 429 too many requests error on your WordPress site? This error can be extremely frustrating because it is hard to figure out what’s causing it. In this article, we will show you how to easily fix the WordPress 429 too many requests error.

How to fix WordPress 429 too many requests error

What Causes WordPress 429 Too Many Requests Error?

The most common reason for the 429 too many requests error is when a user, bot, or a script tries to make too many requests to the servers. It is a measure to prevent DDOS attacks on websites.

However if it is not properly configured, then it may end up preventing search engines or other APIs to run properly. This would cause unexpected behavior on your website.

Causes of 429 error in WordPress

Sometimes the error is caused when a script on your website is making too many requests to another website or service using an API. In that case, the API would respond back with a 429 error code.

That being said, let’s take a look at how to easily troubleshoot and fix 429 too many requests error in WordPress.

Fixing 429 Too Many Requests Error in WordPress

This error can be caused by a number of factors. We will show you multiple ways to troubleshoot and fix the 429 too many request error.

Find and Deactivate Misbehaving Plugin

The most common culprit of 429 error is usually a bad plugin on your website. Plugins can sometimes make subsequent requests to your website which may be rejected by the server with a 429 error code.

First thing you need to do is deactivate all WordPress plugins on your website. You can do this by visiting the plugins page in your WordPress admin area and selecting all plugins. After that, select ‘Deactivate’ under the bulk actions drop box and click apply.

Deactivate all WordPress plugins

If you are unable to access the WordPress admin area, then see our guide on how to deactivate all WordPress plugins via FTP.

Now check your website again to see if you can reproduce the 429 too many requests error again. If you can’t, then this means a plugin was causing this issue.

You can now turn on your plugins one by one and check your website after activating each plugin. This way you will be able to find the plugin causing the error.

Once you find the plugin causing the error, you can replace it with an alternative plugin or try reaching out to the plugin author to let them know about the error.

Switch to a Default WordPress Theme

More and more WordPress themes include functionality that normally comes with plugins. Such themes may also cause 429 error too many requests on your website.

The easiest way to find out is by switching to a default WordPress theme like Twenty Seventeen. If this resolves the 429 error issue, then you can find another WordPress theme or report the problem to the theme developer and they may be able to fix it.

Ask Your Hosting Provider

A lot of times, you will see a 429 too many requests error in third-party services that need access to your website. This could be search engines, crawlers, and other web apps.

If you are seeing the error in Google Search console or any third-party service, then most likely they are sending too many requests to your website. In that case, you need to ask your WordPress hosting provider to not block those requests.

We hope this article helped you fix the WordPress 429 error too many requests on your website. You may also want to see our list of most common WordPress errors and how to fix them.

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.

The post How to Fix the WordPress 429 Too Many Requests Error appeared first on WPBeginner.

3 reasons why Open Source is so very awesome

The mission of Yoast is ‘SEO for everyone‘. With our plugin, our online courses and our blog we try to make SEO understandable for everyone. We believe that every website -large and small- deserves a fair chance to pop up in the search engines. We strongly believe in our mission. Open Source is an important aspect of our mission. It’s one of the core values of our company. In this post, I’ll explain why we are Open Source Fanboys (and -girls).

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin Info

What is Open Source?

Open Source software is software that’s developed within a community. Everybody can use, alter and distribute the code. People are encouraged to participate and to improve the software project. WordPress is, as you probably know, an Open Source CMS, just like Joomla, Drupal and Typo3 are Open Source CMSs.

3 reasons why Yoast loves Open Source

For us, Open Source is the only way to go. But why is that?

#1 Open Source is the way to new knowledge and new solutions

We believe that Open Source is the best way to get new innovations, and real solutions to the problems we face. Two heads are better than one: the knowledge of two or more people combined will always exceed that of one person alone. If people -especially people from different backgrounds- cooperate on a project, the project will benefit. Working together on a solution, simultaneously or not, will lead to better solutions. In short: we should stand on each other’s shoulders; we should take advantage of each other’s merits and talents. That’ll lead to true innovation.

#2 Open Source is not wasteful

Lots of developers around the world are working on solving the same, or similar, problems. That’s a waste of talent and skills. Why should every school have a different website? Why would every hospital need a different website? I understand that the design of those websites needs to be unique, but the backend and the functionality of these websites should be pretty much identical. It’s such a waste that so many developers are working on similar projects without working together.

We shouldn’t have to reinvent the wheel over and over again. If we’d do things the Open Source-way, we would share our knowledge about the invention of the wheel. Make other people benefit from our wheel. And let other people improve upon that wheel.

#3 Open Source is an equalizer

Open Source projects invite everybody to participate. Everybody. If you want to contribute to WordPress, you can do that. What company you work for doesn’t matter. It does not matter where you live. It does not matter how much money you have, or what you look like. Everybody has their expertise, and your talents will be recognized in the Open Source community. At Yoast, we really love that aspect of Open Source. It’s very inclusive. It offers chances to everybody, whether they have (some) programming skills, love translating, have superb organizational skills, or a great sense of community to get others involved. Everyone can contribute!

In short: Open Source should be the standard

As I’ve shown, both Open Source and WordPress are very important to Yoast. We do our part to contribute, and we strongly believe that Open Source is the best way to achieve awesome new solutions. In our opinion, Open Source is far less wasteful than closed source projects are. And, we love that Open Source is an equalizer. All in all, Open Source fits perfectly with our mission ‘SEO for everyone‘, and we hope that people will see the merits, so we can keep working on new solutions and innovations together!

Read more: ‘Why there’s only one model: the open source model’ »

The post 3 reasons why Open Source is so very awesome appeared first on Yoast.

“Not Updated In …” Warning

The old warning that a plugin has not been updated in 2+ years has been changed to an indication of what version of WordPress a plugin has been tested up to. If that version is more than 3 major releases old, a plugin will be flagged as being maybe out of date.

Why the change?

Two years was rather arbitrary, but also wasn’t helpful to as many people. That is, two years had little meaning, since there were many plugins that didn’t need updates.

In addition, developers failed to understand what we meant by the multiple emails (the ones we send every major release) asking them to bump the tested-up-to value, without releasing new code. By doing that, the 2-year warning would go away. With this change, developers have a clearer one-to-one understanding of why their plugin is showing up as ‘old’ and users can see that a plugin has or has not been tested with the version of WP they’re using.

What do I put in for ‘tested up to’ versions?

We recommend the MAJOR release. For example, WordPress is currently on version 4.9.4. If you put in 4.9, then it will show as compatible. Don’t use words like “WP 4.9” – just use the version number.

Can I put in 5.0 as a version?

Yes, but it won’t do what you think it does. That is, you won’t show as compatible with 4.9. Don’t try to be clever on that one.

Does this make more work for developers?

No. A year ago I would have said yes, but now that we’re not releasing new major releases of WordPress 3 times a year, it works out to needing to update plugins’ readmes every 18 months or so. That changes the time by roughly six months, depending on the status of projects.

Can we indicate version compatibility with other plugins?

You mean like bbPress, WooCommerce, and so on? No. We recommend doing that within your plugin code.

Will this change the functionality of plugins?

No. This will neither alert your users nor will it disable your plugin within WordPress itself. You still have to handle that manually.

Is this a guideline change?

Nope. If you don’t want to update it ever, we don’t mind. The only reason we’d close a plugin for being ‘old’ is if it was broken or your email bounced.


Yoast SEO 6.3: Giving you more context

Something’s brewing at Yoast HQ. There’s no sign of spring yet, but we feel the need for a spring clean-up. Over the past few weeks, we’ve been looking critically at the Yoast SEO WordPress plugin and its many features and thinking: what’s this doing here? And should we get rid of that thing? Some of the results of that process are collected here, in Yoast SEO 6.3. But this is only the beginning.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin Info

We’ve removed the meta keywords box

Meta keywords haven’t had any use for ages. In 2009, Google officially confirmed that they didn’t use them. We, however, kept the box since some of you clamored at the slightest hint that we were even thinking about deleting it. But now, after all these years, it is the time to say goodbye to the old meta keywords box. It was fun while it lasted, but it should have been gone years ago. Read why we don’t use meta keywords and why you shouldn’t either.

The “noindex subpages” feature is also gone

Since Google has gotten much better at working with paginated series, we’ve removed the feature that allows noindexing subpages of archives. According to Joost de Valk, the reasoning behind this is simple: “rel="next" and rel="prev" make sure Google sends people to the first page in a paginated series. There is one catch: sometimes it will send people to a specific page in the series, but that’s when that page is the best match for their query. This, therefore, should be better for the searcher. Noindexing all these pages leads to a lower amount of crawls for them (source), which subsequently leads to lower amounts of crawls for older articles, which is not a good idea on most sites.”

Enhancements: more context, fewer settings

In Yoast SEO 6.3, you’ll not only find loads of new enhancements that’ll improve how the plugin works, but we’ve also provided more context within the plugin so you can find out immediately what a particular toggle or feature does. By deleting a couple of features, we even said goodbye to a tab in the advanced settings. To help you find these settings, we’ve added a step in the configuration wizard for enabling (or disabling) the advanced settings. Also, we’ve improved the Open Graph copy for Facebook and Twitter in the Social settings to explain better what it does.

To help you transfer data from other WordPress SEO plugins we’ve added an importer for the SEO Ultimate plugin and the SEOpressor plugin. We already supported several other SEO plugins, like HeadSpace2, All in One SEO, JetPack SEO, WooThemes SEO Framework, and wpSEO.

In Yoast SEO Premium, we’ve also made several improvements that make it more apparent what a particular feature does. We’ve added a piece of text to the Internal Linking analyzer after completing a full site scan. This gives you more insight into what the effects are of running the analyzer. What’s more, we’ve added an explanation on entries on the features tab and links to explanatory articles on the features tab.

Doing housekeeping

In addition to all these enhancements and the deletion of some superfluous features, we’ve been busy fixing bugs and getting things ready for the next release. You can find every bug fix and feature enhancement in the changelog on As I said, we’re busy as bees at the moment and cannot wait to show you what we’ve come up with.

Update now!

Yoast SEO 6.3 and its various add-ons all received nice updates today. We’re cleaning up the plugins as part of our quest for keeping our interfaces and features as easy as possible. In the coming weeks, we hope to show you more of what we’ve been up to. For now, update your plugins and stay tuned!

Read more: ‘Why every website needs Yoast SEO’ »

The post Yoast SEO 6.3: Giving you more context appeared first on Yoast.

Updating plugins using Git and WP-CLI

Now that you know how I deploy WordPress sites and how I configure WordPress environments, what about the maintenance of keeping a WordPress site’s plugins up-to-date?

Since I’m using Git, I cannot use WordPress built-in plugin updater on the live site (and I wouldn’t want to — if a plugin update goes wrong, my live site could be in trouble!)

The simple way to update all your plugins from a staging or local development site is to use WP-CLI:

wp plugin update-all
git commit -am 'update all plugins' wp-content/plugins

That works. I used to do that.

I don’t do that anymore.

Why? Granularity.

One of the benefits of using version control like Git is that when things go wrong, you can pinpoint when they went wrong, and identify what code caused the issue.

Git has a great tool called bisect that takes a known good state in the past and a current broken state, and then jumps around between revisions, efficiently, asking you to report whether that revision is good or bad. Then it tells you what revision broke your site.

If you lump all your plugin updates into one commit, you won’t get that granularity. You’ll likely get the git bisect result of “great… one of EIGHTEEN PLUGINS I updated was the issue”. That doesn’t help.

Here’s how you do it with granularity:

for plugin in $(wp plugin list --update=available --field=name);
    echo "wp plugin update $plugin" &&
    echo "git add -A wp-content/plugins/$plugin" &&
    echo "git commit -m 'update $plugin plugin'";

This code loops through plugins with updates available, updates each one, and commits it with a message that references the plugin being updated. Great! Now git bisect will be able to tell you which plugin update broke your site.

And what if you can only run WP-CLI commands from within a VM, and Git commands from your local machine? For instance, if you’re using my favorite tool, Local by Flywheel, you have to SSH into the site’s container to issue WP-CLI commands, but from within that container, you might not have Git configured like it is on your host machine.

So what you can do is break the process into two steps.

On the VM, run this:

wp plugin list --update=available --field=name > plugins.txt
wp plugin update-all

That grabs a list of plugins with updates and writes them to a file plugins.txt, and then updates all the plugins.

And then on your local machine, run this:

while read plugin;
    echo "git add -A wp-content/plugins/$plugin" &&
    echo "git commit -m 'update $plugin plugin'";
done; < plugins.txt

That slurps in that list of updated plugins and does a distinct git add and git commit for each.

When that’s done, remove plugins.txt.

All your plugins are quickly updated with WP-CLI, but you get nice granular Git commits and messages.

Do you need WordPress services?

Mark runs Covered Web Services which specializes in custom WordPress solutions with focuses on security, speed optimization, plugin development and customization, and complex migrations.

Please reach out to start a conversation!


How to Fix the 413 Request Entity Too large Error in WordPress

Are you seeing the 413 Request entity too large error in WordPress? This error usually occurs when you are trying to upload a theme or plugin file in WordPress. In this article, we will show you how to easily fix the 413: request entity too large error in WordPress.

WordPress 413 error - Request entity too large

What Causes WordPress 413 Request Entity Too Large Error?

This error usually happens when you are trying to upload a file that exceeds the maximum file upload limit on your WordPress site.

Your web server will fail to upload the file, and you will see the 413 request entity too large error page.

413 request entity too large error example

Normally, most WordPress hosting companies have their servers configured, so that WordPress users can easily upload large images and other media.

However, sometimes this setting is not high enough to upload large theme or plugin files.

It would also stop you from uploading large files in media library. In that case, you will see a different message, clearly stating that the file size exceeds maximum allowed limit.

File size exceeds maximum upload size limit

That being said, let’s take a look at how to fix the the WordPress 413 request entity too large error.

Fixing 413 Request Entity Too Large Error in WordPress

There are multiple ways to fix the request entity too large error in WordPress. We will cover all these methods, and you can try the one that works best for you.

Method 1. Increase Upload File Size Limit via Functions File

Simply add the following code to your theme’s functions.php file or a site-specific plugin.

@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

You can increase the values in upload_max_size and post_max_size to be more than the file you are trying to upload. You will also need to increase the max_execution_time to the time you think it would take for the file to upload. If you are unsure, then you can try doubling this value.

Method 2. Increase Upload File Size Limit via .htacces File

For this method, you will need to edit the .htaccess file and add the following code at the bottom:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

To learn more about increasing file upload size limit, see our guide on how to increase the maximum file upload size in WordPress.

Method 3. Manually Upload File via FTP

If the 413 error only occurs when you are uploading one particular file, then you may want to consider uploading the file manually via FTP.

If you are trying to upload a WordPress theme, then see our guide on how to install a WordPress theme and jump to the ‘Installing a WordPress theme using FTP’ section.

If you are trying to upload a plugin, then see our guide how to install a WordPress plugin and jump to ‘Manually install a WordPress plugin using FTP’ section.

For other files, see our guide on how to manually upload WordPress files using FTP.

We hope this article helped you learn how to fix the WordPress 413 request entity too large error. You may also want to see our list of the most common WordPress errors and how to fix them.

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.

The post How to Fix the 413 Request Entity Too large Error in WordPress appeared first on WPBeginner.

WordPress 4.9.4 Fixes Critical Auto Update Bug in 4.9.3

Hours after WordPress 4.9.3 was released, the WordPress development team followed it up with 4.9.4 to fix a critical bug with the auto update process. The bug generates a fatal PHP error when WordPress attempts to update itself.

This error requires WordPress site owners and administrators to manually update to WordPress 4.9.4 by visiting your Dashboard and clicking the Update Now button on the Updates page. Alternatively, you can update by uploading the files via SFTP or by using WP-CLI.

Dion Hulse, WordPress lead developer, says managed hosts that apply updates automatically for their customers will be able to update sites as they normally do. This may explain why some users have reported that sites running 4.9.3 have automatically updated to 4.9.4 without issue.

The bug stems from an attempt to reduce the number of API calls made when the auto update cron job is run. Unfortunately, the code committed had unintended consequences. “It triggers a fatal error as not all of the dependencies of find_core_auto_update() are met,” Hulse said.

A postmortem will be published once the team determines how to prevent this mistake from happening in the future. “We don’t like bugs in WordPress any more than you do, and we’ll be taking steps to both increase automated coverage of our updates and improve tools to aid in the detection of similar bugs before they become an issue in the future,” Hulse said.

While WordPress 4.9.3 and 4.9.4 do not include any security fixes, it’s important to note that in order to receive automatic security updates in the future, sites using the 4.9 branch must be running at least 4.9.4. Older branches are unaffected.

WordPress 4.9.3 Released, Fixes 34 Bugs

WordPress 4.9.3 is available and fixes 34 bugs. Customizer changesets, the visual editor, widgets, and compatibility for PHP 7.2 highlight this release. You can view all of the changes via the changelog or trac tickets. Most sites will update automatically. However, if you want to trigger the update ahead of time or manually update, visit your Dashboard, click the Updates link, and click Update Now.

Tips for configuring WordPress environments

Many WordPress hosts will give your site a “staging” environment. You can also use tools like Local by Flywheel, or MAMP Pro to run a local “dev” version of your site. These are great ways of testing code changes, playing with new plugins, or making theme tweaks, without risking breaking your live “production” site.

Here is my advice for working with different WordPress environments.

Handling Credentials

The live (“production”) version of your site should be opt-in. That is, your site’s Git repo should not store production credentials in wp-config.php. You don’t want something to happen like when this developer accidentally connected to the production database and destroyed all the company data on his first day.

Instead of keeping database credentials in wp-config.php, have wp-config.php look for a local-config.php file. Replace the section that defines the database credentials with something like this:

if ( file_exists( __DIR__ . '/local-config.php' ) ) {
    include( __DIR__ . '/local-config.php' );
} else {
    die( 'local-config.php not found' );

Make sure you add local-config.php to your .gitignore so that no one commits their local version to the repo.

On production, you’ll create a local-config.php with production credentials. On staging or development environments, you’ll create a local-config.php with the credentials for those environments.

Production is a Choice

Right after the section that calls out local-config.php, put something like this:

if ( ! defined( 'WP_ENVIRONMENT' ) ) {
    define( 'WP_ENVIRONMENT', 'development' );

The idea here is that there will always be a WP_ENVIRONMENT constant available to you that tells you what kind of environment your site is being run in. In production, you will put this in local-config.php along with the database credentials:

define( 'WP_ENVIRONMENT', 'production' );

Now, in your theme, or your custom plugins, or other code, you can do things like this:

if ( 'production' === WP_ENVIRONMENT ) {
    add_filter( 'option_gravityformsaddon_gravityformsstripe_settings', function( $stripe_settings ) {
        $stripe_settings['api_mode'] = 'live';
        return $stripe_settings;
} else {
    add_filter( 'option_gravityformsaddon_gravityformsstripe_settings', function( $stripe_settings ) {
        $stripe_settings['api_mode'] = 'test';
        return $stripe_settings;

This bit of code is for the Easy Digital Downloads Stripe gateway plugin. It makes sure that on the production environment, the payment gateway is always in live mode, and the anywhere else, it is always in test mode. This protects against two very bad situations: connecting to live services from a test environment (which could result in customers being charged for test transactions) and connecting to test services from a live environment (which could prevent customers from purchasing products on your site).

You can also use this pattern to do things like hide Google Analytics on your test sites, or make sure debug plugins are only active on development sites (more on that, in a future post!)

Don’t rely on complicated procedures (“step 34: make sure you go into the Stripe settings and switch the site to test mode on your local test site”) — make these things explicit in code. Make it impossible to screw it up, and working on your sites will become faster and less stressful.

Do you need WordPress services?

Mark runs Covered Web Services which specializes in custom WordPress solutions with focuses on security, speed optimization, plugin development and customization, and complex migrations.

Please reach out to start a conversation!


What’s the difference between an H1 heading and the SEO title?

Writers tend to put some real thought into their title. For online content, titles are important for both readers and search engines. That makes them double important! If you use WordPress and our Yoast SEO plugin, you insert the post’s title in the post title input field. Your title will appear as an H1 heading on top of your post. But Yoast SEO also offers possibilities to edit and improve your SEO title separately. Why is that? What’s the difference? And how should you edit your SEO title? I’ll explain it in this post. 

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO: the #1 WordPress SEO plugin


Two input fields

For some of you this will be obvious, but let’s take a look at where to find the input fields for the post title – the same as the H1 heading – and the SEO title. The post title input field can be found on top of the page or post editor in WordPress.

You can find the input field for the SEO title in the Yoast SEO metabox, which appears underneath the post input field. To edit the SEO title, you need to click on the edit snippet button. The snippet preview will then open. The snippet preview offers you three input fields. The first one is the input field to edit your SEO title. Beneath the input field you’ll – hopefully – see a green bar. That’s to say, it will be green if your SEO title is well-optimized. If it’s orange or red you should put some effort in improving it. As you can see, the SEO title has all kinds of weird %-signs in it. Don’t let this scare you off, I’ll tell you all about it later on in this post.

Purpose of the post title and the SEO title

It is important to realize that your SEO title doesn’t have the same purpose as the title of your post or page. Your post title is meant for people that are already on your site. It’s telling them what your post or page is about. Your SEO title, on the other hand, is meant for people who are not on your website yet. It will be shown to people in the search engines. It will be the title of your snippet in Google – that’s why it’s in the snippet preview. The purpose of your SEO title is to make people click on the snippet, come to your website and read your post or buy your product.

What does Yoast SEO automatically do?

Without doing anything, Yoast SEO will generate an SEO title based on the title of your post, the H1 heading. It will also put your site’s name in the SEO title. If you don’t put your site’s name in your SEO title, Google will do this for you. Yoast SEO will make sure your title isn’t too long – you’ll get a notice if your title is too long. At Yoast, we use a small bullet to separate the post title from the site name, but you could also use a dash, for example.

At Yoast we use a bullet to separate the title from the site name. Note that in this example we choose to create a short phrase instead of just our site name after the bullet.

You can set the way you want to generate your SEO title in the titles and meta section of Yoast SEO. If you do that, all your post titles will be generated in the exact same way. But, as described above, you can also edit the SEO title separately for a post. In the next paragraph we’ll explain in which cases you’d want to do that.

Should you edit the SEO title?

Personally, I never edit the SEO title of a separate post. I write a post and choose a title which is suitable for people who are already on our site, as well as people who see the snippet in the search engines. The settings to automatically generate titles in our own Yoast SEO install are – of course – totally fine.

If I want to adapt my title, maybe because I forgot to use the focus keyword in the title of my post, I always alter the title of the post. The SEO title will change along with that. For posts like this, this works fine. However, if you sell a product for example, the post or page title might not be the best SEO title. Perhaps you would like to mention the price of the product in your SEO title, but not in the H1 of your page. In these cases, editing the SEO title is necessary.

How do you edit the SEO title?

How do you edit the SEO title? And what are these weird %% signs in the input field? How can you use these?

The SEO title template

As described above Yoast SEO automatically generates SEO titles for you. You can adapt this title template to your liking in the titles and meta section of Yoast SEO. That’s what the %% signs are about. We call these %%title%% signs, magic variables. These magic variables take certain pieces of information and put them together to form the SEO title. So, if you type %%title%% in the SEO template input field, the title of a post or page will appear. The %%sep%% will take the separator sign you’ve chosen – like the small bullet we use – and put it in the SEO title.

You can find all about setting these title and meta variables in Edwin’s post. For an overview of all the magic variables, you can check our knowledge base.

For a separate post

If you’re working on a post and you want to change the SEO title, you can just click on the SEO title in the Yoast SEO meta box beneath your post. The magic variables will disappear and you’ll be able to edit the SEO title for just this post. Note that you can still use the magic variables for a separate post! For example, if you want to just amend the first part of the title, but keep the separator and the site name, you can create an SEO title like: ‘[customized post title] %%sep%% %%site name%%’. 


Your SEO title and your post title both serve a different purpose. In many cases, you can use your post title as the base for your SEO title. Yoast SEO will generate a nice SEO title based on your post title. In some cases, you’re better off customizing the SEO title. You can use the magic variables to create that awesome SEO title. We’re currently working on a new and improved interface for these magic variables. In the future, it will become much easier and more intuitive to edit your title. Just a little bit more patience!

Read more: ‘Crafting a good page title for SEO’ »

The post What’s the difference between an H1 heading and the SEO title? appeared first on Yoast.

WordPress 4.9.3 Rescheduled for February 5th

WordPress 4.9.3 is a maintenance release and was originally scheduled to be available on January 30th. However, due to ongoing tickets and a short time frame to test the release candidate, it has been pushed back to February 5th.

WordPress 4.9.3 RC 1 is available for testing. This release removes JSHint from the code editors due to conflicts with the GPL License. If your code relies on JSHint from Core, developers encourage you to update it to use a copy of JSHint.

Other changes in 4.9.3 include, avoiding page scrolling when navigating the media modal, a handful of improvements to the customizer, and more. Please test WordPress 4.9.3 on a staging site and if you encounter any bugs, you can report them on the Alpha/Beta section of the support forums.