English Español Deutsch Français Italiano Português (Brasil) Русский 中文 日本語

Roast My Site with Bartosz and Arsen #1: eCommerce SEO Edition




Arsen: Hello, everybody. We're having a little technical difficulty, but welcome to our Roast. 

We got some sites submitted to us. This is our first Roast. This is the e-commerce edition of the Roast. A bunch of people submitted their sites and we picked a few just at random. 

We're going to pick apart a few of them, a few things that we identified. We still don't have a solid format in place. But we will be getting better as we progress through this.

Let's get this started. Okay. 

Bartosz: Yeah. We should start that with proper honors here for Arsen, you're live from LA, right?

Arsen: I am from LA. Yes, I am in LA right now. And you are in Poland.

Bartosz: I'm in Rostov, Poland. Yeah. We have a little bit of time difference here between us and, obviously, location difference. 

Arsen: Monil is asking how many sites we're going to be roasting? We're going to roast I think four sites today. That's about all the time we have. And again, this is e-commerce.

Bartosz: Let's move forward so we can start. I'm going to start with this website. We actually went through that before. It's Uruoi Skin Care? 

First Website Roast: Uruoi Skincare

First of all, let's go through a quick recording of how the website looks like because there is a lot of gimmicks here. This wheel around the mouse, it reminds me of the flash days from back in the day. I see it's pretty high-techy-looking. But for me, it was extremely confusing going through that because of all the buttons and weird things that happen to my mouse.

Yeah. In general, this website is built with quite a lot of good technology there is Vue.js and there is Nuxt.


Slow Web Page Loading Times and First Contentful Paint

This website comes with a massive, massive cost. Before we go into details, let's have a look at how this website loads on mobile. I fast-forward this video 25 seconds so we don't have to spend a day here. This is 3G on a Motorola G4. We have to wait 35 seconds for this website to load.

To be honest, it's not that amazing. Whoever did that never heard of critical rendering path. You can assume that if someone builds a website like that, they have a massive, somehow technology knowledge, or very good JavaScript developers. In this case, I'm not that sure of that. 


Arsen: Somebody's husband who failed computer science class.

Bartosz: Yeah. However this website is designed, they need to look into critical rendering paths. This is something for those of you who've never played with that for a few years now. We're doing optimize rendering or progressive rendering. Basically, we try to show people some of the content as soon as possible.

With user-centric performance metrics, if they did it right, instead of blocking everything until the thing is ready, they would just show pieces of content that bring value.

First Contentful Paint is the first moment when you see any of the content ... like that's something to optimize. Maybe show just a little product, maybe the name, maybe H1 tag, I don't know. Just load it step-by-step instead of just dumping everything in one shot.


This is actually the most interesting part. This is one of the things that roasted itself because it's completely deindexed from Google.

This website doesn't exist in Chrome’s database, which kind of shows that no one visited or not enough people visited this website on Chrome. This is a website with no traffic blocking robots with fancy JavaScript that's killing it.

To-Do: Fix Robots.txt, Analyze Critical Rendering Paths, Fix Structured Data 

This is the dumbest to-do I've ever made. But, yeah, let's start from basics: remove the disallow directive from robots.txt. Yeah. That's step number one. 

Server render JavaScript. And you are using JavaScript nuxt.js already. This is something to look into because somehow you have this technology but you're not using it right. Remove the wheel around the mouse cursor. This is freaky. This is not SEO advice here.


Arsen: Yeah. I mean, what's the point of that? I don't understand. Do people just lose where their mouse is? Are you trying to help them out?

Bartosz: Analyze your CRP (critical rendering path) and split it into parts. Don't load everything in that one show, just go step-by-step. You don't need to load like five folds below before you show the website. 

Focus on user metrics. Leverage technology. If you want to go with a fancy JavaScript framework, just make sure that you understand that completely, you have some kind of knowledge in that because JavaScript is amazing but requires a lot of good people.

