Você está na página 1de 122

nonlinear

nonlin
nonlinear

nonlinear digital
nonlin
nonlinear digital digi

nonlinear enterprise
nonlin
nonlinear enterprise enterp

sitecore:
the nonlinear way
Copyright © 2014 non-linear creations inc.
All rights reserved

nonlinear creations
Toronto | New York | São Paulo | Ottawa | Calgary | Florianópolis
www.nonlinearcreations.com
table of contents

i | introduction

chapter 1: marketing
1 |

3 |
Driving return on investment (ROI) from
your Sitecore deployment

7 |
Three warning signs to be aware of during a Sitecore
implementation

9 |
Accessing Sitecore analytics with Microsoft BI tools

13 | Eliminating cart abandonment with Big Data and


Sitecore DMS

16 | Using public data to enhance DMS personalization in


Sitecore

18 | The Sitecore DMS rules engine: Three cool ways to


use it

table of contents |  C 
22 | Sitecore DMS and Google Analytics: Three very good
reasons to integrate

24 | Sitecore DMS reporting options: Finding the right


approach

27 | Sitecore personalization: Use Google Analytics to


measure results

32 | Statistical relevance of A/B tests in the Sitecore DMS

35 | Four steps to extract engagement value from Google


Analytics

41 | When A/B tests lie: The imperative of persona analysis

44 | Getting to know your visitors: A/B testing and persona


analysis

49 | How to recover from search traffic decline after launch


— part 1

54 | How to recover from search traffic decline after launch


- part 2

59 | chapter 2: technology

61 | An introduction to Sitecore for developers

67 | Our 12 laws of Sitecore development

71 | Sitecore operations: Four must-have resources

73 | Six tips for scaling Sitecore infrastructure


76 | A new way of thinking: Continuous deployment for
Sitecore

80 | Why Application Lifecycle Management matters for


Sitecore

83 | Seven tips for automated testing in Sitecore with


Selenium

86 | Five observations: Sitecore vs. SharePoint

89 | Related item publishing in Sitecore 7.2

92 | The three things to know about a Sitecore Commerce


Server integration

95 | 27 Tips for Configuring Sitecore

98 | Two common Sitecore page editor challenges

100 | Personalization and your Sitecore intranet

102 | Sitecore, Coveo and your Intranet

104 | Nine steps to a successful Sitecore website launch

108 | Three considerations when building multilingual sites


with Sitecore

113 | authors

121 | about nonlinear digital


introduction

Why did we write this book?


The answer is simple: too often we see the greatness of Sitecore technology
undermined by misguided implementations and inexperience. Our goal with
this book is to impart some of the knowledge we’ve gleaned since beginning
our Sitecore journey back in 1995. The nonlinear digital team has run more than a 100
Sitecore projects since then and with those years come lessons learned. We want to
share those lessons and help shorten the learning curve for others looking to get the
most out of the customer experience platform.

The nonlinear team includes 5 Sitecore MVPs — more than any other Sitecore partner
— and holds all 6 of Sitecore’s coveted specialization designations. In other words,
we’re a company who knows their Sitecore. Wondering what drives Sitecore’s suc-
cess? This is a good place to start.

How it works
This book is meant to be a living document. It’s a selection of entries from our ongoing
online publication series, nonlinear thinking. It’s printed digitally and updated with
new content on a regular basis. The easiest way to stay up to date is to follow us at
one or more of the following:
@nonlinear_tweet
+nonlinearcreations
www.linkedin.com/company/non-linear-creations-nlc
We’ve divided the book into two sections: marketing and technology
• Articles in the marketing section address issues ranging from the statistical
validity of Sitecore A/B tests to recovering organic search traffic after a botched
relaunch.
• Technology articles provide specific advice, often in detailed how-tos based on
our real world experience, for Sitecore developers

Let us know what you think


We hope this book is a helpful resource for all things Sitecore. If there is something
you think we’ve missed, let us know. If you’d like to know more about either non-
linear digital or Sitecore best practices, don’t hesitate to drop us a line. We can be
reached at:
Sitecore@nonlinearcreations.com
DM to: @nonlinear_tweet
+ 1 866 915 2997

ii  | www.nonlinearcreations.com
chapter 1: marketing
Driving return on
investment (ROI) from
your Sitecore deployment

Molly Anglin
Vice President, nonlinear digital

One of most difficult parts of selling your decision


makers on a website renewal project is proving a return
on their investment. Here are five keys to ROI for a
Sitecore deployment:

The biggest challenge for today’s digital marketer is the ability to demonstrate
how their digital tools can provide real value to a company, beyond eye catching
graphics, follower counts and impressions per click. Turning those buzzwords into
measurable benefits that drive business strategy decisions is key; your website’s con-
tent management system is no exception. Proving to the C-Suite that an investment
into a product like Sitecore has the ability to transform your web presence and spur a
marked increase in sales and conversion rates is a constant battle. Here are five points
to get you started:

1. Realizing the core benefits of the


content management system
There are several quantifiable financial gains that can be achieved through the imple-
mentation of a content management system (CMS). These aren’t necessarily unique
to Sitecore alone, but are still important factors in calculating returns and in estab-
lishing a business case for the investment. A few examples:

Driving return on investment (ROI) from your Sitecore deployment |  3 


• Labour savings when introducing new features and functionality within a mod-
ern CMS can obviously be significant when compared to the same features
implemented by hand or within an aging web content management (WCM)
platform.
• Productivity gains are also achieved through the use of an improved WCM
user interface. With a simpler interface, non-technical users may gain the free-
dom to complete tasks that were once the domain of a development team. As a
result, the time to launch new content and the frequency with which new con-
tent can be published can be much faster.
• The enforcement of best practices, like well-formed HTML and a structure that
lends itself to SEO best practices can ensure better visibility and traffic — even
if the contributing content author doesn’t innately understand the recipe for a
well-ranked piece of content.

Forester Consulting, in conjunction with Sitecore, published a useful guide to


calculating the total economic impact of implementing the product in which
several of these concepts are explored. Through a series of interviews with real cus-
tomers, they extracted anecdotal insights into what they found to provide the great-
est value post-launch. The report also illustrates a detailed model for calculating ROI
of the CMS investment.

2. Keeping design and build costs in-check


Looking at the cost side of the ROI equation, we see a lot of benefit in not start-
ing projects from scratch, especially if you’ve never done a Sitecore deployment
before. nonlinear is now offering our own pattern library, the nonlinear Sitecore
Accelerator. Since establishing our Sitecore partnership in 2006 we’ve invested
in building, refining and testing this set of tools intended to maximize efficiency. With
every build, the Accelerator saves literally weeks of design, development and testing
time by incorporating extensions to the Sitecore API, utilities to other common APIs
such as Google Maps, preconfigured performance settings and a slew of useful com-
ponents and templates. If you’re managing an in-house team gearing up to make
your first Sitecore build, this will likely put your project much farther ahead and save
you from potential configuration/development missteps.

4  | www.nonlinearcreations.com
3. Embarking on a vertical adoption
strategy
Seth Gottleib recently published his thoughts on CMS adoption, focusing on
the idea that while widespread adoption is often held up as a measure of success
in software development projects, decentralized publishing by large groups of auth-
ors doesn’t necessarily equate to a “good” website. Instead of the methodology he
refers to as “horizontal adoption,” he points out that “vertical adoption” — essen-
tially, the increased capacity by a smaller web team to understand and make use
of the higher-level marketing functions available in today’s more advanced content
experience management platforms — is key to driving value from the investment. If
all you’re doing is tweaking and publishing content, Sitecore is likely not the prod-
uct for you.

However, if you do intend to make use of the whole Sitecore solution—the con-
tent management system and digital marketing system combined — some extremely
powerful, measurable financial gains can be achieved. Tracking and acting upon
engagement metrics, centralizing cross-channel performance data within the prod-
uct, and using this information to optimize your site(s) really works, as explored
in Sitecore’s whitepaper, Marketing Gold: Connecting Integrated Multichannel
Marketing with Business Growth.

Driving return on investment (ROI) from your Sitecore deployment |  5 


4. Fostering a culture of measurement
Many of the web teams I’ve met over the years have great intentions. They inher-
ently understand the areas where the returns I’ve mentioned above are possible.
Where they fall down is in cementing executive-level understanding and support.
Oftentimes, the once beautiful website with the high-end CMS languishes unused
post-launch for several years until there’s no choice but another rip-and-replace.
A considered approach to change management, with a C-Suite level executive spon-
sor at the helm, is necessary in fostering this understanding and the backing to real-
ize vertical adoption within the web team and encouraging an ongoing cycle of
improvements. This isn’t an overnight change. To move towards a more analytic-
ally-astute company, I particularly like Stephane Hamel’s Web Analytics Maturity
Model — a measured approach to leaning to crawl, walk, then run.

5. Embracing a continuous improvement


cycle
Limiting the estimation of ROI to the gains you get as a result of a big bang re-plat-
forming effort, without considering the possible gains as a result of ongoing
improvements, may be leaving out a BIG part of the equation. With the team
trained to make use of higher level marketing functions and a metrics-friendly
corporate culture in place, you are now poised to get down to the real tuning effort.

These five considerations are a good start to begin creating a strong case for invest-
ment in a CMS solution like Sitecore. Once your organization has decided on a
deployment, the next step is finding the right partner. When you come to that step,
reach out to our nonlinear digital team and we’ll get you started.

6  | www.nonlinearcreations.com
Three warning signs to be
aware of during a Sitecore
implementation

Glen McInnis
VP, delivery

The last thing you want once you have committed to


a Sitecore implementation is to start noticing issues
midway through. Be sure to watch for these three
warning signs.

Finding just the right balance between an agile-inspired project that involves
constant, deliberate reincarnation and a miscommunicated one that suffers from
a lack of vision is a more difficult task than you might think. Undertaking a large
Sitecore project is both a lengthy and costly endeavor that no one on the team
wants to be the one responsible for slowing down.

Having been a part of hundreds of Sitecore implementations, enhancements and, yes,


rescue missions (likely as a result of one, if not all of these three consider­ations) we’ve
got an insider track on which components of your project to keep a close eye on.

1. Your business stakeholders/content


authors aren’t trained
Making informed decisions during a project requires some knowledge of the prod-
uct. You don’t need to be an expert, but it’s unfair to ask business stake­holders to
make choices when they have not been trained or had the chance to get their hands
on the product. To increase the likelihood of success, consider including early train-
ing, demonstrations and hands-on time with either the product or early prototypes.

Three warning signs to be aware of during a Sitecore implementation |  7 


2. Your non functional requirements are
too vague
While statements like “ease of use,” “fast page load” and “beautiful design” are
commonly expressed as must haves for a CMS solution, it is critical that these ele-
ments are qualified into actionable tasks for the development team from the get go.
Without narrowing in on the specifics for these non functional requirements, you
will run into the trap of not knowing what they are looking for or when you’re done.

3. Your content strategy is taking a


backseat to “whiz bang”
Ultimately it’s content that will deliver value to your customers and visitors. Project
teams that get locked into long conversations about pixel alignment and other
small functional details run the risk of losing sight of the end user. If there is some
concern that the functionality or design is “not quite right,” don’t get caught in the
spiral of guessing how users will react. If you consider the experience to be pretty
good, launch it; test it, and then decide if you need to do something to improve
it. If you’re not comfortable with the release, you can always organize a facilitated
usability test. These approaches will give you real feedback and will be cheaper than
having a CMS developer re-code the same functionality time and again.

8  | www.nonlinearcreations.com
Accessing Sitecore
analytics with Microsoft BI
tools

Glen McInnis
VP Technology, Sitecore MVP

The ability to drill down into the data collected


from your Sitecore implementation is crucial in
understanding your customers and making the most
of your website. We teach you to do it using a familiar
Microsoft product, Excel.

The challenge with most data analytics packages is how to best expose the wealth of
information to the marketers and owners of a site. While pre-built reports can pro-
vide an overview of user behaviour, any true insight will require a certain amount of
drilling down into the data. This chapter will give you the ability to capture Sitecore
DMS analytics using familiar Microsoft BI tools.

Introduction
We are going to start with the most familiar Microsoft BI tool — Excel. By enabling
the Power Pivot add-on for Excel, our boring spreadsheet becomes a powerful data
analysis tool.

Importing data
The first step is to connect Power Pivot to your analytics database. For the sake of
simplicity at this stage, you will want to import all tables. The result in Power Pivot will
be a tab for each table in the database. In the following screen capture you can see

Accessing Sitecore analytics with Microsoft BI tools |  9 


the import of the pages table.

Grouping by periods of time


Of note in this screen capture is the DateTime column. The pages table (and many
others in the analytics database) contain date and time information that goes right
down to the second — 5/29/2013 8:08:46. While that level of detail might be helpful,
in most cases we will need to summarize information for weeks, months, quarters, and
years as opposed to by the second.

Let’s assume we want to report on a month-by-month basis. To do this we can


introduce a calculated column Month based on the formula =MONTH([DateTime]).
This will add a column to the table that has the corresponding number of the
month (January = 1, December = 12). A nice feature of the calculated column
is that once introduced, the data from the database can be refreshed and the
column will persist.

10  | www.nonlinearcreations.com
To make the final experience even easier we can also introduce a lookup table called
TimePeriods.

By creating a relationship between TimePeriod.MonthNumber and Pages.Month we can


add another calculated column to Visits that present the friendly name of the month. This
is done using the RELATED formula like so =RELATED(TimePeriods[MonthShortName]).
This same pattern can be continued to tag rows with Full Month Names, Quarters or
other time periods.

Graphing visits
Now that we have nice clean data, a Pivot Chart with Slicer for Item Language and
Country allows a user to look at visits over a set of months and segment by country
of the user and the language of content accessed.

Accessing Sitecore analytics with Microsoft BI tools |  11 


This is a simple example of how Excel and Power Pivot can be used to report on data
in DMS. While powerful, the first setup of the tool does require understanding of data
models and BI concepts. Once created the reports can offer a very granular level of
analytics that may act as a stop-gap for your site feedback needs.

12  | www.nonlinearcreations.com
Eliminating cart
abandonment with Big
Data and Sitecore DMS

Glen McInnis
VP Technology, Sitecore MVP

Cart abandonment is one of the worst possible outcomes


for online retailers. Finding the right methodology for
getting consumers back on to their site to complete the
conversion is always top of mind.

The most popular Big Data case studies: HP using it to identify high value employ-
ees at risk of quitting or Chase identifying customers about to jump ship for another
bank, evoke justifiable excitement from companies in every industry.

The catch is that most organizations lack the skilled people needed to tap into this
potential. The job title of data scientist is the most recent moniker applied to these
seemingly mythical creatures, but don’t despair. Instead of spending your days on a
quest for a fairy tale character, build on the team you have and start small.

Making Big Data work for you


