Research on the WordPress, Web Development, and Web Design Job Market

In 2012 and 2013, I did extensive research for the grant program to develop and rewrite the Web Developer degree program at Clark College. This research included an analysis of current and future job opportunities for students graduating with that degree with a solid understanding of WordPress. Now that the program has completed its first […]

Meet John Blackbourn, WordPress 4.1 Release Lead

John Blackbourn speaking at WordCamp London 2013 -
John Blackbourn speaking at WordCamp London 2013 –

Nine years ago, John Blackbourn was stacking shelves at a supermarket 40 hours per week and returning home to do another 20 hours of freelance work on the side. His journey with WordPress started much like many others, when his first patch was accepted seven years ago. This past weekend at WordCamp Europe, Blackbourn was named WordPress 4.1 release lead.

“I’m sure my first contribution was because I found a bug that annoyed me, so I thought I’ll patch that up and get it in there,” he said. Submitting bug reports led him to learn about Subversion, patching files, and the trac ticket manager. “That’s actually a great way for people to get into version control – when someone turns around and says ‘Write a patch for it,’ and you have to go off and figure out how to do it.”

It started off as a hobby, Blackbourn said, “building my own websites and playing around a bit.” After awhile his freelance work started to take off. “Then I was lucky enough to be able to drop my hours down to part time while I ramped up my freelance work,” he said. A couple years later, he got a job at Code For The People, a WordPress development agency and VIP partner.

Code for the People is made up of a flock of regular contributors to WordPress core, with founders who are passionately committed to giving back to open source software. When Blackbourn was put forward to lead the 4.1 release, his agency was behind him 110%.

“I had previously talked to Andrew Nacin about leading 3.9 and 4.0 and he’d already spoken to my bosses at Code For The People. They said, ‘Yeah go for it – we’ll give you time off work, adequate resources, and time to lead it.'”

Simon Wheatley, one of the founders of CFTP, spoke at WordCamp Europe about running an open source business, during which his co-founder, Simon Dickson, commented on donating Blackbourn’s time to core. “CFTP is a small team. Contributing John Blackbourn to WP Core won’t make our lives easy. But it’s important to us. We’ll find a way,” he said.

What’s on the horizon for WordPress 4.1?

This will be the first time that Blackbourn has led a release, although he has been a core committer for both 3.9 and 4.0. WordPress 4.1 will be a short release cycle, with less than three months, due around December 12th. He shared a few ideas with us about where he thinks 4.1 will be heading.

We’re going to try to reign in expectations for the release so we’re going to get a few nice things to do with session management and password security, etc. If we keep the potential features reigned in a bit, then hopefully we won’t be needing to take weeks off work. I expect to be doing a couple days a week that I would normally be working.

Blackbourn hopes to further extend the improvements to sessions that were made in the previous release. “The new thing in WP 4.0 is the sessions – when you log in, you actually get assigned a session now, so you can forcibly log one of your sessions out,” he explained. “So if I’m logged in on my laptop and my phone I can kick myself out of one or the other.” This now exists in WordPress on an API level and Blackbourn is hopeful that 4.1 will add a UI for it.

He has extensive experience working with multisite on a daily basis at CFTP. “We haven’t got many clients who don’t use multisite these days,” he said. When asked if there are any multisite improvements planned for 4.1, he said that there may not be much time to make significant strides on the roadmap. However, he’s optimistic about including improvements related to multisite password resets.

Since it’s his first time to lead a release, Blackbourn plans to meet with several past release leads in attendance at WordCamp Europe in order to get an overview of how it’s done. He’s one of the most humble, talented people I had the privilege of meeting at the event. Query Monitor, his comprehensive WordPress debugging plugin, is truly a work of art, and many developers can no longer live without it. Blackbourn is a benefit to the project and an excellent example of a WordPress professional who has become a high-end expert by sharpening his skills through contribution to core.

My WordPress plugins will be TimThumb free


Contextual Related Posts, Top 10 and Where did they go from here have come inbuilt with TimThumb to resize images for a long time now. However, TimThumb has had a fair share of exploits that have affected a lot of websites and although I’ve maintained the latest version of TimThumb consistently within the plugins, it required me to be on the lookout constantly for updates to TimThumb.

Ben has supported the development of TimThumb over the years, but announced that he has stopped supporting or maintaining it. This means that eventually, I’m going to drop TimThumb from my WordPress plugins.

Contextual Related Posts v2.0 comes inbuilt with complete support for WordPress thumbnails  In the next version, you’ll be able to select the inbuilt created thumbnail sizes, instead of creating a new one. This means even better support for your thumbnails, especially if you’re carving your own ones! v2.1 will remove TimThumb completely and the plugin will no longer bundle it.

I’m currently working on new versions of Top 10 and Where did they go from here and these will come with the WordPress thumbnails support out of the box as well as the option to select existing thumbnail sizes.

If you’d still like to use TimThumb, you’ll need to host this on your own and use a simple function to filter the post image. This is, in fact, how my plugins currently use TimThumb to resize the images. But, as Ben says, this will be at your own risk.

I know that this is definitely a big change. I’ve always liked how TimThumb could seamlessly resize images on the fly, but with lack of support and maintenance, it’s time to stop using it.

My WordPress plugins will be TimThumb free was first posted on September 27, 2014 at 2:56 pm.
© 2003-2014 "Ajay - On the Road called Life". All rights reserved.

What Does WordPress, iThemes, Goodwill, Home Depot, and Target Have in Common? Your Identity and Security.

We received a new credit card in the mail today to replace our old one AGAIN. An “unsuccessful attempt” to access our secure security data happened and this is a precaution the bank is taking to protect us. I have no other information so I’m left wondering. Yesterday I received an email supposedly from Home […]

Google’s Search in Sitelinks and WordPress SEO

Recently, Google introduced the new “search in sitelinks” box for a lot more sites. In the past this used to be restricted to YouTube and a few other sites. If your site is eligible, you’ll see it by Googling your brand, or receiving an email like this from Google Webmaster Tools:

Sitelinks with searchbox email from Google Webmaster Tools

So let’s run through steps 1 to 3:

1 Verify you have a functioning search engine

For 99.5% of WordPress sites, this one is very easy: you type (replacing with your site’s URL) and you should be seeing search results. If not; you’ve either made a conscious decision to move your search engine elsewhere or you need to fix your theme.

If you see search results but you don’t like them, read my post on how to make WordPress search suck a little bit less.

2 Add the necessary markup

Another very easy step, assuming that A, you found your search engine under step 1 and it’s the default WordPress one and B, you’re using our free or premium WordPress SEO plugin. Update to the latest version of our plugin and you’ve got the code right on your site.

If your search engine is not the default, you’ll need to change the URL using the built-in filter. If you don’t have a search engine, get one.

3 Set up a preferred canonical URL for your homepage

Step 3, and yet again, this one’s easy. If you’ve got WordPress SEO installed, this’ll have already been done for you. If you don’t have it installed, you’ll realize after reading this that now is as good a time as any to get it done.

If all is done and your site is eligible, you should be seeing something like this in the search results:

emerce search in sitelinks

Conclusion: we’ve got your back

As I said in my post about Google moving back to 10 blue links:

When we were discussing these changes with some SEO friends, one of them said “it’s awesome, it’s a chance to be the first movers on another new thing”. That’s one thing you can be sure of: we’ll be there helping you make the most of it!

That’s what we’re doing. Thanks for using our WordPress SEO plugin!

This post first appeared on Yoast. Whoopity Doo!

Version 1.3.6 of Storage for Contact Form 7 Plugin

I have updated the Storage for Contact Form 7 plugin to keep the uploaded form files even when they are not sent in e-mail. It was a request from a user who wanted to avoid sending large files in e-mail and still have a reliable way of accessing them from the WordPress dashboard.

How Public Perception of WordPress Influences Developer Contracts

photo credit: Tax Credits - cc
photo credit: Tax Creditscc