And still, HTML and CSS works great for all those of you who are like, "I'm going to go with this fancy JavaScript framework without an amazing development team." Just don't. 

HTML CSS works. If you want to use JavaScript, use it for loading something in the background, just improve the experience instead of making it terrible with 30-second load on the mobile. Now, let's go back to Arsen.

Arsen: Just a few more things, just did a quick crawl. As you can see, this was done with Screaming Frog, there's a whole bunch of things that are completely wrong. There are no canonicals on any page, there's zero, zero, zero structured data.


Take a look at these page titles. Somebody sit down and put a lot of thought into this. U1, u2, u3, u4, u6, u5. These are all products. This doesn't really tell me much. Unless I am already brand-aware and product-aware, this is really useless. 

Then, H2s brings some context to what the product is. My recommendation with this, very simple, is just to combine them. If you are stuck using these u2, u3, u4 as your product names, which I think you should go back to maybe re-thinking that a little bit, but if this is already kind of set in stone, I would bring in some context to them. I would do like u2 cleaning foam or skin lotion or repair essence.

Product page schema; again doesn't exist. Definitely you want to moderate your reviews on your website. You do have some good reviews, so definitely take advantage of schema.org/products. Take advantage of that markup and bring that information.

Optimize Products for UX and Search Benefits

You do have some really good content around your regimen pages. It looks like a lot of work was put into these, they're just not really structured or optimized properly. You're using, I think these could be search parameters for queries in the URL to bring these up. These are essentially all on one page. But they are really useful and there's a lot of good content.

I would maybe organize these a little bit better, and bring in unique URLs for each specific regimen. Create a regimen silo, and then within that silo or directory I would nest all of the regimens for normal skin, dry skin, oily skin, sensitive skin, bring in some breadcrumbs to help with navigation and organization.

And then a few more recommendations from me are: link between the product pages and the regimen pages, create product type categories for better matching. Right now all of your products are just sitting on their own, so I would segment them out a little bit between creams, gels, milks, essences. 

And then explain your category pages to not only show product names and pictures, but also bring in descriptions which will help the user who lands on those pages, who performs a broader query, let's say, lands on those pages have easier time of identifying which product they want to be looking at.

Bartosz: Just unblock the robots first. Just whoever did that has no SEO knowledge. Connect your developer to a technical SEO. 

2nd Roast: CFS Pharmacy

This was my pick. I actually begged Arsen to take this because of the brand. Whoever picked the www.cfspharmacy.pharmacy loves branding, I'm guessing.

Arsen: Yeah. It's like saying SEO optimization.

Bartosz: For me, if you're going with fancy TLD, so if you're going with .ninja, don't go www. I'm a huge fan of www because it helps, but with all the fancy extensions, don't go with www.amazing.ninja because then it kind of breaks the thing. 