Let’s start by breaking down the skills of the data scientist: part software engineer,
data analyst, statistician, business analyst, marketer and corporate strategist; that’s a
lot to pack into one employee. If you are working with Sitecore’s Digital Marketing
System, you’re in luck! Your team will already have many of the tools they need to
personalize and test your web, mobile and email channels. If you add in the data from
your customer relationship manager (CRM) and whatever finance application you
use, you can get a fairly well-rounded view of your customers.

Eliminating cart abandonment with Big Data and Sitecore DMS |  13 
Fixing the abandoned shopping cart issue
Imagine this: you are looking to reduce the rate of abandonment for a conver-
sion flow like a shopping cart. Ideally, addressed the issue of increasing conversion,
and have already A/B tested the experience, exhausting all major opportunities for
improvement. It’s your hope that if you can further segment the audience, you’ll be
able to glean more precise insights from the data.

This kind of analysis requires combining the data from three sources: the DMS, a CRM
database and your finance tool (while this may sound complicated, don’t worry—we
aren’t going to recommend you to go buy Hadoop!). The good news is that the tech-
nical members of your team probably already have access to the great ETL and OLAP
tools in the SQL Server or Oracle database platforms that are running your Sitecore
solution. Once you have that data, the analysis of it can be accomplished using trad-
itional BI tools or in many cases, Excel with Power Pivot.

Back to our example: once your data and business analysts start to segment the cart
abandonment, it is discovered that one sub-group of users is largely responsible.
This abandonment happens once the shipping address is entered and the total cost
of the order is displayed. We know that these users fit the DMS persona of “Casual
Shopper,” place an average of two orders per year, have an average order size of $100
and almost never return a purchase.

When this information is presented to the business analyst, marketer or corporate


strategist they make the reasonable assumption that the presentation of the final
price drove the user away. Perhaps it was too expensive, or maybe they wanted to do
a comparison elsewhere. Whether that assertion is true or not, is not as relevant as
having a hypothesis that you can use to construct a targeted A/B test for these users
like presenting shipping discounts, displaying the total price earlier, etc. If your team
has the statistical knowledge, it may be possible to apply more complex algorithms
to locate an actual correlation in the data, but this can be something you build up to.

14  | www.nonlinearcreations.com
It’s easier than you think
All this to say, a small team of professionals can offer the same benefit as the myth-
ical data scientist; you just need to set aside the time for these people to create that
common ground and to put in place some basic tool skills:
• Software developers will need working knowledge of the ETL, OLAP technolo-
gies embedded in SQL Server or Oracle
• Data and business analyst will need working knowledge of BI tools like those
found in Microsoft Excel or a suitable third-party tool;
• A base level understanding of statistics across the board can be helpful,
but not necessary (you will notice we did not actually talk about statistical anal-
ysis in this example)

With the right technology and employees in place, any sized business can start
making Big Data work them.

Eliminating cart abandonment with Big Data and Sitecore DMS |  15 
Using public data to
enhance DMS
personalization in Sitecore

Glen McInnis
VP Technology, Sitecore MVP

With all of the focus on collecting data from websites


and other online sources, it is easy to forget about the
data is that publicly available. If used strategically, it can
be a wealth of information that increases the power of
your Sitecore DMS.

The ability to target specific audiences with customized engagement plans is


one of the best features of the Sitecore DMS. While we have examined many
ways that digital marketers can gather actionable data from their own website using
the DMS, there is a rich source of relevant data that, when coupled with the DMS, can
help in taking your campaign from a semi-pro attempt to full-fledged personaliza-
tion: public data. Let’s start by taking a look at what data is available:
• Demographics: Most government organizations release detailed information
on household income, employment, average age, family size, languages spo-
ken, etc. This data is usually available down to the city or city-ward level in North
America and most of Europe.
• Events: Large concerts or conferences, statutory holidays, back to school and
other such events can be used to adjust pricing and timing in campaigns. There
is no one unified source, but the folks at www.eventful.com are trying.

16  | www.nonlinearcreations.com
If you combine this information with your geo-targeting, numerous possibilities open
up:
• Those in the hospitality industry can use large events in a particular location to
promote hotel rooms and restaurants
• Education and training organizations might rely on employment rates to deter-
mine if users should be presented with continuing education vs. retraining for
a new job
• The demographic information can help identify lifestyle and life stage
-- Average income and age might lead to presentation of basic or premium
products
-- Average family size/age might lead to targeting of young professionals,
young families, seniors, etc.

Once you get this data into the system, creating a custom DMS rule will let the
marketing team take advantage of the information. Using the Sitecore DMS rules
engine, you can start experimenting with different variables and combinations.
I have included a screencap of an example rules set editor for identifying lifestyle and
life stage.

A word of warning: do not rely on live feeds of public data always being available. If
you are permitted to take a local copy of the data — do it.

Using public data to enhance DMS personalization in Sitecore |  17 


The Sitecore DMS rules
engine: Three cool ways to
use it

Amanda Shiga
VP, Digital

Finding the optimal conditions to use in your Sitecore


DMS campaigns can be a challenge. We look at three of
the coolest ways to use the rules engine to personalize
content for your visitors.

The Sitecore rules engine is the powerhouse behind Sitecore’s personalization cap-
ability. Similar to the Outlook-style rules wizard, the rules engine lets marketers build
powerful clauses to influence content display based on a variety of conditions.

One of the most straightforward uses of the engine is to personalize content based on
a user’s geographical location, translated from their IP address. In the example below,
a promotion targeted to residents of Toronto could be shown for this condition.

18  | www.nonlinearcreations.com
You can also personalize content on a variety of other useful characteristics and
events, such as visitor profile, achievement of a goal, search term or a visit to a
specific page.

However, did you know that there are other cool ways the rules engine can be used
for personalization within Sitecore’s Page Editor? Here are three examples to get you
started.

NB: The examples below all use the rules that come with Sitecore out-of-the-box.

Influencing business logic and calls to other


systems
One of the most interesting ways you can use the rules engine is to influence logic
based on the wealth of visitor information you have at your fingertips.

When you have known, logged-in users


Explicit personalization, when content is personalized based on known characteristics
of users, is often implemented in code. However, tying this logic to the rules engine
instead allows content authors to adjust it without needing to rely on developers
or messing around with code. For example, using the conditions below, you could per-
sonalize content based on:
• Where user profile specific field compares to value (for example, targeting
content to users with specific interests or from a specific member segment)
• Where the current user is a member of the specific role (for example, target-
ing content based on a user’s security memberships)

When you are integrating with another business system or


platform, such as your site’s search engine
This is a wonderful opportunity to use the rules engine without even knowing
specifically who the visitor is. You can influence the underlying business logic as your
anonymous visitors begin to build a behavioural profile simply by taking actions on
your site.

A great example is influencing calls to a search engine (via API or webservice). Some
search engines allow search or ranking profiles to be specified that rank search results
differently. For example, for a visitor whose behaviour places them in the “outdoor

The Sitecore DMS rules engine: Three cool ways to use it |  19 
enthusiast” search profile for a travel website, you could boost the ranking of results
with metadata related to outdoor activities.

If the Sitecore control that calls to the search engine stores the search parameters
within the associated item, then we can create several Sitecore items — one for each
search profile — and personalize the call to the search engine. Thus, if our anonym-
ous visitor is building an outdoor enthusiast visitor profile, we can use the rules
engine to swap in the corresponding Sitecore search profile item for our call to the
search engine and influence the search rankings, all in real-time.

NB: This approach will also require you to do the legwork of setting up your visitor
profiles and pattern cards.

As a rule of thumb, abstracting useful logic-driving variables into item fields leaves
flexibility for future personalization as well. This idea can also be applied to any API
call or webservice call.

Temporally-based personalization
Many of the rules in the rules engine refer to the context of the current visit. Unless
you decide to load a visitor’s historical browsing activity into the current session
(a small coding activity, but with some potential performance trade-offs), you won’t
be able to personalize based on time passing or return visits.

Luckily, there are some out-of-the-box rules that allow you to serve content for
visitors who visit often, or who have returned after a specific amount of time
(or both). An example might be offering a reward coupon to a visitor on their
tenth visit.

20  | www.nonlinearcreations.com
Some quick background: Engagement plans are a feature of Sitecore DMS that allow
you to map out a visitor’s engagement journey, over time, with your online chan-
nel(s). These plans also allow you to configure automatic touchpoints with these
visitors based on elapsed time or specific event triggers.

Two examples:
1. Where the current visitor is in the specific state of an engagement plan.
Here, we can personalize based on a visitor’s position in an engagement
plan. If you set up the transitions in your plan based on time elapsed, you can
isolate whether a visitor is returning a certain amount of time after their pre-
vious visit. This is especially helpful if you are personalizing content based
on visitor recency.
2. Where the visit no. compares to number. Here, we can personalize based on
how many times a visitor has returned to the site. This is helpful if you are per-
sonalizing content based on visitor frequency.

Leveraging social network information


This option requires the Sitecore Social Connected module and, assuming users con-
sent to the use of their information upon logging into a site with their social network
credentials, allows personalization on a vast array of known profile fields, such as:
• gender
• number of Twitter followers
• skills listed on LinkedIn
• birthday, relationship status or interests on Facebook

The Sitecore DMS rules engine: Three cool ways to use it |  21 
Sitecore DMS and Google
Analytics: Three very good
reasons to integrate

Joe Boughner
Director of Marketing

The integration of the Sitecore DMS and Google


Analytics allows digital marketers the freedom to make
data-driven optimization decisions. Our connector
module will allow you to do just that.

There’s a reason we’re so excited about this. Closing the loop between two best-of-
breed solutions (Sitecore for digital marketing and content management; Google
Analytics for reporting and measurement) gives marketers some amazing opportun-
ities. Here are three examples.

Sitecore Personas — Tracking on-site


activities
Much has been said about the power of Sitecore’s persona functionality. However,
one gap in the Sitecore reporting interface is how to segment traffic in your analytics
reports using these handy groupings.

Configuring Sitecore personas as custom dimensions in Google Analytics,


however, gives you the ability to do just that. Want to know if visitors who align with
Persona A convert at a higher rate than those of Persona B? Curious which channels
drive the highest number of your most valuable persona? This integration can get
you answers.

22  | www.nonlinearcreations.com
Real-time personalization: Is it working?
Sitecore’s DMS can do some really cool real-time personalization stuff. From basic
parameters like visit source or visitor geography to more complex variables such as
persona or state in an engagement plan, the ability to serve up a tailored, nuanced
view of your web world to your key audiences is at your fingertips. But how well is it
working?

By treating personalization rules as a dimension in Google Analytics, you can easily


segment your traffic by which version of any personalized element your visitors saw.
Then run your standard conversion reports or any other standard report to see the
impact of your efforts.

Remarketing to your Sitecore personas


Interestingly, one of the most compelling reasons to integrate Google Analytics and
the Sitecore DMS has nothing to do with analytics, at least not directly. Thanks to
the deep integration of Google AdWords and Google Analytics, you can use pretty
much any segment in your Analytics profile as an audience group for your remarket-
ing. Including your Sitecore personas, if you’ve done the Google Analytics / Sitecore
integration.

Why spend hours re-configuring your Google Analytics segments to match what
you’ve already created in Sitecore? Integrate the systems and get on with your
remarketing.

Sitecore DMS and Google Analytics: Three very good reasons to integrate |  23 
Sitecore DMS reporting
options: Finding the right
approach

Randy Woods
President, Sitecore Digital MVP

Analytics is the name of the game when it comes to


digital marketing. Using the native reporting options of
the Sitecore DMS is one option, but if you are looking
for a more powerful option, choose our nonlinear
Google Analytics Sitecore DMS connector.

Sitecore DMS gives marketers unparallelled capacity to easily design and implement
content-centric promotions such as:
• Personalization of content based on simple rules
• A/B and multivariate testing of content
• Persona-based personalization

Implementation is only half the challenge, however. You also need to know what
works (and what doesn’t). Closing the loop — learning from success and failure and
trying again — is the key to making content marketing drive business results. Sitecore
provides three means for marketers to evaluate the success of the campaigns they
execute using the Digital Marketing System.

Built in reports: These have improved with every version of Sitecore and will meet
many of the standard reporting requirements a marketer might have. They are
suitable for providing top level reports to management. A marketer is ill advised

24  | www.nonlinearcreations.com
to use these reports, however, for trying to discern the relative effectiveness of two
personalization campaigns. They are relatively simple to use but limited in their
applicability.

Direct SQL queries: The built-in reports can be greatly expanded by creating
custom queries into the DMS database. This provides the marketer with essentially
unlimited flexibility to probe the data for answers, but it requires SQL database skills
or ongoing access to someone with those skills.

The Engagement Intelligence Cube: This OLAP technology is available as an extra


licence from Sitecore. It leverages traditional business intelligence tech­nology to pro-
vide power analysts with the ability to deeply probe the data that resides within
the DMS database. Properly configured, the engagement intelligence cube is
powerful, but does require sophisticated analyst capabilities.

nonlinear digital has developed a fourth option — an integration engine for


Sitecore DMS and Google Analytics. This integration enriches the data Google
Analytics collects with the deep knowledge that collected by the DMS. It lets
marketers use the familiar Google Analytics interface to evaluate Sitecore campaign
data within the context of their other marketing campaigns.

What’s the right reporting solution for you?


Clearly each of these approaches has very real value for marketers. We use the deci-
sion flow diagram on the next page to assist our clients in making the right choice:

Sitecore DMS reporting options: Finding the right approach |  25 


26  | www.nonlinearcreations.com
Sitecore personalization:
Use Google Analytics to
measure results

Eduardo Moraes
Solution Architect Antoine Rulliere
Sitecore MVP Project Manager

The ability to personalize content based on particular


conditions or metrics is what sets the Sitecore DMS
apart from its competitors. Integrating it with Google
Universal Analytics makes it that much more powerful.

Sitecore DMS makes it easy to configure personalization of content based on a


myriad of different variables. As long as your site has been properly configured,
content authors can define different conditions for what content gets displayed.
Some of the more useful (in our experience) conditions against which you can
personalize are:
• Automation state: in relation to where the visitor is in a given engagement
plan in Sitecore
• Events: when the visitor has achieved a specific goal on the site
• GeoIP: according to the geographic location of the visitor
• Profiles and patterns: according to the visitor’s behaviour (content visited on
the site) and pre-defined profiles and patterns
• Visits: according to pages visited, campaigns triggered, visit value points accu-
mulated, as well as number of accumulated visits
• Security: defined by the security settings of the item and user access
• Workflows: depending on what state of a workflow an item is in

Sitecore personalization: Use Google Analytics to measure results |  27 


All of these conditions can trigger the event that will select the content to be
displayed. However, it may be difficult for content owners and the marketing team
to verify the real results of such personalization happening on their website. This is
where Google Analytics integrated with Sitecore can change the game.

According to recent reports from BuiltWith.com, Google Analytics is used in over 43%
of the top 1 million sites on the web. And now, with a more powerful API in Google
Universal Analytics, it makes it even easier to get integrated with Sitecore and pro-
vide meaningful reports that can help clients to make better decisions, on top of
the customizations already configured with the DMS. Though there are a number of
other methods for reporting in the Sitecore DMS, the powerful and familiar Google
Analytics interface often comes out on top for ease of use and superior capabilities.

