top of page

User-generated content optimization for SEO - Case study

Our global community creates its own unique profile on our platform. It creates exponentially growing user-generated content. At the start of our platform, we were under the assumption that Google would be able to rank these profile pages high. It turns out that more is needed for this. Below is a case study about the lessons learned to better optimize user-generated content for Search Engines.



Focus on high-quality user-generated content

Not all users create valuable content that search engines can use to rank. They usually need help with this.


Provide high-quality user-generated content Content must always be of good quality to rank. Most users need help with this.


Optimize the use of your crawl budget Make a clear choice about which content you want to rank and which content you don't want to waste your crawl budget on.


Cluster user-generated content Make sure you can cluster as much of the same user-generated content as possible to reinforce each other.


Keep your HTML clean and simple HTML should always be clean and simple, but especially when it comes to unique user-generated content.


Let the user contribute to your PA (Page Authority) Make use of all means to let your users contribute to the PA of the page where they publish their content.




What is user-generated content?

User-generated content is information in the form of text, images, videos, or music published by a user on a platform or site. In our case, our users create a public profile that consists of:


  1. (Full) Name

  2. Profile photo

  3. (Profile) header photo

  4. Profession

  5. Short description of what you are good at

  6. Hashtags related to your expertise

  7. Long description of what you do and what interests you

  8. Location

  9. Available days and times

  10. Mastery of languages

  11. Reviews of people

  12. Additional photos and videos

  13. Written articles

  14. Upcoming or given webinars


Our profile pages are similar to other platforms that mainly use user-generated content such as:


LinkedIn where users can create a profile page to profile themselves in business.


AirBNB where users can offer their house or part of it for rent.


Tripadvisor is where people can tell something about a location they have visited and offer services such as photo tours.



At the start, we took the above and other platforms as inspiration and proof that unique user-generated content can be ranked within the different search engines. This proved to require more than we initially suspected.


Provide high-quality user-generated content

In our case, we ask our community to fill in the most complete profile possible. We assumed that this is fun to do, and people like to present themselves as well and completely as possible. We made two wrong assumptions here.


No matter how intuitive your user interface is, most users need help creating their profile and have trouble telling something about themselves.


Rarely do users complete their profiles in one go. It requires multiple sessions and reminders.


After a few weeks of being live with our platform, the number of new users continued to grow, but the search engines ranked no profile. We were aware that the search engines would need time, but when there was no visible improvement after four months, we decided to analyze all the profiles.


It turned out that only a few users had partially or fully filled in their profiles. Most of the users had not even filled in anything at all - or just a few details - and only created an account.




Help with creating profiles

We decided that we needed to make some improvements to create better user-generated profiles.


  1. Ask a lot of relevant onboarding questions that inspire new users to tell something about themselves.

  2. Visually show the user how many percent of their profile is complete and what they can still add to their profile.

  3. Send reminders by email and via in-app messaging with what is still missing in their profile and why it is important for them to add it.



Three months after the implementation of the above, we analyzed all profiles again and experienced a significant improvement in the profiles. In total, we achieved an increase of complete profiles of 62%, and the almost complete profiles had increased by 12%.




When comparing the previous period with the period after the implementation of the new onboarding, the differences were even more significant.




"High-quality content is relevant, coherent, and complete."


From passive to active onboarding

With passive onboarding, you leave it entirely up to the user to create content. The user has to understand the context in which the information is used and is not given any direction or clues as to what is or is not relevant.


An active onboarding gives suggestions as to what the user can contribute, has forgotten to fill in, how this is used, why information is important or not, and is given reminders.


As the graphs above show, active onboarding provides significantly better user-generated content.


Optimize the use of your crawl budget

Each search engine has a certain budget that is spent on your site or platform to crawl. The spiders of the search engines that analyze your pages and content cost electricity and that electricity costs money.


Depending on several factors such as your DA (Domain Authority) and your PA (Page Authority), the spiders will spend a longer or shorter time analyzing your pages and content.