If the WordPress community is your only barometer of knowing how an open source community works together, then you might want to explore outside a bit further to gain a broader outlook on other cultures. Some of the differences are worth examining.

A few days ago I noticed an interesting observation regarding the relationship between plugin development and project offers in CakePHP vs. WordPress.

Mario Peshev is a WordPress contributor who owns DevriX, a high-end agency specializing in SaaS development and platform architecture. He is also a co-organizer of WordCamp Sofia and WordCamp Europe 2014.

It seems curious that Peshev would regularly receive more offers for CakePHP work, originating from older code he’d written, versus requests for WordPress, which powers more than 23% of the web. In his experience, it’s not just related to CakePHP but many other technologies as well.

“It’s not only CakePHP really. CakePHP, CodeIgniter, Java, Django, Drupal, Android even – all sorts of small extensions, plugins or apps I’ve built and released publicly get larger attention than my WordPress contributions,” Peshev told the Tavern.

“Not only do I get 2-3x more projects with any other platform (even though I haven’t contributed there for 3+ years), but the proposed rates and budgets are few times higher.”

His experience seems to suggest that there’s a disconnect somewhere in how potential customers value the skills of WordPress developers.

Client Perception of WordPress

WordPress is heralded the world over as being the most user friendly publishing software on the web. Unfortunately, this can also contribute to unrealistic client expectations when it comes to custom development.

“The majority of the WordPress users that get in touch with us are: bloggers, small company owners, marketing consultants, sales agents, small and medium-sized businesses,” Peshev said. “They are not technical people and don’t have realistic (according to the market standards) expectations for the type of work they ask for.”

He outlined a typical scenario that plagues many development agencies. Because users can piece most of their sites together without help, they figure rest should be easy:

A common scenario is: “We’ve built our WordPress website ourselves with a premium theme and a few plugins, so we just need those tiny changes applied here and there.” Their infrastructure is not ready for the types of changes they need, and the fact that 90%+ of their requirements cost $100 or so (for a premium theme + a plugin) doesn’t justify paying ten times more for the other 10% if that would be 10-20 hours of high-end development. The math just doesn’t add up for them.

These misconceptions play out in various ways, including users feeling entitled when it comes to free plugin and theme features, core updates, and other improvements that seem to arrive magically from the sky. Very few plugin and theme developers can report anything more than meager donations when it comes to contributing free extensions.

For Peshev, creating open source extensions for platforms outside the WordPress ecosystem has been far more rewarding in terms of referrals for work. He detailed a recent request for he recieved in a post titled The $15 WordPress Gig:

“Hello, I’m looking for someone who could customize a WordPress plugin we bought. It’s a car reservation system, we need to change the pricing model and add a few extra SQL tables that would operate with the plugin.”

After requesting a project description and budget, Peshev received the following reply:

“Thanks, the plugin costs $25 so I estimate the change would probably cost around $15.”

While that response may seem shocking to a developer, it makes perfect sense to someone who only has the price tag of the original product as a gauge for judging the value of work related to it.

Reshaping Client Expectations

The WordPress community has a unique challenge when it comes to communicating the costs of custom development, given that thousands of free and/or dirt cheap themes and plugins are available. How can a seemingly simple modification be 10x the price of the original plugin?

Some of these issues stem from the way most development agencies attract customers. “WordPress is more design and marketing oriented than other communities. Portfolios reveal beautiful and stylish websites and agencies focus on frontend work,” Peshev said.

“Building CRMs, eRPs, eCommerce platforms or other backend-oriented platforms and services is still not a common thing in the WordPress ecosystem, even if it’s completely possible and some of us build these sorts of projects for larger clients.”

Peshev believes that since most clients lack technical knowledge, they judge agencies and developers by what they can see. “Clients don’t browse or GitHub portfolios, they are just looking for beautiful designs. Code quality doesn’t matter unless you deal with eCommerce, and scalability and security are overlooked until it’s too late.”

If you sell WordPress development services, you will undoubtedly have to become skilled at reshaping client expectations. When it comes to custom development, experienced developers often recommend giving the potential customer a more familiar frame of reference:

There are many different pre-internet era professions that clients can better understand:

What is difficult for customers to grasp, is that development expertise is most similar to the work of a traditional engineer in that it requires applying years of knowledge and experience to devise a technical solution that will hold up in the long run.

A client may see his request as a “simple tweak to a plugin or theme” but is unaware of the many obstacles that can make it complicated. Peshev details a few examples in his recent piece on The Slippery Slope of WordPress Customizations:

  • The theme is not written according to the WordPress guidelines
  • The plugins are not compatible
  • There have been various manual changes in those plugins
  • The hosting provider has some limitations
  • There are PHP/MySQL version issues
  • The site uses some 3rd party API/service/database that needs special attention
  • The fixes could cause a regression in another area of the site
  • A simple functionality has been built with a complex plugin and the change needs to be applied there, which requires hacking the plugin itself

For many small to mid-sized development agencies, the majority of incoming requests are directly related to customization work. Developers have to be prepared to educate clients on the realities of building quality WordPress solutions. While client perceptions are a major factor in the size of contracts developers are able to win, Peshev believes that the WordPress community has deeper cultural issues to resolve before the public will change its mind on the value of WordPress development.

Changing Public Perception by Building a Culture of Contributing

Because the open source WordPress project is primarily a volunteer-driven effort, a culture of contribution is vital to its continued ability to innovate. It’s also vital for extension developers if they want to work together to build more elegant solutions. According to Peshev, very few companies and agencies see the value of contributing to the project.

While traveling around Europe I’ve met developers and devops at WordCamps from companies with 400+ employees, where the WordPress department is only 5-10 people strong. Those projects are large online magazines, or platforms for digital and high-tech companies that heavily rely on the WordPress platform, and they rarely invest in WordPress advocates or full-time contributors.

Apart from a small number of corporately-funded contributors, the rest are individuals who donate time in the evening after the kids go to bed, over the weekend, or in between their freelance/agency duties.

Yet, many contributions go unrecognized and are often wrongly attributed entirely to Automattic by every major tech news outlet. These are honest mistakes, but, when uncorrected, they contribute to the public perception that the project is the work of a handful of people who work for an elite agency, marginalizing the efforts of hundreds of unpaid volunteers.

“‘WordPress themes’ is the most popular subject in Google searches if you check with the Keyword planner,” Peshev notes. “Yet until a week ago there were no paid contributors to the WordPress Theme Review Team. Lots of people haven’t been noticed at all there, despite the facts that millions of websites run the themes they have reviewed and polished in order to reach to the point that they actually work.”

He contends that when contributions are undervalued or unrecognized, WordPress developers have little motivation to work together. This applies to product development as well, which spills over into custom development work.

“Have you noticed how many Lightbox, Gallery or Slider plugins we have out there? Contributors don’t help each other and products stay small and simple,” Peshev siad. “I have 25+ plugins on GitHub and I’ve only ever gotten three or four pull requests for any changes, and keep seeing similar plugins popping up every few weeks.

Our culture outside of the core isn’t contributing, but building everything from scratch or using ‘builder’ plugins, which is somewhat justified by the low budgets that prevent us from any research activities which could slow us down (and burn our profits).”

As a result, many developers opt to go it alone, building custom solutions as quickly as possible on small budgets. Unfortunately, this practice restricts the growth of development agencies.

“I see a huge gap between the types of WordPress development/design requests,” Peshev said.

“The types of WordPress experts that I see out there are either freelancers and small studios with up to 3-4 people, or agencies like Human Made, 10up, WebDevStudios (and Automattic, of course). On one hand, there are the small $500 customization gigs or $3K eCommerce projects. On the other end we have the VIP type of clients and requests that are at least 50 times more expensive than the others.”

WordPress clients who cannot afford VIP level service turn to smaller companies like Peshev’s to accommodate their budgets. However, Peshev is frequently approached by clients looking for high-end consultants for other platforms, based on past open source contributions. Unfortunately, when it comes to WordPress work, contributions have done little for bringing in larger projects.

