Revisiting WordPress smilies in a pure CSS way

Last night I was reading something interesting then stumbled, in the comments, on a WordPress smiley. Bleeeh. There's a reason one of the first things I do when I setup a new site is uncheck "Convert emoticons like :-) and :-P to graphics on display": 90's phpBB'esque blocky gifs are *ugly*.

In my opinion those smileys are super outdated (they haven't changed since the very beginning of WordPress which, in internet times, is the equivalent of Pleistocene) and they suck for three reasons:

  • they're ugly. Did I already mention that? :)
  • they're too old to live on retina screens
  • it's very inefficient to load one image for each and every emoticon, as Julio points out

Over the years a few people have proposed alternatives for core but this is unlikely to happen, as very nicely summed up by WP Tavern. You can find several alternative as plugins, like New Smileys, but they're just another batch of images.

In the short discussion my tweet sparked, Greg pointed me to his way of doing it and I thought it was wonderful: 100% CSS, no image loaded, ideally tuned and adapted for his theme.

A coffee break later*, here is a sample plugin that replaces your smilies with pure and simple HTML markup that you can then easily style: Ozh' CSS Smilies. Hooo those super annoying cute animated little ghosts!


The plugin is just meant to be a start for those who'll want to style their own smilies. Feel free to use and modify to match your theme!

* yeah right. I took me like 90 minutes just to get that half ugly CSS working :/

(cc) Ozh for planetOzh, 2014. | Permalink | No comment | Add to | splogmenotplz
Read more posts tagged with: , ,

Feed enhanced by Better Feed from Ozh

Menu Customizer Now in Development for WordPress 4.2


WordPress 4.1 was released just yesterday, but core contributors are already planning and working towards 4.2. The Menu Customizer feature plugin is back in development and contributors are hoping to have it ready for inclusion in 4.2. Nick Halsey, who originally started the Menu Customizer work as part of his Google Summer of Code project, will be leading the effort to get the feature prepared for the upcoming release.

During the last release cycle, Halsey was focused on improving the Customizer API in core to add dynamic and contextual controls, sections, and panels. The Menu Customizer plugin has now been updated to be compatible with WordPress 4.1 and is ready to pick up development where it left off. As it’s no longer a GSoC project, Halsey is now actively looking for contributors.

Currently, the menu customizer is usable and offers the ability to assign menus to locations, edit existing menus/menu items, and add new menus.


Halsey outlined a roadmap for preparing the Menu Customizer for merge, which includes a number of PHP and Javascript development tasks, including, but not limited to, the following:

  • Build-out the core API for adding Customizer sections and controls entirely with JavaScript, #30741 and its related tickets (PHP, JS)
  • Drag and Drop menu item reordering needs to do sub-menus (code imported from nav-menus.php is commented out in menu-customizer.js currently) (JS)
  • Fix problems with previewing updates to menu items, and with previewing newly-added menus once items are added (JS)
  • Redo the add-menu-items “panel” to lazy-load its contents & utilize Backbone sub-views (PHP, JS)

He also hopes to improve the experience of using the customizer on mobile, followed by getting the menu customizer plugin to work on mobile. Halsey is also looking for contributors to assist on the design, code review, a backwards-compatibility audit, and inline documentation.

If you’re curious about how the Menu Customizer works, anyone is welcome to try the plugin and offer feedback. For the time being, it is compatible with WordPress 4.1 but may require 4.2-alpha down the road as it progresses.

Contributor interest is critical for the Menu Customizer to have a shot at inclusion in WordPress 4.2. If you can help in any way, jump in on the Make/WordPress Core post to volunteer.

User Testing WordPress at WordCamp San Francisco


WordPress 4.1 release lead John Blackbourn conducting a user test
WordPress 4.1 release lead John Blackbourn conducting a user test

Three days before WordCamp San Francisco, during the weekly WordPress Dev Chat, I came up with and proposed the idea that we should use the conference as an opportunity to do user testing. It was a last minute idea, but it’s one that I found valuable and that I would encourage others to do as well. In fact, I think it’s something more WordCamps should try.

The Preparation

Before the event, I setup a test site with the current version of WordPress Trunk along with the feature plugins that we wanted to test. For WCSF, this was Focus, WP Session Manager, and Improved Author Dropdown. I set these up on a public url so that users could do the test on there own machines. I think it is incredibly valuable to test people in as close to there natural environment as possible. While sitting at a conference isn’t where most people blog, if they normally use linux and you only have windows, using there windows laptop with there browser settings will help you understand there problems.

Recruiting Participants

We didn’t do a great job of recruiting participants in large part since we put this together at the last minute. I tweeted about the user tests, put up a sign and John Blackburn asked the volunteers at the happiness bar to send people over. Due to us doing this primarily during sessions, we ended up with people who self selected out of the sessions.

The Tasks

Another key preparation point is deciding what you will be testing. I like to have a simple script of what I say to each participant. I started by asking participants there names, and if I didn’t know them, a tiny bit about them. I also got there email address so that I could create an account for them. This helped to frame the test and also put there experience in context. Once they were logged in to WordPress, I asked each participant to create a new post. As the big feature I was looking for the reaction to Focus. I wanted to see how they reacted to the change when you enter into the editor. I wrote down the first reaction that users had. I then had them change the author. This part of the test was two fold. I wanted to see how they transitioned out of focus, while also seeing if found the Author drop down more usable. Most users used the select2 based drop down in the same way that they use the normal drop down.

After that, we asked users “If you wanted to get an idea of all the places you were logged into WordPress, where would you look?”.   This was to test the new session manager UI.

The Outcome

Now that 4.1 has been released, we can look at the results and see how they guided us.  One thing that we learned was that we needed to focus on discoverability of the new distraction-free writing.  This helped lead to us adding a feature pointer.   Users not immediately seeing a benefit in the list of user sessions helped us recognize that we might want to scale the feature back.  In the end, we decided a simple log out of all other sessions button would be the best option.


Pre-Order Professional WordPress Third Edition

Professional WordPress Third Edition has been officially completed and is available for pre-order on Amazon!

Professional WordPress 3rd editionEvery chapter in this new edition of the book has been completely updated for WordPress 4.1. The book also features two brand new chapters: WordPress as an Application Framework and Migrating to WordPress.

I couldn’t be happier to hear the response we’ve received from the previous two editions. This book has truly helped people around the world learn and understand WordPress development and design. If you are just starting to learn WordPress, or are an experienced developer or designer, this book has something for you. The Professional WordPress series is the highest rated advanced WordPress book on the market.

The book is scheduled to be released on January 26th, 2015. Make sure you pre-order your copy of Professional WordPress Third Edition today!

The post Pre-Order Professional WordPress Third Edition appeared first on Brad Williams Blog.

How to Add Additional File Types to be Uploaded in WordPress

For better security, WordPress allows you to only upload the most commonly used file types. You can upload commonly used image formats, audio/video, and documents using the default media uploader. But if you wanted to upload a file type that is not allowed? In this article, we will show you how to add additional file types to be uploaded in WordPress.

WordPress upload error: This file type not permitted for security reasons.

File Types Allowed for Upload in WordPress

WordPress allows you to upload most common image files, audio/ video, PDF, Microsoft office and OpenOffice documents. WordPress codex has a full list of allowed file types and extensions.

Adding Exceptions for Additional File Types

Security is the main reason behind the limitation on file types that users can upload. However, this does not mean that users cannot change this. Using a tiny bit of code, you can add a new file type and extension to the WordPress. Like this:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    return $mime_types;
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Notice that the file extension goes as the key in $mime_types associated array and the mime type goes as its value.

In this example, svg file extension represents files with the mime type image/svg+xml. You can find out mime types of several common file extensions on this page.

You can also add multiple file types in one code snippet, like this:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Adobe photoshop filetype uploaded

We hope this article helped you learn how to allow additional file types to be uploaded in WordPress. You may also want to take a look at how to increase maximum file upload size in WordPress.

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

To leave a comment please visit How to Add Additional File Types to be Uploaded in WordPress on WPBeginner.

WordPress Hanukkah Releases

"Colorful dreidels2" by Adiel lo - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons.
Colorful dreidels2” by Adiel loOwn work. Licensed under CC BY-SA 3.0 via Wikimedia Commons.

WordPress 4.1 is the fourth major version of WordPress and the sixth overall version of WordPress released during the festival of Hanukkah.  The first release during latke time was WordPress 1.2.2 which came out on December 15, 2004. It was a patch release and the notes highlight it as:

This release fixes a few bugs and security issues and is recommended for all 1.2 users.

The following year, the first major release during Hanukkah took place when WordPress 2.0 “Duke Ellington” was released.  This release featured WYSIWYG editing, and many other great features.  My favorite part of the release notes is this gem:

Faster Administration — Call it AJAX, call it DHTML, call it Larry, but we’ve paid close attention to streamlining some of the most common tasks in managing your blog

It would be four years before the next WordPress release during Hanukkah when WordPress 2.9 “Carmen McRae” was released on December 19, 2009.  Carmen featured trashing posts, a built in image editor and a feature that has continued to be updated (including in 4.1)

Easier video embeds that allow you to just paste a URL on its own line and have it magically turn it into the proper embed code, with Oembed support for YouTube, Daily Motion,, Flickr, Hulu, Viddler, Qik, Revision3, Scribd, Google Video, Photobucket, PollDaddy, and (and more in the next release).

The following year, WordPress 3.0.3 was released on December 8, 2010. This release was a security release that fixed some XMLRPC security bugs.

After taking 2011 off, WordPress 3.5 “Elvin” was released on December 11, 2012. It featured a long desired update to media.  It also brought in a new default theme (just in time)

3.5 includes a new default theme, Twenty Twelve, which has a very clean mobile-first responsive design and works fantastic as a base for a CMS site.

Last Hanukkah was an early one (and featured a rare Thanksgivukkah ).  While there was no major release, RC1 of WordPress 3.8 came out on December 4, 2013.

A few more releases and we’ll be able to create a WordPress menorah.

WordPress 4.1 “Dinah” Released

photo credit: Michael Ochs Archives/Getty Image
photo credit: Michael Ochs Archives/Getty Image

After nearly four months of development, WordPress 4.1 “Dinah” is available for download. Led by John Blackbourn, 4.1 contains several improvements such as a new default theme, an improved distraction free writing experience, and plugin recommendations.

Twenty Fifteen

New Default Theme For 2015
New Default Theme For 2015

Twenty Fifteen is a two-column theme with a focus on content. In sharp contrast to Twenty Fourteen, Twenty Fifteen is light in color with a left hand sidebar and content in the right column. It’s designed with a mobile first approach and looks great on various screen sizes. Twenty Fifteen looks best when using large, featured images. It also ships with five different color schemes, ranging from dark to pink that are accessible from within the theme customizer.

Plugin Recommendations

Plugins Recommended To Me Based on Data of Sites with Similar Plugins Installed
Plugins Recommended To Me Based on Data of Sites with Similar Plugins Installed

When you browse to the Add New plugins screen, you’ll see a new Recommended tab. Recommendations are based on data from thousands of WordPress sites about plugins that are commonly used together. It’s similar to an online store’s “people who bought this also bought this” feature.  Because of the strict data set used, plugins that are 3-4 years old or older won’t be recommended.

Improved Distraction Free Writing

Distraction Free Writing in WordPress 4.1
Distraction Free Writing in WordPress 4.1

When you enable Distraction Free Writing mode, the surrounding interface disappears as you type leaving important actions and menu items just a mouse movement away. This mode minimizes distractions without having to go through a clunky transition to access the admin menu or meta boxes. To bring back the menu and meta boxes, move the mouse cursor to the left or right of the editor.

Log Out of Every Session With One Button

WordPress Session UI
WordPress Session UI

WordPress 4.1 includes a new Session UI. The UI shows up on the profile page when WordPress detects more than one active session. When pressed, the button logs out of every session except for the active one. This is useful for those times when users might have forgotten to log off from a laptop, phone, or public computer.

Inline Image Editing

Inline Image Editing Tools
Inline Image Editing Tools

When editing an image using the Visual editor, a set of inline editing tools appear above the image. These tools provide a quick and easy way to align an image or access additional editing options.

oEmbed Support Added For Vine

WordPress 4.1 has oEmbed support for Vine which hosts short videos that continuously loop. Sharing a Vine is now as easy as copying and pasting the URL into the Visual editor.

Choose a Different Language at Any Time

Site Language Picker in WordPress 4.1
Site Language Picker in WordPress 4.1

You can now choose a language for your site at any time by visiting the General Settings screen. Choosing a different language installs the required language pack.

Developer Items

Metadata, date, and term queries now support advanced conditional logic, like nested clauses and multiple operators. There are a couple of new Template tags and a major improvement with Title Tags in 4.1. There have also been several improvements to the Customizer API, including contextual panels, sections, and JavaScript templates for controls.

4.1 Represents Continued Improvement

WordPress 4.1 is the product of dedicated developers and 283 contributors. The ability to choose a language without having to touch a line of code is a great improvement. The default theme is refreshing compared to Twenty Fourteen and users have an entire year to manipulate the design. While some users will see the new Distraction Free Writing mode as a distraction, others will enjoy its convenience.

What do you think of the new default theme and will you try out the new Distraction Free Writing mode? Let us know what you think of 4.1 in the comments.

How to Add Icons for Custom Post Types in WordPress

Ever wondered how you could add custom icons for your custom post types in WordPress? If so, then you’re in the right place. In this article, we will show you how to add icons for custom post types in WordPress.

WordPress started using an icon font called Dashicons since WordPress 3.8. These font icons look great on any device or screen size. Well, you can leverage these icons to assign custom icons to your post types.

Adding Custom Post Type Icons using a Plugin

First thing you need to do is install and activate the CPT Custom Icon plugin. Upon activation, simply go to Settings » CPT Custom Icon Settings where you will see your custom post types listed. Next, click on the ‘Choose icon’ button next to a custom post type and then select a font from the menu.

Choosing a font for your custom post type using a plugin

Adding Icons using Custom Post Type UI Plugin

If you’re new to registering a custom post type, then we recommend that you use Custom Post Type UI plugin to create and manage custom post types and taxonomies.

Adding an icon to a custom post type created with CPT UI plugin is very simple. It supports Dashicons by default, so first you need to visit the Dashicons website and select the icon you want to use for your post type.

Copying an icon class from Dashicons website

Clicking on an icon in the list will show a larger version of the icon on the top. Next to it, you will see the icon’s CSS class. It will be something like dashicons-groups, dashicons-calendar, dashicons-cart, etc. You need to copy the CSS class and edit the custom post type you want to edit in CPT UI. All you need to do is click on the Advanced Options link and scroll down to the Menu Icon section, then paste the CSS class and save your changes.

Adding font icon in custom post type UI plugin

You can also create an image icon yourself and upload it by clicking Media » Add New. After the upload, click on the Edit link and copy the image file URL. Now simply paste this URL in the menu icon field in CPT UI settings.

Manually Adding Icon to a Custom Post Type

If you created a custom post type by placing a code in your site-specific plugin or functions.php file, then you can add menu icons manually. Once again simply visit to Dashicons website to select an icon and copy the CSS class. After this add it to your custom post type code like this:

'menu_icon'           => 'dashicons-cart',

You can also add the full URL of an image file you want to display as icon, like this:

'menu_icon'           => '',

Here is a full code snippet that creates a custom post type called products with a menu icon:

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                => _x( 'products', 'Post Type General Name', 'text_domain' ),
		'singular_name'       => _x( 'Product', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'           => __( 'Products', 'text_domain' ),
		'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
		'all_items'           => __( 'All Items', 'text_domain' ),
		'view_item'           => __( 'View Item', 'text_domain' ),
		'add_new_item'        => __( 'Add New Item', 'text_domain' ),
		'add_new'             => __( 'Add New', 'text_domain' ),
		'edit_item'           => __( 'Edit Item', 'text_domain' ),
		'update_item'         => __( 'Update Item', 'text_domain' ),
		'search_items'        => __( 'Search Item', 'text_domain' ),
		'not_found'           => __( 'Not found', 'text_domain' ),
		'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
	$args = array(
		'label'               => __( 'Products', 'text_domain' ),
		'description'         => __( 'Post Type Description', 'text_domain' ),
		'labels'              => $labels,
		'supports'            => array( ),
		'taxonomies'          => array( 'category', 'post_tag' ),
		'hierarchical'        => false,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 5,
		'menu_icon'           => 'dashicons-cart',
		'can_export'          => true,
		'has_archive'         => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	register_post_type( 'Products', $args );


// Hook into the 'init' action
add_action( 'init', 'custom_post_type', 0 );

We hope this article helped you add icons for your custom post types in WordPress. You may also want to check out how to use icon fonts in WordPress post editor.

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

To leave a comment please visit How to Add Icons for Custom Post Types in WordPress on WPBeginner.

How to Take Control of The WordPress Heartbeat API

Heartbeat Control Featured Image
photo credit: osseouscc

The WordPress Heartbeat API, introduced in WordPress 3.6, simulates a pulse and is responsible for revision tracking, session management, and more. The pulse is around 98 Bytes in size, but it can cause performance issues in certain situations.

If you’ve been notified by your webhost that your account is using too many resources and cite POST /wp-admin/admin-ajax.php as the cause, it’s likely due to the Heartbeat API.

How The Heartbeat API Works

Inmotion Hosting has an excellent article that explains how the Heartbeat API works. If you monitor server requests while in the post editor, you’ll see POST /wp-admin/admin-ajax.php " appear every 15 seconds. This is the pulse generated by the API.

The pulse makes sure you have a persistent connection to the web server and provides a way for developers to trigger events. For example, if the pulse takes 30 seconds or longer to process, WordPress displays a connection error and attempts to reconnect to the server.

The Problem

Execution Time
Execution Time

There are several situations in which a pulse is generated either automatically, or by a user. Most of the time pulses are harmless and don’t do anything.

Each pulse (POST request) executes a PHP script equating to CPU time on the server. In an experiment, InMotion Hosting left the dashboard open for a half hour and noticed 25 PHP script executions that used 5.77 CPU seconds. The small amount of CPU time was used to do nothing.

The problem is compounded by the fact that each user who has access to the backend of WordPress generates a pulse. As the number of users navigating the WordPress backend simultaneously increases, so does the number of pulses generated from the API.

If a webhosting provider has strict limits on the number of processes or resources used, you could easily go over the limit.

How to Control The Heartbeat API

Heartbeat Control, developed by Jeff Matson, is a new plugin that enables you to control the interval of pulses. After activating the plugin, you’ll find the settings located in Tools>Heartbeat Control.

Heartbeat Control Settings
Heartbeat Control Settings

You can choose to disable the API entirely, only on the dashboard page, or allow it only on the post editing screen. You can also choose the interval when pulses are sent. The choices range from 15-60 seconds with 5 second intervals in between.

By changing the interval to 60 seconds, pulses are less likely to impact server performance. Several HostGator customers who use the plugin report they no longer experience suspensions for using too many resources.

Why InMotion Hosting Doesn’t Throttle The API by Default

If increasing the pulse interval from 15 to 60 seconds increases server performance, why doesn’t InMotion Hosting throttle the API on every webhosting server?

Matson, who works for InMotion Hosting, says a one size fits all approach doesn’t work. “The reason we don’t do that is because there are some users that require it at the default rate or an even higher frequency. When making server-wide changes, you have to be extremely careful that you do not impact a customer’s site.”

Matson goes on to say that, “As a host, the number one goal is making customers happy and restricting the normal operation of a user’s site is unacceptable.”

How HostGator Almost Deleted WP Tavern

I sympathize with those who use HostGator as they have a strict CPU resource restriction. If pulses from the Heartbeat API cause the CPU to become busy or cause a backup in processes, using 25% of the CPU longer than 90 seconds is easy to do.

HostGator’s policy for using too many resources is to suspend the account. This makes it impossible to troubleshoot the problem. If you exceed the resource allotment more than five times, the site is removed from the server and your account is banned.

HostGator Resource Policy
HostGator Resource Policy

In late 2013, when WP Tavern used HostGator, I experienced first-hand what it’s like to have a website suspended. When I upgraded the Tavern to WordPress 3.6, which introduced the Heartbeat API, I started to experience problems. The site would routinely lock up and when I viewed the processes tab in cPanel, it looked like a simple process repeated itself, leading to a denial of service.

Site Offline ErrorsI can’t confirm if the Heartbeat API was the culprit but it’s high on my list of suspicions. After suspending the Tavern twice, HostGator informed me that if the site was suspended again, it would be removed from the server without giving me a chance to back it up. Needless to say, I switched hosts immediately.

Don’t End Up in a Similar Situation

If you’re using a webhosting service with strict resource limits, consider installing Heartbeat Control to limit the number of pulses. Not only will it mean fewer calls to the server, but it may lead to a performance increase as well. Keep a close eye on the resources used and if you come close to maxing out, it’s a sign you need to upgrade to a better plan. Don’t end up in a position where you may lose your site!

WordSesh 3 on Saturday

I’m speaking at WordSesh 3 this Saturday at 9:00am UTC.



I will share my thoughts and experience with the WordPress Core and a bunch of other programming languages and platforms, comparing several architectural or design solutions.

It’s my third WordSesh and I’ll definitely recommend it to anyone – 24 hours of live WordPress presentations is worth checking out!




The post WordSesh 3 on Saturday appeared first on Mario Peshev on WordPress Development.

How to Add WordPress Widgets in Accessibility Mode

Some WordPress users find it challenging to use the drag and drop interface for adding WordPress widgets. What most users are unaware of is that there is a built-in accessibility mode for widgets in WordPress. In this article, we will show you how to add WordPress widgets in accessibility mode.

First you need to visit Appearance » Widgets screen in your WordPress admin area. The accessibility mode is hidden under the screen options menu.

Screen options menu on the widgets screen

If you can click or tap on Screen Options menu, then that’s good. If you are using a screen reading software and a keyboard, then you need to press the L key.

This will skip the normal menu and take you directly to the help button which is located just before Screen Options. Press tab key again to focus on screen options menu and then hit enter. This will bring down the screen options menu.

Enable accessibility mode

There is only one option in this menu: “Enable accessibility mode”. You can activate it by pressing the tab key and pressing enter, by or clicking on it.

Activating the accessibility mode will reload the Widgets screen with a new interface.

This new interface allows you to add widgets using the Add link next to the widget title.

Using widgets in accessibility mode

When you press the Add link, it will open the widget in a single page where you can configure widget settings.

You can also choose the sidebar or widget area where you want to add your widget. Next to it, you will also see the position dropdown which allows you to choose the position of this widget in your selected sidebar.

Configuring widget settings in accessibility mode

Once you are satisfied with the widget settings, press the Save button. You will be redirected back to Widgets screen.

Accessibility mode will also enable edit links next to active widgets, like this:

Edit widgets in accessibility mode

Clicking on it will take you to the same edit widget screen, where you can edit your widget settings and even remove it by selecting the Inactive widgets option.

That’s all, we hope this article helped you learn how to add WordPress widgets in accessibility mode. You may also want to take a look at this tutorial on how to add resizable text for site visitors in WordPress.

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

To leave a comment please visit How to Add WordPress Widgets in Accessibility Mode on WPBeginner.

WordPress Themes Directory Now Requires All Themes to be Translation-Ready

photo credit: . Entrer dans le rêve - cc
photo credit: . Entrer dans le rêvecc

WordPress made great strides in 2014 towards improving internationalization for the global community. WordPress 4.0 streamlined language management in the admin and brought language selection to the installation process.

In the State of the Word address this year, Matt Mullenweg highlighted the importance of internationalization to the project when he said, “If WordPress is going to be truly global, truly inclusive, it has to be fully available for other languages.” He also announced that fully localized plugin and theme directories will be available in the admin as of 4.1.

This week the WordPress Theme Review Team updated its guidelines to require all new theme submissions to be translation-ready. Theme authors submitting new themes to the official directory must ensure that all text strings are translatable. This also applies to any updates to existing themes.

Tips for Making Your Theme Translation-Ready

The WordPress Theme Review Handbook doesn’t yet contain a section with information about preparing themes for translation. However, you can find all the basics on how to internationalize a theme in the WordPress Theme Developer Handbook, which is still a work in progress.

The internationalization section also links to a number of videos and tutorials in its resources section. Many of these will be helpful in walking theme developers through the process of preparing themes for translation:

If a WordPress theme isn’t translatable, then the site it is running on is limited to the theme author’s language. If you invest your time and hard work into creating a WordPress theme, why not make sure that it’s able to be used all over the world?

The new requirement from the Theme Review team is a major milestone in expanding WordPress’ global reach. The official themes directory is often the first place that self-hosted WordPress users look when shopping for themes. The new translation-ready requirement will help ensure that’s vast library of themes are ready for global use.

Yoast’s Holiday Sale

happy holidays yoastx2The holidays are just around the corner! At Yoast, we truly do love Christmas and New Year’s eve. The main reason we love it so much, is because it gives people the motivation to start so many new and inspiring things each year. What are your new year’s resolutions? Do you have some big plans for the new year?

We’d love to give you a little nudge in achieving your goals! That’s why we have an awesome all-round sale, which starts now and lasts until January 2nd! Curious what we’ve got for you? Here it is!

The New Year’s Resolution discount

Get a whopping 20% discount on both our Silver SEO Review and our Gold SEO Review. No need for special links or coupons, this discount is for everyone!
Note: We’ll start these reviews after the holidays, so they won’t be completed in the regular 2-week time frame.

Get your 20% discount on a Silver or Gold SEO Review »

Prancer’s Premium Plugin Pack

Get over 35% discount on a pack including both WordPress SEO Premium and Google Analytics by Yoast Premium. And just during this period we’ll also be including the Optimize Your WordPress site ebook!

Get Prancer’s Premium Plugin Pack here »

The Decorate Your Site bundle

All of our themes for the price of just one! That means 4 awesome, completely SEO-proof themes for just $59!

Get the Decorate Your Site bundle here »

That’s it! We hope this will help you enjoy the holidays as much as we will!

This post first appeared on Yoast. Whoopity Doo!

Writing a blog: creating a clear blog post structure

Creating a blog post structureA few weeks ago, I wrote a post about obtaining an attractive writing style. I gave some practical tips to make your blogs more readable. In this post, I will give practical tips to help you set up a nice and clear blog structure. Before the end of this year, I will write a final post about text objectives.

Why is blog post structure important?

It really pays off to think about the structure of your piece before you actually start writing. The structure is the skeleton of your text: it will help the reader grasp the main idea of your text.

Writing awesome articles will not instantly improve your ranking. But: in the long run it will definitely have a positive effect on your SEO! Well structured texts have lower bounce rates and higher chances to receive social media attention.

Post with clear blog post structure will also result in higher conversions on your website. If your message is properly understood by your audience, chances are much larger for them to buy your products or return to your website.

How to set up your structure

Think before you start writing. Take a piece of paper and write down what you want to write about. Set up a blog post structure, before you start writing and hold on to that structure while writing your blog post. Setting up a structure of your text can (for instance) be done following these three steps:

Step 1: Create a list

If you have gathered all the information you want to use in your post or article, you can start with structuring. You can write down a list with all the topics. You should just make some kind of list of everything your text should cover.

Step 2: Bundling topics together

If you have a clear overview of all the topics you want to discuss in your article, you start bundling topics. Topics which are similar should of course be discussed together.

Step 3: Ordering topics

If you are done bundling, you should decide upon the order you want to present the topics in your article. In most cases you will decide to order thematically. For instance, if you want to discuss various aspects or angles of the main topic of your blog. You should then discuss every aspect in a new paragraph.

Next to ordening according to theme, you could also order chronological or discuss your topics in a didactic order. Especially when you try to explain complicated material, a didactic order, in which you explain easy stuff first and difficult aspects later could be a very good idea.

Table 1: Types of ordening
Type of ordening
Thematic ordened on theme, aspect, topic
Chronological old- new
Didactic easy – hard
Problem- solution(s) introduce problem first and then possible solutions

After you have ordered the topics you want to address in your article, you should make a new list. This list is actually kind of a summary of the article you are about to write. You could write a short sentence or a few words for every paragraph you plan to write. This list serves as the skeleton of your article and you should keep it well in mind during the remainder of the writing process.

Creation of paragraphs

In the blog post structure you have set up, you have bundled topics together. You can then start to write paragraphs. But what makes a good paragraph? A paragraph can be defined by three things. Remember these things while writing!

  1. A paragraph should form a thematic unit.
  2. A paragraph contains one core sentence and an elaboration of this core sentence.
  3. A paragraph should be made visible (by using whitespace).

Lots of people make mistakes while creating paragraphs. Writers just put some white spaces in their text on random places for esthetic purposes, but do not really think about the coherence and structure of the text. I also see a lot of paragraphs containing only one sentence. In many cases, the coherence within paragraphs and between paragraphs remains unclear. These kinds of mistakes can really mess up the structure of your articles.

Paragraphs can be short or long. The length of a paragraph is decided by the theme you are discussing. It could be two sentences, but a paragraph could also contain 15 sentences. For writing on websites, we would advise to create short paragraphs (stick to less than 6 or 7 sentences).

For texts on websites, we would advise you to start your paragraph with the most important sentence. Then explain or elaborate on that sentence. A reader will be able to grasp the most important content from your article, just by reading the first sentences of your paragraphs. You can conclude (longer) paragraph with a summarizing sentence to make your point extra clear.

Use of signal words

In order to guide your reader, you should use plenty signal words. Signal words give direction to your readers. These words show the reader that you are summarizing (and, too), comparing (less than, rather) or concluding something (thus, consequently, hence).

Table 2: examples of signal words
Type of relation Examples of signal words
enumerate and, first of all, also, another, furthermore, finally, in addition
cause because, so, due to, while, since, therefore
comparison/ contrast same, less, rather, while, yet, opposite, much as, either
conclusion as a result, hence, consequently, therefore, in conclusion
fuzzy signals seems like, maybe, probably, almost
emphasis most of all, most noteworthy, especially relevant

Using signal words will be like putting cement between your sentences. Readers will understand your content much better if you make proper use of these kinds of words


Headings are important for SEO purposes. Google uses your headings to determine the topic of the content on your website. Your headings thus should be used to optimize your post. However, headings are of great importance for your readers as well. Headers allow your readers to quickly scan through your text and to decide whether or not (or which parts) they would like to read your article. Headings thus should be attractive and should cover the content of the paragraph.

You can put a header above each paragraph, or above a number of paragraphs which contain similar topics. The headers should reflect the structure of your text. We would advise you to put a header above every long paragraph ( or above a few short paragraphs which are thematically similar).


Setting up a coherent structure for your blog post will result in better understanding of the message of your post. If people understand your message, they will be much more likely to share your post on social media or buy the stuff you have to offer.

Taking the time to think about a clear blog post structure before you start writing is a very important first step. While writing, think about the structure of your paragraphs, your use of signal words and the headings in your post. If you follow these ‘rules’ your blog post will be understandable and readable to your audience (also if your writing style is rather crappy).

This post first appeared on Yoast. Whoopity Doo!

PHP UK – Here I come!

In just about two months, I’ll be making my international speaking debut when I present “Modernizing the WordPress Toolbox” at the 10th Annual PHP UK conference in London.

I’ll be talking about how updated we have updated the WordPress toolbox and build process from what would be considered antique at best.  I’ll also talk a bit about where it’s going to go and how our philosophies align with our tools.

This will be my first time speaking at a PHP specific conference and my first time speaking outside the USA.  I’m excited.

Google Analytics by Yoast gets Dashboards

Today we released quite a big upgrade to our Google Analytics plugin, for both free and premium users. We’ve built a dashboards feature that shows you some top of the line stats for your site, and if you’re a premium customer, provides high-quality reports on the custom dimensions included in it.

Basic reports

The first ones are easy, we show you a graph of your sites sessions and bounce rate, for instance the sessions looks like this:

yoast session dashboard

On the second tab, “reports”, we give you some basic reports in tabular data that are very easy to use, see the popular pages table below:

Google Analytics dashboard popular pages

One of the cool things here is the search option, top right. Just typing /wordpress/ into that immediately gives me this:

popular pages filtered

The same power that powers these extremely fast tables powers another feature that we’re very happy to release: the Custom dimension reports.

Custom dimension reports

As Thijs was writing his posts about custom dimensions it became incredibly clear that what we were building was needed. The reports for these custom dimensions are hard to get right in Google Analytics (even though that obviously gives you much more reporting power than we do in our plugin). If you want a quick overview of how many pageviews an author generated in a month, this is what you use:

custom dimension report author

You can select all of the custom dimensions that you’ve set up for your site in the settings:

Custom dimensions drop-down

New custom dimensions

Those of you who know our plugin well will go “hey, I see custom dimensions in that screenshot that I’ve never heard of”. You’re right. We added several new custom dimensions, of which “Tags” is the easiest one to explain: it stores the tag of the post that is being viewed. The other two new ones are specific to those of you who use our WordPress SEO plugin as well.

You can now save custom dimensions with the SEO Score of an article and with the focus keyword. This gives you reports that are incredibly useful when you’re working on keyword research.

So, upgrade to Google Analytics by Yoast 5.2, or Google Analytics by Yoast Premium 1.1 or go get it if you don’t have it yet!

This post first appeared on Yoast. Whoopity Doo!

5 Must-Download WordPress Plugins for Lead Generation


WordPress is one of the most robust and flexible CMSs out there. This is because of the selection of free and paid plugins that you can choose from to achieve your business goals.

One way of using your WordPress-charged site is to increase leads. Thankfully,there are lots of helpful plugins to boost your lead generation process. This is fortunate because, “79% of marketing leads never convert into sales. Lack of lead nurturing is the common cause of this poor performance. (Source: MarketingSherpa).”

Through the many plugins available, you can have more and than one way to reach out to your potential customers and engage with them. Below are the best of the best:

Thank Me Later

thank me later

Commenting on blogs is a great way for marketers and other bloggers to build relationships online. As the blog owner, you can boost your relationship building efforts by using this plugin. Once users have commented on your blog, they will receive an automated message using the e-mail you indicated on your comment. You can edit the message they will receive so you can include links to your landing pages and sign-up forms.

Read more: 5 WordPress Design Plugins for Non-Designers

Subscribe to Comments Reloaded

subscribe to comments reloaded

Upon setting up the plugin properly, people can register to receive updates on the comments section and view comments they haven’t replied to yet. The comments will be saved on your dashboard. You can then use the database to see which blog posts they commented on the most and send them a personalized e-mail to your products or services.


MailPoet   A newsletter plugin for WordPress

If you have e-books or white papers available for download, then use this plugin to gain something in exchange to your free digital goods. Setting this up correctly, you can create a sign-up form that users will have to fill out in order to receive a link of the e-book to their e-mail. If you don’t have digital goods up for grabs, you can set up a blog newsletter instead so people can receive updates of your blog straight to their e-mails.


Leadin   Free WordPress CRM   Lead Tracking Plugin

Track your lead generation campaigns much more effectively and efficient by using this plugin. Once you have acquired leads using the tool’s pop-up feature, its dashboard will provide data on how the lead was discovered, the specific content that the lead found your site, traffic sources, and more. The plugin will also automatically find useful information about your potential customers such as social media, work history, and company info, among others, and sync to your e-mail marketing platform.


OptinMonster   Best WordPress Popup and Lead Generation Plugin

If you want irresistible opt-in forms that are easy to create and edit and won’t require you to write a line of code, then this plugin’s for you. Unlike other opt-in form plugins, this one has a smart targeting feature in which the form will appear on specific pages on your site or after users perform a specific action on your site, as well as A/B testing.

Question: Do you know any other WordPress plugins out there that can help your lead generation campaigns and increase signups? Let us know by commenting below!

More about lead generation:

WordPress-to-Lead Salesforce Plugin by Yoast

How To Link Bait Without Alienating Your Reader Base


Most Popular WordPress SEO and Social Media Plugins

WordPress seo and social media plugins

Great content is the bottom line of getting – and maintaining – traffic to your blog. However, a blogger cannot ignore SEO and social media. These topics have been talked and written about over and over again, but there must be a good reason for that: they are essential to optimizing your blog and expanding your reader base.

If you’re using WordPress, like countless other bloggers and online publishers today, then you’re in luck due to the nature of the platform. Your life is made so much easier by WordPress SEO and social media plugins that developers have released for the public to take advantage of.

The great thing about these WordPress SEO and social media plugins is that you don’t even have to be an SEO expert to benefit from them. You just need to read the plugin notes, and you’ll be able to figure most of them out, and then you’re good to go.

But what WordPress SEO and social media plugins should you use on your blog?

With the proliferation of these tools, you might get overwhelmed. You might use too many and end up not benefiting at all. You may even encounter incompatibility issues, which will probably mess up your blog – at least on the back end.

BESTPLUGINS have done some of the legwork for bloggers, especially beginning ones, and compiled the best WordPress SEO and social media plugins in an infographic that will narrow down your options.

If you take a close look at the plugins presented in the infographic, you will probably recognize several of them – they’re not called the most popular for nothing, after all – but you’ll also find some that you might want to install on your blog.

From All in One SEO Pack to AddToAny to SEO Ultimate to Social Media Feather – this infographic will be useful for any blogger.

WordPress SEO and social media plugins

Also read:

5 WordPress Design Plugins for Non-Designers

5 WordPress Plugins I Won’t Build a Blog Without

WordPress 4.1 To Introduce Plugin Recommendations

On the Add New plugin page in WordPress 4.0, there are two different tabs to help users discover new plugins: Featured and Popular. What if WordPress could recommend plugins based on the ones you have installed? Thanks to a recent update to the API, users will be able to access a list of recommended plugins in WordPress 4.1.

Plugin Recommender Test Page
This is Not Representative of the Final Product

The recommendations take into account the plugins you have installed and suggests plugins based on which ones are commonly used together. It’s similar to an e-commerce shopping cart that recommends products other customers have purchased based on what’s in the cart.

Recommended Plugins To Get its Own Tab

In today’s WordPress 4.1 developer meeting, the group reached a consensus to create a new tab for Recommended plugins instead of replacing the Popular tab. I’m in favor of this decision because they each have a different definition. Also, the Popular tab shows which plugins are doing well across the directory. Another benefit to keeping the Popular plugins tab is for fresh installs of WordPress, as it gives users a good foundation to start looking for plugins.

In my tests, I noticed that some of the plugins recommended to me are 5-8 years old. I’ve reported the behavior to Alex Shiels and it will be addressed before 4.1 ships. If you are testing WordPress 4.1 and come across any oddities with plugin recommendations, please report them in the ticket.

The Recommended plugins tab exposes new and useful plugins to users instead of limiting them to the Featured and Popular categories. Since recommendations are based on actual data, they should get better as time goes on. Do you think a recommended plugins page is a useful addition to the plugin discovery process? Let us know in the comments.

Recent posts and comments for WordPress

recent posts commentsWhen I was writing the chapter about internal links for our ebook, I also mentioned Recent Posts and Recent Comments. But these subjects were mentioned only very briefly. It seems so logical to add these for any blog, that it didn’t seem necessary to use more than a page to explain these. But if it is common sense to me, is it to everyone? My post about Common sense for your website taught me it isn’t. And if it is for you, it won’t hurt to emphasize that common sense.

In this post I will discuss a number of common internal links that can easily be added via WordPress itself. Or any plugin that is created up for the purpose.

Recent posts

For any website with a blog, adding recent posts or a section with a selection of links to posts (examples listed below) can be a valuable asset. We do that on our website as well. It’s an easy way of telling your visitor:

  • about recent market developments;
  • about recently added information to your website that might be of interest for him or her;
  • about new products or services your company offers;
  • or simply to let your visitor know that you have a blog.

versatile recent postsThis section usually consists of a simple list of links. WordPress offers this functionality by default like shown in the image on the right (this is actually in our Versatile Theme). But to be honest, even if you are less technical, you can create a nice PHP snippet using the examples WordPress gives for the wp_get_recent_posts function. If you prefer shortcodes, I recommend Bill Ericksons’ Display Posts Shortcode plugin.

Just recently, I also started playing with this very customizable plugin called Recent Posts Widget Extended. This plugin is very customizable right from the Appearance > Widget section in WordPress. If you don’t want to use shortcodes in widgets and prefer a customizable recent posts widget, you should really try this plugin.

There are many variations to the recent posts links:

  • Related Posts: usually below the actual article. Very helpful for people that want to read related posts if they like (the subject of) your article.
  • Featured posts: link to your main posts, best read articles or posts that relate to recent market development, for instance by linking to the most recent posts in a category.

Besides that, in the previous examples you can of course replace ‘post’ with ‘products’, and all will make sense as well.

Recent comments

You have to think about this section. If you add a recent comments section and your last comment is dated 2013, that will immediately add an expire date to your website as well. Apparently you haven’t written anything interesting last year?

But if you have comments on all your posts (thank you, valued commenters on this website) and you write articles on a regular basis, the recent comments section will be very valuable. Comments allow for keyword variations, as a visitor might have used a different keyword than the one you are using over and over on your blog. Next to that, and more importantly, a recent comments section will show your visitor you have a vivid and engaging reader base. Meaning you must have something interesting to say.

Note that in most cases you want to limit the number of links on your page (we aim for max 50 links per page), so the link value per link will be best. That might be a reason to choose between recent posts or recent links in your sidebar. In that case I would recommend recent posts. The reason for that is simple: If you have a vivid blog, chances are all recent comment links will go to the same page :)

WordPress has a function for recent comments as well: get_comments. It’s highly customizable, by the way. It’s really easy to display for instance just the comments made in the last week. As I don’t have any experience with plugins that can help you with these recent comments, I’m looking forward to any suggestions you might have.

Like with the recent post alternatives, something similar to the recent comments could be recent reviews or testimonials. Both are user generated content of course. In a recent project I found this plugin for testimonials very useful. It adds, for instance. If you are looking for a nice way to add testimonials to your WordPress site, be sure to check it out. It’s a new kid on the block, only released in May 2014, but I really like it!

Closing thought

Recent posts and recent comments are valuable internal links for any website. There are many ways to add these and it isn’t that hard to do. If you feel people aren’t visiting or even finding the blog on your website, you should simply add a small widget to your sidebar and see the traffic grow!

This post first appeared on Yoast. Whoopity Doo!

5 WordPress Plugins e-Commerce Sites Must Have

5 WordPress Plugins e-Commerce Sites Must Have

As a retailer, you would want to do whatever possible to grow your sales and develop a customer base. For this very reason, it’s high time that you should build an e-commerce site. This is where lots of buyers make their purchases now, as 41.3% of internet users have bought products or services from online stores in 2013 and will only grow in the future.

The real challenge now, therefore, is creating your e-commerce site. Unlike building a static website, setting up an online shop is much more technical as you will have to deal with your inventory, sales funnel, order pages, and the type of analytic tool to use for monitoring visitor behavior, to name a few.

Thankfully, the process will be made much more easier when you build your e-commerce site using WordPress CMS and the plugins you can download. These allow you the capability to create attractive pages for your products just like the ones on Amazon or, manage multiple orders, provide various payment options, and make the buying process seamless for potential customers of your online store.

Below is a list of basic yet essential WordPress plugins e-commerce sites use to set up their products and services up for sale.



Image source

Arguably the most popular e-commerce plugin for WordPress, WooCommerce will have everything  you need to set up your online store such as track your sales and store performance, multiple payment choices, social sharing of your sales pages, and a lot more. Setting this free plugin is fairly easy, which also has documentation to guide you through the process. Its flexibility also allows a host of apps and extensions to further put your stamp on your e-commerce site. Simply put, your online shop won’t go wrong with this powerful plugin.

Honorable mentions: WP e-Commerce, iThemes Exchange: Simple Ecommerce

Easy Digital Downloads

easy digital downloads

Image source

If you’re selling digital products and wish to keep sales of your products clean and simple, then this plugin is for you. Easy Digital Downloads includes a promotional code system to facilitate your marketing campaigns, earnings chart, and add-ons to supercharge your sales.

PayPal File Download WordPress Plugin

paypal file download

Image source

If you find it convenient using PayPal buttons for your digital goods on sale, then you’ll love this plugin! PayPal File Download automatically sends out the digital file (PDF, ZIP, MP3, etc.) within seconds a customer makes a transaction on your site using PayPal.

Bootstrap CDN

bootstrap cdn

Image source

As a site owner, you should make it a priority to make your site load as fast as possible to increase the chances of visitors to make a purchase from your site. This is where Bootstrap CDN comes in, which uses  global content delivery network of NetDNA to ensure that your site performs at optimum levels despite heavy traffic while consuming less bandwidth from your hosting.

Clicky by Yoast

clicky by yoast

Image source

If you draw web analytics data from your e-commerce site using Clicky, then this plugin will make gathering data from visitors and monitoring your website performance much easier.

Question: Do you know other WordPress plugins e-commerce site owners must own? Share them with us by commenting below!

More on e-commerce:

4 Awesome Plugins To Help You Effectively Earn More From Your WordPress Blog

WordPress and eCommerce: Time to Get Serious

Giving Away More Books!

A few days ago, I launched a Thanksgiving-themed book giveaway for Digging Into WordPress. The post has received some great comments that reminded me of how absolutely awesome people can be. So to chase the feeling and keep the momentum going, I’m giving away more books to 9 lucky winners.

Here are the books that are up for grabs:

Details: Valid email address required to win. Printed book includes shipping. Randomly chosen winners will be announced in December.

To participate: leave a comment letting people know what you do for a living (or plan on doing or already did or whatever). It would be great to hear what people are up to these days. Also in your comment, please mention which book you would like to win :)

Have fun and good luck!

Concatenate Assets Instead of Loading Conditionally

One of the most popular suggestions for improving website performance that I often see in the WordPress world goes something like this:

Enqueue only the CSS and Javascript necessary for the particular post or page. For example, load styles for a contact form or a shortcode only on the page where it is being displayed.

Don’t do that! The rendering performance depends more on the number of requests than the transfer size of each request. It is much faster to load just one CSS file and one Javascript file with everything that your website will ever need since all the subsequent requests will be retrieved from the browser cache. Most of the WordPress caching plugins out there already provide this feature so just go ahead and use it.

Use Contact Form 7 to collect business leads and enquiries? I created Storage for Contact Form 7 plugin which stores them safely in WordPress database.

Get it now for only $18 →

What is Local SEO?

local seo 7 packOur Local SEO Plugin has been amongst our most popular plugins for almost two years now. However, we never really highlighted or explained why it is so awesome! Let’s do that right now!

Local SEO basically  the optimization process for the local results in search engines. That means the plugin takes care of your websites visibility in Google Maps and  in the so called 7-pack (see picture).

Why is it  important to be visible in Google Maps?

It is important for your website to appear in Google Maps because you want people to be able to find your contact details. Perhaps people already know your business, but don’t know the phone number. If you setup your website right, this location data can easily be found through search engines.

more importantly, people often do not know your business yet and are searching globally for terms like “pizza”, “lawyer” or “broker in New York”. Google often shows a Google Map or a 7-pack for these kind of searches, so it’s of great importance that your business is listed there!

What do I need to do?

The first thing you have to do to get your website in Google Maps is to have a physical location for your business. That sounds silly, but this is one of the major requirements to get you listed in search engines. It’s hard to rank on “divorce lawyer boston” if your business is not physical in Boston (even if you provide the services there). After you have a physical location of your business you can sign up your business in the search engines: Google, Bing and now even Apple.

The third thing you have to think of is your SEO strategy! Just like regular SEO, Local SEO exists of both onpage and offpage SEO. For onpage SEO it’s important you mention the address of your business on your website in format. And not only on your contact page, but it’s also recommended to place it in the header or footer of your website, so it’s visible on every page.

Besides the address itself the title tag is something you really need to look at. According to the Local Search Ranking Factors naming the City and State, besides your keyword, in your page title is the most important thing to do. A good format would be “<your service> <city> <state>”, for example “Shiny Teeth dentist Portland Oregon”. It’s pretty straight forward, but clear and strong! But don’t take this format for granted. Play with it and, even better, test it!

And of course we can help you with this on page process: the final (and most important thing you have to do) is to get our Local SEO plugin!

For offpage SEO, links from other sites are of course important, but also the so called citations. Citations are just mentions of your business, which don’t even have to contain a link to your website. For example you can get citations from people who review your business (like Hotfrog, Yelp, Tripadvisor etc).

Is that all?

And that is basically all you have to do! Of course, like many things, this is  easier said than done. Just like regular SEO there are a variety of parameters  which will probably differ for each industry. In the next months we will post some more articles about Local SEO to deepen a bit more on particular subjects. If you can’t wait for these posts we’ve already listed a few great resources you can use in the meantime:

This post first appeared on Yoast. Whoopity Doo!