Carousell has grown to be mind-bogglingly large since the medieval days of 2011. As of today, there are over 5 million pages on Carousell that have been indexed by Google.
To be more specific, there are over 1 million product listings on sg.carousell.com, nearly half a million on ph.carousell.com as well as on my.carousell.com. Remarkably, the results from Malaysia are in Bahasa Malaysia, telling us that Carousell is well-embedded in the minds of Malaysian consumers, well beyond just the niche of tech-savvy English-speaking Malaysians.
Carousell is no longer a cute mobile-only platform that only works for youth, but a general, increasingly mainstream trading platform.
Country subdomains like SG, MY, ID, and so on are one way to tell Google which location to serve content to. If you are planning on expanding overseas, this is an excellent way to serve up different content customised to each market. Sometimes, this may not be possible if you already use subdomains for another reason, such as for your SaaS product e.g. app.unbounce.com. As an alternative, you can also make use of a subfolder structure, like surveymonkey.com/uk/.
Going from a simple URL structure like carousell.com/<product url> to one including subdomains is always daunting. On top of updating all product URLs in the company database, the shift also has to be handled carefully on the Google-facing end. After all, we want the listings to be showing up to the correct audience.
In the rare instances that this is not taken care of, you may see a strange result like this where a scar removal gel shows up to users in the Philippines via the PH subdomain, but less so for users in Singapore via the SG subdomain.
In order to prevent product listings from being miscategorised in the wrong country, a hidden html tag (meta tag for short) called a canonical tag is used. The canonical tag signals to search engines that a page is the authoritative (or canonical) version among variants.
In our example above, the product listing shows up no matter which country subdomain that you use. Go ahead and try it. Switch it up between my,id,tw,hk,au,us. You will see the listing regardless. However, if you inspect the html of any page, you will find a line of code that points to the sg listing as the ‘canonical‘ version Nerd alert: Code ahead!
<link data-react-helmet="true" rel="canonical" rel="follow" href="https://sg.carousell.com/p/best-seller-scar-removal-merderma-scar-gel-20g-2-pc-8-98791082/"/>
The discoverability problem
Websites that grow beyond a certain size have to face a very Googly problem — discoverability. On a marketplace like Carousell, where new listings are created quickly while old ones become obsolete (products are sold, or removed), this problem is especially acute.
Every available tool must be used in order to speed up search engine discovery (indexation) of new listings. Two methods in use at Carousell are category footer links, as well as sitemaps.
Category links in footer
For marketplaces like Upwork or Amazon, it is nigh impossible to link to every single category in the footer. There are too many varieties of services and products that are available on the website. In addition, Google imposes a real constraint by crawling only the first 100 links on a page. Though Google is enormous, their resources for crawling the web are not infinite.
One way that large, frequently updated websites can indicate what content is a crawl priority, they can link to the most important categories for their business in the footer.
Taking this logic further, each distinct subcategory such as a country, can have its own footer links. Carousell already customises the footer links in each country subdomain to maximise discovery of listings in the most important categories. See the differences below.
Categories can be ordered based on a few metrics. For instance, total open listings, total closed listings (sold successfully) in past 30 days, total new listings in past 30 days and so on. Absent In lieu of a successful monetisation strategy from Carousell, the rate of successfully closed listings is a good metric for success.
The other method for discoverability of new content is sitemaps. Sitemaps make it easy for search engines to comprehend the size and scope of your website without expending all the time and resources to crawl every page. A sitemap can contain tens of thousands of URLs as well as a little more information such as their relative priority, all for a few megabytes.
All the marketplace websites that I’ve seen have implemented sitemaps. For small websites, this can be as simple as a WordPress plugin.
For websites with scale, sitemaps are a class of problem unto themselves. If all of Amazon’s products went into one sitemap, merely downloading the sitemap would take way too long. For that reason, large websites like Carousell’s require breaking down their pages into several sitemaps.
There are a few dozen category sitemaps for every country subdomain. The categories shown are almost the same for each country, but ordered differently, probably the same way that the footer category links are ordered.
These category sitemaps in turn are where the meat of the content is, and contain all the listings. The largest of these appear to contain 50,000 entries. This is also Google’s recommended limit to the number of listings per sitemap.
The above is just a partial reading of the SEO tidbits that I’ve uncovered about Carousell. These are the ones that I find to be most educational. Pointing out flaws or lifting the lid on the strategies being used are not friendly or necessary, so we’ll stick to just these lessons.
However if you’re interested in more, I’ve written in the past about Zopim, Shopify and Quora. I love these breakdowns as the most interesting SEO case studies tend to be from large websites since they have enough traffic to make data-driven SEO decisions that shine a light on Google’s inner workings.
Ask away with any questions you have and keep shipping!