“I find it challenging to grow from a consultant to a larger and sustainable agency solely with WordPress – and I see numerous small agencies getting stuck at 4-5 people tops,” he said.

Promoting Collaboration and Contribution

For many dedicated WordPress contributors like Peshev, open source contributions have not led to more work or better contracts, despite the fact that these types contributions should verify these developers as high-end experts. A little bit of skill and free time are all that are required to contribute to open source software, but time comes at a cost when you’re struggling to pay the bills.

Peshev’s observations raise some important questions that are worth considering. In an ecosystem where developers are often in competition with each other to create the same simple extensions for fast cash, it doesn’t pay to collaborate on more elegant solutions. This contributes to a market flooded with cheap solutions and customers who don’t value the skills required for WordPress development.

Highly skilled developers, who might otherwise be driven away to other more lucrative platforms, often choose to stick with WordPress because of its unique community. If we can find a way to change the culture to value and reward contributors, they will be better positioned to make a living with WordPress. This allows them to create more stable, secure solutions that raise the quality expectations of users across the web.

The slippery slope of WordPress customizations

There are two things I highly admire in the WordPress ecosystem: being able to precisely budget small projects (where the tiniest error could ruin the entire profit, if not more) and do freelance customization work.

We own a small brand under the DevriX hat called Premium WordPress Support, which started as a support engine for maintenance and retainers work. Currently we’re testing different approaches related to marketing and SEO, advertisement campaigns and more, and the majority of incoming requests are related to customization work – WordPress websites, themes or plugins.

The $500 client

I was truly impressed by WP Site Care after they posted Why We Love the “$500 Client”. Given the technical ignorance of the majority of clients who come from non-technical industries, I’ve found it challenging to compete in this field. Why?

There are several work phases:

  1. Approach
  2. Negotiation
  3. Research
  4. Discussing requirements and details
  5. Offer
  6. Implementation
  7. Few iterations
  8. Testing
  9. Delivery

The first 5 phases are not billable as you need to understand the specifics, send the offer and see if the client is ready to commit. Then, there are several tricky phases with either dodgy requirements, or a high risk of scope creep and more (especially if you don’t spend 10 hours writing the most detailed specification that would cover the entire budget).

WordPress Customizations

Even then, building a $500 website from scratch is doable – if you have a package that includes specific features, a list of premium themes and several fixed hours of work. Then the amount of time during the negotiation phase is limited to zero, and the package is sent as an offer.

What happens with WordPress Customization requests? You get an email that says: “We have that site that’s almost ready, with a few plugins and we need the following 3 changes: X, Y, Z”.

I already blogged about the $15 gig, and the type of RFPs I get way too often from several networks. But even if we ignore that particular case, another bunch of requests comes from clients who have build 90% of their website already with several plugins and expects a few tiny bits to be done before the end. And they see it as a hot fix “no matter what”, preferably ASAP though.

If you need to “quickly” adjust a plugin and adapt a few CSS fixes on the given website, what sort of issues could you encounter?

  • The theme is not written according to the WordPress guidelines
  • The plugins are not compatible
  • There have been various manual changes in those plugins
  • The hosting provider has some limitations
  • There are PHP/MySQL version issues
  • The site uses some 3rd party API/service/database that needs special attention
  • The fixes could cause a regression in another area of the site
  • A simple functionality has been built with a complex plugin and the change needs to be applied there, which requires hacking the plugin itself

Most of those issues are actually being noticed during the research phase, after the work has been started. The other way around is to ask for an hour of two of research before sending the offer, or spending some time discussing the specifics upfront (even if the client may not be aware of all of those).


Last year I was getting roughly 8 meeting requests a week for random projects. Some of those didn’t even specify what sort of work is involved.

If I had to commute for 2 hours, spend an hour in a meeting, prep a proposal and get it rejected, that means at least 40 hours a week of non-guaranteed work. And if I want to get my time billed upfront, most of the clients reply with: “Are you crazy, we haven’t even started yet!”.

There are not too many business consultants in WordPress willing to estimate the costs of a project, mostly due to the small budgets of the clients – many can’t afford the changes, how about business consulting upfront? :)

Possible Options

Most of the time I avoid WordPress customization requests since my personal track record has been disappointing. There are several other options that I suggest to some of my clients though:

  • Consult with a technical expert regarding the budget or building a decent specification for the changes needed (or pay for consulting before the work has started)
  • Increase the budget and prepare for higher costs (sometimes it’s easier and cheaper to start from scratch if the architecture isn’t stable or scalable)
  • Rebuild that from scratch (sometimes)
  • Pay for 2-3 hours of research before sending the offer
  • Pay hourly with some very rough estimate where it’s possible that any unexpected changes would be billed extra
  • Subscribe for the retainer plan for a few months while we could sort everything out without too much pressure
  • Contact a risky agency that loves gambling and is willing to bill a fixed fee “no matter what”

I have had clients from other areas investing in customization work that includes a research phase, getting acquainted with the code base, building everything as needed. The most important advise for clients though is that starting small doesn’t mean that changes would be almost free later on.

If you build a small house you can’t expect to convert it to a castle for a few bucks based on the initial base. Changes may take time – a lot of time on larger projects.

Do you use a different approach with clients asking for customization gigs?

The post The slippery slope of WordPress customizations appeared first on Mario Peshev on WordPress Development.

The temptation of the green bullet in WP SEO!

This post starts with a confession: up until recently, I always asked my husband to do the page analyses of my blog posts. I have known about SEO for many years now, as Joost never stops talking about it. I just never used the plugin to check my own writings myself, I simply asked him to do that. Being married to Joost de Valk just has it benefits and this was one of them. But, as I started to read more and more about SEO and my interest in blogging increased, I decided to do some search engine optimization on my own.

The first time I used the plugin I was amazed by the ease of use and by the many features it contains. It made me fall in love with Joost all over again. I genuinely believe that the page analysis features in WP SEO can help you make your text SEO proof in a very, very easy way. The checks the plugin does are really amazing! But I also discovered a caveat: you should be aware of the temptation of the green bullet!

I want a green bullet in WP SEO by Yoast

Page Analysis and the green bullet in WP SEO by Yoast

The gamification of the page analysis within our WordPress SEO plugin helps you to upgrade the SEO-friendliness of your post. And it’s great fun! It can be a game to get as many green bullets as possible! However, the gamification also increases the likelihood that you cheat your own search engine optimization process in order to get that green bullet in WP SEO. And you should NOT do that!

Example of misuse of the Page Analysis Tool

In one of my first attempts to use the page analysis tool, I found myself cheating the tool in order to receive a green bullet: next to writing blogs for, I also blog for a new mom blog. One of my posts is about my favorite brands of newborn clothes. Of course, being the wife of Joost de Valk, I had done some extensive keyword research in advance. And I wanted this post to rank for baby clothes.

While starting my optimization with entering my focus keyword – baby clothes, I discovered that my blog did not contain the word baby clothes once. Not in the body of the text, not in the title, not in one of the headings. I simply had written about newborn clothes, instead of baby clothes. So, my bullet did not get green. And I felt agitated: I am Mrs Yoast and my bullet was orange. So, this is what I did: I changed my focus keyword from baby clothes to newborn clothes. And.. my bullet turned green instantly. It didn’t feel good, however… My keyword research had been an in depth and solid one. I had chosen, rather consciously, to attempt to rank for baby clothes.

Never change your focus keyword to receive a green bullet!

Changing your focus keyword in order to receive a green bullet is just plain nonsense. According to my keyword research, baby clothes is what people search for in Google. My post, however, was not optimized for baby clothes at all. Changing my focus keyword will not change the search behavior of people. A green bullet does not lead to findability if the terms you optimize for are not the terms people use to search in the search engines.

Fortunately, I came to my senses before my husband detected my cheating. It did make me wonder: if I am that susceptible to cheating the page analysis tool in order to get a green bullet in WP SEO, wouldn’t other people suffer from the same?

How to use the page analysis tool correctly

