SEO without plugins

You don’t need the bloated functionality of SEO plugins that may slow down your site. Make your site SEO-friendly using WordPress.

Page Contents

Can I do WordPress website SEO without plugins?

Yes, you can by adding a few snippets of code.

I was impressed with the post orbitingweb.com/blog/do-you-need-wp-seo-plugin written in 2017 and wanted to see if I could use WordPress to produce the necessary SEO code.

You will need to modify theme files to add some code snippets. The Elements feature in GeneratePress Premium plugin makes it easy to add the code required.

Meta Title Tags

WordPress has come a long way and generates SEO friendly <title> tags out of the box.

wordpress title tag - SEO without plugins
Default <title> tag generated by WordPress is SEO friendly

Coming up with an enticing title isn’t easy. Use a title generator like fatjoe.com/blog-title-generator or semrush.com/goodcontent/title-generator/

Meta Keywords

Whilst some SEO plugins allow you to add keyword(s), the meta keywords tag doesn’t play any role in SEO anymore.

Meta Description

The meta description tag is displayed in Google Search Engine Results Page (SERP). Entice your users to click and view your content by writing a description.

When writing a post, you can write an optional Excerpt – i.e. one to two sentence description of the post or page. Typically these excerpts can be used as a preview, in place of showing the full post content on the blog page.

wordpress post - SEO without plugins

Let’s use the excerpt to capture an enticing Meta Description.

But what about excerpt for pages?

We can use a simple code snippet to add support for excerpts to pages. Copy and paste below code to your theme functions.php file (or via the Code Snippets plugin)

add_post_type_support( 'page', 'excerpt' );
excerpt for pages - SEO without plugins
Use a simple code snippet to enable excerpt for pages

How to add Meta Description tags to pages and posts using GeneratePress

Add meta descriptions to your post and pages using page using the Excerpts. You need GeneratePress Element and a small snippet of code.

Add meta description to your post and page using GeneratePress Element and a small snippet of code.
  1. Go to Appearance > Elements (available in GeneratePress Premium)
  2. Click Add New Element
  3. Add the code below – it adds the required meta description for pages and posts via the excerpt feature. Also included is code to add meta description to category and tag archive pages.
  4. Set the Element as a Hook, allow PHP execution and set a priority of 1 (default is 10).
  5. Set Display Rules to Entire Site.
<?php 
$vj_excerpt = wp_strip_all_tags( get_the_excerpt(), true );
$vj_excerpt = substr($vj_excerpt, 0, 160);
$vj_singular_description = substr($vj_excerpt, 0, strrpos($vj_excerpt, ' '));

if ( is_singular() ) { ?><meta name="description" content="<?php echo $vj_singular_description; ?>" /><?php } ?>

When you add excerpt to your pages and posts to display the same as meta description. In the above code I set the number of characters to display as 160 (set a number between 150 – 175).

Add Excerpt to your pages and posts to display the same as meta description.

How to add Meta Description to category and tag archives using GeneratePress

Add meta descriptions to your category and tag archives using Description. You need GeneratePress Element and a small snippet of code below. In the below code I set the number of characters to display as 160 (set a number between 150 – 175).

<?php 
$vj_arch_desc = wp_strip_all_tags( get_the_archive_description(), true );
$vj_arch_desc = substr($vj_arch_desc, 0, 160);
$vj_archive_description = substr($vj_arch_desc, 0, strrpos($vj_excerpt, ' '));

if ( is_archive() ) { ?><meta name="description" content="<?php echo $vj_archive_description; ?>" /><?php } ?>

How to add Meta Description tags by updating theme file

If you don’t use the awesome GeneratePress Premium, you can add my code to your theme files (via FTP). Copy the required file for your theme that outputs the theme header. I copied header.php from GeneratePress theme to my child theme (called VJ).

On your server, navigate to your WordPress installation and select wp-content > themes > generatepress and copied the header.php file into a GeneratePress child theme

copy header.php from generatepress - SEO without plugins
I copied the header.php file from generatepress theme folder into a child theme

Important: Modifying theme files is dangerous and can cause your site to crash. Take a backup and practise on a test site before trying it on your production site.

I then added the snippet of code directly to the header.php file.

WordPress theme editor showing the code I have added to header.php file

Pretty URLs

Keeping your URLs short and human-readable is easily achieved via WordPress without any plugins. WordPress allows you to create a custom URL structure for your permalinks and archives. 

First, go to Settings > Permalinks and select Post name as your permalink structure.

When adding a page or post, add the Title (1) and immediately click Save Draft (2). From the Summary section in Settings, click and modify the permalink or URL (3). Shorten the URL and remove any stop words like or, and, then etc.

wordpress permalink - SEO without plugins

Proper Headings

Split your content into chunks to make it easy to read. Each part of your content should have a heading. Use headings block (h2, h3) to provide structure to your content and highlight hierarchy. Your page or post title uses a h1. Use a table of contents (see above) to help users navigate to different sections of you page that contain these headings.

In WordPress editor, simply click on the details button to visualise your content hierarchy (document outline).

docuemnt outline - SEO without plugins

Table of Contents (TOC)

Most people scan text instead of reading it all the way through. A Table of Contents (TOC) lets your readers jump to different parts of a long page or post. Each part of your content should have a heading, and these headings should be linked to. It’s easy to make a table of contents in WordPress.

Read my post: How to create a Table Of Contents (TOC) in WordPress with/without plugin

Accessibility

