Search engine optimization (SEO) strategies with Umbraco 7.1.0

FAQ and Glossary page SEO strategies with Umbraco, Angular, and dynamic site content.

SEO issues with Angular

In this article, I will discuss implementing search engine optimization strategies (SEO) with Umbraco 7.1.0. I recently learned from that AngularJS introduces new SEO challenges.  In Angular, code elements are wrapped in double curly braces ({{…}}). Google does not execute JavaScript when indexing website content. Google parses values in the double curly braces ({{ … }}) without actually interpreting what is located inside the curly braces. This means that Angular is great for content that is not intended for indexing, but for content you want people to discover via search engines, you need to use some strategy. One technique is to perform server-side rendering by running the application in a headless browser (e.g. PhantomJS). For best performance, we must pre-load the content into html files through a Node.js backend. We can then direct the search engine to use the output file instead of our actual page. Yes, it is somewhat of a hack, but until we have something like Rendr that works with Angular, we may not have much choice.

Sending Google snapshots of html that has been processed by your JavaScript

Once a sitemap.xml or robots.txt file is created, you can use grunt-html-snapshots to snapshot the files.

“How do we grab the results and sent them to Google whenever the search engine requests access, though?”

To do this, we must use some special URL routing by following conventions:

Here is more information on how this is done:

Here is another good article on how to create and use the HTML snapshots:

How to make sure your dynamic content is indexed

This snapshotting technique also can apply towards content that is dynamic in nature, such as content that is rendered by a database. For best results, it is important to design the infrastructure in a way that enables the content that is displayed to depend upon the URL provided. This strategy operates best with RESTful content (referring to the RESTful architectural principle) and is very compatible with web design patterns, such as Model-View View-Model (MV-VM) or Model-View-Controller (MVC).

Future for Umbraco

Umbraco, particularly Umbraco 7.1+, is an amazing platform, and it is changing the rules of the game. In the future, I will be posting more information on how to sync static nodes in Umbraco with a SQL Server database. In the past, I have written on the techniques required to obtain very good SEO results. While these techniques are very useful in theory, developers are often looking for more concrete implementations to better understand abstract concepts.

Grounding SEO theory with concrete strategies

To this effect, I offer two suggestions:

  1. FAQ pages
  2. Glossary

These two techniques are easy to implement but very hard to master. I will speak about both of these briefly.

FAQ Pages

FAQ pages are similar to glossary pages.  These pages are designed to grab a cluster of keyword phrases that originate from the base keyword phrase.

Process of developing FAQ pages

Several years ago, a consultant from Webtrends suggested that I follow this pattern:

  1. Start with a set of keyword phrases that you want to target.
  2. Choose one or two keywords that you want to form the base of your targeting.
  3. Choose 30-50 keyword phrases that contain your base keyword.
  4. Construct questions from these keyword phrases. Ensure that the keywords are contained in the questions.
  5. Create a web page for each phrase. Place the keywords in these html tags:
  • Meta keywords tag
  • Meta description
  • Title
  • H1 tag
  • body text (paragraph tag)


How to prevent the site from appearing like spam to search engines

Ensure that you apply some variation in how you use your keywords. Otherwise, your site content may appear like spam to Google. For example, in your H1 tag, use the keywords in a sentence. Be sure to answer the question to the best of your ability.

Proof of SEO concept

With this strategy, I was able to land quite a few search pages in the top 10 Google results for this website:

If you check out this website, be sure to notice that the base keyword “lice” is located in the domain name and the keyword “faq” is located in the sub-domain. Having “faq” as a sub-domain (i.e. CNAME or canonical) informs search engines that this URL points to FAQ pages.


Glossary pages

Glossary pages attract a very specific type of user, so it is very important to consider how the person will be using your site. Glossary pages are best when you are trying to provide a resource for people that will frequently refer back to your site. These pages tend to obtain high bounce rates, but if done correctly, they also tend to cause individuals to repeatedly come back to your site. The goal here is not necessarily to obtain an instant conversion. Instead, your goal is to provide a valuable informational resource to people on a particular subject. As people land on your site, they quickly obtain the desired information and usually leave. However, with some strategy, you can still convert these visitors into people that explore your site in greater depth.

Strategy for converting visitors from glossary pages

However, to effectively design glossary pages, it is critical to also offer provide internal links to additional articles for interested readers. This allows casual readers to get desired information and leave while also providing additional resources for more interested readers.  This technique also allows us you to track conversions as people that click on that particular link. The best way to create glossary pages is to create one glossary page for each keyword or keyword phrase that you are targeting. Here is one of Google’s examples of a glossary.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s