What is Google Universal Analytics?


Google Universal Analytics is an extension to the well known Google Analytics. It
allows seasoned users to customize the data captured as well as the reports that are
generated based on that data. It relies on two key concepts:
• Custom dimensions: A dimension is a characteristic of a visitor: ex. city of visitor
• Custom metrics: A metric is a value tracked for a dimension: ex. number of vis-
its, frequency of CTR on a specific advertisement

Visits Clicks on specific ad


City (dimension) (metric) (metric)

London 345 12

Paris 123 6

Ottawa 110 8

Before you can truly harness the power of Google Analytics, you have to think through
and map out the reports you want to generate, including the required dimensions
and metrics. This is where you can start to see the value of integrating with the
Sitecore DMS. Say you want to track metrics on a specific component with a corres-
ponding call to action that’s being personalized by the user’s country. Your report
mapping would look something like this:

28  | www.nonlinearcreations.com
Times the user clicked on
Country Times component A call to action displayed in
(dimension) was triggered (metric) component A (metric)

China 1,234 87

United States 894 154

Brazil 712 54

India 709 76

England 345 56

Defining custom dimensions in Google


Universal Analytics
The key is to define the most appropriate custom dimension based on your desired
metrics.

To define a custom dimension, connect to your Google Analytics account and under
Admin > Property > Custom Definitions select Custom Dimensions. This page now
lists your existing custom dimensions, if any.

Click on the New Custom Dimension button (you are currently allowed up to
20 custom dimensions), name your custom dimension, select its scope (Hit, Session
or User; scope determines which hits will be associated with your custom value), then
hit Create. Once you have completed these steps, you will be presented with the code
snippet you need to add to your code in order to track that new dimension.

You now need to define your custom metrics. To do so, follow all of the previous steps
laid out for creating Custom Dimensions but this time, select Custom Metrics. Give it
a name, select a formatting type (Integer, Currency or Time), and again Google will
generate the code snippet you need to use to track the metric.

In our example above, you would need to create the Country dimension and the two
required metrics. You would then inject the corresponding code snippets into your
Sitecore code. The last step is to create a custom report. To achieve this, you need to
click on Customization in the main navigation which should land you on the Custom

Sitecore personalization: Use Google Analytics to measure results |  29 


Reports page. Click the New Custom Report button, give your report a name and
select the custom dimensions and metrics you just created.

This will give you the basic custom report proposed in our example. Voila! Be aware,
you can’t delete metrics and dimensions you’ve created, you can only make them
inactive.

Sitecore DMS + Google Universal Analytics:


Putting the pieces together
The first step to integrate DMS with Google Universal Analytics is to understand
which dimensions and metrics you want to capture. As evidenced in our example,
you must first identify the moment of personalization and then determine which
content is being displayed. The best way to do that in Sitecore is to work with
its pipeline and overwrite its event with custom code that can add the neces-
sary Universal Analytics snippet code to the page being rendered. Page views are
captured using the snippet:

ga(‘send’, ‘pageview’);

For each page view we will also send the relevant dimensions and metrics related to
the content we want to track.

In our case, we want to track the visitor’s country as a custom dimension. As we have
up to 20 dimensions in Google Analytics, for each dimension being tracked we need
to provide its index (as it is configured inside Analytics’ admin interface). Assuming
that country is our first dimension and component displayed is our second dimen-
sion, for a visitor from China being presented with component A, we will have:

ga(‘set’, ‘dimension1’, ‘China’);

ga(‘set’, ‘dimension2’, ‘A’);

ga(‘send’, ‘pageview’);

The values for the dimensions and also for the metrics to be associated to each
dimension can be retrieved from Sitecore DMS using its API. Also, click events on the
component need to be captured so you can measure how many times the compon-
ents’ personalization was displayed and also clicked.

30  | www.nonlinearcreations.com
The capabilities of both Sitecore’s personalization through the DMS and Google
Universal Analytics are continually evolving and are sure to present further oppor-
tunities to segment, target and track customers in the future. The ability to create a
customized, measurable customer journey will allow digital marketers the freedom
to market in a whole new way.

Sitecore personalization: Use Google Analytics to measure results |  31 


Statistical relevance
of A/B tests in the Sitecore
DMS

Glen McInnis
VP Technology, Sitecore MVP

If your A/B test has failed to meet statistical relevance,


you may be working on assumptions that are untrue,
or somewhat misleading. Be sure to find out before
you put your Sitecore DMS A/B results into action.

We have looked at a number of possible points of caution to take note of when con-
ducting A/B tests, including the three mistakes to avoid and taking personas into
account. But, as many marketers tend to forget, an A/B test is only as effective as its
sample size and statistical relevance.

It can be tempting to run a test for a day or a week, and based on a noticeable
difference in conversion, pick a winner. However, in doing this the chance that your
decision will actually stand up over time is quite low. Ultimately you need to know
when your test has collected enough data to be a realistic prediction of user behav-
iour or, in math geek parlance, the test is significant. There are volumes of academic
texts filled with guidelines for determining the appropriate sample size for statistical
relevance. While we don’t need to wade into those deep waters, there are two key
decisions you do need to make. The first is what confidence level you want to have in
your test. Analytics guru Avinash Kaushik recommends that you shoot for a 95% con-
fidence level and who are we to disagree?

The second thing to keep in mind: the smaller the change in conversion you are
expecting to see, the larger the sample size you will need. This means that your first

32  | www.nonlinearcreations.com
tests of the “obvious” improvements require a relatively small test size, while later
micro-improvements will need a greater level of testing.

Statistical significance in Sitecore


The method for determining statistical significance varies depending on what
software or program you are using to conduct your A/B tests, and as we are big
fans of Sitecore, we will use their Digital Marketing System for our example.
If you have worked with Sitecore in the past, its possible that you have encountered
issues with this particular analysis, but never fear, we are here to help.

In this screenshot from the DMS all you can see are the components and the engage-
ment value that have been delivered. If we know the values assigned — in this case
we assume a value of 1 — then we know that Option B had 60 conversions and C
had 20. If we assume that each of the three options was shown an equal number of
times and the source page was delivered a total of 4,000 times we will see that con-
versions are:

Seen Converted Conversion

B 2,000 60 3%

C 2,000 20 1%

Statistical relevance of A/B tests in the Sitecore DMS |  33 


Using this data we can perform a one or two tail test on the experiment to determine a
few different things: if you are looking to prove that C is better than B, use a one tail. If
you are simply looking to confirm that C is different than B use the two tail test.

• The pooled sample p = (20 + 60) / (2,000 + 2,000) = 2.00%


• The standard error SE = 0.0044
-- Your Excel formula is =SQRT(p*(1-p)*(1/n_1+1/n_2)))
-- The value of t works to 4.5175

The t-value in this equation signifies the probability of the sample size is significantly
different enough between the two conditions to be statistical significant. The value
of this particular t, 4.5175, shows the experiment to be highly significant using both
one and two tail t-tests.

Statistical relevance is important, but so is


context
A word of caution: while statistical significance is important, if used improperly it can
give you and your stakeholders a false confidence in your results. For example, if you
know there are seasonal variations in your user behaviours keep in mind that a statis-
tically valid test of users in the summer months may not apply to users in the winter
months; understand what sample of your population a test is reaching.

As we have shown, there are many misattribution errors that can occur when con-
ducting A/B tests. If we have piqued your interest in undertaking some A/B testing of
your own, but are a little stumped by all of details, get in touch and we can help you
figure out what you need to know to start seeing serious A/B testing results.

34  | www.nonlinearcreations.com
Four steps to extract
engagement value from
Google Analytics

Randy Woods
President, Sitecore Digital MVP

Determining an engagement level for the visitors


who come to your website is becoming increasingly
important. Find one for your visitors by extracting an
engagement value from your Google Analytics.

A marketer’s ability to determine the value of a visit to a website is critical to effect-


ively managing online marketing and promotions, but creating a model that accur-
ately assigns an engagement value to specific content or actions is damnably
difficult. Top down models may or may not be accurate — either way, it’s very dif-
ficult to know. The alternative — a data-driven model — requires machine learning
development skills to which few marketers have access (making it an ideal addi-
tion for a marketing technology like Sitecore DMS). At nonlinear, we use Google
Analytics data as an alternative. It’s far from perfect, but it does provide real, data-
driven insight into content value and should form the starting point for anyone
contemplating the creation of an engagement plan model.

Page value as a starting point


Google Analytics calculates a variable it calls “page value.” Google describes page
value as:

The average value for a page that a user visited before land-
ing on the goal page or completing an ecommerce transaction

Four steps to extract engagement value from Google Analytics |  35 


(or both). This value is intended to give you an idea of which page in
your site contributed more to your site’s revenue

Is this the same as engagement value? No, it doesn’t cross multiple sessions
and so gives limited insight into content that may be an intermediary to driving con-
version on later visits, but it should be considered a starting point.

Making it work — a step by step guide


Using our own nonlinear creations data, I will show you each step involved in using
Google Analytics’ page value to help in the creation of an engagement model:

Step 1: Create goals in Google Analytics and assign them


value
If you have not already done so, your first step is to enable goals in Google Analytics;
that’s the easy part. Now assign a value to the goal’s outcome: if your goal is not a
straightforward transaction, but a newsletter registration or whitepaper download or
some other “soft” goal, you will need to invent a dollar value for each. This, alas, is not
data-driven, so you’ll need to estimate the relative value of each outcome. The abso-
lute value does not matter for the purposes of engagement value planning.

Step 2: Export “site content” for converting visitors


Your objective in this step is to get the data you need into a spreadsheet where you
can make it work for you:
• Select at least one quarter worth of data. In this example, we chose a six month
time slice.
• Select “Visits with conversions” from Advanced Segments.
• Navigate to Behaviour > Site Content > All Pages. Show at least 500 rows, and
then sort this data by page value.

You should get a report that looks something like this:

36  | www.nonlinearcreations.com
Export this data for use in Microsoft Excel.

Step 3: Massage the data in Excel


With this step, you will drill down further into the data to create a functional data-
sheet with only the most relevant data:
• The resulting spreadsheet will include some data that is not relevant to your
objectives; delete that, along with the time header information that Google
Analytics inserts into the file and the data summary at the bottom of the page.
• Filter the data to exclude any page receiving fewer than 10 page views (you may
choose a higher number if your site has higher traffic volumes).
• Finally, eliminate any content that is mandatory for the objective to be achieved.
For example, one of the objectives for nonlinearcreations.com is to encour-
age whitepaper downloads; any download automatically generates a thank you
page, so these, of course, will be highly correlated with our objective. Filter the
spreadsheet to eliminate these “tautological” content pages.

Four steps to extract engagement value from Google Analytics |  37 


Step 4: Create your engagement value
The objective of this stage is to give you a single value for key pages that you can
apply using a system like Sitecore DMS. It will be based on the page value — and you
could just use this figure — but we have found it easier to convert the dollars pre-
sented by Google Analytics into a number based out 100.

To do this, create a formula in the column next to that labelled page value. This for-
mula should divide the page value of that row by the largest page value in the col-
umn and multiply it by 100.

38  | www.nonlinearcreations.com
This will give you a score ranging between 0 and 100 that you can use as the basis
of your engagement model. You will probably find that most of the scores make
intuitive sense, but be prepared for some surprises. At nonlinear, for example, we
discovered that visits to the news section of our website were surprisingly strongly
associated with whitepaper downloads.

Limitations
This approach has limitations as a model for the value of specific content:
• It is based on conversions that happen within a single visit. As a result, con-
tent that contributes to conversions on a subsequent visit is undervalued. This
is particularly important for organizations that have a long or considered sales
cycle.
• It represents a single slice of time and it needs to be updated frequently.
Your site changes and the dynamics of those visiting change. The model you
create today may not reflect the reality of tomorrow, and the differences can be
dramatic, as evidenced here in some of the numbers from our site:

Engagement value Engagement value


based on data based on data
Page Oct 2012–March 2013 April–Sept 2013

Executive bios 64 12

SEO and CMS 84 100

Intranet 83 96
governance

CMS audit and 100 5


assessment

• It’s not very subtle and creates an average score across all visit types.
Visitors who originate from different sources behave very differently. Calculating
engagement values using the model described here averages these dif-
ferent behaviours. To avoid this, it’s possible to perform this same analysis
using multiple segments — new visitors vs. repeat visitors, or paid search vs.
organic search, for example. Consider the following table outlining the paid
vs. organic search engagement values for pieces of content on nonlinear’s site:

Four steps to extract engagement value from Google Analytics |  39 


Engagement Engagement
value— Paid value—Organic
Page search visits search visits

Choosing ECM 100 9


technologies

Visio stencils 67 26

Front end 8 43
development is crucial

Best practices for 42 89


Sitecore blog post

While this limitation can create issues for some specific analyses, it is not an uncom-
mon one among marketing technology projects; they often restrict the user to one
engagement value per page or action.

40  | www.nonlinearcreations.com
When A/B tests lie:
The imperative of persona
analysis

Randy Woods
President, Sitecore MVP

Ensuring that your A/B test is measuring what you think


it’s measuring and in a way that will ultimately provide
good intel on visitor motivations is crucial. Make sure
you know what you’re looking for.

A successful A/B test can be both absolutely true and completely misleading.
Marketers have been rapidly adopting A/B (and to a lesser extent) multivariate test-
ing to both landing pages and less frequently, corporate websites, and for a very
good reason — doing so provides a simple data-driven method for increasing the
value of marketing dollars. And for most organizations, a simple A/B test plan will
generate positive returns.

But it is critical to understand that this kind of testing is a blunt instrument that coarsely
measures winners and losers. By definition, an A/B test compares how a statistically
significant sample of visitors reacts to two “calls to action” or some other piece of con-
tent. It measures their reaction against a single outcome. This implicitly assumes that
all of the visitors in that statistically significant sample are “the same.” But we know
that in almost every case, this is an over simplification.

Misleading A/B testing success: An example


Consider an automotive manufacturer that has a website designed to generate leads.
Their current call to action boasts a respectable 8% conversion rate meaning that

When A/B tests lie: The imperative of persona analysis |  41 


7 out of every 100 visits to the site becomes a lead. The marketing director imple-
ments an A/B testing program to try to improve this figure. They test four new vari-
ants, each of which emphasizes a specific aspect of the vehicle:
• Test A highlights the safety record of the vehicle
• Test B highlights the vehicle’s power and performance specifications
• Test C focuses on the opulent interior and high-quality finishings
• Test D speaks to best in class fuel economy

Each test is exposed to 50,000 different visitors. The end result is clear:

Test Conversion Rate Conclusion

Test A: Safety 10.1% Winner

Test B: Performance 7.2% Loser

Test C: Opulence 3.3% Loser

Test D: Fuel-efficiency 8.4% Statistical tie with