We wanted all of our users' profile pages to be visible within the search results. Only 50% of these profile pages contain little or no content. In theory, it means that it would be impossible to rank them, while the spiders had to spend time on them every day.


Example: Suppose you have 1000 pages on your site with content of which only 100 pages are relevant. If you do nothing, the search engines will take the relevance of the average of all the pages. You devalue the relevance of the 100 relevant pages by making the other 900 pages equally important.


To start with, we have ranked each user profile on completeness. And from that, we said that profiles that do not meet at least the minimum requirements, we found less important for search engines.


Next, we chose from the following options to indicate to search engines which profiles are more relevant:


  1. You can indicate in links on your own platform that these do not need to be viewed ('no-follow tags').

  2. You can keep track of all links in robots.txt that you don't want to be indexed ('noindex').

  3. You can leave out unimportant links in the sitemap you provide to search engines.

  4. You can make it more difficult for search engines to find links on your site by not including them in your navigation or search results.


No-follow doesn't work within your own sites these days, so that wasn't necessary. And we didn't want to block our users in search results, so no user is in robots.txt.


We did choose to leave profiles that do not meet our minimum requirements out of the sitemap, and always show the incomplete profiles at the bottom of search results.

This way, we gave priority to the best profiles.


Clustered user-generated content

When we succeeded in creating better user-generated profile pages and indicated to the search engines what we thought were relevant profiles, we hoped to rank better. However, after some time, there was hardly any improvement to be seen. The suspicion was that our diversity of offerings was too segmented to be of any relevance to the search engines.


Our community consisted - and still consists - of a great diversity of professionals and consumers offering their services and knowledge. These include language teachers, life coaches, gardeners, fashionistas, local guides, and so on.


Our idea was to create clusters but dynamically based on user-generated content.


Clustered user-generated content based on slugs

Each of these members has its own slug.

For example: calltheone.com/en/name of the user


So the slug says nothing about the content of the profile other than what the user's name is. If someone in the search engine searches for "professional life coach", the slug does not contribute anything to the ranking.


In addition, Google, for example, prefers to display search results that are location-related. If someone searches on "life coach New York" it is not logical for google to show a life coach in Singapore.


It left us with several choices.

  1. Cluster all users who know something about life coaching within a particular category. calltheone.com/en/life-coaches/name of the user.

  2. Cluster all users based on the profession they have filled in. calltheone.com/en/profession/name of the user.

  3. Cluster all users based on location. calltheone.com/en/location/name of the user.

  4. Cluster all users by location and profession they have. calltheone.com/en/profession/location/name of the user.


A variant of this is to replace - "name of the user" - with - "brief description of what someone does" -.


We chose calltheone.com/en/profession/location/brief description of what someone does.


The reason for this is that we are clustering everyone with the same profession within the same environment. (Search engines know which locations are close together).


Clustered user-generated content based on landing pages

Our members fill in hashtags related to their offer and expertise. They are entirely free to fill in any hashtag they want. This made it possible to search on tens of thousands of hashtags, right from the beginning of our existence.


We wanted an easy way to cluster profiles based on hashtags. So that we could create landing pages for a cluster of related profiles. We, therefore, decided to choose between two options.


  1. Automatic landing page for each hashtag. For example: calltheone.com/en/life-coaches, calltheone.com/en/life-coach, calltheone.com/en/life-coaching, etc.

  2. Manually group similar hashtags under main hashtags. With a landing page for each main hashtag. For example: calltheone.com/en/life-coaches is a landing page for the main hashtag, which includes similar hashtags (life-coaches, life-coach, life-coaching).


Because the number of hashtags continues to grow exponentially, we chose option 2. Option 1 would eventually result in an infinite number of variants. All those variants provide little substantive value for search engines to rank on.


We decided to build a dashboard where arranged by the number of hashtags of the same name, and we could see how many profiles had the same and similarly named hashtags and manually cluster these based on number and importance.