Your keyword research is always essential and should be leading. You should really analyze in depth on what terms you want people to find you. Your articles should be a reflection of these keywords. Changing your keywords according to the content of your articles, will lead to an ad hoc SEO strategy. You don’t want that! A strategy should never be ad hoc.

Without altering the core of the content of your blog or making too many concessions to readability and structure of your text, you can finetune your blog using the page analysis tool of the WP SEO plugin. Your SEO strategy should never be more important than the actual content and structure of your blog (read my post from last week), but minor changes in text and headings are perfectly acceptable!

I eventually made some alterations in my blog in order to fit it more nicely in my search engine strategy. I decided to change newborn clothes into baby clothes a few times and made some alterations in headings and titles. I did not change the core of my blog.

My bullet turned green and my husband was very proud…

This post first appeared on Yoast. Whoopity Doo!

A Vagrant Configuration for Contributing to WordPress Meta

Contributors on the WordPress Meta team are responsible for and its associated sites, i.e.,, etc. The team works on supporting and improving these sites along with the build tools that are used by the other contributor groups. Folks often complain about how the sites work, but did you know that much of the code is open source and open for contribution?

Up until recently, there was no easy way to set up a local development environment for contributing to WordPress Meta. This created a hindrance for new contributors looking to get involved, according to team member Ian Dunn.

Setting up local development environments to contribute to the Meta sites can be an obstacle for those without access to the private subversion repositories or a sandbox, especially at a meetup or WordCamp contributor day, where time is limited.

That’s why Dunn created WordPress Meta Environment, a vagrant configuration based on Varying Vagrant Vagrants. It allows you to quickly set up a development environment that is already provisioned with everything you need to contribute a patch to any of the supported meta sites. The setup includes all the open source code and sample data, similar to what you would find on the production site.


Currently, the WordPress Meta Environment supports the following sites, with more planned in the future:

Setup is very similar to the instructions for Getting Started with VVV, except you’ll clone the WordPress Meta Environment repository instead. Once the setup is finished, you can visit for a list of supported sites and server tools.

The configuration will continue to evolve and add support for other official WordPress sites. Dunn received some helpful feedback after attending WordCamp Seattle’s contributor day. As a result, the project’s road map includes a number of priorities for future refinements that will make it a better turnkey local development environment.

The WordPress Meta team works together to create goals/priorities and to provide feedback on efforts toward meta site improvements. If you’re thinking about submitting a patch or have already created one, it’s a good idea to check in with the WordPress Meta team on the P2 blog or in IRC in #wordpress-meta. For more information on contributing, check out the Getting Started section of the Meta Handbook before heading over to Meta trac.

Google Analytics eCommerce tracking

We’ve rebuilt our Google Analytics eCommerce tracking plugin and added support for WooCommerce! Read on to learn why you should buy it today. If you want to optimize your shops sales, you need to make sure you connect your visitor data to your transaction data. This plugin does just that. We’ve made transaction tracking so reliable that we can now confidently say our plugin should not miss a single sale.

eCommerce tracking allows you to do all sorts of nice reporting in Google Analytics, on which Thijs will be writing a few posts in the coming months, but let me show you the sort of reports you can get just by enabling the plugin and enabling eCommerce tracking in Google Analytics:

eCommerce overview - Google Analytics

99.9% reliable eCommerce tracking

Google introduce a new feature with Universal: a collections API that allows us to send calls on the server side instead of with JavaScript. This means that when a customer finishes a transaction, the plugin can immediately track it, instead of hoping the customer will reach the thank you page. The plugin can do this while still connecting the sale to the customers session. Because of that, your Google Analytics eCommerce tracking becomes almost 100% reliable. Almost, because there might be the odd occasion where your server errors in sending the request and we don’t want you suing us ;)

This new tracking method also means that when you refund a transaction, the transaction gets reversed in Google Analytics. This makes your Analytics data even more reliable and therefore much more useful.

This Google Analytics eCommerce tracking extension is the first premium extension specifically made for the new version 5 of our free Google Analytics plugin. From $49 for a single site, you can have the best e-commerce reports available.

Super simple installation

The plugin has no settings. You install, activate, enter your license key and activate the license so updates will flow in and you’re done:

installed analytics ecommerce tracking


WooCommerce bundle

woocommerce logoAs some of you might have noticed, this is our second WooCommerce offering; we also have our WooCommerce SEO plugin. We’ve bundled the two together in a new Yoast WooCommerce bundle for our most loyal users! If you use both our WordPress SEO plugin as well as our Google Analytics plugin this bundle will save you a lot of money.

Check out the Yoast WooCommerce bundle here or read more about the GA eCommerce tracking plugin!

This post first appeared on Yoast. Whoopity Doo!

How to Fix Fatal Error: Maximum Execution Time Exceeded in WordPress

Recently one of our users told us they weren’t able to update their WordPress theme due to the Fatal Error: Maximum Execution Time Exceeded in WordPress. Fixing this error is relatively simple, but it can be really frustrating for beginners. In this article, we will show you how to fix fatal error: maximum execution time exceeded in WordPress.

A WordPress site showing maximum execution time exceeded error

Why Maximum Execution Time Exceeded Error Occurs?

WordPress is coded mainly in PHP programming language. To protect web servers from abuse, there is a time limit set for how long a PHP script can run. Some WordPress hosting providers have set this value to a higher level while others may have set it to a lower level. When a script reaches the maximum execution time limit, it results into maximum execution time exceeded error.

Fixing Maximum Execution Time Exceeded Error

There are two ways you can fix this error. The first method is to fix it manually by editing your .htaccess file and the second method allows you to do the same thing with a plugin.

Method 1: Editing .htaccess File Manually

Simply connect to your website using an FTP client.

Your .htaccess file is located in the same folder as your /wp-content/ and /wp-admin/ folders. If you can’t find it, then look at our article on why you can’t find the .htaccess file and how to find it.

Next, add this line to your .htaccess file:

php_value max_execution_time 300

This code simply sets the value for maximum execution time to 300 seconds (5 minutes). If you still get the error, then try increasing the value to 600.

If you found this method easier, then check out these most useful .htaccess tricks for WordPress.

Method 2: Using a Plugin

If you don’t wish to edit .htaccess file manually, then you can install and activate the WP Maximum Execution Time Exceeded plugin.

That’s all. The plugin works out of the box and increases the maximum execution time to 300 seconds.

We hope this article helped you fix fatal error: maximum execution time exceeded in WordPress. If you come across any other issues, then don’t forget to check 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 Google+.

To leave a comment please visit How to Fix Fatal Error: Maximum Execution Time Exceeded in WordPress on WPBeginner.

WordPress plugin banner as a .PSD

I recently felt like making a few banners for my plugins. First questions that came to mind: "what's the name of the file again? what dimensions?". And then, while making stuff: "will this be hidden by the plugin's title?"

So, I made this simple banner template as a Photoshop PSD file. Nothing genius but feel free to use. No excuse not to add some fancy eye candy to your best plugins!


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

Feed enhanced by Better Feed from Ozh

What Does “Open” Mean?

I’ve been an Open Source advocate for about 10 years now, and this has been something that determined me over the years. If you start applying Open Source to your life, suddenly everything changes. Completely.

Contributing to WordPress

Marko and I led a workshop on “Contributing to WordPress” for my CMS students last year at “Telerik Academy”. I didn’t expect anything particular back then, mostly because of the fact that all of them were looking forward to their first jobs and were only interested in learning enough in the tech field to land their job, start earning some money and improve their life style.

While working on my slides I found an incredible image regarding the Open Source culture:

Turns out that Open Source could also be applied to your culture, networking, and everything you do. Try this for yourself. Try this while communicating with your friends and family, keeping everything open. Living without secrets may be hard at times, but it’s so relieving and comforting.

My Open Source past

Over the past 10 years I’ve been involved with several open communities. The Linux one, the Java one, some time with Python, and several years in smaller PHP-driven communities. I’ve been sucked into the WordPress community at last by the look of everyone, spending so much time building stuff pro bono for the sake of the users, sharing knowledge and everything.