control

Probing deeper — personas and A/B testing


When building their site, the marketing director spent a lot of time crafting personas
— different “types” of visitors to the site with differing motivations, interests and
emotional attachments to the brand. They derived the following personas:
• The soccer mom
• The performance-oriented buyer
• The economically-constrained buyer
• The environmentally-engaged buyer
• The luxury-buyer

Perhaps not surprisingly (as I’m creating this example and I need it to illustrate my
point), these different personas responded very differently to the variants tested.

42  | www.nonlinearcreations.com
Persona Sample Conversion rate
size

Test A: Test B: Test C: Test D:


Safety Performance Opulence Fuel-efficient

Soccer mom 2,390 15.0% 3.0% 2.0% 9.0%

Performance- 1,357 5.0% 17.0% 4.0% 2.0%


oriented

Economically- 850 6.0% 3.0% 0.4% 17.0%


constrained

Environmentally- 113 5.0% 0.8% 0.2% 23.0%


engaged

Luxury buyer 290 8.0% 11.0%* 21.0% 2.0%

*Note: You need to be really careful with statistical validity when you start looking at
sub-segments. The 11% conversion for luxury buyers viewing the “performance” test
is right on the edge of statistical validity (32 of 290 visitors converted vs. 400 of 5,000
visitors for the control ~ 95% statistical certainty.)

Clearly, Test A is the best option only for the largest persona group — the soccer
moms. All of the other personas would convert better if presented with one of the
other offerings.

In fact, if the winner for each persona was implemented, the overall conversion
rate would hit 16%. That’s double the control figure and 4.5% better than the non-
persona adjusted winner. Critically, the number of leads from the highly lucrative lux-
ury-buyer persona almost triples.

When A/B tests lie: The imperative of persona analysis |  43 


Getting to know your
visitors: A/B testing and
persona analysis

Randy Woods
President & Co-Founder, Sitecore MVP

While A/B testing has the capability to be a silver bullet


during personalization based on personas, you must
remain vigilant to ensure that your tests are giving
you the information you require, as opposed to the
information you desire.

The previous chapter argues that it is critical to analyze A/B tests by how individual
personas react to the content being tested. Determine which variation wins for each
persona and then target that variant to the right visitors (here’s the short summary
— an A/B test that doesn’t break down test results by the type of visitor can only pro-
duce an “average” winner; examining test results for sub-segments/personas/audi-
ence lets you tailor a winner for each group).

I hope the logic for this is clear: not all visitors have the same motivations and relying
on one “best” call to action for all personas won’t deliver the most optimal results,
but actually doing this is a little tricky. It raises many questions, but most urgently
these three:
1. “How do I categorize my visitors into personas?”
2. “How can I combine this data with A/B test information for analysis?”
3. “Once I have a winner for a given persona, how do I show that winner to that
persona and only that persona?”

44  | www.nonlinearcreations.com
Categorizing visitors into personas
Visitors provide you with many clues about their interests and motivations which can
be identified by:
• The search term they use to find the site
• The terms they punch into your site’s search engine
• The content they view while visiting your site

If they have been in contact with you already, you may also have explicit knowledge
about their job title or main interest. The non-technical challenge is to build rules that
will assign a visitor to a given persona based on these “clues.” For example, a site sell-
ing software might determine that they have five personas of import:
• Technical buyers
• Business buyers
• Existing customers
• Shareholders
• Job seekers

Visitors who spend most of their time on the site reviewing job descriptions can
probably be assigned to the “job seekers” persona, unless they then go on to spend a
substantial amount of time reviewing last year’s financial statements, then you might
declare them a “shareholder.” Determining these rules does depend on intuition and
insight, but should also be informed by a deep probing of your web analytics system.
It will, at the very least, tell you if the segment you’re contemplating exists. The tech-
nical challenge is translating these rules into reality. You need some mechanism for
applying these persona categorization rules and it will need to operate in real-time if
you intend to use it to personalize content.

A marketing-enabled content management system


In the last three years, web content management software vendors have shifted
their focus from publishing content to making content drive business out-
comes. There are a number of players in this space, but we have found Sitecore’s
Customer Experience Platform (CEP) to be one of the best. A marketing-enabled
CMS like Sitecore CEP allows authors to specify into which persona a visitor to the
page they have published should fall. Sitecore not only achieves the implementa-
tion of this concept, but succeeds at doing it subtly as well. Any visit to any page
can add “points” to multiple personas. So an author publishing an overview of a

Getting to know your visitors: A/B testing and persona analysis |  45 
software product’s features might give visitors 5 points each in the “technical buyer”
and “business buyer” personas. When publishing the technical specs page, they
might assign 10 points to “technical buyer”. The key point is that application of the
persona-categorization rules is:
• Marketing driven — it’s performed by those creating and publishing content
• Intuitive — no coding is required

Google Analytics: A less than satisfactory fall back position


If you do not have access to — and are not likely to gain access to — a marketing-en-
abled content management system, then you can get some insight into how per-
sonas behave on your site using Google Analytics.

Create new “segments” within the Google Analytics Advanced Segments section that
map to your personas. Define the segment by the content visited. The following
screen-cap shows the rules we created at nonlinear to identify visitors who may have
an interest in our digital services. We did the same for our potential enterprise client
persona.

46  | www.nonlinearcreations.com
While it does give you some insight, this approach has a number of drawbacks com-
pared to Sitecore or a comparable system:
• You may double (or triple or quadruple) count visitors. The same visitor may be
categorized into more than persona if they meet the criteria
• It can be exceedingly laborious to set up the rules within Google Analytics, par-
ticularly if your site’s information architecture does not parallel your defined
personas
• An analyst must update the definitions whenever new content is added or
removed from the site
• Perhaps most critically, you will not be able to use the segments you have
defined to drive real-time delivery of personalized content meaning that this is
an analysis only exercise

Combining persona data with A/B test


results for analysis
Unfortunately, this process is not as straight-forward as one might hope. Marketing-
enabled CMS products like Sitecore have placed a priority on making it easy for auth-
ors to implement personas and design and implement A/B tests. They have spent
much less time focusing on how analysts can understand the results.

And yet this is absolutely critical — without access to the numbers there is little point
in personas, A/B testing or personalizing content delivery.

nonlinear takes the position that the majority of organizations already have a web
analytics system in place. In most cases, they have personnel trained on that system
and it makes little sense to ask them to learn something new.

If you do elect to use the Google Analytics segmentation approach described above,
you are in luck. The one significant advantage this approach provides is that analysis
is easy. If you conduct A/B tests using Google Content Experiments, you can segment
the results using your Advanced Segment definitions. This should be straight-forward
for any intermediate Google Analytics user.

Getting to know your visitors: A/B testing and persona analysis |  47 
Taking action by targeting calls to action to
specific personas
Fortunately, if you have a marketing-enabled CMS like Sitecore, this is entirely
straight-forward. Once you have analyzed your A/B test results by persona and
identified the relevant winners, simply use the built-in personalization capabilities
to ensure the most powerful call to action for each persona is the one that gets
displayed.

If you have used Google Analytics to monitor personas and conduct A/B testing, you
will need to write some very clever code — and embed it throughout your site — to
put the highest performing calls to action in front of each persona.

48  | www.nonlinearcreations.com
How to recover from
search traffic decline after
launch — part 1

Randy Woods
President, Sitecore MVP

Launching or relaunching a website is not a task for the


faint of heart. Fears about losing search traffic are very
real, as we’ve discovered during client engagement.
We teach you how you can identify this problem.

Ever wonder what a marketer’s deepest darkest nightmare looks like? Let us lay it
out for you: after months and months of time, effort and money, you relaunch your
new website, and traffic from Google and other search engines plummets by 50%.
Terrifying.

As you all know, this isn’t supposed to happen. nonlinear has redeveloped and
relaunched hundreds of websites for our clients since 1995. We’ve developed a
lengthy checklist designed to preserve and possibly improve visibility of the site in
the major search engines, but from time to time it does happen, whether due to time-
lines, budget or the inexperience of the development team.

Sometimes nightmares do come true


Unfortunately the content of this chapter is not a theoretical exercise — the approach
described in this post and the next one in the series helped a nonlinear client recover
from a more than 50% decline in search traffic following the launch of their new site.
Note: we did not build the new site.

How to recover from search traffic decline after launch — part 1 |  49 
Identifying the problem
Your site can recover, but it requires rigorous analysis of data to determine the cause
of the drop off in organic search traffic and patience while changes you make are
indexed and influence search rankings.

Step 1: Export data from Google Webmaster Tools


immediately
Google’s Webmaster tools only provides insight into the last 90 days, therefore you
need to export and store this data immediately. It will provide valuable baseline infor-
mation that will help you determine what has gone wrong. Do this NOW.

Step 2: Check for the obvious


Is there any chance that you modifed robots.txt during your relaunch? Or made
cross-site changes to your meta descriptions? To answer these questions, use Google
Webmaster Tools by navigating to Crawl > Blocked URLs and then confirm that any
URLs that are blocked are the ones that you want blocked

#list specific folders robots are not allowed to


index #
Disallow:/Careers-to-be-deleted/
Disallow:/docs/

50  | www.nonlinearcreations.com
Spot check pages on the site for no-index tags. This is as simple as right clicking >
view page source and then using “find” to search for the term index. If you find a
problem, I would suspect that somehow a global search and replace or other broad,
automated task changed tags across the site unintentionally.

Step 3: Identify which landing pages have suffered most


Usually when a site is relaunched, at least some content from the old site is replicated
on the new site in some version of the same form. You need to determine if the search
traffic decline occurred across the site or is concentrated on specific content. To do
this, create an inventory that matches old pages with their new page counterparts.
Use Google Analytics to determine search volumes for these pages both pre and post
launch. Calculate the percentage decline for each page and look for patterns.

Step 4: Perform before and after segmentation of search


traffic
You may also need to understand if search traffic declined for all of your audiences
or only specific ones. Search engines like Google present different search results
depending on the location and language of the searcher. It is quite possible — indeed
it was the case in the recent nonlinear engagement cited above — that the decline in
search traffic is concentrated in one geography or language group.

Step 5: Obsess about Webmaster Tools data


The data provided by Webmaster Tools should let you quickly identify the underlying
cause of the decline in your traffic. Start by looking at the following:

1. Is Google indexing the site?


-- Look to Google Index > Index Status to determine how many pages Google
has indexed
-- Check Crawl > Crawl Stats to identify the number of pages indexed daily
-- Look to Crawl > Sitemaps to understand the percentage of your pages that
the crawl is reaching.

2. Identify the crawl errors


If any of these reports suggests that your content is not being seen by Google
then dig into Crawl > Crawl Errors. Note in particular if you have persistent
server errors or a large number of “not found” errors.

How to recover from search traffic decline after launch — part 1 |  51 
3. Do you have HTML issues?
Look to Search Appearance > HTML Improvements to learn if your new site is
using title tags and meta descriptions properly. Are you missing title tags? Do
you have duplicate title tags? Are you missing meta descriptions?

4. Are you showing up in the Search results and no one cares?


It’s possible that your site is appearing in search results, but the description
provided by Google is not sufficiently compelling for prospective visitors to
click through. Go to Search Traffic > Search Queries and export the data into a
spreadsheet. Next, filter the data to identify high volume traffic with low click
through rates (start by filtering on “above average” impressions and “below
average” CTRs).

52  | www.nonlinearcreations.com
Step 6: Capture your analysis
Completing this table will make your life easier:

Is robots.txt blocking any URL?

Did you find “no index” meta tags?

Is the decline in search traffic concentrated


on a small number of pages?

Did search traffic decline primarily from one


geography or one linguistic group?

Is Google not indexing your site?

Is Google reporting persistent server errors?

Which HTML errors does Webmaster tools


report?

What percentage of pages with above aver-


age impressions have below average click
through rates?

How to recover from search traffic decline after launch — part 1 |  53 
How to recover from
search traffic decline after
launch - part 2

Randy Woods
President, Sitecore MVP

We have helped you identify the roots of your search


traffic decline, and now we’re back to give you some
hints on tips on how to fix your website and get it back
up into the search ranking it deserves.

You’ve identified that your website relaunch caused a dramatic decrease in traffic,
now it’s time to fix it. Let’s go through some scenarios:

Problem 1: Robots.txt is blocking URLs


The answer here is straight forward and fast — modify Robots.txt so that you allow
indexing of all content. If you are not sure how to do this, delete robots.txt entirely.

Problem 2: Your site is littered with “no index” meta tags


• Is robots.txt blocking any URLs?
• Did you find “no index” meta tags?
• Is the decline in search traffic concentrated on a small number of pages?
• Did search traffic decline primarily from one geography or one linguistic
group?
• Is Google not indexing your site?
• Is Google reporting persistent server errors?
• Which HTML errors does Webmaster tools report?
• What percentage of pages with above average impressions have below average
click through rates?

54  | www.nonlinearcreations.com
Server issues, sitemap problems and 404
errors
These issues should be readily addressable, although server errors may require
significant investment to resolve.

Problem 3: The decline in search traffic is concentrated in


one country or linguistic group
This is usually an issue faced by multilingual sites. Google is sometimes unable to
effectively parse your site and deliver content in the language that searchers expect.
This can be addressed by creating sitemaps (using sitemaps.org schema) that defines
which content will be served to the search engines dependent on your site’s linguis-
tic groups. While Google supports the rel-alternate-hreflan attribute, which can be
added to the HTML on each page of the site, you’ll make your life easier and more
by incorporating it into the sitemaps. Google provides a detailed discussion of this
approach.

Problem 4: Google is encountering server errors


The answer here is simple — fix the server errors — but execution can be difficult.
One tip is to look closely for patterns in the errors being reported. We’ve found in
several cases that the “errors” being encountered are actually URL parameters being
accidentally appended to URLs. These are usually transparent to visitors, but the
Google indexer sees them as errors.

Problem 5: 404 errors galore


If you see more than a few 404 errors being reported, then it is most likely that you
did not think through or execute a redirect strategy. To save the “link juice” associated
with links that used to point to pages on your site, you need to redirect these using
a 301 server redirect. Specific implementation details will vary with your server type,
but we suggest one of two approaches (or possibly a combination of both):

If most pages on the old site have been replicated essentially intact on the new site,
then:
1. Identify the top 500 to 1,000 404 errors reported by Google Webmaster Tools
2. Manually map these to the new pages and implement on your server
3. Create a catch all “fall back” rule for all other 404 errors pointing visitors to your
home page

How to recover from search traffic decline after launch - part 2 |  55 
If the site architecture has changed substantially so that no one-to-one mapping of
404 errors is possible, then:
4. Bucket the 404 errors being reported by Google webmaster tools into themes
that do exist on the new site
5. Create regex rules for creating 301 redirects that point all similarly themed 404
errors into a group that points to a new, comparable page

Page and structure fixes


These will take some time to address and require ongoing effort. Effects of making
these changes are unlikely to be immediate — so patience is required.

