WordPress is used on 30.0% of the sites out there. WordPress is very easy to install and has very loose/low requirements. Any non-technical user would be able to install WordPress and start adding content straight away.
Immediately after installing or migrating to WordPress, your site is 50% optimized. The rest is just a matter of installing a few plugins and you’re all set.
There are major advantages of using WordPress for SEO starting from native page optimisation, native social optimisation, Google integration via Search Console and AMP links for mobile and many, many more. Any search engine optimisation requirement can be solved easily by using a WordPress plugin.
Switching/migrating to WordPress gives you ease of use, better support, better options, better search engine visibility, countless third-party integrations, portability and easy management.
The obligatory introduction:
WordPress is used on 30.0% of the sites out there. I’m sure there’s less, as they’re counting old, obsolete, not updated sites, but still.
WordPress is very easy to install and has very loose/low requirements. This is actually bad, but any non-technical user would be able to install WordPress and start adding content. I will not address why it’s bad right now. Q&A later.
WordPress is properly capitalised as WordPress.
Let’s suppose you use a CMS such as Drupal, ExpressionEngine, Joomla, Magento, Pimcore or a bespoke, in-house, hand-made CMS. Why migrate?
Ease of use
Better content management (custom post types, custom fields, categories, tags and taxonomies, post series, page series, parents and subcategories) – almost all plugins come with a custom post type so it’s easy to manage all of them.
Huge community, readily available code snippets, virtually anyone knows something about WordPress.
Plugins for anything related to SEO, starting with basic HTML structure to readability, content checking, Open Graph, microdata, structured data and going all the way to measuring time to read and scrolling progress.
Most if not all CRO tools out there have WordPress integration (email solutions, marketing solutions, user tracking solutions).
Custom theme or purchased theme, it’s very easy to upgrade WordPress and its plugins to newer versions without affecting the theme.
Did you purchase a theme and don’t want to touch it? Use a child theme and add your modifications. This way you can update your theme whenever there’s a security update or a new feature update.
Specific templates for specific pages
This is a very nice feature where you can have a different design or a different page template for a specific page or category. You would need to edit the theme’s code to change a bit of HTML, CSS or PHP, but the end result is worth it.
Multiple WordPress sites can be managed from one place using plugins or cloud services.
With a properly built WordPress, it’s very easy for clients and non-technical users to manage a site, be it a tiny brochure site or a huge education portal.
I won’t assume anything and I’ll start with the basics. I’ll assume, though, you have a strategy for building or migrating a site to WordPress.
Use custom content wisely. Use custom post types for frequently updated content on your site, such as carousel slides, blog posts, products, holidays, venues, locations and so on. Use proper taxonomies and custom fields to link your post types.
Exclude all additional content from your sitemap and use
nofollow for Google robots.
Configure WordPress for speed and pretty links. Do not use date-based or category-based permalinks. You’ll thank me later.
Decide what type of structured data you need for your content: price, rating, author, publisher, date, location and use Google Structured Data to build your content. Use a small sample and allow Google to learn it. Come back monthly and fix/approve/disapprove changes. Use a plugin and tweak your product template to allow this.
Use pages vs. posts wisely. Pages cannot be categorised but they can be grouped within a parent section. Posts can be categorised and tagged. Do not use more than 5 categories. Use tags if you want to micromanage your posts, but keep the overall number of tags under 50. Categories should be generic, while tags should be specific. Posts are time-sensitive and are easily included in Google’s AMP results. You can access a post from multiple places: category archive, tag archive, date archive or author archive, while a page is only accessible from where ever you link to it.
Use a simple menu structure with no more than 3 levels of navigation.
If your theme is not responsive and you’re not a designer or you don’t feel like rewriting the theme, use a plugin.
Or change the theme.
While these tips apply to any CMS, I’ll try to keep it WordPress-specific and give personal examples.
Run through all WordPress settings and options. You definitely missed something. Something minor, such as extra image sizes or Gravatar settings (we don’t need that extra HTTP request).
Turn off anything you don’t need. If in doubt, turn it off. There are plugins out there to turn off various WordPress specific features. Some things I always turn off are emoji parsing and automatic oEmbed.
Use custom code (where possible) instead of a plugin. I’d rather put the code in my theme’s
functions.php file. The code is small and portable (around 20 lines), so a plugin does not make sense to me. It introduces several milliseconds of plugin parsing (on WordPress init) and adds a bit of micromanagement.
Use a Jetpack-style plugin for your clients. I have created my own plugin, called Backpack, where I add all the custom code I need for multiple clients. This way it’s easier to update a certain feature in bulk. Some examples of the features I have in my Backpack plugin are Google Recaptcha, social login (Facebook and Twitter), a global Dashboard search feature and advanced comment moderation. When writing code, if you have the same code twice, you’re doing it wrong.
Use an automated plugin installation system, such as the TGPMA plugin. This way, you’ll avoid any repetitive actions when setting up a client site.
noindex for archive, category, pagination or tag pages. Only feed Google your pages and posts.
Eliminate thin or duplicate content. Use
nofollow for duplicate content and completely remove thin content. I had a blank parent page which was indexed by Google all the time so I used a plugin to display all subpages and also added a bit of content. Google was happy.
More speed. Use a plugin to restrict loading of certain scripts on certain pages. Contact Form 7 (the best contact form plugin out there) loads JS/CSS content on all pages, even on those who don’t have a contact form. Even better, use 4 lines of PHP to restrict this behaviour without a plugin.
Caching. This is tricky, and in most cases, overdone. All content should be served statically (without a database request) and compressed to the browser. That’s it. That’s all. You need a static version of your page (WP Super Cache does it), a certain HTTP status (
304, WP Super Cache does it again) and GZip or
mod_deflate active. It’s best to have the latter straight in your
Always check your sitemap content after upgrading or adding a new feature to your site. For example, adding a carousel plugin would also add the carousel slides to the sitemap, which, viewed separately, would make no sense. Carousel slides are only supposed to go inside a carousel.