I build sites using the default block editor (without page builder plugins) to meet web accessibility standards: semantics, colour contrast, typography and keyboard accessibility. GeneratePress is cleanly coded and adds required tags and attributes to make your content accessible out of the box.

generatepress accessible - SEO without plugins
Aria Labels and Item Properties used to make content accessible to search engines and those using text-to-speech devices

Schema

Sites built with GeneratePress are optimised out of the box to stand out in Google thanks to its lean and clean code.

Schema markup is code that helps search engines return more informative results for users. So, Schema is not just for SEO reasons, it’s also for the benefit of the searcher.

You can use a lightweight plugin to implement schema and structured markup wordpress.org/plugins/schema-and-structured-data-for-wp

Read my posts to add FAQ structured data or How-to structured data using the Yoast SEO plugin.

Adding schema markup manually

Use a structured data generator like technicalseo.com/tools/schema-markup-generator to create the required schema markups (1). Add your content (2) to create the markup (3). Click on the Google icon to test your markup with the Structured Data Testing Tool or using the Rich Results Test tool. Click Copy to copy the code (4).

Use this Schema structured data generator to create JSON-LD markups. Click on the Google icon to test your markup with the Structured Data Testing Tool and/or the Rich Results Test. Click Copy to copy the code.

Copy the JSON+LD markup (schema code) and paste it into a Custom HTML block.

add schema to custom html block - SEO without plugins

Site Maps

Unless you have a large site with thousands of pages or products, you don’t need a site map.

That said, well-organised content will help Google (and People) navigate and understand our content better and improve engagement.  Group related content to establish keyword-based topic clusters.

Read my post: SEO Content Silos to Rank Competitive Keywords & Improve Site Usability

Readability

I believe that if you optimise your pages and posts for people – your content will rank better in search engines. A key aspect of keeping users engaged is to write content that is easy to read and understand. Before publishing your content, use the wonderful hemingwayapp.com (or grammarly.com) to make your content clear and stand out.

Read my post: How to Write a Page or Post That Gets Lots of Traffic

Add rel=Prev and Next Meta Tags

The rel=”prev” and rel=”next” meta tags help Google properly index your information and show them as a series.

This is great for SEO and helps Google properly index your information. Proper indexing means more relevant results to users and more targeted traffic to your site.

Whilst GeneratePress does not add the tags, it does create neat Previous and Next links for your blog archive that are useful for users (and Google).

prev next links - SEO without plugins
When reading a blog article, GeneratePress keep users engaged by helping them navigate to next and previous posts. You can use GeneratePress Elements to style the same (and also add a neat author bio as shown below).
prev next posts links - SEO without plugins

Social Media Tags

Whilst most SEO plugins will let you add Open Graph meta tags, twitter cards, and other social media tags, these tags are useless from the SEO standpoint.

Social media sites like Facebook and Twitter can identify the URL, Title, Description, and Image of the shared post even without these tags.

That said, if you wanted to curate the og:description and other social meta tags:

  1. Go to Appearance > Elements (available in GeneratePress Premium)
  2. Click Add New Element
  3. Add the code below – it adds the required social meta for Facebook and Twitter.
  4. Set the Element as a Hook, allow PHP execution.
  5. Set Display Rules to Entire Site
<?php 
$vj_excerpt = wp_strip_all_tags( get_the_excerpt(), true );
$vj_excerpt = substr($vj_excerpt, 0, 160);
$vj_singular_description = substr($vj_excerpt, 0, strrpos($vj_excerpt, ' '));

if ( is_singular() ) { ?>
<meta property="og:site_name" content="<?php echo bloginfo('name'); ?>">
<meta property="og:type" content="article" />
<meta property="og:url" content="<?php echo get_the_permalink(); ?>"/>  
<meta property="og:title" content="<?php echo get_the_title(); ?>" />  
<meta property="og:description" content="<?php echo $vj_singular_description; ?>" />
<meta property="og:image" content="<?php echo get_the_post_thumbnail_url(get_the_ID(),'large'); ?>" />
<meta name="twitter:card" content="summary">
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="<?php echo get_the_permalink(); ?>"/>  
<meta property="twitter:title" content="<?php echo get_the_title(); ?>" />  
<meta property="twitter:description" content="<?php echo $vj_singular_description; ?>" />
<meta property="twitter:image:src" content="<?php echo get_the_post_thumbnail_url(get_the_ID(),'large'); ?>" />
<?php } ?>

Note: If you are not using GeneratePress Premium, you can also add the code directly to your theme files. On your server, navigate to your WordPress installation and select wp-content > themes > generatepress and copied the header.php file into a GeneratePress child theme. Then add the above code snippet below your Meta Description code.

Social Share Buttons

I don’t recommend the use of bloated social sharing plugins. They don’t add any SEO value.

social sharing buttons - SEO without plugins

If you need to add such buttons to enable users to easily share your information, use a lightweight plugin that does not load any scripts like wordpress.org/plugins/scriptless-social-sharing/. You can see an example of social share buttons using the same plugin where I am not even loading their styles or lightweight icons below.

In conclusion, you don’t need an SEO plugin to implement basic SEO. Writing good content that people find useful should be your goal.

Leave a comment

 

Get in touch


VJ Design - Web Design Melbourne
Affordable and creative web solutions from Melbourne, AU. I build robust fast-loading WordPress sites for a fraction of the price. Call VJ on +61389867186
Address :
106 Alamanda Blvd,
Point Cook,
VIC - 3030
Australia.
Tel : +61389867186
Email : hello@vjdesign.com.au

 Logo

Image of

$600-12000