Clustered user-generated content based on hierarchy

After we had landing pages that could display a collection of profiles, it turned out that in many cases hundreds - and therefore very soon a multitude - of profiles were displayed. This could eventually lead to infinite scrolling.


Infinite scrolling involves two challenges.


  1. Which content do you show first to the user and the search engines?

  2. Loading everything in one go costs (too) much loading time. A significant ranking factor for all search engines.


At this moment there is already a hierarchy on pages with profile clusters by the following rules:


First show the complete profiles of people who:


  1. be available at that time

  2. speak languages that you also speak

  3. be closest to you


Then show the most complete profiles of people who:


  1. are not yet available

  2. speak languages that you also speak

  3. be closest to you


Then show the most complete profiles based on:


  1. a number of other factors that are not necessarily relevant to this article.


The solution for infinite scrolling is simple: Paging with noindex. Paging can be done in two ways. One way is like Google does, by showing follow-up pages at the bottom of the page. The other way is to show a button with "load next page".


We chose the latter. But this is not enough.


We blocked the less relevant search results on follow-up pages with noindex in robots.txt.




Clustered user-generated content to be ranked with its own content

The assumption was that clustered profiles would now also rank much better individually, but we decided to play it safe. By adding our own content in the form of articles to large clusters of profiles, search engines can better analyze what the profiles are about.


Landing pages with many profiles featured unique articles about the expertise they wanted to profile. For example, life coaches featured an article about what a life coach is, what they can do for you, and how they usually work.


It gives search engines a context of what the profiles are about and generates extra organic visitors through the content of the article. A win-win.


The result of clustered user-generated content

We could clearly see in the ranking that clustering made a difference, and complete profiles finally became visible in some search results. But to rank within the top 10, more was needed.


Clean and simple HTML for SEO

The profile pages contain a lot of information that is not all equally important for search engines. For example, a search engine does not need to know when someone is available. Or what languages someone speaks.


From a technical point of view, our HTML was neat and tidy. What we didn't realize was that Google reads the code from top to bottom. What's on top is of more value to Google than what's on line 10,000 (if the number of lines of code should be that long).


Very relevant and irrelevant content was randomly added to our HTML code.


We have, therefore, made sure that all content on the page related to the profile and expertise is positioned at the top of the HTML as much as possible. All other content was moved to the bottom.


And on top of that, we looked very critically at HTML content on every page and removed everything that was not relevant, or only loaded it via Javascript when necessary.


This made the HTML smaller and prioritized relevant content. Finally, we found out that from an SEO perspective, the tools and frameworks we used, such as Bootstrap, were a major obstacle to us. We rewrote the entire HTML and CSS from a minimalistic perspective.


Let user-generated content users contribute to their own PA (Page Authority)

User-generated profile pages really started to rank, and soon some of them did make it into the top 10 search results. To keep more profiles in the top 10, we didn't just want to increase our own DA (Domain Authority).


We also wanted to give our users tools to increase their own PA (Page Authority). Because the higher the authority that search engines grant, the faster and higher you rank.


Page Authority is not only determined based on content but also based on links and backlinks. The solution here was more than simple.




We added an input field for the user-generated profile page where users could add links to their own websites and social media channels. At the same time, we asked the community to post a backlink from their site, blog, and other channels to their own profile page.


Conclusion on how to optimize user-generated for SEO

Every website is different, and no content is the same. Our biggest pitfall was that we thought search engines would rank user-generated content just like that. Unfortunately, the SEO world works differently than we thought, and it is seldom or never a single factor in how to increase your ranking.


We still have a complete roadmap of improvements that will all contribute to better SEO optimization, but more about that in the next article.


If you have any questions about your user-generated content search engine optimization, please contact Mindd. We are happy to share our knowledge. Face-to-face or via live video calling.

12 views0 comments

Recent posts

bottom of page