Arsen: They started with the dot com and then the interesting part is that when they did this change of address, if they even did it properly (which they didn't) if you check any redirect from cfspharmacy.com to cfspharmacy.pharmacy, those are all 302 redirects. Brilliant. 

Bartosz: Yeah, this is very weird with the history of that domain. But also if you look at how many of the URLs are canonicalized and basically after crawling around 15k, 12k URLs, actually 15k URLs, we only found less than 3k indexable URLs. This is very, very weird with how messy the structure here is. We're going to get to the bottom of that in a second.

Canonical Issues and UX Problems

There are a lot of URLs that sell the same product, the same... back me up here, lack of word, the same medicine?

Arsen: Yeah.

Bartosz: The same medicine with different URLs. Basically, they canonicalized that between the URLs, which is extremely confusing. If you look closely at this slide, you'll see a lot of problems, and I'll mention in a second. 

This is very weird because Google picked up, and there are no breadcrumbs markup, but Google picked up this path here. This is extremely not helpful here to have catalog product views in SERPs. But I can't really blame Google for being confused with the structure.

Arsen: It's really interesting because there's the zero markup for breadcrumbs. Google is just basically taking the URLs, they're already very confusing for URLs and translating them to be like this, which is not helping anyone.

Bartosz: This is what happens when you play with canonicals and different markups to kind of somehow play the algorithm or do a shortcut. At some point, Google is completely ignoring all of your markup and just trying to figure out that by itself, which is almost never, never a good case.

This is a PWA (Progressive Web App). This leads to a lot of weird redirect chains that we can see. Anyhow, all the links in faceted navigation are available as indexable links for Google. Different pricing; low dose naltrexone, which is a cool thing, anyhow, is available with all the different price ranges, and no one is actually searching for that.

If you look at different categories with filters applied, there's quite a lot of those in search index because basically of how they structured the indexing strategy.

Also, no one is searching for “compound medication plus price”. There is no search potential with that. Compound medication is a niche by itself so I wouldn't really try to push $70 to $80 dollars there as well.

There are a lot of canonicalized listings with just one item. If you have a listing like this one, either noindex that or just don't canonicalize this somewhere, this is not a solution.

Also, the robot is pretty empty, unlike the Uruoi Skin Care. The robots is pretty empty. This is basically where they could trim out a little bit of that extra fat.

Also, the pagination here. This is something that I know is not that important anymore. I know, Arsen, that you're very sad because of that because pagination was your thing. But every single paginated page is canonicalized to the first page. The first page isn't really a pagination because it doesn't have the markup. It's really a messy, messy thing as well. All the next pages of pagination are theoretically not in the XML. This is a mess.

Now, those sliders with this cute doggy stock photos are completely not clickable. The content, the text you see on the slide is not text, it's just basically pasted on the picture. I'm guessing paint and then upload it to the website. You can't do anything with the text, it's invisible. You can't click on that so I have no idea. If you look at above, so the pharmacy's closed, and then a useless slider. This is really, very bad. Thin content with no products.

A lot of pages that look like they are sales pages, but they are not. Sports medicine, this is not a blog post. I have no idea why these are here. Yeah, I have no idea why these pages exist. Again, this is something to figure out quickly.

I have a massive beef with “human medicine” everywhere. Why do you have to include that in an image? I assumed if I'm buying the low dose naltrexone I'm buying that for myself. 

Arsen: After you and I talked about this yesterday, why would they split this apart between human medicine and veterinary medicine?

Bartosz: This is actually interesting because the screenshot below is the screenshot from crawler. We saw there is not one link within the whole domain and we crawl the whole thing with an anchor text and compound medicine.

All the links to compound medicine come with human medicine. And because of that, they don't rank well. Just use compound medicine as anchor text internally, just at least once.

Arsen: Well, no, you touched on it. Even if you look at the homepage and then the compound, the human medicine page, they're essentially the same thing. They're optimized for the same keywords, the title tags are very similar. Initially, we thought, oh, they're probably separating this because they want to be able to rank for both veterinary compound medicine and they want to rank for just regular compound medicine. But they have this inner silo, which is literally competing with the homepage. That's what I wanted to add to all this.

Reviews and Comments Invisible to Google

Bartosz: Product reviews. They're amazing... but again if you look at the reviews, they're all JavaScript loaded and they're not visible. 

If we look at that, they didn't index all the comments. The comments here are actually very, very big value. Just why would you load those with JavaScript? Just make sure that they're visible in HTML and that's it.

Just so you know how it works. Google is going to compare the rendered version versus not rendered version. In this case, if there’s just not enough change, maybe they simply didn't think it's important to render this page at all. 

Markup is available in the source code directly without rendering with JavaScript. Technically, you were marking up empty content here. 

Arsen: This is a little dangerous to do. Google doesn't like when you're marking up stuff that's not appearing on the page, so you're potentially opening up yourself to a bigger issue.

Bartosz: That's a good point. We actually had manual penalties for markup recently. This was news to us. 

Time to first byte: this website is up to five seconds. Five seconds just to send the first byte of data. 


Anyhow, this is actually the most exciting slide here. If you look at that time to interact for this website is 40 seconds. 40 seconds to interact with this website. Time to interact for Google Chrome, this is data from Chrome User Experience Report, I think, is 40 seconds, which is terrible.

Talking about CRUX, Chrome User Experience Report, they are very slow. Only 18% of the people loading this website have fast first contentful paint and the trend is negative. The website gets slower over and over, like with each month this website is a little bit slower, which is weird to see.

Quickly, to-do: clean up internal linking. Remove all the page listings. Categories must link... Yeah. Just fix categories.


The onClick events, I actually didn't mention that onClick events are invisible for Google. Make sure that you don't use them for faceted navigation. I actually had to create two pages of to-do.


Boom. Yeah. This is painful to watch. The human medicine, either divide that in subdomains.

Arsen: You have this page which is your /humanmedicine/thyroid/naturesthyroid, which canonicalizes to the HTTPS version of /naturethyroid, which is pretty much a duplicate of that page. You have both of these pages which ranked. 

Back in July of 2019, this is a screenshot from SEMrush toolset, back in July, you had the /naturethyroid page ranking. In July, that page was ranking at position 43 and now, in August, Google is selecting the page that you're actually canonicalizing to the page that was ranking the month before.


Google essentially gave up on your website and said, "Screw your canonical instructions. We don't care. We're going to make up our own mind when it comes to this." This is a really bad situation to be in when Google stops really listening to your suggestions. Canonical is not a director, it's merely a suggestion. When Google stops listening to your suggestions, it's going to take a lot of work to change Google's mind. 

3rd Roast: Kathy Kuo Home: JavaScript Rendering and Pagination Issues

Bartosz: Let's move to another website. This is again something that I'm going to ask Arsen to pronounce.

Arsen: KathyKuoHome.com

Bartosz: Technologies here. We can see that we have a pretty nice stack here. There's a little bit of AngularJS. It's a single page up. But with JavaScript disabled, the categories don't contain any product in the initial HTML. The website relies on getting rendered with JavaScript for Google, only then being able to discover links in product detail pages.


Without JavaScript, there are no internal links. Yeah. There are no internal links to products, which is a bad, bad thing. If you're going with Angular and make sure that you somehow server-render that in this example. Google can't index and process JavaScript. You're losing quite a lot of traffic and quite a lot of budget here.

No links in pagination. Even in the DOM (Document Object Model), there are no links to pagination. Every single product that's not on the first page of the pagination is invisible so Google can't find it. But anyhow, you're not showing pagination anywhere to Google which is terrible. You can't index more than, I'm guessing, results per page, more than 60 products per page.

Inventory, that's not even indexed. And this is me going back to the pagination here. If you look at that, okay, Google can't find anything that's, or any other search engines for that matter, can't find anything after the page one of pagination. You have a lot of products that are not indexed because of that. And this is a soundboard moment, Arsen, because how can you have your products not indexed because of pagination problem?

SEO here is basically, my advice, you just index your products, make sure you have a very, very good sitemap before you fix the pagination. Obviously, fix the pagination. Just add href links visible with JavaScript disabled. In your case, they're invisible with JavaScript, never found JavaScript, so this is like double burn here.

Information architecture. This is the biggest issue here. Google doesn't click. None of the faceted navigation on the left are clickable. Even if Google would click, all the URLs here are after hashtags. Everything after hashtags is ignored by Google. It looks like you're trying to make sure that Google is not seeing your content. 

Anyhow, if you search for king-sized beds, there are no pages, there are no categories, there is nothing within your domain to address that. You could rank for a king-sized bed theoretically, but you don't have any landing page.

My advice is just to create a landing page for king-size beds. This is the first step to SEO, you need to have the content, just make sure that you have the content matching the query. It's definitely going to massively, massively improve your visibility. 

Remove items. You are indexing your "Sorry, we're unable to find what you're looking" for content. Anyhow you're indexing almost one-half thousand of "sorry, we're unable to find what you're looking for" pages. And, boom, yeah, you're indexing your 404 pages. How bad is that? This is really terrible.

And also you redirect to those pages. You redirect to your 404 pages and then you make sure they're indexable with code 200. Yeah. I'm guessing that people in front of YouTube screens are just laughing right now.

Arsen: This is actually happening a lot on the site. As I crawl through it, there was a lot of canonicals that are pointing to pages that are noindex, nofollow.

Remove JavaScript Dependencies, Create Product Landing Pages, Fix Product Categories

Bartosz: Anyhow, to-do: remove all the JS dependencies. Basically, make sure that this all works without JavaScript. With Angular, there are quite a lot of tools for that and any good developer, I'm guessing, it may be time-consuming, but any good developer is going to handle that for sure. 

Focus on information architecture. This is the key thing. Just fixing the information architecture structure is going to give you a lot of free traffic within the day.

Just create those landing pages. Kathy, please just create landing pages and you're going to get that traffic. This is very, very simple. This is very exciting.

If you remove pages, just redirect them somewhere. Just don't index them. Don't index 404. Yeah, just don't.

Arsen: Throw blankets. A lot of competition and focus confusion between a lot of the pages here. You have throw blankets that have the same title and the same H1, but are appearing across different URLs and different breadcrumbs.

If you look through Google search console, or I think I have an example here if you go to the next slide, yep, if you look at search console or use a tool like SEMrush, and you look through which URLs were ranking over which periods of time, you'll see that these two pages are constantly competing with each other for the majority of your throw blanket keywords, especially on the broader queries.

A lot of these keywords that you should be ranking for some of these in the money keywords, you're not ranking for because you're diluting focus all over the place.

Your parent category for your product type category, coffee table, lives appropriately in furniture and then living room. But then you have gold coffee table, mirrored coffee table, and round wood coffee table. If you look at the breadcrumbs, all of those live in your home directory. And the URL does not support nesting or any relationships between coffee table parent category and these, what we can consider subcategories.

Then, if we look at the URL structure, it looks like you have product/keygroup. I'm assuming key means keyword. When we crawl link by link using Screaming Frog, I could not find any of these pages. To me, this looks like this was an attempt at optimizing specifically for these keywords.

If you're already going to do this, you're on the right track, you're optimizing for queries that people search for and have search volume, but at least position these pages properly within the overall organization and information architecture of the website. You can bring overall benefit from showing topical depth or showing Google how much information you have on the topic of coffee tables or how many assets you have. But also, you can create very nice nice parent-child relationships here.

But if you actually hover over the links and look at the links, all the links within the breadcrumbs are pointing to essentially the same page. Again, a lot of confusion here from an organizational standpoint for users and for Google.

If you click on living room inside the breadcrumbs, it will take you to gold coffee tables. If you click on our furniture, it will take you to gold coffee tables. If you click on coffee table, it will take you to gold coffee tables. It completely defeats the point of having these breadcrumbs.

Also, one thing I want to point out, guys, and I guess we should have said this in the beginning. We don't have access to analytics. We don't have access to search console for these websites. A lot of the stuff that we're finding is through crawls, visual inspection, and using tools like SEMrush, Screaming Frog.



4th Roast: Wine Library: A Neglected Website with Excellent Backlinks

We thought that Wine Library would be a good example of a larger site that's e-commerce that has issues and, obviously, Gary V and all of that. Take it away, Bart.

Bartosz: From 2011, it's going down. We can see that it somehow was growing up until 2011 and it had very, very good growth pace, but then it's just dying slowly.

We can see, okay, just very, very basic check. Anyone can do that within five seconds. That we have all the meta descriptions that are identical for different pages. Straight away, we can see, okay, this looks like no one was actually trying to optimize that playing with even basics.

If we look at the HX, headline structure, we can assume that the H1 here is in a logo. I actually didn't check.

But there’s two H1's, the structure is missing. Again, going through very, very, very basics, we see problems straight away.

But then, let's look at some of the rankings. We see, okay, they rank mostly for Wine Library or Gary Vaynerchuk. Basically, branded keywords somehow because Gary owns or owned the website. I don't know the current situation here.

But we can see, okay, Dom Perignon 2003, this is actually ranking top four with decent traffic. But if we look at that, okay, this is sold out. 

I think this was like a 10k crawl, just 3k URL, 3,000 URLs are indexable. We can see, okay, there are a lot of noindex, canonicalized, broken. Again, it looks a little bit like someone is not really looking after this site anymore.


Only 34% (of visitors) get some kind of fast first contentful paint. Going through, the biggest problem I'm seeing here from Google's point of view, it's very difficult to find anything unique within Wine Library. I don't drink wine, but if I would be choosing the wine, there's quite a lot of info you can go through and see, okay, basically, different parts of the world where the wine comes from and so on, like information about the wine, videos, pictures and so on.

Here at WineLibrary.com I didn't find anything like this. Okay. I scroll through the footer and I saw these pieces here maybe are somehow related to the content.

Let's click up to stories that's also the part of the content link in the footer of Wine Library. The image doesn't load, the website is empty . It's really, really bad.

Then, the only valuable thing; Gary Vaynerchuk recorded 1,000 videos before 2011 about wine. He was a visionary to do that almost 10 years ago. That was amazing, but we can see that there is a massive gap between episode 1,000 and 1,001. The last video is Gary from 2011. Actually, I wouldn't recognize him.

Let's move forward. The sound is not going to load. But in the episode 1,001, he basically mentions that he didn't record an episode in five years, which actually looks like the website maybe somehow got abandoned, sold, or I don't know.

The USP: from what I see of the website's current traffic, it mostly comes from Gary being who he is. He's very, very well-known and I'm guessing most of the traffic comes from that. There was a short stop in whatever was going on around the website in 2011 and I'm guessing that's, I don't know, maybe Gary's kind of picked up and he lost it.

But there's one thing that begs to differ, and so one of the links I found basically shows his morning routine. And so part of the morning routine of Gary Vaynerchuk, he's talking to Brandon, who's in charge of Wine Library. It's difficult to say what happened, but there is definitely a problem.

There's also a massive problem with the kind of internal cannibalization between the tv.winelibrary.com and the winelibrary.com.

Arsen: I don't have much to add. The site is just plagued with technical issues. The funny part is that with as much publicity, and if you take a look at the backlinks for this website, as much publicity as Gary brings and as a bunch of authority as Gary brings to this website, to this domain, these technical issues are holding it back drastically. This is again from SEMrush's web crawler auditor.

Bartosz: That's actually a good, good point. Most websites, most e-commerce website, they struggle with getting links.

Arsen: Correct.

Bartosz: In this case, we have a lot of links, but, yes.

Arsen: And really good links. Links that actually get clicked and links that bring traffic. But from an SEO standpoint, this website has been very much neglected. 

Definitely, somebody has to crawl through this website. Gary, if you ever see this, maybe you won't, hire somebody internally, whoever you have, to go through this website and just start fixing these issues, fix the internal competition,  really focus on category pages. There's a lot of missing category pages for top-level queries that have a lot of search volume. They just don't exist. 

Bartosz: These are easy fixes, as you said.


Arsen: Super, super easy fixes that have that have tremendous ROI. With that, that's our show. Yeah. Thanks for sticking around and struggling with us to the end. I definitely want to thank SEMrush for hosting this and putting so much work into it.

This is e-commerce edition. This is our pilot. We're going to continue to refine this. Our next one is coming up. We're going to have a special guest, Casey Markee. We're going to be talking about WordPress and blogging and we're going to be roasting a lot of WordPress blog sites. 

Bartosz: I just wanted to thank everyone. This was basically the first one. We were struggling to find the right concept, basically, not to be too offensive in any way because still this is YouTube. 

Arsen: Awesome. Well, with that, we're going to sign off. Again, Bart, thank you so much. You're an amazing co-host.

Bartosz: Have a good week. Thank you so much.

All levels

Check out other webinars from this series