Problem 6: Google Webmaster Tools reports title tag errors


Title tags are generally considered the most important search ranking factor within
the immediate control of the author. Duplicate, short, long or missing titles can kill
your search traffic — particularly if your old site had unique, descriptive title tags.

If you have a small number of pages (say less than 500), then take the time to manu-
ally craft title tags.

If you have thousands or tens of thousands of pages, look into automating title tag
generation. You might, for example, inject product names into the title tag, or repli-
cate the page’s visible title (the title that is visible to visitors). In this case, you may still
want to hand craft title tags for the 500 or so pages that garnered the most search
traffic on the old version of the site.

Problem 7: Many of your pages have high search


impressions but very low click through rates
This issue can eat at your heart — you have pages that are ranking well, but those
searchers just won’t click on them. To change this you need to give them a reason
to click, and this means crafting thoughtful meta descriptions. In most cases, search
engines lift the “meta description” you include in your HTML as the body of the
description returned in the search results:
Doing this will take time and unfortunately, there are no short cuts. Look at the
spreadsheet you made at the end of the previous chapter; pick the top 10 terms
with the largest number of search impressions and low click through rates. Using
incognito mode on your browser, enter the first term and click until you see your site
listed, then identify the page listed. Go and write a brilliant meta description for that
page and upload the page to your site. Then go to the second term, and repeat, and
repeat, and well you get the idea.

Problem 8: Most of the decline in search traffic is explained


by decreases in traffic to a small group of pages
It’s likely that your review of title tags or meta descriptions will explain this concen-
trated decrease in search traffic. But if it does not — and if these pages are not par-
ticularly subject to 404 errors — then we would encourage you to investigate how
the internal linking structure on your site has changed. Did these pages benefit from
large numbers of links from within your old site? And if so, has that changed?

Of course, there is one other possibility: have you reduced the amount or quality of
content on these pages? If you answer yes to that question, the decline in traffic may
be understandable, and perhaps well deserved. You can avoid this fate by creating
great content that helps potential visitors both find and appreciate the knowledge
you have to offer, all while simultaneously raising your search rankings.

How to recover from search traffic decline after launch - part 2 |  57 
chapter 2: technology
An introduction to Sitecore
for developers

Rodrigo Peplau
Sitecore Developer

Examining Sitecore from the developers perspective


by laying out each of the most common elements and
explaining how they work together to create the pages
that are created.

In this article we’ll talk about the main development concepts of Sitecore, describing
how data is organized and how each page is presented

Data structures
In Sitecore, data is hierarchically organized in a tree. This type of organization, shown
below, is similar to how files appear in an operating system.

Item
• Each node in a Sitecore tree is called an Item, similar to an object in Object-
Oriented Programming. Items are organized in a big unified tree of content
which represents Sitecore’s database

An introduction to Sitecore for developers |  61 


• With the exception of the “Sitecore” item, at the top of the content tree, all other
items have a Parent node
• Every item may have one or more Children
• Some items in the content tree represent site pages which can be accessed by
visitors, others are not directly accessed and have their data used for other pur-
poses (for instance, to fill the options in a dropdown)

Template
In an analogy with Object Oriented Programming, a template would be similar to a
class. Every Sitecore item has a template counterpart.

Like everything else in Sitecore, Templates also have their own content tree:

In the image above we have a “Richtext Page” template, created to represent a simple
page with a title and a block of text.

Field
Classes have attributes while templates have fields. Just as attributes can be of differ-
ent types (e.g., string, integer, datetime), in Sitecore fields can also have specific types.

In the image below we have the definition of the “Richtext Page” template, with its
two fields:

62  | www.nonlinearcreations.com
Sitecore automatically provides an interface for content editing based on the types
of fields present. For example, when editing a “Richtext Page” item, this is the inter-
face we’ll see:

Sitecore vs object oriented programming


A short comparison of entities in Sitecore and in object oriented programming:

Object oriented programming Sitecore

Object Item

Class Template

Attribute Field

Language
Sitecore natively supports multiple languages. Each item on the content tree may
have versions in different languages, with English as the main language, but new lan-
guages can be easily added and become available for immediate editing.

An introduction to Sitecore for developers |  63 


Database
Every Sitecore installation has at least three databases that are stored separately and
have a predefined basic structure and individual content trees. The three main data-
bases are:

1. Core — Contains the data needed for running Sitecore and the .NET member-
ship provider tables

2. Master — Database used for content authoring, that contains all versions of all
items

3. Web — Used for the public website and is accessible to visitors. Contains only
the last version of each published item. It is a subset of the “master” database,
optimized for faster performance and smaller size. Whenever content is pub-
lished, the latest version is copied from “master” to “web”

Sitecore API
The following class diagram illustrates the entities relationships within Sitecore from
the point of view of items. These classes can be easily turned into code.

64  | www.nonlinearcreations.com
Usage examples (C#)

var contextItem = Sitecore.Context.Item; // Gets


the Item for our current page

var name = contextItem.Name; // Name of the Item

var itemLanguage = contextItem.Language; //


Language of the Item

var title = contextItem.Fields[“Title”].value; //


Value from field “Title”

Presentation
Programmers have full control over the presentation layer in Sitecore. Below we
describe the concepts related to the presentation layer.

Device
Devices are a way for Sitecore to categorize requests and allow for content to be
rendered in different ways across different media, including web, print material and
mobile phones.

Layout
Layouts define the general structure of how a page is presented. If you were to com-
pare this idea to .NET concepts, a layout would be the equivalent of a master page. It
is possible to define static portions, dynamic blocks modified in the code behind, as
well as placeholders which will be filled with content at a later time. Every layout in
Sitecore points to an .aspx file where all the usual programming is done using .NET.

Sublayout
Sublayouts define the appearance of parts of a page and are used along with a lay-
out. Each sublayout will be rendered within its placeholders to present the final layout
of a page. Comparing this to .NET concepts yet again, a sublayout is similar to a user
control and points to a .ascx file.

An introduction to Sitecore for developers |  65 


Rendering
Renderings are sublayouts programmed in XSLT instead of .NET. They don’t need to
be compiled, but because they are interpreted, they are slower and can raise a lot the
total rendering time of a page.

Placeholder
Placeholders are ASP.NET controls which, when used in layouts and sublayouts, allow
content blocks to be added in predefined positions.

Example
The image below shows how layouts, sublayouts and placeholders are used to ren-
der a page.

66  | www.nonlinearcreations.com
Our 12 laws of Sitecore
development

Saulo Venancio Dwayne Gockel


Sitecore Developer Solution Architect

Each developer has their own preferences for achieving


the best results during Sitecore development. The
developers here at nonlinear consider these twelve
some of the most important.

Whether you are a Sitecore pro or just getting your feet wet with the customer
engagement platform, there are a few tried and true rules to getting the most out of
the product. Technology is only as effective as the people that implement it, so mak-
ing sure you’re at the top of your Sitecore development game will be beneficial for
your entire organization.

1. Use Page Editor friendly controls


Content author experience is something we talk about often here at nonlinear.
Ensuring that your content authors have the capabilities to create and modify con-
tent in real time using “what you see is what you get” or WYSIWYG editing is crucial.
By incorporating these controls into your development, your content authors will
avoid having to delve into the Sitecore content tree to find the matching fields.

Our 12 laws of Sitecore development |  67 


2. Don’t bind a repeater unless the
situation calls for one
The <asp:Repeater> control allows a list of items to be bound to it and causes the
specified HTML (and possible code) to be executed for each item. In a basic repeater
pattern, there is often a header and footer section that contains HTML that does not
repeat. Binding an empty list to a repeater will cause any header and footer HTML
that is in the repeater to show up even though no items are repeated. This may be
what a user wants, but often that is not the case and by not binding a repeater, you’ll
be ensuring that none of the HTML in the repeater will show up on a page.

3. Ensure proper null checks before


accessing an object
To do this, the first thing you should check, with any variable or method, is to deter-
mine if the resulting object is null. As a rule, if an object is not initialized, it will be set
to the “null” value. Many methods will also return a “null” value if certain conditions
are not met. Trying to use an object which has been set null generally results in a run
time exception that will cause your website to crash (sometimes gracefully, some-
times not), so ensuring that you are aware of the characteristics of your variables is
paramount to good development.

4. Be cautious about HTML generated in


backend code
Generally, .ascx files contain HTML which dictates the physical layout of the page,
while the .ascx.cs files contain code that populates the layout. Though the general
rule is to make sure not to include any HTML in the backend code, there are situations
where this method can solve certain issues. The biggest thing with this law is to be
aware of what’s being used where to ensure that you have an understanding where
the results are coming from, either HTML or backend code.

5. Don’t code after return statement


Though this one definitely depends on both the situation and your own preference
(some people prefer conditions do that have a single, standalone return statement at
the end of the method) not coding after the return statement is common. If you are
trying to simplify multiple bracketing, this is a good option.

68  | www.nonlinearcreations.com
6. Before deploying, check commands to
ensure a successful Page Editor user
experience:
• Add a component to a page without a data source
• Add a component to a page and point to an existing data source item
• Add a component to a page and create a new datasource item for it to use
• Remove the component from the page
• Remove/add child items from the component if it is a container component

7. Ensure that all Sitecore fields that


require a datasource are properly set
If you have any fields that point to a list of items in Sitecore (or part of the Sitecore
content tree) for which you require population from a datasource, ensure that you
have correctly configured the datasource to allow a content item to have “valid” val-
ues to choose from when accessing that information.

8. Use the Sitecore debugger to find


performance issues
Though its use may depend on the type of contract you have with a client, if budget
and time allow, testing out a variety of scenarios, both positive and negative, will help
in delivering a thoroughly tested, and ultimately superior, end product.

9. Choose icons that correspond to your


content types
This one goes back to creating a positive user experience for the content author.
By choosing unique and logical icons or icon groups for related items (news, news
folder, news listing etc.) you will give them a visual indicator for what type of page or
component they are looking for. Sitecore has a number if built in icons. To select one
for a page, simple double click on its associated icon in the content editor.

Our 12 laws of Sitecore development |  69 


10. Use default standard values (most of the
time)
Using standard values to populate certain fields can be a way to make life easier for
your content authors, but make sure to thoroughly consider the choice before decid-
ing that’s the way to go. Sometimes there will be cases where the process requires
a content author to select a value with a possible required validation rule. In those
cases, if instead a standard value has been chosen, the content authors will be less
likely to reexamine and fill in the value correctly, since it will already appear to be full
(with the standard value which may not be what they wanted in the first place).

11. Provide field-level help for your content


authors
For each field of a template in Sitecore, a line of text can be added to give a content
author more information about what the field should contain and how it should be
used. While this can be a pain for developers to fill in and become redundant once
a content author is experienced in content creation, it’s still a good practice to help
new content authors, or for fields where the content or use of the field is not intuitive.

12. Include real-world content into testing


to make sure everything is working as it
should
Depending on budget and the type of contract, including some real-world content
into your testing should be standard across all projects. Having an ample amount
among your pages will help in analyzing the performance of the site, while also test-
ing pagination and ensuring that specific features like sorting function correctly.
Other suggested site content includes: image sizing and language variants to ensure
that the layout of the pages remain viable.

70  | www.nonlinearcreations.com
Sitecore operations:
Four must-have resources

Glen McInnis
VP Technology, Sitecore MVP

If you are considering a Sitecore implementation or


have recently launched an instance of Sitecore, you’ll
want to be sure to address each of these four key
Sitecore operations resources.

During the planning stages of Sitecore implementations, we are often asked about
which IT resources are most crucial for the continued success of the deployment. As
you can imagine, each project requires a customized answer, depending on the spe-
cifics, but there are a few that carry through with the majority of our implementations.

1. Managing servers/infrastructure
The effort here should be minimal, as this is largely routine tasks for patches, backup
verification and the sort that can be mostly automated. If you decide to have your
Sitecore partner provide managed hosting, this work could be offloaded to them.
This work will require about one day per month for verification once the process is
established. If you do decide to keep the servers and infrastructure management in
house, you’ll typically assign the responsibility to the IT department.

2. Sitecore application monitoring


The ongoing monitoring of the Sitecore application itself requires roughly one day
per month to review logs, cache settings and fine tune the operational settings. This

Sitecore operations: Four must-have resources |  71 


work could be offloaded to a partner under a maintenance agreement. There is no
hard and fast rule on where this person would report if part of the client team, but we
see a slight bias towards this person residing inside the IT organization.

3. Managing complex content layouts/


simple front-end (HTML/CSS)
development
The promise of a content management system is a set of robust templates that can
accommodate any future need. The reality is that there will be special circumstances
(campaigns, landing pages, etc.) that require a bit more knowledge of HTML/CSS
and possibly JavaScript. The power user with this skill is often found in the Marketing
team and can take on this work as part of their normal duties. They also tend to be
the lead users from which others ask for assistance. The level of effort for this skill
is hard to predict and is entirely dependent on the frequency with which new tem-
plates may be required. If an existing member of the Marketing team does not fit this
description, we would suggest one day per week as an average level of need.

4. Ongoing improvements (new templates,


workflows, etc.)
The development of new features requires UX/design, Sitecore/.NET development
and HTML/CSS/JavaScript skills. Based on the size of the web properties and what
will be a phased launch, most of nonlinear’s clients have three to four people avail-
able part time to take on this work. Their actual allocation would equate to 1 to 1.5
full time equivalents or FTEs. Once all phases of the re-build and migration are com-
plete this should drop to 0.75–1 FTEs.

72  | www.nonlinearcreations.com
Six tips for scaling Sitecore
infrastructure

Glen McInnis
VP Technology, Sitecore MVP

Ensuring a sufficient amount of power behind your


Sitecore implementation requires consideration into
your infrastructure set up. Without the right structure
in place, you risk launching a site that cannot stand up
to the required activity.

Sitecore can scale both vertically and horizontally. In this chapter we examine the
ways in which you can scale your Sitecore solution using both approaches and
present a few tips to control your total cost of ownership.

Vertical scaling
This is usually the easiest method of scaling Sitecore, but at some point you will reach
a physical limitation of your hardware or limits in your virtualization technology. That
said in an N + 1 solution you will want N to be the smallest number possible to mini-
mize complexity and infrastructure footprint.

Add memory to content delivery


Content delivery servers can use memory to great benefit. Use the cache.aspx page
in /sitecore/admin to assess the level of HTML cache being used on your site. If your
site is routinely using 60%+ of the cache, increase the cache size. On 64-bit systems
with enough memory you can effectively remove the limit.

Six tips for scaling Sitecore infrastructure |  73 


If your solution is doing heavy processing, CPU increases may be warranted, but a 4-8
core CPU is usually enough. 8GB of RAM or more would be a good starting point.

Add compute power to content authoring


Content authoring servers can take advantage of caching to some extent, but it does
not have the same impact on scale and performance as the HTML cache in con-
tent delivery. Most of the workload in the authoring server comes from CPU heavier
actions like publication, dynamic page assembly, reporting and the sort.

Don’t forget the database cluster


Many times I’ve seen complaints about Sitecore performance when in reality it’s the
database cluster that is overloaded. If you suspect the database is the issue you can
do a quick check with the database test script.

Horizontal Scaling
Once the individual nodes have been maximized we start to add nodes. There are
several options that can be explored.

Add content delivery nodes behind a load balancer


Sitecore easily supports multiple content delivery servers. Install your solution, make
sure scalability settings are enabled and with the help of a load balancer you now
have two servers handling the load of the published website. You might also want to
explore the Sitecore Azure module for this purpose.

Add content authoring nodes behind a load balancer


Just like content delivery, authoring servers can also be setup to work in a load bal-
ancer pool. For sites with heavy and large publication needs, one of the nodes can be
designated as a dedicated publishing instance.

Purpose built database clustersv


The four standard Sitecore databases (web, master, core, analytics) all have very dif-
ferent I/O patterns and it can be difficult for a DBA to find a balance in those needs.
The analytics database is the most frequent database to reside on a dedicated clus-
ter. Organizations that collect large data sets may also have separate clusters for col-
lection and reporting.

74  | www.nonlinearcreations.com
Reference Deployment
Since a picture is worth a thousand words, here is a diagram depicting one of the
most common patterns for moderate volume sites. Two content delivery servers, a
single content authoring server backed by a SQL cluster.

Six tips for scaling Sitecore infrastructure |  75 


A new way of thinking:
Continuous deployment
for Sitecore

Jason St-Cyr
Solution Architect, Sitecore MVP

The idea of continuous deployment of your Sitecore


website may seem daunting, but we’re here to tell
you that not only can you do it, it will improve your
deployment and streamline your processes.

My favourite topic these days is trying to get folks to move over to a continuous
deployment model where each code check-in goes straight to production. Mike
Brittain, from Etsy, got me hooked back when I attended the 2013 ALM Summit and
he did his presentation on “The Dirty Details” of continuous deployment.

Essentially, he broke my brain by explaining that they didn’t have a test environment.

WHAAAAT?
Yes. They deploy straight to production, multiple times per day and many multiples
of times. The risk-aversion side of my brain was freaking out. How can you do this?
What about the bugs?

Guess what? If you can fix a bug in 15 minutes and have it back in production 15
minutes after that, it doesn’t really matter. You’ve got 30 minutes between the time
somebody notices an issue to when it’s resolved. Imagine your current process to get
a fix to production, does it even come close?

76  | www.nonlinearcreations.com
There’s no way that would work for me
Let me be frank: you’re probably wrong. Unless you are running a website where
somebody will have serious financial, legal, or health consequences from a bug, you
are not running critical software. The site may be critical to your business, but your
uptime requirements are probably in the realm of allowing an hour or so of downtime
each month, therefore you can likely afford a bug here and there.

What you probably can’t afford is to spend a large portion of your marketing or IT
budget and not get anything for it.

Continuous deployment solves that problem by putting what you are paying for dir-
ectly into your revenue stream. Realistically, you will probably still hide a lot of it until
the work is finished, or a package of features are available together, but at that point
the power is in your hands to make it available to your users.

If it’s not tested, it’s not done


I agree, completely. In fact, I usually enforce that a review of any user story work be
a part of the definition of done. Automated testing is your friend here, and you can
invest in it on an ongoing basis to build up the amount of checks you do before code
lands on the production server. Unit testing will build your base, then build on that
with automated UI flows, integration tests, and regression tests. By the time all these
tests run, there’s very little that hasn’t been checked.

A new way of thinking: Continuous deployment for Sitecore |  77 


To be safe, you can hide stuff in production so that only testers can see it until you
are sure.

How will I know if something is wrong?


This is where things start getting difficult. With this model, it’s inevitable that some-
thing will slip through, and because it is in production you’ll need to resolve immedi-
ately; monitoring becomes incredibly important. We need to be able to have monitors
telling us if layouts are broken, if Sitecore is throwing unexpected errors, if indexes
are not rebuilding, or if the job queue is getting backed up.

There may also be transactional portions of the site that we need to monitor to
ensure that traffic and activity has not drastically dropped off due to some unknown
issue in the business logic.

Planning for these monitors is really important, and needs to be done before getting
rid of all our staging environments.

What about database changes?


Yup, you’re right. This one sucks. At this point, we have no more testing environ-
ments, and the developers are changing templates, adding fields, adding new sublay-
outs, and all kinds of things to the database. We can use tools to directly deploy these
changes to production, but how will this affect the production content of the site?

There is no easy solution here. For each case, there is a different approach. I’ve
recently blogged about how you can handle templates and sublayouts for continu-
ous deployment, but even there you have no fool-proof solution. At some point, we
have to accept that something might just break.

And then we’ll fix it.

This sounds risky


How many times has a deployment gone incorrectly? How many times have you
found out somebody “missed” something pushing from one environment to another
one? Mistakes happen. However, when those mistakes happen you are usually push-
ing 3-6 months of work at once, and losing the benefit of all of it when you have to
roll back or fix it on the fly.

78  | www.nonlinearcreations.com
If you are deploying one single change directly to production, you are getting feed-
back faster from all of your testers, including your users. If it all goes well, you are
also gaining the benefits of the change immediately. If we start building our software
more incrementally, and doing it faster and better, doesn’t everybody benefit?

Also, don’t underestimate the power of removing the test environment from the
equation to suddenly make developers check their code a little bit more before
checking it in :)