It’s been magic.

And while I was involved with Java, CodeIgniter, CakePHP or even Python, all of my small contributions have been noticed – by business partners, other developers, and clients. The technical community is grateful and appreciative when it comes to that, and I’ve seen fellow developers being saved or “bought” in times of trouble.

The WordPress Process

Matt has been playing a key role in the WordPress development. By registering the WordPress Foundation and keeping the WordPress trademark out of trouble, he has proven himself trustworthy when it comes to relying on said platform.

Not to mention the contributors at Audrey and Automattic – massively contributing and spending dozens of hours every week in order to make the platform and the community around it stable, reliable, healthy. There have been small dramas here and there, but that’s normal – especially for a platform running 23% of the World Web now.

Major companies in the US have been “buying” contributors and significant rock stars. Human Made also does – and that’s great, my only non-US example though.

It’s interesting what contributing looks like.

Contributing Formulas

There are two types of contributing:

  1. Working as a full-time Open Source contributor (that role being a unicorn with only a very few representatives in the industry)
  2. Working something and spending the “free” time contributing (the other 99.9999% of the people)

I’ve seen quite a few successful multi-million dollar businesses around other platforms, and some huge companies dealing entirely with development on top of an open platform. Research studies estimate about 9 million Java developers, compared to several tens of thousands of WordPress developers, if we take a look at the annual surveys.  And Java doesn’t power 23% of the web, even if you can program your microwave, build a website or play with Raspberry Pi. Yet, there are very few large WordPress agencies (fairly small, compared to most enterprise companies), and most projects are built by students, inexperienced contractors and first-time learners.

Experts, Consultants, Business

Showing a GitHub portfolio to your WordPress client is far from impressive.

The number of well-paid WordPress consultants I’ve been following on Twitter and reading about online is lower than the wealthy Ruby or Node.js people I’ve met in person (and I don’t know many of them).

Actually, if you were a client – like the one you work with – how would you search for WordPress developers for your project, and what would you look for while searching: portfolio, community involvement, cost?

I’ve seen several cases of almost full-time WordPress contributors, not working for any of the top companies sponsoring WordPress, asking for projects during their holidays or after quitting their jobs – getting almost or absolutely no replies and help from clients and companies.

There are very few examples of successful plugin businesses or even theme markets, and we could easily name all of them.

The ecosystem is somewhat prepared to accommodate freelancers and small agencies, yet projects tend to either fall  into the “$500 websites” group, or VIP clients, working with the 10 VIP providers.

I see a weird gap somewhere in-between, somewhere into “resolving the Open Source contributions” back to “appreciating the contributors”.

Theme Reviewers Team

“WordPress themes” is the most popular subject in Google searches if you check with the Keyword planner, yet until a week ago there were no paid contributors to the WordPress Theme Review Team. Lots of people haven’t been noticed at all there, despite of the facts that millions of websites run the themes they have reviewed and polished in order to reach to the point that they actually work.

Tension has been growing when it comes to footer links, or rewarding reviewers, or fixing the problem with themes waiting in the queue for months.

I get more leads for CodeIgniter or CakePHP work on a monthly basis from my three very small non-WP plugins on GitHub than from my 20+ GitHub plugins or profile.

Again, I know that there are few happy bunnies out there, working for top notch companies that allow them to contribute back and pay decent salaries. I get support from SiteGround for Core work and I’m very happy for being able to help, too.

But… What if three hundred of the top 2K contributors were backed up this way? How would that reflect to the code quality of the themes and plugins out there, and the overall ecosystem? Would it make any difference?

Who knows…

The post What Does “Open” Mean? appeared first on Mario Peshev on WordPress Development.

Contextual Related Posts 2.0

Last week I released a major update to Contextual Related Posts. Given the size of the update, I’ve tagged the latest version as 2.0, heralding a new direction in the further development of this plugin.

v2.x brings multi-site support, WordPress thumbnails and a more powerful API. It also has several minor bug fixes and cleaner code.

Multi-site support

One feature that has been missing from Contextual Related Posts has been multisite support, mainly in terms of a Network Activate feature. With the Network Activate feature enabled, a multi-site admin can choose if he wants to activate Contextual Related Posts across all sites in the network or let users activate the plugin independently on their site.

CRP - Network Activate

Network Activate Contextual Related Posts

Once you network activate the plugin, it will no longer show up in the Plugins page of the individual sites. However, users can visit Settings » Related Posts as usual to configure the plugin. If you don’t Network Activate the plugin, it will show up on individual sites and the site admin can choose to activate the plugin if he/she so chooses.

WordPress thumbnails

CRP has had support for timthumb for a long time and by default timthumb was used to create thumbnails. Although timthumb gives you much better control on thumbnail resizing, it does add slightly higher processing on the servers since the images are created on the fly.

Many users have requested to include support for WordPress’ inbuilt image resizing and this feature has found it’s way in v2.0 of Contextual Related Posts.

Thumbnail options in Contextual Related Posts 2.0

Thumbnail options in Contextual Related Posts 2.0

Contextual Related Posts will add a new image size called crp_thumbnail based on the settings above. This means WordPress will create a copy of the image with the specified dimensions when a new image is uploaded. By default, this is set to proportionally crop the image. i.e. the image will first be resized so that the max dimension is as per the above i.e. 150px. You can optionally choose to hard crop the image by enabling the crop mode above. This will cause the image to be cropped to the exact dimensions but this might result in some part of the image being chopped off.

In either case, I strongly suggest running a regenerate plugin like Force Regenerate Thumbnails to recreate the image sizes for your older images. I especially like this plugin because it deletes the old and unneeded image sizes that would have been created in the past and are unnecessarily occupying space on your server.

Extended API

In version 2.0.0, I’ve added several new filters and actions that will allow other plugins / themes or addons to talk to Contextual Related Posts. What’s currently missing is the documentation which I shall be working on over the next several weeks.

If you’re interested in the API, take a look at my new plugin Contextual Related Ports Taxonomy Tools. Available for free from, CRP Taxonomy Tools adds support for restricting posts to the same categories and tags of the current post.

CRP Taxonomy Tools

CRP Taxonomy Tools

This is also a working example of the API that adds settings to Contextual Related Posts and also filters the post query.

Contextual Related Posts on Transifex.

Contextual Related Posts is now on Transifex, ready for translation courtesy the WP Translations. WP-Translations is the place where you will find a number of WordPress amazing Plugins and Themes to make them available in your home language. In exchange you will receive credit for your work and will certainly make part of the WP community history in your country.

If you’re a translator, do consider joining the Wp Translations team. Visit Contextual Related Posts on Transifex.

Closing words

As usual, if you’ve got any questions please open a support ticket in the forums. It allows me to answer your question quickly and more efficiently. Emailing me your support query or writing it in a comment is most likely going to be missed due to volume of emails I receive.

If you’re an existing user of the plugin, do consider writing a review. WordPress developers are welcome to contribute to the plugin via GitHub. Create an issue or fork the plugin and submit a pull request for me to review.

And, before I forget, Contextual Related Posts also has a brand new header.

Contextual Related Posts

Detailed changes in 2.x


  • Fixed: Clear Cache button which broke in 2.0.0


  • New: Multi-site support. Now you can Network Activate the plugin and all users will see related posts!
  • New: Thumbnails are registered as an image size in WordPress. This means WordPress will create a copy of the image with the specified dimensions when a new image is uploaded. For your existing images, I recommend using Force Regenerate Thumbnails
  • New: Completely filterable mySQL query to fetch the posts. You can write your own functions to filter the fields, orderby, groupby, join and limits clauses
  • Modified: Lookup priority for thumbnails. The thumbnail URL set in the Contextual Related Posts meta box is given first priority
  • Modified: Removed border=0 attribute from img tag for HTML5 validation support
  • Modified: Default option for timthumb is disabled
  • Modified: Default option for post types to include is post and page
  • Modified: get_crp_posts has been deprecated. See get_crp_posts_id instead
  • Modified: Turning on the Default style will switch on thumbnails, correctly resize them and will also hide authors, excerpts and the post date
  • Fixed: Post image will now be loaded over https if the visitor visits your site on https

