How Good Does Expression Engine Handle SEO Signals
According to Backlinko, Google looks at about 200 Factors when deciding how to rank your content. Looking at that list, you will discover that most ranking factors are handled outside of the CMS: We have listed what we consider the most important Google ranking signals here. According to Backlinko, the most important signals include the following:
- Number and quality of backlinks
- The quality of your content
- The length of your content
- Use of images with content
- If the search keyword is in your title tag
- Use of an SSL certificate (so your URL is "https://" rather than "http://")
- If the site domain name matches the search keyword
- Domain registration length
- Number of social shares
- Magnitude and frequency of content updates
Further reading:
4 SEO Fixes that will improve your website Rank on Google
5 Easy On--Page SEO Tips That Yield Big Results
6 Simple SEO Steps That Will Improve Your Rankings
7 SEO Tips That Will Help Your Website Rankings, Yet Are Not Often Talked About
9 Steps to Gain Top Ten Ranking in Google Search Rankings
A Guide to Google Website Ranking
Best Internal Linking Strategy to Boost Your SEO
These ranking factors are attributes of the content itself, the hosting environment, the domain, your ability to pimp your stuff on social media, etc. Some of these factors can be influenced by choice of CMS (if your content is easier to update you're more likely to do it more often, etc), but the vast majority of the known SEO ranking signals are outside the scope of the Content Management System.
Further reading:
The Ultimate Guide to On-Page SEO
The Top Most Important Google Ranking Factors
The Power of Internal Search Engine on Your Website
The Most Common Reasons Why Your Website can be Penalyzed by Google
The keys to high rankings in Google's local results
What is an SEO Audit, and How Can It Help Your Business?
Useful Tips and Tricks for WordPress Search Engine Optimization
How Does ExpressionEngine Handle SEO
Having said that, there are still ranking factors that a CMS should handle in the following ways:
- Completely automate
- Allow the developer to configure
- Let the end-user manage
We went through the list from Backlinko.com and pulled out the ranking factors we think a CMS has its fingers in. Here's that list and how the ExpressionEngine CMS would handle them:
Keyword in Title Tag
ExpressionEngine has a default Title field in every channel. However, we prefer to create a dedicated channel field to populate the HTML Title tag (this lets the Channel Entry Title be different from what appears in the browser Title).
Either way, the title variable can be sent to a shared/centralized template that creates the HTML Title tag for every page on your website. This approach keeps the site's code DRY while making Google happy with unique META for every page.
Keyword in Description Tag
There's no default field for META Description in ExpressionEngine, but you can either take advantage of EE's channel fields and create a field for each Channel, or use a third party add-on like SEO Lite.
We prefer to keep our EE installs as close to "out of the box" as possible so stick with creating Channel Fields for the META Description value. You can set this field to be required so content managers don't leave it blank.
Duplicate Meta Information On-Site
When it comes to SEO, shortcuts are usually a dangerous path. It would be easy to use an add-on or put some code in ExpressionEngine templates that would check META Descriptions and drop in default text if the fields were left empty.
In this case, an empty value would be better than a default because then Google would find duplicate instances of the default value in your website and possibly penalize you for it.
Keyword Appears in H1 Tag
This is simple to do in ExpressionEngine. EE doesn't dictate your HTML structure so setting the H1 tag is as simple as: <h1>{title}<h1>
As long as the content manager puts the desired keyword in the Entry Title, it will appear marked up as an H1 on the website.
Further reading:
An SEO Guide on How to Rank for a Keyword
How Best to Use Keywords in Your Website Content
How to Use Keywords in Website Content for SEO Gains
How to Write Content for SEO: A Step By Step Guide
Keyword in H2, H3 Tags
While H1 tags are usually set automatically in an ExpressionEngine template, the lower-level heading tags can be handled in different ways.
Depending on the site design and how it's been coded, we can either set these programmatically by feeding other Channel Fields into them, or let the content manager create them using a WYSIWYG editor.
Keyword in URL
ExpressionEngine creates a URL title for you based on the Title you enter for each Entry - so if the keyword is in the Entry Title it will also be in the URL title. ExpressionEngine also allows content managers to over-write the default URL title so any combination or ordering of keywords can be manually specified.
URL Length
ExpressionEngine's default URL titles will often be longer than the 3-4 word recommendation from the SEO world, but again - since EE lets you overwrite the defaults your URL titles can be as short as you like.
URL String
When viewing categorized content the SEO world recommends category keywords in URL. ExpressionEngine offers this option natively when using Categories.
URL Path
The SEO world says a page with a fewer segments (closer to the base URL) may get a slight boost. ExpressionEngine sites used to suffer in this regard so you may find (or have) some lingering resistance in this area. Depending on what content you are pulling, EE's default URLs are created based on a combination of:
- Template Group name
- Template name
- Category name
- Pagination state
- Date indicators
- Entry URL title
This can lead to longer than desired URLs. However, ExpressionEngine 2.8 introduced Template Routes that allow the developer to shorten the URL structure.
Page Loading Speed via HTML
The speed a page loads into a web browser depends on a number of factors not having anything to do with the CMS - how fast your host is, how optimized their database is, etc.
But still, there are a couple of things to look at within the CMS.
ExpressionEngine is incredibly flexible for developers - there are often half a dozen ways to implement a given feature. With that flexibility comes opportunity for inefficient code.
Most of the slow EE sites we've run across are slow because they were poorly implemented, not because ExpressionEngine itself is inherently slow. If a given template is loading slowly, developers can:
- Choose to have less content be dynamic/editable
- Choose to write their own queries
- Create an add-on that works more efficiently than native code
- Implement any number of caching approaches
There should be no reason pages on a well-designed and well-implemented ExpressionEngine-based website running on a quality host should take any longer than 2 seconds to load.
Duplicate Content
We think more people worry about this one than they need to - read this and this.
The reality with ExpressionEngine is you will have content that appears at multiple URLs. This usually happens with blogs where a post will appear at the blog index URL, a paginated URL, a category URL, and its specific URL, etc.
This isn't a new issue, nor is it unique to ExpressionEngine. We're confident Google is smart enough to not penalize sites in this situation.
Images
Content with images tends to rank higher and using an image opens up some additional opportunities for SEO optimization. Image file names, alt text, titles and descriptions can all be tweaked for better results.
While possible using native features, it's not the most efficient. This is a case where we will install a 3rd party module to help out - namely EEHarbour.
Channel Images makes it easy for content managers to bulk upload images, change file names, add alt text, titles and descriptions right in the ExpressionEngine entry form.
Recency, Frequency and History of Content Updates
Theoretically any CMS should allow content managers to actually maintain content. But different systems have different efficiencies.
The way ExpressionEngine thinks about content (as structured content types) usually means EE can offer a more efficient editing process. Content is stored centrally and presented in different places on the site - but one update in the EE Control Panel will change it everywhere on the website.
Content Editors don't have to know or manage HTML to make updates.
Bullets and Numbered Lists
People scan more than read on the web - and Google knows this. Content using lists will generally rank better than content without. ExpressionEngine enables content managers to add bulleted or numbered lists using the native Rich Text Editor.
Link Anchor Text & Title Text
In an ExpressionEngine site there are two types of links: links that EE creates dynamically at the template level and links that are created by content managers within a block of text.
Dynamic links have the anchor and title text set by the developer (and any content from a Channel field can be used). ExpressionEngine's Rich Text Editor provides an interface for content managers to create links, then specify the link anchor text and link title text.
Schema.org Microformats
Between ExpressionEngine's flexibility with Channel Fields and its "hands-off" approach with front-end code, Microformats are easily doable in ExpressionEngine.
Mobile Optimized
Google's recent decision to start penalizing sites that didn't have a mobile friendly design made a lot of waves in the business community (and generated a lot of business for web development shops).
ExpressionEngine has never dictated front-end code. EE can spit out an old-school table-based layout with spacer pixels, specific desktop and mobile sites, or a completely responsive design.
User Friendly Layout / Site Usability
These ranking factors are more on your designer than your CMS - but ExpressionEngine can dynamically power any design your creative types can throw at it. Any change you need to make to help your site be friendlier or more usable can be accommodated by ExpressionEngine.
Breadcrumb Navigation
With ExpressionEngine you can either create breadcrumb navigation with custom code at the template level, or use any of a number of third party breadcrumb add-ons.
Site Architecture
ExpressionEngine has the flexibility to render a site architecture in any number of ways. While content gets "normalized" and stored in discreet channels (one channel for each type of content is usually best), the site's front-end architecture is established using ExpressionEngine's:
- Template Groups
- Templates
- Template Routes
- Categories
- Relationships
- Pages Module
Using a carefully planned combination of these EE features will usually allow a developer to create any site architecture desired. If not, there are some 3rd party solutions to consider as well.
HTML Errors/W3C Validation
A website that renders out to the browser with code that validates according to W3C standards is the goal of any web developer worth their salt.
We've said it already, but ExpressionEngine leaves the front-end code almost entirely in the hands of the implementing developer. Very few EE tags return HTML (and the ones that return HTML by default can often be configured to not return it).
# of Linking Pages
The number of linking pages - even within the same site - is a ranking factor. This is usually where ExpressionEngine developers reach out for the Relationships Field.
By implementing Relationships you can:
- Give content managers a list of articles to select as "related" to the current one.
- Have EE build those links dynamically on the rendered web page.
- Also display a link back to the "parent entry" from the "child entry".
You can also use Categories and simply display other articles that belong to the same Category.
WordPress Tags
This is a bit of a strange one. Without specific examples we're not clear on what Backlinko means by "Wordpress Tags" (see #50).
Nothing against Wordpress - but we're not aware of any special Google-juice for Wordpress sites (and it's strange to see this ranking factor attributed to the provider of a commercial SEO add-on for Wordpress).
ExpressionEngine (and likely many other commercial CMS) could easily create that output in any number of ways.
Contact Us Page, Terms of Service Page, Privacy Page
ExpressionEngine can easily create these pages and list the appropriate content.
Number of Pages
In general - the bigger the site the more likely it is that the pages will be found in Google search results. A well-built ExpressionEngine site will allow content managers to easily add pages by just creating new entries in the right Channels. EE will dynamically update all necessary navigation and links.
Number of Comments
The value of blog comments has come into question over the recent years. The SEO value of them may be the best reason to keep comments turned on. Google sees an active commenting section as an indicator of a healthy site providing quality content.
ExpressionEngine grew out of the blogging market so comments are baked into the core. Every Channel, regardless of the type of content it holds, can accept and display comments from visitors.
Using comments opens the door to SPAM, but we have a good arsenal of add-ons that we install to prevent that from happening.
Presence of Sitemap
Submitting an XML Sitemap to Google is a great way to both speed up and improve your search rankings.
Presence of RSS Feed
An RSS feed is another way that Google can learn of and index new content on an ExpressionEngine-based website. Again, ExpressionEngine has a blogging heritage so comes with an RSS Module that you can install and use to create an RSS feed on your site.
And There You Have It
That's our list of all of the ranking factors relevant to your chosen CMS, and how ExpressionEngine addresses them. We're confident that the sites we implement on ExpressionEngine will have great SEO results. As part of our site launch process we'll even take a before and after snapshot of your SEO results so we can prove it!
Comments (0)