A new way of thinking: Continuous deployment for Sitecore |  79 


Why Application Lifecycle
Management matters for
Sitecore

Jason St-Cyr
Solution Architect, Sitecore MVP

We look at how you can start small by incorporating


Application Lifecycle Management into your Sitecore
implementations.

Application Lifecycle Management (ALM) is a streamlined review of processes and


tools resulting in a continuous cycle of idea generation, product building, meas-
urement and data collection and adjustment based on findings, ultimately resulting
in improved resources and an iterative project. Sounds like the kind of concept we
should all be trying to implement, wouldn’t you say?

We get it. Even though folks have been talking about the importance of ALM to
organizations for years, the majority aren’t planning for it, nor do they have a vision
of how to get their team to where they need to be. Proper ALM strategy and imple-
mentation isn’t something that happens overnight; it success depends on employees
across the board: portfolio and program management, architects, designers, testers,
developers, and of course, operations staff. In a large organization, putting together
a solid plan for ALM within the enterprise can be quite daunting.

All that to say that, while full implementation will be a challenge, small changes are a
great way to get started. Your Sitecore implementation gives you an excellent oppor-
tunity to start introducing processes that you may not have already in place.

Next comes the inevitable question: What about the bottom line?

80  | www.nonlinearcreations.com
Benefits of ALM
• We’re happy to tell you that, generally speaking, the benefits of ALM outweigh
the cost
• Increased ROI by delivering more often enabling you to start getting business
value from your investment faster
• Better traceability by using tooling to tie together all stages of the application
lifecycle
• More efficient delivery by planning for smaller batches and involving more
members of the team
• Improved quality through automated testing and regression, and tester involve-
ment earlier in the process
• Increased flexibility through task automation and early failure.
• Enhanced collaboration by bringing teams together throughout the lifecycle

Applying ALM to Sitecore


For Sitecore implementations specifically, this means you are likely targeting the fol-
lowing improvements in your process:

Requirements tracking: Ensuring requirements for your build are available to the
team is crucial to making sure your implementation is done efficiently.

Task planning: Team members should be able to tie the tasks they need to accom-
plish with the requirements that have been defined, as well as track and report on
progress for the implementation. Don’t forget the dashboard for management!

Source control strategy: We beg of you, please put your code in source control. “It
works on my machine” does not make for a successful and repeatable implementation.

Automated builds: If you have multiple team members working on the implemen-
tation, you should be considering continuous builds and continuous integration to
verify checkins made by the team. Or you could just hope it all compiles together…
(we don’t recommend this approach!)

Why Application Lifecycle Management matters for Sitecore |  81 


Automated deployments: You will try to deploy your solution manually for a while,
but when you want to be delivering often, it becomes very annoying to be constantly
creating builds and packages and installing them by hand. Look at tools like TeamCity
or TFS to get your build processes flowing, and then tie into release management
tools like OctoDeploy or InRelease to push it out. If you can leverage tools like Team
Development for Sitecore (TDS) you can push your content as well!

82  | www.nonlinearcreations.com
Seven tips for automated
testing in Sitecore with
Selenium

Mauro Madeira
Quality Assurance Analyst

Quality assurance testing is an important part of any


technology implementation. Good testing will ensure
that your live product will work exactly as you’ve
envisioned it.

Wondering about the best way to test your Sitecore instance? Looking for something
that goes above and beyond automated unit testing? We recommend the inclusion
of browser automation tools like Microsoft Coded UI or Selenium WebDriver into
your testing regimen to ensure that you are fully testing the complexities of your
Sitecore solution.

While unit tests certainly have their place, the benefit of employing a browser driver
is in its ability to mimic the behaviour of a real life user. In our experience, we’ve found
Selenium WebDriver to be one of the best tools for creating and implementing these
types of tests.

No matter which approach you follow, any test should follow the three R’s:

Repeatable, Reliable and Resilient

Seven tips for automated testing in Sitecore with Selenium |  83 


Why should you being using Selenium?
• It’s independent of the developing tool brand and version. Therefore, test code
written for Visual Studio 2010 will work in Visual Studio 2012 (Microsoft Coded
UI is not).
• The API can be called and scripts written in many different languages, retaining
the way the elements in an HTML page act, and are found and verified.

Developing Selenium scripts


1. Since code changes also lead to refactoring tests, try to create sample data that
can be used for regression. One of our approaches in testing Sitecore develop-
ment is to create pages with a few related components that can be easily tested,
so that when a page with more components is created, we’ll know that the inde-
pendent parts are still working and which patterns we should use.

2. Try to group together common steps in your method that can be easily used
and reused. For example, logging into Sitecore and selecting Content Editor can
be included in all tests involving login and use of content editor. Since creat-
ing and tests will be done below /sitecore/Content, the particular test script can
start from that folder.

84  | www.nonlinearcreations.com
3. When writing tests that involve Sitecore authoring, you’ll want to rely on the
most generic way to find an element in Content Editor and Page Editor modes.
Try to avoid dynamically generated ids that can change from content item to
content item (many elements in Sitecore embed the GUID in the markup).

4. Avoid using linked text and content dependent values in your test pages. In this
case, developers should always include ids that will later be attached to the end
of the those dynamically generated by .NET/Sitecore. In this case, XPath is the
solution.

5. Trying to understand why a test failed can be time consuming. Writing a method
that includes the element being searched and logging the method used to find
it can be very helpful when debugging the test.

6. It’s great to get in the habit of taking a screenshot, even when a test is success-
ful. Keeping a folder for every test case with screenshots and a log file can help
you quickly spot where a test may have failed.

7. Many times being thorough can be impossible or not cost effective. One
approach to combat that problem is to write a basic test and take a screenshot
at the end of each basic interaction in a page. This way, the visual inspection can
confirm what has been tested and expand the verification process.

Seven tips for automated testing in Sitecore with Selenium |  85 


Five observations: Sitecore
vs. SharePoint

Eduardo Moraes
Solution Architect, Sitecore MVP

Whether you are looking for a front facing website or


an internal intranet, deciding on a technology platform
will require many considerations. We look at two of the
most popular: SharePoint and Sitecore.

Often, our clients will ask us about the possibility of using Sitecore for an intranet or
SharePoint for a public-facing website. While the idea of using one technology solu-
tion to solve both problems sounds promising, there are many things you should
consider before limiting yourself. We have put together five observations based on
our experience and what we see as the common needs and business goals of our cli-
ents, otherwise known as: Sitecore vs SharePoint

1. Collaboration on Microsoft documents is


always better managed with Microsoft
solutions
Despite this fact, Sitecore will also give you the potential to work with Microsoft tools
like Word and Excel, just not as seamlessly as it would in SharePoint. Microsoft has
put a lot of effort into making sure that its Office suite is well-tied to SharePoint work-
flows and editing features. For purely informational intranets that don’t really require
collaboration on MS Office documents, Sitecore would be a lighter solution that
would perform better in content maintenance and content delivery. While SharePoint

86  | www.nonlinearcreations.com
is mainly focused on documents, Sitecore takes, as Darren Guarnaccia CEM expert at
Sitecore puts it, “a more web content centric approach.”

2. Information architecture is key to


successful adoption
The way Sitecore organizes its content tree in a hierarchical sitemap-like fashion pro-
vides content authors with a better visual and improved navigability and “find-abil-
ity.” SharePoint deployment can easily become a mess in terms of lost and outdated
content due to its tendency to grow in multiple directions. Information architecture
specialists will have an easier time architecting content organization and growth for
Sitecore than for a SharePoint solution. Though technically both solutions will work,
Sitecore’s design and functionality will improve the ability to determine whether a
project has derailed due to its focus on IA, content strategy and governance.

3. Sometimes content needs to be surfaced


and shared
The content created for an intranet is different than content created for the web.
Generally speaking, the information shared among employees is intended for inter-
nal use and is not made publicly available. However, there are cases where common
pieces of content are for both internal and external audiences. Surfacing content from
the intranet to the company’s Internet website is possible with both solutions, and it’s
also possible when both solutions are used together (SharePoint being used for the
intranet and Sitecore for the Internet). Sitecore comes with a SharePoint Integration
Framework that facilitates surfacing and sharing content from a SharePoint based
intranet to Sitecore sites. But, of course, having the same tool on both ends will make
content sharing easier and more manageable.

4. When all you have is a hammer, you may


think that everything is a nail
Just because you have one or another product’s license already in place in your
company doesn’t mean that you should try use it to address all of your needs. You
should consider all your requirements and the key differences between the two prod-
ucts prior to making a decision on which one to use. Start by asking yourself and
your team questions like: Is our intranet intended mainly for communications or

Five observations: Sitecore vs. SharePoint |  87 


for collaboration? Is there a need for content being shared between intranet and
Internet? What kind of governance model will be necessary? What kind of skills will
be necessary to maintain the intranet?

5. What’s in the box?


Both solutions are sold with packaged templates ready for use on intranets. As soon
as SharePoint is installed, it lets users start creating pages and content using out-of-
the-box configurations and templates. Both Sitecore and SharePoint will need active
branding, giving users the opportunity to create a unique presence. Out of the box
functionality for both solutions can get you started, but inevitably you will need to
go beyond the preformatted templates. That’s where you’ll need a good team of spe-
cialists involved to help you extend the product to fit your needs, whether that means
applying your branding, or creating new templates, or putting together the necessary
code-behind for integration points.

88  | www.nonlinearcreations.com
Related item publishing in
Sitecore 7.2

Jason St-Cyr
Solution Architect, Sitecore MVP

Ensuring related content is published in a bundle is


now made easier with the latest release of Sitecore 7.2