Download Contextual Related Posts

Contextual Related Posts 2.0 was first posted on September 12, 2014 at 8:00 pm.
© 2003-2014 "Ajay - On the Road called Life". All rights reserved.

WP Couch Mode Plugin: For Readers Who Want to Focus on Content

We may be bloggers, content providers, writers, or whatever you want to call yourself, but at the end of the day, we are also consumers. If you think about it, when we’re not writing, we’re reading. Or playing games, in some cases. ;)

WP Couch Mode


Some that reading time may be because we want to be at the top of our game when it comes to the niche we write about. Some of the time may be reading for the simple pleasure of reading.

Whatever the reason, it cannot be denied that reading is an inherent part of the Internet experience. And that’s where the highlighting of content comes into the picture.

For many people, they just want to see the content of the article or blog post. They want to see the text, the words, and perhaps the accompanying images.

Distraction-free reading.

That’s why posts like this on Medium appeal to readers. The content is the focus of the post, and while photos break up the text, there is flow that still highlights what is to be read without distraction.

Understandably, however, some sites need to have ads and other elements that may distract the reader from the content.

What can you do to balance these needs out?

Enter the WP Couch Mode Plugin.

This plugin gives the reader the option to forego all the ads and other distracting elements that may be found in your site. What it does, basically, is to add a link – which is customizable – to content. When this link is clicked, a lightbox pops up, showing only the content.

Developer Ritesh Vatwani has incorporated several options, as seen in the screenshot below.

WP Couch Mode

When the reader chooses “Read Mode”, this is what he will see.

WP Couch Mode

Obviously, that distraction-free mode is more appealing to readers. Unless you’re one to actively seek ads for some reason.

For a more in-depth analysis of how WP Couch Mode performs click here.

If you want to download the plugin or check out the developer details, click here.

Here are more WordPress tips for you:

Export Google Docs to WP Posts with “Send to WordPress” Chrome Extension

6 WordPress Plugins That Make Migration & Mass Content Creation Simple

15 Functional e-Commerce WordPress Blogging Themes to Start Raking in the Sales

Savvii: Expanding our local WordPress hosting options

We often get questions from people asking about what is “good” WordPress hosting. One of the things we tend to find hard is tell people which hosting company they should use in Europe. Some of the managed WordPress hosting companies out there offer servers in Europe, but their support is primarily American and it almost always shows.

Savvii LogoAbout a year ago, we were approached by a very local (to us) new managed WordPress hosting company, Savvii. They’re based in Nijmegen, the Netherlands, which is about 10 km away and they’d started to offer managed WordPress hosting. As Savvii is part of a larger company I already knew, we started talking immediately. As things go those were rather technical conversations: how should we do this, where should our servers be, etc.

Moving over to Savvii

Earlier this week, after quite some testing, we moved over. Now is not exactly “vital” to our business, but if something is wrong with it, I almost always get a tweet or 5 within the next few minutes, so people do still visit it :).

The new hosting is fast. We ran some tests and the is now actually twice as fast on the frontend. Now the frontend is nice, but the real test is always the admin, and this admin is screaming fast. Savvii’s servers are in England, which of course is a lot closer than our .com servers which are in the US, but the difference is more than “just” a bit of latency.

Savvii rocks all the things you’d expect from a managed hosting party, including 24 hour support and much more. We’ve been very happy to work with them and if you’re looking for high-end WordPress hosting in the Netherlands or elsewhere in Europe, I’d certainly check them out!

PS: we’re hosting a WP Meetup together with Savvii in Nijmegen tonight. The one for tonight is fully booked, but if you follow the WPM024 twitter account or check we’ll tell you all about new meetings.

This post first appeared on Yoast. Whoopity Doo!

10 tips for an awesome and SEO-friendly blog post

Writing a blog post -like all other writing- is a skill. In order to keep your reader interested, you should think about structuring your text and writing in an appealing style. You should help your readers to grasp the main idea of your post by providing headings, subheadings and clear paragraphs. If people understand and like your text, they are much more likely to share, like, tweet and link to your post. And that will increase your rankings! So, in order to improve your ranking in Google, you should definitely try to maximize your writing skills!

For some, writing for SEO purposes and writing to attract and keep attracting your audience could appear as two contradictory goals. However, I totally disagree. Indeed, if you not only want a good but also an SEO-friendly blog post, your text should be written in such a way that the words you want to be found for have a very prominent place. And, using your keywords too often severely damages the readability of your text. So, you definitely should not do that!

In this post, I would like to give some tips on writing blog posts that are both very readable as well as SEO-friendly. I genuinely think those two goals should (and can easily!) go hand in hand!

Elementary writing tips for good blog posts

Before anything, your blog post just has to be a good piece of writing! A lot of bloggers just begin to write after creating a new blog post. They just type what comes to mind. For some, this may be sufficient, because they are natural writing talents. Others may need some help. I always follow the next set of ‘rules’ myself.

1. Think before you write!

Think hard about the message of your text. What do you want to tell your readers? And what is the purpose of your text? What do you want you readers to do at the end of the page? Write down the answers to these questions before you begin writing.

2. Write down the structure of your blog post.

Every post should have some sort of introduction (in which you introduce your topic), a body (in which the main message is written) and a conclusion (which should summarize the most important ideas or deduce some new idea). Write down what you want to write in all these three sections. You now have some sort of summary of your post. The real writing can begin!

3. Use paragraphs.

Everybody uses paragraphs, but make sure to use paragraphs that make sense. Do not start a new sentence on a new line, just because it looks nice. There should be a reason for making a new paragraph. Every paragraph should have a main idea or a main subject. Ask yourself what the main idea of each paragraph is. You should be able to grasp that main idea in only one sentence. If you need more sentences, you simply need more paragraphs!

4. Use Headings.

If you want people to find their way in your articles, you should use subheadings. Subheadings will lead people, help them scan your page, and make the structure of your articles that much clearer.

5. Use signal words.

Signal words help people to scan through your text and help people to grasp your main idea. If you, for instance, have three reasons for wanting to sell a product, you should use signal words as: First of all, Secondly and Finally. Also, words as Nevertheless, Surely and Indeed also give a clear signal to your readers. Readers will instantly get that a conclusion will follow after words as Thus, So or Therefore. Signal words are thus very important to structure your text.

6. Let other people read your post.

Before publishing your post, let someone else read your post first. Ask him/her whether or not he understands the main idea of your post. Correct typo’s and sentences that are not formulated correctly.

Additional tips for writing an SEO-friendly blog post

These tips were taken from chapter 7 of our ebook Optimize your WordPress site.

Cover of optimize your WordPress siteI think you should start writing, while using the tips I mentioned above. You should never compromise the structure or the readability of your text for SEO purposes. If people like and understand your post, they are much more likely to link, tweet and share your posts. This will lead to higher ranking and more traffic. Nevertheless, without compromising on structure or readability, you can do somethings to improve your ranking even further.

1. Write rather lengthy articles.

Make sure your articles have a minimum of 300 words. As a general rule of thumb: try to put down your search terms in about 1 to 2 percent of your text. So in an article of 300 words, you should mention your search terms 3 to 6 times.

2. Use headings.

Headings are important for readability, but for SEO as well. Make sure that your keywords are used in the subheadings, but do not put your keyword in every subheading (as it will make the text unreadable). Headings help Google to grasp the main topics of a long post and thus can help in your ranking.

3. Use our WordPress SEO plugin.

Our WordPress SEO plugin actually helps you write an SEO-friendly blog post. If you want the help of our plugin you should start by choosing your focus keyword and entering it in the appropriate box. This is the most important search term you want people to find this particular page for. Our plugin actually measures many aspects of the text you are writing and helps with making your blog post SEO-friendly. We will describe the most important ones:

  • The plugin allows you to formulate a meta description. This description has to be a short text which indicates the main topic of the page. If the meta description contains the search term people use, the exact text will be shown by Google underneath your URL in the search results.
  • The plugin analyzes the text you write. It calculates a Flesch reading ease score, which indicates the readability of your article. The Flesch reading ease score for example takes into account the length of sentences.
  • The plugin does a pretty big number of checks. It checks whether or not you used your keyword in 5 important locations: the article-heading, the title of the page, the URL of the page, the content of the article and the meta-description. The plugin also checks the presence of links in your article and the presence of images in the article. It calculates the number of words and the density of usage of the focus keyword in the article. Above that, the plugin also checks whether or not other pages on your website use the same focus keyword, to prevent you from competing with yourself.

If you write a relatively SEO-friendly blog post (based on the aspects mentioned before) the plugin will indicate this with a green bullet. Writing pages with green bullets will help you improve the ranking of the pages on your website.

Note that not every dot has to be green for the overall score to be “good”. For instance, these are the results of this post, which does have a “Good” score:

page analysis results for this SEO-friendly blog post

4. Add content regularly.

Adding actual and functional information to your website will give Google the idea that your website is alive. If it’s not an active website, Google will crawl it less often and it might become less appealing to Google to include the page in the search results.

Bonus tip: Link to previous content

If you already wrote some content about the topic of your current post, don’t forget to link to these posts. It will make your post stronger because you show some authority on the subject. Next to that, your link-structure is also of importance for your ranking in Google. You should read Joost his post about cornerstone articles if you want to read more about this.


The era in which some SEO tricks were sufficient to get your website to rank high in Google has long ended. Nowadays, good content has the highest likelihood to result in a higher positions in Google. And good content also leads to more Facebook likes and shares, tweets and return visitors to your website. Of course, you can do some extra things to maximize the SEO friendliness of your post, but most important is: just write a very, very good post!

This post first appeared on Yoast. Whoopity Doo!

9 Most Useful .htaccess Tricks for WordPress

Many WordPress users come across .htaccess file when fixing their permalinks. However you can do so much more. The .htaccess file is a powerful configuration file that allows you to improve your site’s security and performance. In this article, we will show you 9 most useful .htaccess tricks for WordPress that you can try on your site right away.

Getting Started

Before you make any changes, you need to backup your existing .htaccess file. Connect to your website using an FTP client and simply download the .htaccess file to your computer. If something goes wrong, then you can upload the backup file.

If you cannot see the .htaccess file, then make sure your FTP client is configured to show hidden files. Read our guide on why you can’t find .htaccess file on your WordPress site for more details.

If you do not have a .htaccess file in your website’s root folder, then you need to create one. Simply create a blank text file and save it as .htaccess. Make sure that the file name is .htaccess and not htaccess. Lastly, you need to upload the file to your website’s root folder.

1. Protect Your WordPress Admin Area

You can use .htaccess to protect your WordPress admin area by limiting the access to selected IP addresses only. Simply copy and paste this code into your .htaccess file:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
order deny,allow
deny from all
# whitelist Syed's IP address
allow from
# whitelist David's IP address
allow from
# whitelist Amanda's IP address
allow from
# whitelist Muhammad's IP address
allow from
# whitelist Work IP address
allow from

Replace with your own IP addresses. If you use more than one IP address to access the internet, then make sure you add them as well. See our guide on how to protect your admin folder in WordPress using .htaccess

2. Password Protect WordPress Admin Folder

Password protect your WordPress admin directory using .htaccess file

First you need to create a .htpasswds file. You can easily create one by using this online generator.

Upload this .htpasswds file outside your publicly accessible web directory or /public_html/ folder. A good path would be:


Now you need to create a new .htaccess file and add this code:

AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any 

Important: Don’t forget to replace AuthUserFile path with the file path of your .htpasswds file and add your own username.

Upload this .htaccess file to your wp-admin folder. That’s all, your WordPress admin folder is now password protected and only you or the users you allow will be able to access it. For detailed instructions, take a look at how to password protect your WordPress admin (wp-admin) directory.

3. Disable Directory Browsing in WordPress

Many WordPress security experts recommend disabling directory browsing. With directory browsing enabled, hackers can look into your site’s directory and file structure to find a vulnerable file. Learn more about why and how to disable directory browsing in WordPress.

Disable directory browsing using .htaccess file in WordPress

To disable directory browsing in WordPress all you need to do is add this single line in your .htaccess file:

Options -Indexes

4. Disable PHP Execution in Some WordPress Directories

Sometimes hacked WordPress sites usually have backdoor files. These backdoor files are often disguised as core WordPress files and are placed in /wp-includes/ or /wp-content/uploads/ folders. An easier way to improve your WordPress security is by disabling PHP execution for some WordPress directories.

Create a blank .htaccess file and paste this code inside it:

<Files *.php>
deny from all

Now upload this file to your /wp-content/uploads/ and /wp-includes/ directories. For more information check out this tutorial on how to disable PHP execution in certain WordPress directories.

5. Protect Your WordPress Configuration wp-config.php File

Probably the most important file in your WordPress website’s root directory is wp-config.php file. It contains information about your WordPress database and how to connect to it. To protect your wp-config.php file from unathorized access, simply add this code to your .htaccess file:

<files wp-config.php>
order allow,deny
deny from all

6. Setting up 301 Redirects Through .htaccess File

Using 301 redirects is the most SEO friendly way to tell your users that a content has moved to a new location. If you want to properly manage your 301 Redirects on posts per post basis then check out how to do 301 redirects in WordPress with Quick Page/Post Redirect.

On the other hand if you just quickly want to redirect users from one URL to another, then all you need to do is paste this code in your .htaccess file

Redirect 301 /oldurl/
Redirect 301 /category/television/

7. Ban Suspicious IP Addresses

Seeing unusual requests from an IP address? Want to block an IP address from accessing your website? Add this code to your .htaccess file:

<Limit GET POST>
order allow,deny
deny from
allow from all

Replace xxx with the IP address you want to block.

8. Disable Image Hotlinking in WordPress Using .htaccess

Other people can slow down your website and steal your bandwidth by hotlinking images from your website. Normally, this doesn’t concern most users. However, if you run a popular site with lots of images and photos, then hotlinking can become a serious issue. You can prevent image hotlinking by adding this code in your .htaccess file:

#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)? [NC]
RewriteRule .(jpg|jpeg|png|gif)$ – [NC,F,L] 

Don’t forget to replace with your own domain name.

9. Protect .htaccess From Unauthorized Access

As you have seen that there are so many things that can be done using .htaccess file. Due to the power and control it has on your web server, it is important that you protect it from unauthorized access by hackers. Simply add this code to your .htaccess file:

<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all

We hope this article helped you learn some of the most useful .htaccess tricks for 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 9 Most Useful .htaccess Tricks for WordPress on WPBeginner.

WordPress Developers – Interview with David Bisset

Our last interview in the Google+ WordPress Developers community is with David Bisset – a BuddyPress freelancer from Florida, one of the WordCamp Miami organizers, recognized WordPress expert and the creator of WP Armchair.

David and I discussed the freelancing business of his and I find it quite amusing (in a good way, just like I said in the video :) ) that he’s working with European clients, which isn’t quite common with most of the WordPress freelancers or small agencies.

We went over the large events coming over the next few weeks – WordCamp Europe and WordCamp San Francisco, and the latest version of WordPress – 4.0 that landed just a few days ago.

Check out the WordPress Developer Playlist on YouTube for the other issues of our video series.

The post WordPress Developers – Interview with David Bisset appeared first on Mario Peshev on WordPress Development.

How to Fix WordPress Not Sending Email Issue

One of the most common asked questions on WPBeginner is how to fix WordPress not sending email problem. Many of our beginner level users ask us why their Gravity Forms is not sending emails, or why they are not seeing any WordPress notifications. In this article, we will show you how to fix WordPress not sending email issue.

Why You Are not Getting Emails from Your WordPress Site