The release of Sitecore 7.2 has us pretty excited. One of the things that most stands
out most is the enhancements for related item publishing, as our team has been
coming up with workarounds for similar issues in many of our past projects.

What are you talking about, Jason?


I’m glad you asked! With site publishing, the issue of related items doesn’t usually
come up. Whether it’s incremental, smart, or a full republish, things that are changing
(usually) get pushed.

Note: There are some fixes in 7.2 that address certain scenarios for incremental pub-
lishing, so you may want to take a look at the fixes shipped with this build and see if
it addresses any issues you may be having with incremental publishing.

The scenario we usually run into, however, is targeted publishing of specific items. This
can either be triggered by the user in the authoring environment or via publish actions
in a workflow approval process. In previous versions of Sitecore, there was some basic
related publishing happening in the PublishItem pipeline that would pull in clones
and file drop media. We’d have to build in new events to find components that authors
had added to the page being published, as well as referenced media items, and pub-
lish all of those related items and their parents along with the selected item.

Related item publishing in Sitecore 7.2 |  89 


And all that is fixed now?
No, it isn’t completely fixed, but there are some major improvements. The first thing
that has happened is that authors now have an option on the item publishing dialog
to select to publish related items, defaulted to ‘true’ so that authors have to explicitly
turn it off.

This checkbox triggers the new getItemReferences pipeline that has been added to
the publishing flow. By default, this new pipeline publishes “clones, aliases, related
media items, and items that the current item refers to in the link database.”

The second big piece is that the PublishAction that we often use in the workflows
has some additional parameters, including whether to trigger related publishing. By
default, if not specified, related publishing will not occur, so I would suggest adding
that ‘related=1’ onto your publish action in 7.2 so you can start reaping the bene-
fits of the new pipeline. You can find the other new parameters in the release notes.

Note: The Sample Workflow shipped with 7.2 still only uses the deep=1 parameter,
so if you use the sample workflow with Sitecore, make sure you are updating the par-
ameters on the auto publish action as well.

My specific test was to add some subfolders in the media library, and then upload
an image. Next I referenced that image in a rich text field on a new page and pushed
it through the default sample workflow. The page was published, but the image was
not because its parent folders were not published, and I had not included related=1
in the PublishAction.

Then I repeated the test using the publish item wizard, but this time selected “Publish
Related Items.” The image and its parent folders were published immediately!

90  | www.nonlinearcreations.com
What if the item links don’t reference all the
items that I want to bundle in the publish?
Now that the references code is in its own pipeline, you can add your own classes
directly into the publishing pipeline to run any logic you want to return lists of items
that you also want pulled forward into the publish. I cannot overemphasize how awe-
some it is to drive the logic at the publishing pipeline this easily and not be hooked
into events.

Related item publishing in Sitecore 7.2 |  91 


The three things to know
about a Sitecore
Commerce Server
integration
Glen McInnis
VP Technology, Sitecore MVP

With the announcement of their acquisition of


Commerce Server, Sitecore has bounded into the world
of a full blown customer experience management
platform.

As one of the largest Sitecore partners in North America, we were pretty excited to
wake up to the news that Sitecore has acquired Commerce Server, solidifying their
reputation as the leader in customer experience management. nonlinear has gleaned
first hand experience in integrating the two solutions, completing one of the first
Sitecore Commerce Server integrations back in 2011.

The client had 500 unique sites requiring Sitecore customization and ecommerce
capability through Commerce Server.

92  | www.nonlinearcreations.com
Breaking it down
Considering the extensive number and varying levels of expertise of content auth-
ors, we developed a two tiered personalization approach: one that allowed for daily
maintenance of the sites and another for the more robust administrative tasks like
adding additional items to their particular site’s catalog. The barometer for a success-
ful end-user experience required the implementation of a shopping cart interface
with shipping, payment, order system, member profile and catalog management.

Though it is still early days for Commerce Server’s integration into the Sitecore plat-
form, we have put together a list of three things we learned while working on our
implementation that can help in ensuring your own successful adoption of the two
platforms:

The three things to know about a Sitecore Commerce Server integration |  93 
1. Understand the desired functionality
before development
Sitecore supports multiple sites, while Commerce Server supports multiple catalogs.
In order to simplify the management of commerce content for content authors, we
developed an integration framework that allows Sitecore sublayouts to bind to a par-
ticular catalog.

2. Consider the language capabilities of


both platforms
Sitecore and Commerce Server can treat multilingual capabilities in a different way.
Multilingual property definitions in Commerce Server have a similar effect as Sitecore
languages have on items, but you will need to ensure your approach to multilingual
in both systems align.

3. Determine the home of the product


catalog before getting started
Sitecore is great at storing web content, where as Commerce Server’s strength is core
catalogue content. Deciding which system will hold the product content is key. It is
almost always a mixed situation where core product information and pricing resides
in Commerce Server and Sitecore retains the web specific content. You also need to
consider how content ownership will impact the Sitecore DMS.

We look forward to the future of Commerce Server under the Sitecore umbrella, and
if our successful implementation is any indication, Sitecore users are in for a treat.

94  | www.nonlinearcreations.com
27 Tips for Configuring
Sitecore

Glen McInnis
VP Technology, Sitecore MVP

Have you decided on the Sitecore content manage-


ment system to deploy your company website? Great
choice! As a .NET architecture, there are a few things
your developers should keep in mind when it comes to
performance, scalability and security.

Sitecore’s robust .NET based architecture is a huge advantage to teams deploying the
product. The speed of development and the configurability of the platform allows
for amazing results in a very short time. Conversely, the ever expanding scope of the
platform has led to a plethora of settings and configurations that may need adjust-
ment for production environments to ensure scalability, security and performance.

Drawn from nonlinear’s project experience and a host of Sitecore documentation we


have assembled this list to help guide you in those steps.

Getting Started — Sitecore and IIS


If you use the executable to install Sitecore, many of these settings are adjusted
automatically however that can change from release to release and on some occa-
sions; specific policies on the server may prevent the installer from modifying the
configuration.

27 Tips for Configuring Sitecore |  95 


1. Set permissions on /website and /data
2. Ensure the data and indexes folders are outside of the web root and update the
web.config to point to the data folder
3. In IIS ensure that Maximum Worker Processes for the Application Pool is set to
1 (under advanced settings)
4. In IIS ensure that Load User Profile settings of the Application Pool is set to
“true” (under advanced settings)
5. In IIS ensure anonymous access is denied for:
/App_Config
/sitecore/admin
/sitecore/debug
/sitecore/webservice
6. In IIS Enable HTTP keep alive
7. In IIS enable static content compression
8. In IIS on the CMS server, enable dynamic content compression
9. In IIS disable execute permissions on the upload folder
10. In IIS enable content expiration using HTTP response headers, especially for the
/sitecore folder (optional)

Sitecore configuration changes


11. Ensure the /data and /indexes folders are outside of the web root and update
the dataFolder setting to point to the data folder.
12. Include the path to static media files (header images, css files, JavaScript files)
in the IgnoreURLPrefixes settings to prevent Sitecore from intercepting the
requests.
13. Disable unused search indexes by setting Indexing.UpdateInterval to 00:00:00.
14. Update the standard cache sizes for prefetch, data, item and item as recom-
mended (see the scaling guide), and then test for further adjustments.
15. Ensure presentation components that are candidates for caching are set to
cacheable.
16. For 64-bit systems with the available memory, disable cache size limits using
Caching.DisableCacheSizeLimits.
17. Disable performance counters using Counters.Enabled as they add overhead.
18. Disable WebDav by removing the references in:
<log4net/>
<system.webServer />
<httpHAndlers>.
19. Disable memory monitor by removing the hook from <hooks />.

96  | www.nonlinearcreations.com
20. Restrict access to .XML, .XSLT and .MRT files using the
<system.webServer><handlers> section.
21. Disable the upload watcher by removing it from the
<system.webServer><modules> — Sitecore.Resources.Media.UploadWatcher.
22. Optionally disable client RSS feeds by removing the Sitecore.Shell.Feeds.
FeedRequestHandler.
23. Remove unneeded headers from the responses. For example X-Aspnet-Version,
X-Powered-By, X-AspNetMVC-Version.

Sitecore databases
24. Some simple adjustments to the configuration of SQL Server can greatly improve
the performance of the database environment. Keep in mind that some of these
settings may impact the backup approach you employ for MS SQL.
25. Set the compatibility level to SQL Server 2008 (100) to take advantage of the lat-
est optimizations.
26. Ensure the auto close property is set to false. This ensures that a page will only
make one connection.
27. Ensure the auto shrink property is set to false to avoid costly dynamic resizing.
28. Ensure the recovery model is set to simple to avoid the high overhead of trans-
action logs.

27 Tips for Configuring Sitecore |  97 


Two common Sitecore
page editor challenges

Grant Bartlett
Solution Architect

Sitecore’s Page Editor is a useful way to improve the


content authoring experience, but has its limitations.
We address two of those limitations and provide
solutions to overcome them.

The key to an effective Sitecore website is the ability to update and edit in real-
time and a concentrated effort to make it an accessible, shared project between the
Marketing and IT departments. We are big fans of using Sitecore because it covers
off both of those requirements, while offering impressive visuals and unique person-
alization capabilities with the DMS.

The ease of being a content author in


Sitecore
Editing content in Sitecore is made easy using the Page Editor mode and its inline edi-
ting capabilities. A content author simply needs to navigate the site, find the content
to be updated and input the changes directly in the page. While Sitecore has made
great inroads to ensuring this process is as simple and intuitive as possible, there are
still challenges that simple planning and a little extra code can address.

98  | www.nonlinearcreations.com
There are two common challenges with editing content from Page Editor mode:

1. Content authors may find themselves in a situation where they wish to edit a par-
ticular piece of content that is in a field that doesn’t exist on the page in the Page
Editor mode. They may come across a field that contains content they want to
update, but are unable to access the field due to it not being exposed on the page.
2. The incorporation of dynamic elements are a great way to add visual interest to
your site, but can lead to some problems for your content authors. For exam-
ple, an element like a slider, which automatically transitions and hides all but the
current slide, are problematic to update in Page Editor mode because of these
features.

Bringing a developer into the mix


Addressing the first issue is quite straightforward and is supported by Sitecore’s native
functionality. Sitecore allows developers to add custom buttons to the Page Editor
interface to support fields that aren’t exposed by the presentation. These custom
buttons are stored in the core database at: /sitecore/content/Applications/WebEdit/
Custom Experience Buttons. From here, there are a couple of different types of but-
tons. In our case, creation of a new button based on the field editor button template
gives us the ability to expose fields that are not otherwise available. Once a button
has been created, it can be added to the sublayout (and subsequently your page) via
the Page Editor buttons field on the sublayout.

Alleviating the dynamic element issue is a little more complicated and involves using
a two-step process that requires code/CSS updates:
1. The first thing to consider is the automatic transition of slides; it will need to be
disabled in Page Editor mode. In the code, a simple check of Sitecore.Context.
PageMode.IsPageEditor will help you identify which mode you are in, and from
there it’s just a matter of writing the code to disable the transition.
2. The second problem occurs after your slider transition has been disabled. How
can the content author edit the second, third, fourth, etc. slide if they are not
displayed on the page? Again you will need to enlist your developers to solve
this issue using code and CSS: when in Page Editor mode, stack the slides verti-
cally so each one is visible and available to be edited.

While Sitecore continues to improve the content author experience, in house develop-
ers will have a role to play in creating a seamless experience for the active mainten-
ance of a company website.

Two common Sitecore page editor challenges |  99 


Personalization and your
Sitecore intranet

Glen McInnis
VP Technology, Sitecore MVP

In our experience, we have found that Sitecore has


impressive capabilities as an intranet platform. We
look at two ways that you can start using explicit
personalization on your Sitecore intranet:

One the biggest challenges when designing and developing a company intranet is
striking a balance between the inclusion of corporate driven materials and allowing
employees the freedom to setup personalized views. You want important corporate
news and information to be available and visible to all employees, while also creating
the most efficient way to track task completion. We’ve identified that Sitecore, a plat-
form generally used for front facing websites, has impressive capabilities on which
to build intranets that strike the balance between corporate needs and employee
personalization.

Personal page
The Sitecore web part framework provides a solid foundation on which to build a per-
sonalized page for employees. By publishing a catalog of web parts with corporate
content, application feeds and more generic RSS feed readers, users can construct
their own view of the content they need, while giving corporate communications the
ability to take over an area of the page when necessary.

100  | www.nonlinearcreations.com
One of the best things about using the Sitecore web part framework for an intranet
is that the definition for each web part gets created in the system as an item. This
allows you to define which web parts should be available to certain groups and gives
you the ability to restrict those who aren’t intended to have access. This functionality
can be especially helpful when the widgets are connected to a secure line of business
applications like a finance system.

Active Directory profile


When Sitecore is connected to Active Directory (AD), the profile in AD can be used
to drive personalization. Commonly found information in Active Directory would
include:
• Location: If you know an employee’s physical location or building, targeting
facilities updates like fire alarm notices and other geographic content becomes
possible
• Org Chart: An employee’s manager or home team is often in Active Directory;
this allows executives in charge of that division to target messages to their staff.
• Security Groups: This information varies from organization to organization, but
we have seen some common uses:
-- Project Teams: project based organizations will often create an AD role to
which all project members belong to, allowing for the targeting of mate-
rial to that group.
-- Role: The role of function someone plays in an organization is also often
implied by their AD membership. The most recent example of using this
role to enforce personalization I’ve seen is one where all project managers
in the company had membership in an AD group, which allowed the PMO
to share best practices across divisions.

The major challenge with an Active Directory driven personalization is the quality of
the data. Many organizations struggle with keeping this information up to date. If you
are able to find an efficient way to overcome the data challenge, you will be well on
your way to incorporating explicit personalization into your Sitecore intranet.

Personalization and your Sitecore intranet |  101 


Sitecore, Coveo and your
Intranet

Allison Simpkins
President, nonlinear digital

Despite its traditional role as a front facing website


platform, Sitecore has shown itself to be worthy in the
intranet sphere as well. As with any intranet, search is
key. We look at how Coveo’s search product can power
your Sitecore intranet.

We’ve talked a lot about what should and shouldn’t be done to inspire employees to
embrace your company intranet, and as we all know, user adoption is crucial. Ensuring
that your organization has a living, breathing intranet is a tough job for even the most
dedicated of web steering committees. The bottom line when it comes to intranets is
that for it to beneficial to your employees, it must make them more efficient.

One of the biggest culprits in dissuading intranet use? Irrelevant content. Your
employees are not going to go out of their way to find things, so if you are hosting
intranet content that is not relevant, compelling or necessary, get rid of it. Having a
well developed content strategy will keep your intranet moving in the right direction,
but equally important is ensuring that your employees are able to find what they’re
looking for.

Allow them to access the content they need


Your employees are coming to your intranet to find something. Unfortunately, in
most cases they spend more time looking than finding. Searching for a cost effective

102  | www.nonlinearcreations.com
way of increasing productivity and encouraging happier employees? Time to look at
optimizing your search. If your employees are starved of the critical information they
need to work better and smarter, your company will suffer.

Enter Coveo for intranets


Coveo Enterprise Search (CES) combined with the Coveo G2B for Intranets connects
people to information from every nook, cranny and corner of your corporate know-
ledge base—no matter what form or format the information is in. Video rich intranet?
It’s got you covered. Lots of audio files? Covered there too!

Most organizations have millions, perhaps billions of documents and structured data
stored in file systems, email servers, intranets, enterprise applications, databases and
web sites. The magic of Coveo is that employees can access all of this across all plat-
forms within a split-second.

Provide smart content recommendations and


relevancy
Site search has always been a rapidly evolving technology, and more so now in today’s
climate of the ever expanding Big Data and demands from site visitors to have per-
sonalized online experiences; we have found that Coveo can help address this need.

To truly engage each visitor, you need to present them with content from all sources
and ensure the content is relevant. Coveo blends content located inside Sitecore
with sources outside such as customer communities, blogs, extranets, portals, CRM’s
and more, the possibilities are endless. This ensures that more relevant information
and products are surfaced to the visitor faster, resulting in higher conversion rates,
improved self-service, and greater visitor satisfaction.

Employees are able to work more efficiently by allowing them to access critical com-
pany information more easily and quicker than ever before through a simple search
user interface.

The enterprise world is changing. As we continue to demand better consumer experi-


ences on websites, so too must we demand the same of company intranets.

Sitecore, Coveo and your Intranet |  103 


Nine steps to a successful
Sitecore website launch

Jason St-Cyr
Solution Architect, Sitecore MVP

Are you preparing to launch a Sitecore website? Make


sure you’ve checked and rechecked our nine item
checklist to ensure its smooth sailing.

Anybody who has ever done a production launch of an application knows three
things:
1. There are a lot of variables at play
2. Inevitably the law of averages catches up to you
3. Something pretty much always goes wrong.

Whether you are launching something internally or externally, these three things will
apply; a Sitecore launch is no exception. If you are about to start your cutover plan-
ning, here are nine things to keep in mind for your run up to launch day and your
post-launch plan:

1. New “must-haves”
During cutover testing, new end-users or business groups may be brought in to
review the site prior to launch. These individuals may not have had input into the
project until now and may have business needs that have not been met. Suddenly,
new “must-have” features or bugs are identified on launch day. Don’t worry, you’re
reading this before launch day! (Right?) Sound familiar? If so, you have two options:
either bring these folks into the project earlier or set their expectations for a “quick
turnaround” post go-live to address their concerns.

104  | www.nonlinearcreations.com
2. Task estimates are wrong
Task estimates are just that, estimates. The preliminary projections for cutover tasks
are usually incorrect, and as a result, dependent tasks can begin to slide through-
out the day. This can become compounded, especially if multiple teams are trying to
co-ordinate. When reserving your resources for launch day, ensure some flex time for
the end of the day so that these resources are still available to continue launch activ-
ities beyond the estimated time frame.

3. Domain name transitioning issues


This is easier to fix when launching an intranet, as standard worldwide DNS-
propagation time won’t apply. It’s possible that there may be issues ensuring that
users are being sent to the new site as opposed to the old domain, and also issues
with sites that are supposed to be linked to the production environment. These issues
can both be mitigated by resolving the DNS in advance to a load-balancer inside the
network that can be pointed at the old site, and then swapped over to the new site.
This allows for advance propagation of the change in DNS/IP mappings without serv-
ing up the new site until launch day.

4. Content issues
Once the full version of the website has been launched, there are usually multiple
users who begin reviewing the site and its contents. Typos, grammar errors, layout
problems, synchronization with publishing issues, etc. are often discovered as visitors
explore the end-user site for the first time. While this can be avoided by establishing a
proper Sitecore governance structure, it’s possible that prior to cutover, many users will
be focused on content migration and viewing content in the authoring environment
and less concerned with the end-user. This is to be expected but thanks to Sitecore’s
easy CMS interface the changes can be made directly in production and published
without needing to do another deployment. A note of caution: make sure you have a
tracking system to track all the issues that are identified during this process!

5. Go/no-go time frame needs to be


flexible
Project teams will usually have the initial go/no-go meeting and look at remaining
issues to determine if the team should be given more time to resolve them followed

Nine steps to a successful Sitecore website launch |  105 


by another go/no-go meeting to reassess. These meetings often reveal obstacles to
a successful launch that might include incorrect estimates, newly discovered bugs
or other barrier issues. Be prepared to change the time of the go/no-go decision to
reflect the extra effort that will be required to address the new issues.

6. Sitecore performance
Performance testing should cover finding most of these issues but when the actual
load of users begin using certain features new issues may be identified. Your team
needs to be ready to disable these features for further investigation or real-time
capability to address the performance issues. Integration points are the most com-
mon cause of this, so make sure these are included in your performance tests prior
to launch.

7. Browser compatibility
While QA has been doing browser verification, it is inevitable that slight differences
in end-user browser/OS/hardware may find previously unknown compatibility prob-
lems. If your organization is launching an intranet, you may have control over the
hardware and software installed on company-issued workstations, however users
with various mobile devices or working from home may encounter unforeseen prob-
lems. When launching to the Internet, make sure the focus on browser testing is
based on your historical analytics data to know where to focus your testing/develop-
ment efforts, smaller groups can then be scheduled in based on business priority and
desired markets.

8. Handling influx of support


Due to the new user experience, and possible remaining issues in the system, there
are usually a lot of questions that will come in via email, phone, forums, or your
Twitter account. Resources need to be prepped for this increased load and there will
be many prioritization decisions that need to be made to ensure tickets are han-
dled efficiently. During the first few days only critical issues should be addressed and
everything else should be prioritized into the backlog.

106  | www.nonlinearcreations.com
9. Schedule for post-launch deployments
After the initial cutover, there needs to be an agreed upon deployment plan for push-
ing out priority fixes for issues found during cutover or on the first few business days
after cutover. Expect that the first day will likely be handling the influx of questions
and prioritizing the issues, so starting on the second day you will likely need a sched-
uled deployment of priority fixes. If you follow these steps, you’re sure to feel a whole
lot better on launch day.

Nine steps to a successful Sitecore website launch |  107 


Three considerations when
building multilingual sites
with Sitecore

Eduardo Moraes
Solution Architect, Sitecore MVP

If your organization requires a CMS with the capability


of creating multilingual sites, Sitecore is for you.
Remember to keep these three considerations in mind
when building your new sites.

nonlinear has developed extensive experience in building sites prepared to work with
multilingual content. Based on this experience, we have learned that there are sev-
eral things that projects employing the Sitecore CMS need to take into consideration
to ensure proper implementation that allows for the reuse of content templates and
replicated branding for localized content. These include, but are not limited to:
• design of the content tree
• shared (or not) information architecture
• how to deal with fallback content when translation is not available
• use of dictionaries for common labels and other dynamic or static elements of
pages
• how to proceed with workflows for content that needs to be necessarily trans-
lated to multiple sites in different languages
• how the media library should be organized to ensure reuse of media assets
where applicable.

108  | www.nonlinearcreations.com
Language variants
The first thing to do is to ensure you have the language variants configured in your
system. By default, English will be there. Next, you need to add the other languages
your website will need. In the screenshot below we have the Portuguese Brazil
settings being added to our site.

Content tree design


The way you architect your content tree in Sitecore should be determined by a series
of inputs and variables. It starts with the information architecture for your new web-
site, which is created to ensure a proper navigation for both site visitors on the pub-
lished site and content authors working on Sitecore’s desktop interface. Let’s take the
example below using an excerpt of an information architecture (IA) diagram prepared
for one of our clients:

Three considerations when building multilingual sites with Sitecore |  109 


In Sitecore it would be configured as follows:

The approach taken above seems an obvious one when we think of it only from the
IA diagram’s perspective. However, what if you want URLs to be localized to different
languages? You will need to consider having the display names of these items also
defined in Sitecore on the language version of each item you want a translated URL.

Same content tree with display names in Portuguese:

110  | www.nonlinearcreations.com
Also, to avoid blank spaces showing up in your navigation menu on your site, you
want to make sure that the presentation logic will not display items that don’t exist
(don’t have a comparable different language version) in a given language variant.
Let’s say for example that the item \Empresa\Missao e Valores\Observancia (equiva-
lent to \Company\Mission and Values\Compliance) doesn’t yet have a Portuguese
version. It could have a field called “Include in Navigation” checked to false. The pres-
entation logic for the menu would verify the content of this field and display or not
display the item on the website’s menu.

If your navigation is too different in a given language variant then you may con-
sider creating a separate node in the content tree for the localized items instead of
using the out-of-the-box language variants feature; the same goes for media items.
Files that are common to both sites should be shared, while localized files should be
placed in a separate folder created specifically to hold media items for that language.

Workflows
The use of workflows can help to ensure that content is translated to a given lan-
guage after it is created in its primary version.

Let’s say that items are first created in English and after that they need to be trans-
lated to another language before being published. A workflow could be configured
as follows and applied to the appropriate content templates:

Three considerations when building multilingual sites with Sitecore |  111 


authors
authors
authors

Molly Anglin
A data driven strategist and information architect, Molly has been
part of the nonlinear team since 2001. In her role as Vice President
of nonlinear digital, Molly is involved in projects at various stages,
from planning to development and post launch optimization, many
of which are based on the Sitecore platform.

Grant Bartlett
Since joining nonlinear in 2009, Grant has become one of the most
senior developers on the nonlinear Sitecore team. In his role as
Team Lead in our Ottawa office, he is one of our resident experts in
optimizing Sitecore for the content author experience. His thought
leadership combines technical skill and user friendly formatting to
provide guided instruction on customizing Sitecore.

Joe Boughner
As the Director of Marketing for nonlinear, Joe has been involved
with Sitecore, both as a corporate partnership representative and as
a content author for our own website. These experiences give him a
unique position among our Sitecore experts. Joe joined the team in
2010 and has contributed greatly to the thought leader at nonlinear.

authors |  115 
Dwayne Gockel
Dwayne is a Solution Architect who joined the nonlinear Ottawa
team in 2011. His experience in Sitecore has involved both front
and back end development. Dwayne’s focus is transforming existing
websites into new, responsive, user driven and easy to maintain sites
through modern design and development practices.

Mauro Madeira
Mauro acts as a Quality Assurance Analyst out of our Ottawa office,
and has done so since he joined the team in 2011. A dedicated prob-
lem solver, Mauro’s work focuses on improving the automated test-
ing process post site launch for optimal performance. His innovative
automated testing techniques are crucial to Sitecore projects at
nonlinear.

Glen McInnis
Glen has been a vice president at nonlinear since 2006. He has both
strategic and tactical experience with leading CMS vendors including
Sitecore, Microsoft SharePoint, Adobe CQ5, Ektron and OpenText/
RedDot and has been named a Sitecore MVP every year since 2009.
Glen has overseen teams responsible for more than 120 content
management deployments and complements this real-world experi-
ence with substantive formal education.

Eduardo Moraes
Eduardo joined the nonlinear team in 2007. Relying on his Sitecore
expertise, both architectural and technical, he has been a part of
countless deployments over the years. Eduardo’s work has contrib-
uted to a variety of solutions including content migrations, multi-lan-
guage sites, intranet, extranets and front facing websites.

Rodrigo Peplau
Rodrigo is a developer working out of our Florianopolis office in
Brazil. Since joining nonlinear in 2010, he has been a part of count-
less Sitecore implementations. While development is his primary
focus, Rodrigo has begun to branch out into other elements of the
Sitecore platform including the Digital Marketing System and Web
Forms for Marketers.

116  | www.nonlinearcreations.com
Antoine Rulliere
Antoine has been a key part of the nonlinear delivery team since 2009,
bringing strong project management skills to countless Sitecore pro-
jects. His role involves applying nonlinear’s Agile inspired develop-
ment framework to manage projects across all disciplines including
design, strategy, development and testing. His work has contributed
to a number of successfully launched projects and happy clients.

Amanda Shiga
Amanda is nonlinear digital’s Vice President and Sitecore MVP who
has been part of the nonlinear team since 2006. She brings more
than 13 years’ experience in designing and building effective content
management and web-based solutions within a variety of industries.
Amanda leads the nonlinear digital team in delivering digital mar-
keting solutions and contributes significantly to business develop-
ment and thought leadership.

Allison Simpkins
Allison acts as the President of nonlinear digital out of our Toronto
office. She helps clients understand not just how to create mean-
ingful experiences for customers and visitors online but also how
to glean insights from analytics to drive truly engaging multi-chan-
nel marketing campaigns. With more than 14 years at nonlinear,
Allison has been involved with countless Sitecore projects, primarily
in account and project management roles.

Jason St-Cyr
Jason is a Sitecore MVP who has been working out of our Ottawa
office since 2011. In his role as a Solution Architect, he’s tasked with
planning, developing and implementing Sitecore solutions. His cur-
rent focus lies in Application Lifecycle Management (ALM), working
to optimizing a team’s ability to transition from idea to delivery and
beyond to the end of life of the service.

authors |  117 
Saulo Venancio
Saulo works out of our Florianopolis office in Brazil as a nonlinear
digital consultant. His experience spans across a number of technol-
ogy platforms including Sitecore and Adobe Experience Manager.
Saulo’s key Sitecore focus lies in content author component and
template development, as well as system administration tasks.

Randy Woods
As nonlinear creations’ co-founder and President, Randy has been
helping clients achieve their online goals since 1995. He has two
decades of leadership experience in the development of online mar-
keting strategies and implementation plans, applying a combination
of business acumen, technical knowledge and marketing insight to
the challenges faced by his clients. His extensive experience using
the Sitecore platform for digital marketing has earned him the title
of the Digital Sitecore MVP.

118  | www.nonlinearcreations.com
about nonlinear digital

nonlinear digital is a full-service digital agency that offers business and technology
driven websites that are equally functional and beautiful. We are committed to rely-
ing on analytics and focus research to plan, build and launch websites and digital
marketing platforms. This approach allows us to provide our clients with proven
results, every time.

We are crazy about Sitecore: whether its development, strategy or marketing we


pride ourselves on providing seamless implementations that stand out in a crowd.
Creating beautiful websites is one thing; creating beauti¬ful websites that are eas-
ily navigated and functional is quite another. Our team combines advanced technical
expertise with the Sitecore platform with design and usability to our clients websites
that check all of the boxes.

Contact Us
info@nonlinearcreations.com 987A Wellington St.
twitter @nonlinear_tweet Suite 201
nonlinear creations Ottawa, ON
+nonlinearcreations K1Y 2Y1

www.nonlinearcreations.com +1 613 241 2067


nonlinear
non
nonlinear

Toronto | NYC | São Paulo | Ottawa | Calgary | Florianópolis

www.nonlinearcreations.com

nonlinear digital
non
nonlinear digital di

Você também pode gostar