The most common reason for this is that your WordPress hosting server is not configured to use PHP mail() function.

Another reason is that many email service providers use a variety of tools to reduce email spam. These tools often try to detect that an email is originating from the location it claims to be originating from. Sometimes the email is sent out by WordPress, but it never even makes into spam folder of the destination. This is why we recommend not using WordPress to send your email newsletter.

Sending Your WordPress Emails Using Mandrill

Mandrill is an email delivery system brought to you by the folks behind the popular MailChimp email service provider. Mandrill is a dedicated email service provider, so they spend a lot of money and time on making sure that your email reaches its destination. Using Mandrill, you can send your emails using Mandrill’s servers located all over the world.

Mandrill is free to use for sending up to 12,000 emails per month. This is quite sufficient if you run a small blog. Their pricing plan depends on how many emails you send per month, and it is very cheap (starting from $0.20 per thousand emails).

Configuring Mandrill with WordPress is super easy. First you need to install and activate the wpMandrill plugin. Upon activation, go to Settings » Mandrill to configure the plugin. You will be asked to provide your Mandrill API Key.

Enter your Mandrill API Key here

To obtain your API key, visit Mandrill website and sign up for your free account. After logging into your Mandrill Dashboard, you need to go to Settings page and click on the + New API Key button.

Creating a new Mandrill API key

Mandrill will create an API key for you. Copy and paste this API key on the plugin’s settings page under your WordPress admin area.

After entering your API key, Mandrill will ask you to provide sender name and a valid sender email address. Click on save changes button after entering this information.

Provide a valid sender email address for Mandrill

That’s all, your WordPress website is now configured to use Mandrill for all outgoing email.

Sending WordPress Email Using Gmail SMTP Servers

Another alternative to send your WordPress emails is using Gmail SMTP servers. You can use any regular Gmail account with this method to send out your emails. However, your email deliverability will be much better if you are using Google Apps on that particular domain name.

Most email service providers check whether or not an email is originating from the same location it claims to be originating from. When you are using a regular Gmail account, those emails are not originating from gmail servers, and this may affect their deliverability.

To use Gmail SMTP Servers for your WordPress emails, simply install and activate the WP Mail SMTP plugin. Upon activation, go to Settings » Email to configure the plugin.

WP Mail SMTP Settings

First you need to provide a sender email address and name. This should be a valid email address configured to be used with Google Apps. Make sure that ‘Send all WordPress emails via SMTP’ option is checked.

After that you need to provide your Gmail SMTP server address, port, and login credentials.

Gmail SMTP server settings for WordPress

That’s all, save your changes and use the test email form at the bottom of settings page to test your email settings.

We hope this article helped you fix WordPress not sending email issue.

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 Fix WordPress Not Sending Email Issue on WPBeginner.

WordPress Themes In Depth

Book Launch! My fourth book, WordPress Themes In Depth, focuses entirely on WordPress theme development. It goes in-depth on how to build, customize, and distribute your own WordPress themes. It’s 10+ years of experience with WordPress jam-packed into 450 pages of non-stop theme-building action.

As explained over at Digging Into WordPress, WordPress Themes In Depth contains over 450 pages of straight-up theme-building action. Rather than repeat everything posted at and, here are some quick screenshots to give you an idea of what’s inside:

WordPress Themes In Depth

So that’s just a sneak peak — for more complete information about the book, you can read the announcement post at, visit the book’s homepage, and check out a demo of the PDF.

Get the book, save some bucks

To celebrate the event, here is a coupon code to save $10 on WordPress Themes In Depth or anything in the store:


Apply the code during checkout for instant savings :)

Get the book!

WordPress Themes In Depth

Just launched my new book WordPress Themes In Depth! This book literally is packed with over 450 pages of in-depth theme-building action. If you want to develop, customize, and distribute your own WordPress themes, I think you will benefit greatly from this book.

About WordPress Themes In Depth

For most of this year, I have been focused heavily on WordPress theme development, pouring every ounce of knowledge, experience, and inspiration into this book. It’s filled with practical information and is just the right balance of theory, application, and technique. The book includes lots of ready-to-go code snippets, tutorials, tricks, and tips. It’s basically a hands-on field guide for intermediate-level users who want to understand how themes work and build their own awesome WordPress themes.

The book goes in-depth on the following topics:

  • Setting up for theme development
  • WordPress theme fundamentals
  • Theme anatomy and the WP Theme Template
  • In-depth coverage of the WordPress Loop
  • Complete chapter on customizing themes
  • Theme development according to the WP API
  • Security, optimization & testing
  • Front-end techniques
  • How to share and sell your own themes
  • Two complete, step-by-step theme walkthroughs
  • Advanced tour of the premium 2020 theme

The book covers all of the awesome things that WordPress can do, like Theme Features, Custom Fields, Meta Boxes, Widgets, Theme Options, Theme Customizer, Actions & Filters, Custom Taxonomies, Custom Post Types, and much, much more. To get a better idea of all that this book contains, check out the official Demo:

WordPress Themes In Depth – DEMO

WordPress Themes In Depth

Bundled themes & demos

WordPress Themes In Depth includes five themes and over 20 Demos. Themes include:

  • Simplest Theme
  • DIY Theme (starter theme)
  • General Theme
  • shapeSpace
  • Tao of WordPress
  • 2020 (full-featured premium theme)

The book provides complete step-by-step tutorials for building the Simplest Theme, DIY Theme, and General Theme, and also features an in-depth walkthrough of the 2020 theme. You can see 2020 in action by visiting the book’s homepage. Throughout the book, these bundled themes are referred to as concrete examples to help facilitate learning.

The bundled Demos are plug-n-play examples of techniques covered in the book, including the following:

  • Custom fonts (via Google)
  • Custom fonts (direct CSS3 method)
  • PHP diagnostics
  • Mobile/responsive sticky dropdown menu
  • Full-size background image
  • Full-size background video
  • Lightbox functionality
  • @media queries
  • Random images via JavaScript
  • Random images via jQuery
  • Dynamic scroll-to-top link
  • Fixed-width content slider
  • Full-width content slider
  • Video slider
  • Social media buttons
  • Theme Customizer
  • Theme Options – Basic
  • Theme Options – Tabbed
  • Theme Options – Paged
  • Toggle anything with jQuery

The book goes through each of these front-end techniques step-by-step, using the demos as plug-n-play examples so you can “see” how it works while following along. And to help tie everything together, many of these techniques are included in the 2020 theme. Triple win :)

About the author

As you may know, I’ve been working with WordPress for over 10 years. During that time, I’ve developed over two hundred themes and scores of plugins. I also wrote The Tao of WordPress and co-authored Digging Into WordPress (with the man, Chris Coyier). As if that weren’t enough, I’ve written hundreds of tutorials on WordPress at Perishable Press,, and worked for two years as Editor for Smashing Magazine’s WordPress section.

With my new book, WordPress Themes In Depth, I bring all of this experience and knowledge together in a complete, focused guide that shows you how to master the art of building high-quality WordPress themes.

Get the book!

WordPress Themes In Depth is a beautifully designed book that contains over 450 finely crafted pages with clean layout and easy-to-read typography. Every page is meticulously designed in full color and 100% focused on WordPress theme development. Here are some of the book’s best features:

  • Full color
  • Hyperlinked
  • Searchable PDF format
  • Bundled themes & demos
  • Lots of copy/paste code samples
  • Helpful diagrams & tables
  • Concise & easy-to-read
  • 12 chapters / 450 pages
  • 300+ external resources
  • At-a-glance notes
  • Many tips & tricks

In addition to the Demo, here are some screenshots to give you an idea of what’s inside the book:

WordPress Themes In Depth – SCREENSHOTS

Bundle Deals

Bundle deals are available to save big on my other books, The Tao of WordPress, Digging into WordPress and .htaccess made easy. Various bundles are available, visit the Perishable Press Book Store to learn more.

To celebrate the event, here is a coupon code to save $10 on WordPress Themes In Depth or anything in the store:


Apply the code during checkout for instant savings!