All right, welcome, everyone, to today's Webmaster Central Office Hours Hangouts. My name is John Mueller. I'm a Webmaster Trends Analyst here at Google in Switzerland. And part of what we do are these Office Hours Hangouts, like here, where webmasters and publishers can join in and ask any of their website, web search-related questions that might have come up.  But if any of you want to go ahead and ask a first question, feel free to jump on in. Or if not, we can see what we have. Let's see. Actually, not that many questions today. So we'll see. We probably will make it all through all of these and see how far we can go. The first one is specific to structured data, essentially. What's the correct method for a service-based business to leverage structured data to display ratings for their individual service pages? And the question goes on and talks about someone else's site, where they're currently showing some structured data and seeing a rating in the search results, which sounds wrong to them. So that does look like it's something that probably wouldn't be acceptable by the structured data team, the way that it's set up like that. Essentially, what's important for us is that the rating refers to the primary topic of the page. So for example, if you're a car dealer and you have a car model on your website and that's a page about that car model, then that rating should be about that car model. And it should be something that anyone is able to submit feedback on. So in this case, on the one hand, the rating seems to be about the company, not about anything specific on that page. And the ratings themselves seem to be more testimonials in that they probably are more hand-picked ratings rather than just general ratings that are submitted by users. So both of those would technically be wrong. If that's something that you care about deeply, then that's perhaps something that you could submit to the web spam team through the Structure Data Spam report form, I think, to let them know to take a look at that to see is that OK, is that problematic or not. Personally, what I'd recommend doing is not focusing so much on the way that other sites have it set up, especially if you're thinking that they're probably doing it wrong, but rather try to get it right for your own website. So like I said, make sure that the ratings reflect the primary topic of the page. And make sure that the ratings are things that anyone is able to submit a rating for. All right, then I need some help for our tech news website. We've been working on this website for a while. We publish a lot of articles, but we're kind of seeing a drop in search. What could be the problem? So I took a look at this website a little bit ahead of time to try to see what might be happening there. In general, I don't see anything specifically wrong. Or I'd say you're doing this meta tag wrong or this specific thing on your website wrong. As far as I can tell, the changes that we're seeing in search are just primarily based on where we think your site would be relevant in the search results. And that includes things like the quality overall of the website, things like how you're presenting your website. So ads about the fold, things that generally apply to all kinds of websites. And I sometimes see this happening specifically around tech news websites where there's a tendency to reuse content that they find elsewhere on other websites and to rewrite that. Because how many different ways can you possibly rewrite how to unlock, I don't know, an Android phone, for example? But these kind of things where you're just essentially repeating things that other people have said and you have ads all over the page, then that's something that sometimes comes across as being a bit lower quality. And I can imagine that our algorithms over time, they might try to pick up on that and say, well, there's a lot of good stuff here, but there's also a lot of stuff which we're kind of not that happy about. So those are probably things that I'd recommend taking a look at and maybe getting some feedback from general users as well to see how are they really happy with this website? Where would they see problems? Are there specific aspects that they would recommend improving or changing if they had like a magic wand? What would they change on your website? And collect all of this feedback and then try to implement some of that. I think it's important to get as objective as possible feedback, even if it's kind of harsh, even if you don't agree with it necessarily, so that you have a chance to kind of take things to the next level. It sounds like you also have a lot of followers on Facebook and Twitter and on YouTube channel. And I think all of those different channels are a great way to kind of spread out and to make sure that you're not dependent on a single source of traffic, which probably makes it a little bit easier for you, because if people are still coming to your website through YouTube or following you on YouTube or any of these other channels, then at least you have like multiple legs that are supporting your site. John? Yes? On the example of the Android, unlocking an Android phone, what are some ideas? I mean, I guess I'm trying to understand, is it really because you're not providing any original ideas, or are you saying they're just kind of copying the content verbatim? That's the problem. I think, in a lot of cases, it's not so much a matter of just copying the content one to one, but rather really providing something unique and compelling there. So if you're searching for something like unlocked Android phone, which is probably too generic anyway, because everyone has a different phone and they're all a little bit different. But you kind of want to make sure that the content that you're providing is really the best by far. So it's not just as good as the first 10 or 20 results. So it's like, well, you might as well show my site because you're showing all these others that are just as good, but really have something on there that's significantly better. So maybe for something like unlock Android phone, make it easy to figure out which specific device you have, or what operating system, what specifics, and kind of guide the user through the whole process. So being generic is kind of the problem? I think the main problem with a lot of these websites that I see is that they're kind of as good as the other websites out there. And if they're kind of as good as the others, then it's like, why should we show your website instead of the others?  So you really want to make sure that you're really significantly a leg up from all of these others. You're not referring to the shareability aspect. You're referring to purely just the content, right? Yeah, yeah. And with a website, everything comes together. So if you have really great content, and you have it hidden away behind five layers of ads that you have to click through, then obviously that's a bad user experience as well. So it's really kind of the whole thing that you're providing there where someone is specifically looking to find help for this one problem, and you're presenting your website as a whole, which has a lot of good text on it, maybe images, but also the whole layout, the whole setup that you have there. Hi, John. Hi. A few days ago, one of our clients asked this question, and I was confused what I should tell them. The question was like, is there any ratio between external link and internal link of a site? I mean, if my internal link is more than external link, is the bad thing for SEO? No. There's no specific ratio that you'd need to look for there. That's something that essentially kind of falls in place naturally. Usually you have a good internal linking so that we can crawl anywhere from within your website to find all of this content. And the external side is kind of not something that you could really control. Yeah. So I wouldn't worry about any ratio between those two. OK, thank you. Sure. All right, another question was specifically with regards to an expert Q&A website that was losing traffic. We don't do any cloaking, link building, or anything that might be considered bad. We managed to improve session duration, conversion rates, page speed, and other engagement metrics. But the site is going down on a regular basis. I was wondering if there's anything broken or any fundamental issue. So I also took a look at that website. And from my point of view, it's also something where I'd say there's nothing obviously technically wrong with the website, in the sense that there is something broken or some meta tag or some simple technical thing that you can fix on your website. In general, I think it's set up fairly well. The things that would worry me a little bit about this is kind of the clear focus on user-generated content where you're not necessarily sure what specifically will actually show up for some of these questions that are submitted there. And the other thing, I just forgot, but with a strong focus on user-generated content, I think one of the tricky aspects there is that it's sometimes really hard to make sure that the quality of the website overall really remains as high as you want it to be. Oh, yeah. The other thing that I noticed is a lot of the content that's getting, I don't know, a lot of visibility in search seems to be fairly basic and simple content, where I'd kind of be worried that essentially the information that you're providing on your website could be provided by anyone. So for example, what I noticed is one of the top pages of ranking for your website is how to convert, I don't know, four ounces into some other unit, which essentially you have this one word answer, which is that other number. And that's great content to have, obviously. But on the one hand, it's not going to keep people coming to your website. It's not something that's going to engage people and say, well, great, I was able to convert four ounces on this website. Therefore, let me browse all of the other hundreds of thousands of questions that were submitted here, or let me try to help answer other questions. That seems like something that's like people come and they go and they're done. And it's not necessarily something that's kind of building up your website. And I can imagine from a search point of view, that's also something that can change and shift fairly quickly in that maybe some other website will also have how to convert four ounces into another unit. And technically, the answers are the same. There's one simple answer for this. So why would we necessarily need to show your website for something like this? And sometimes it's good to have a lot of really, I don't know, basic content out there. But it feels like it's something where you're trying to build up something really strong and large. And by focusing on these small, basic type things, you're kind of losing track of that vision of really, I don't know, strong, unique question-answer type website. So that's obviously kind of tricky to work around, because you answer the questions that people submit and other people's answers to questions that were submitted. But I think it's something worth thinking about, by trying to find ways where you can actually provide more long-form content, more in-depth content in a sense that people will go there and say, well, this was really useful and insightful. I learned a lot from reading this. I'm going to come back to this website over time again and again, or I'm going to look specifically for this website when I have a question in the future. So those are kind of the things that I would aim for there. Another thing that I've sometimes seen with some of these question-and-answer websites that are based on user-generated content is that because the quality of the content varies so much, it might make sense to actually go in there and say, well, I have some actual experts, not just random people from the internet, who were able to answer some really important questions with really good, insightful, in-depth content. And instead of creating it as a Q&A-style thing for these experts, maybe have more of a platform where they can actually publish their content directly. So something kind of like, I don't know, ever-gain content more rather than just Q&A. Yes? What about justanswer.com? I think that's one of the bigger QA ones where the experts are answering questions generally in depth. Yeah, that's the one that was submitted here. Okay, I didn't see it. And then you say about these short answers, the other one that comes to mind on that was one called cha-cha.com. I don't know if you remember that. I don't know. You could text them a question and they would answer it and the answer would get published. They've answered billions of questions so far, but they don't appear in search at all anymore. I don't know about cha-cha, yeah. I mean, I think that's an interesting model in the sense that you're able to provide a quick answer, but it's really hard to say that this is something that will be sustainable when it comes to search. Because if the answer is essentially, I don't know, a short sentence or a couple of words, then that's something that's visible in the search results automatically in the snippet. It's like anyone could be providing that answer. It's really hard to say you're differentiating yourself significantly from everyone else by providing something there. So it's kind of the, in a case like that, you're providing that unique service of people are able to kind of send you a short question and you have an answer fairly quickly, but it's really hard to turn that into something that remains sustainable in the search results. All right, so question regarding a drop down on our website, tourist visa online. Here we have like a two country selection that looks like this. So you have your website.com slash one country name and then slash another country and then slash another country name. So essentially three country names and we have around 240 countries. So we automatically generate all of these URLs based from our database. Is that okay? So I took a quick look at the website at how this was happening. And in general, my fear here is also kind of similar to the previous ones is that you're going to end up with a lot of really, really thin content, especially if you're just pulling in content from a database and creating URLs for that. That's something where it's really hard to say that what you're providing on those pages is actually unique and compelling for that kind of pair of countries that you have there. So that's kind of what I would worry about there in that you're automatically generating content for all of these different variations. People might be looking for some of those variations specifically, but because all of your content is essentially the same, our systems are going to look at that and say, well, all of these pages are pretty much the same. Maybe we can even fold them together into one page and just show that in a search results. So I think what's probably going to happen here is that you're, on the one hand, you're competing in a very tough niche where there are lots of really strong competitors. And on the other hand, you're diluting the value of your content significantly by having those 240 countries times 240 variations, essentially, you have like a ton of different URLs that all provide the same content pretty much. And it will make it much, much harder for your site to actually compete with some of the stronger competitors out there. So just because you have those countries in the URL and you have them mentioned on the page when they're selected in the URL doesn't necessarily mean that we'll see your site as being the most relevant one for that variation. So what I'd recommend doing there instead is to try to find ways to reduce the number of URLs and to make sure that the content that you're providing on these URLs is really unique and really useful and obviously also correct. So for example, I can select Antarctica in your dropdowns and I don't think people actually have a, I don't know, a passport from Antarctica. So it's really hard to kind of actually say, well, for citizens of Antarctica, I can provide you with a visa when that's probably not even possible. So these are kind of the basic things where it's like your database is generating all of these variations, but actually the content itself that you're providing there is all the same. So you really need to kind of take a step back and go from this massive content that you're creating to actually create something that's more specific, that's correct, that's valuable, and that's unique on its own, that can stand on its own. Could you just provide a single page that lists all the countries? I think that might be an option or if there are like different types of visas, for example, with individual pairs of countries, I think that would be an option as well. If you're working in specific languages, it might be an option to have content in those languages, for example, but just taking the same content and by database, kind of swapping out the titles, that really doesn't help much. John? Yes. I will ask you about WebWite. WebWite, yeah. Okay. Yeah. John, how will we show WebWite in search results? Automatically, will it identify the page who needs with WebWite function or... In the search results, I don't know if we would show those differently. So WebWite is something that we've been using I think for like four or five years now. It's something that essentially transcodes the page and provides a really fast version of that served from our servers. So that users who are on devices that either have low capabilities or that have a really low connection speed, they're able to get to this content really quickly. And that seems to be working really well, especially in regions where people struggle with connectivity, where you have a really slow device or you have really slow internet connection. Then that makes a lot of sense to actually do that. And we do that with our website as well, with search, where when we recognize that people are coming with like a really slow or low capability device, we'll switch them to lighter version of search. That has a little bit fewer functionalities but is significantly faster. Okay. So the website owner must make some difference on their website or not. They must just wait for somebody who will have slow connection to go to website or they must make some difference of the code for to use WebWite. No. By default, that's something that we would use when we think it makes sense. You can hop out of that. I think it's an HTTP header that you just add to your server response so that we understand you don't want to have this done. If your website is dynamic in the sense that there's a lot of interactive elements on there, then we won't do that anyway because that's something that's really tricky to do. Okay. If we use AMP, what will be happen? I, as far as I understood, we would use the AMP pages but in the WebLite documentation, it also mentioned something about AMP. So I don't know if that's necessarily still the case. I don't know. Okay. And final question. AMP have some icon in SERP, WebWite will be here for not for future? In the future, I don't know. I think at the moment it doesn't show any icon in the search results. Okay. And will be different SERP results with slow connection with WebWite or end with fast if we have check it different versions with connection. Will be different results? So different ranking? Yeah. Yeah. I think no. I think the results are exactly the same. The same. Okay, John, thank you. Sure. I imagine a lot of the users here from India, they might have seen WebLite in the search results. It's something that specifically in some of those regions like I think India, Indonesia, Brazil, we've been doing that for a really long time now. Yeah. Thank you. Sure. All right. Suppose someone has two businesses with two websites. Their main focus is the first business and website and it's keeping them really busy and they want to de-index the second website for six months until they have a bit more time. Should you use a URL removal tool? Or is there a better way to do it? How will this influence the rankings after six months? Will the website be new or will the ranking signals be kept? So the URL removal tool, if you use that through Search Console, then you can remove the whole website. If you use a public URL removal tool, then that only works on a per URL basis and we need to see that the website is actually gone. So through Search Console, if you use that tool, we will trust you blindly. If your website still exists and still serves normal content and you use this tool, we will still remove it from the search results. People will still be able to go to your website directly. They just won't see it in the search results, which I think sounds like what you want to have happen here. And what happens with the URL removal tool is not that we remove the site from our index. So it continues to be crawled and indexed. It's just not shown in the search results. So it's essentially temporarily hidden in the search results. I think we changed the name of these tools within Search Console as well to reflect that a little bit. So practically what would happen here is if you use the URL removal tool and your website continues to exist, we'll continue to crawl and index it. We'll continue to keep all of the signals that are associated with the website. And when that URL removal expires and we show your website again, then essentially it'll be ranking like it normally would at that time. That doesn't mean it'll be exactly the same as before. Obviously things can change over half a year or I think the 90 days or whatever that is that the tool has by default. So things can change, but essentially all of the signals that are otherwise associated with the website, they continue to be there. It's not that we would see this as a new website because in our mind, from an indexing point of view, it has existed the whole time. It's continued to have been crawled. It's continued to have been indexed. It's just not shown in the search results. So what you could do here if you want to keep it out of the search results for half a year is just set a calendar reminder so you don't miss those 90 days when the removal expires and then add another site removal request in there. You can cancel these requests at any time. Usually they take about a little bit less than a day to be processed and a little bit less than a day to be canceled as well. So if you notice after, I don't know, 60 days that actually you do have time for that second website, then you can cancel the request and the site should pop back in fairly quickly. So I think that might be an option here. Obviously, like I mentioned, after half a year, the ranking of a website will be different. It's not going to be exactly the same, but it's not going to start at zero like a completely new website would. How long does it typically take a brand new website to start receiving organic traffic from Google? Let's say it's well-written, not a spammy recipe blog. Just curious what a new blogger should expect. So I don't know, recipe blogs are not necessarily spammy. Sometimes they're really good. In general, if you use the URL submission tool, then we could pick up that URL from your website within a day and have it shown in our search results right away. So that's something where theoretically, we can go very quickly with that. When it comes to a more competitive niche, then obviously that's a lot harder in the sense that if we start with a website that we haven't seen before and you're competing against a lot of people who have been around for a really long time, who have collected a lot of really strong signals, then it's going to take a while for your website to be known as actually one of the better websites out there and we can show it competitively within that niche. So that's something that may take a bit longer. What I usually recommend there is if you're starting out with a new website, is find a niche where you can be like the real expert, where you're not competing with gigantic other websites that have been around for tens of years, but rather you're really seen as someone who is doing something that's really unique and compelling, that's interesting to people and where there's not a ton of competition and then kind of grow organically from there. So as you see that you're able to work really well in this smaller area, kind of expand out a little bit, build on your strength and grow from there, rather than trying to be everything in the beginning and always being stuck on page, I don't know, 10 or 20 in the search results, find a topic where you can be like the expert in the best possible search result out there. John? Yes. Two questions on that. One, something that I've noticed over the years as a site gets more popular in the search, it's more likely to gain more citations because kind of that self-reinforced effect. Is there anything that you guys do to offset that kind of, if you're number one, then more people, you're gonna get more popular because you are number one. I think that's kind of a natural, I don't know, kind of a natural process on the web in that if your people really know you, they'll talk about you more, but that doesn't mean that it'll stick around forever. So you can be really popular for a long period of time and if you don't keep up with the times and you're out, then other people are more popular. So just because they've been around for a really long period of time doesn't mean they'll automatically always be on top in the search results. So that's something that I'd say changes over time. It's not impossible to outrank someone who's been around for a really long time, but obviously it's a lot harder if you're starting completely fresh and you're competing against someone who's been around and who's really strong and kind of keeps maintaining that strong position for a really long time. Funny you say that, I could mention some examples, but I don't know, I don't wanna bring too much attention. But the other question is recipe sites. So I frequently look for recipes and I get to this where like 5,000 words for a recipe, and I just wanna get the recipe and they always stick it at the bottom. Do you know what I'm referring to? Yeah. They go into this huge life history of the recipe and is that really helping them rank by making all this additional content and having it more compelling or having the recipe at the bottom? Is that somehow kind of helping them out, I guess, by having it really in detail? I don't actually know. So that's something I wanted to look into a little bit because that always bothers me as well.  So that's something where my general guess is that it doesn't really help them, but maybe there are some situations where they have seen more traffic because of that. I don't know if that results in actually more longer-term traffic for the website or if it's essentially just attracting kind of blog readers who happen to also like recipes. It's really hard to say, but I haven't looked into it specifically. I guess you just hit the N button on your keyboard and that solves that. I don't know.  Yeah. But some people might like to read all of that as well. So for them, maybe the textual part is the actual content and the recipe is kind of like, oh, I'll save this when I actually feel like doing something. Sure. I don't know. What if the same product is on different landing pages? Do you need to place all the goods on one page or can you make filter pages for different requests? So I think the general situation where you have the same product on different landing pages, often that's the case when you have one product in multiple categories, for example. And you could perhaps pick the categories by color and then another set of categories might be by, I don't know, brand, for example. And theoretically, what we recommend doing there is to say, well, the product is really the primary item here. And for the product, you would pick one canonical page and you would use something like the rel canonical tag on these pages to say, this is actually the product page I want to have shown in the search results. So within your website, you might have multiple ways to get to this product page. And that product page might have multiple things like different breadcrumbs on top, depending on how you got there. But for indexing, we recommend picking one of these versions and saying, this is the version that I want to have used for indexing. That helps us by being able to concentrate all the signals that we get for any of these variations of product pages into one stronger page. So instead of having three or four or five different pages for the same product that are essentially just variations of the path that was used to get to that page, and they all compete with each other, you have one page that's kind of a lot stronger than all of these different individual ones. So that's kind of what we recommend doing there. It's fine to have it on multiple categories and to have multiple, essentially, URLs and different breadcrumbs leading to those pages. But I would just pick one of those and say, this is the canonical version of this product. And that's the one that I want to use for indexing. If our client site is focused on creating exceptional content and sharing it on a clean domain, could that be causing ranking problems? I don't know, could you elaborate on that a little bit? Sorry, it's too much for me. Yeah, I just, I sent a link. I'm saying you are building exceptional content. You're sharing it. People like it, besides the most obvious kind of thing. I guess it's more specific to this example here, but, because I know for example, if you try to be too many things to too many people, that can be a problem. I'm not sure what else could be a problem if you're kind of doing just kind of the main things right. So I'm gonna send a link in the chat. I don't know, I'd have to take a look at the site specifically to kind of see what all is happening there. Is that better to do it ahead of time then? Um, it's kind of hard. Is this more like an affiliate site? Um, like... Yes, some degree it is, yes. Okay. Do you know if there are multiple of these sites that are kind of run in parallel or... I don't believe so, I could check. Okay. I don't know, I need to look into it a little bit more. I don't know if I'd have anything specific there. My main worry with a lot of these kind of insurance and money websites is kind of that they often aren't really unique compared to a lot of the other variations. But it's hard to say at first glance. So I don't see anything technically wrong at first glance. Which I think is a good start. But I do see that our algorithms are kind of struggling with, like, is this really the right content that we should be showing for a lot of these queries? So that's something where I could imagine that algorithms might be struggling a little bit there because it looks more like a general, like money insurance affiliate type website rather than something that's actually unique and compelling where we could say, well, actually this is the right content by far to show for some of these queries. So usually what I would try to do in a case like this is either try to find a smaller niche where you can really be strong with this kind of affiliate setup or to find a way to make it like significantly better than a lot of the other sites out there. But again, it's really hard to say, like just like five minutes looking at a website and clicking through some of the results that I see here. So that's kind of like my five minute take on the website. I know much of the content has like, you know, kind of like 5,000 words, you know, it's really in depth. So in some ways I would say it's, you know, it's unique in that regards. But, you know, kind of on the insurance space of years, most of the sites would publish kind of generic information. Then you had one come out. It was, I think it was Value Penguin and then Nerdwall and some of the other ones did the same thing where they were publishing actual rates, you know, sample rates using some offline databases and it really seemed to help them be a lot more unique. So I kind of understand that, I guess, and they... Yeah, I think it's a really hard niche and there are lots of competitors out there who are putting a ton of money into this. It's not easy, I can imagine. All right, here's a question about the search queries in Search Console. I see impressions are 140 for my site for the last 28 days, but the same query average monthly search volume is 10 to 100. So what's happening here? So my guess is that especially when you're looking at the average monthly search volume, that's something that depends quite a lot on how that's compiled. And especially when you're looking into smaller numbers like that, it's something that can vary from what is actually searched for significantly. So if it says 10 to 100, then I wouldn't assume that 100 is the absolute top and not more than 100 people are searching for something like this, because if just a handful of people search more, then it's suddenly 10% more or 20% more. So that's something where I assume that the monthly search volume for these low numbers is something that you need to take with a grain of salt. Also, it depends a lot on how those numbers are compiled. Some tools have different ways of looking at this and they might not realize what the actual search volume is. The number shown in Search Console is really what was actually shown in the search results. So it's not a theoretical number. It's not something that's based on an historical average, but rather, specifically your site for this query was shown 140 times in that time period there. So that's something where from my point of view, I can clearly say that we showed your site this many times in the search results there, which I think is a good start. It's essentially also a matter of thinking about where we would show it in the search results. It might be that we were showing it in the map. One box on top of the search results for local queries if you have a local business website. That's something that sometimes these general monthly search volume tools don't take into account. In a scenario where there's a number of links, external pointing to URLs, which 301 redirect to page A and then to page B is added with no index on those URLs, breaking the 301 but linking to page A. What kind of impact would you expect on page rank? Not really sure how this is meant. Let me see. I think there's an image or something. Okay. So I'm not really sure how to kind of quantify that in a reasonable way. I think these are kind of two different scenarios. On the one hand, you're redirecting one page to another. When you're redirecting from one page to another, it's easy for us to forward all of those signals that are attached with the old URL to the new one. That's something that makes a lot of sense for us because it's like you're saying this one was replaced with the new URL. So in that case, we would pretty much be able to forward all of the signals that were going to the previous page and pass those on to the new one. In the case where you have one page that is just linking to another page, then obviously that's a little bit different because some of those signals that are associated with the old page, for example, they're still associated with that old page and you're just saying, well, also this new page is also kind of associated here. So we have some signals going to the old page and some signals that are forwarded to the new page as well. So that's something where you're kind of splitting things up a little bit. If you add the no index into that mix, where you're saying, well, actually this old page is a no index and it has a link to this new page, then what happens there in the beginning is that we have this kind of split. We say, well, some things stay with this old page, which happens to be no index, so we don't show it in the search results and some things are forwarded to the new page, which we can show in the search results. So there's already the split happening here as well with one of these pages not being shown in the search results. In the long run, if the page with the no index keeps containing the no index, we might assume that actually this other page here is more like a 404. It doesn't exist. We shouldn't be indexing it at all. And when that happens, we'll usually treat that page as a soft 404. We say, well, it's been no index for a really long time. Maybe they just don't want us to mess with it at all. Maybe we should just ignore it completely. And when that happens, then obviously any links on that page, they get dropped as well. Because you're telling us this page shouldn't be processed, essentially. So we're not going to process it. We're not going to look at the links. We're not going to do anything with what is on that page. Then all of the signals that go to that page, they essentially stay there. Because we're not indexing that page, the signals essentially go to a 404 page. So in that case, the new page would essentially just live from the signals that it collects on its own. So instead of these indirect signals that go through that one page, which happens to be no index, it happens at a link to that new page. So my recommendation here, if you're moving from one page to another, is really to use a redirect from the old page to new page. If you want to keep the old page, you just don't want it to have it shown in the search results. And obviously, no index is fine. But keep in mind that a no index also tells us you don't want to have this page in our index. And when we drop it completely from our index, then all of the signals and everything that was on this page, they're dropped too. All right. Let's see. I think those are all of the submitted questions. There's some more in the chat here. Let me try to scroll up. If I change one parameter or one paragraph, will Google see this as content being refreshed? Not necessarily. So we do try to recognize when content on the page changes because it helps us to understand how quickly we need to recrawl this page over time. It doesn't necessarily mean that we'll treat this page in any better way in the search results. But it certainly helps us to understand that we need to recrawl these pages a little bit more often. So for example, if content on a page changes on a regular basis and we recognize that every time we crawl this page, there's significant new content on here, then probably we'll try to keep that crawling rate up so that we don't miss any of those changes. And we can show your page for that new content in the search results. Can we use any concepts such as YMYL or EAT from the Google Search Evaluator guidelines to persuade decision makers to invest in great content? Sure, you can definitely do that. I think if that also makes sense to you that these types of pages need to be given more attention, then definitely use our guide as something where you can say, Google thinks this is important. I think that's perfectly fine. A question on hreflang. Would you recommend the setup of one language on primary directory, for example, domain.ch in German, and then domain.ch slash fr in French? Or do you advise to use domain.ch slash de and domain.ch slash fr? Both of those would work. When it comes to language content, we look at it on a per-gurl basis. So we don't differentiate by URL pattern, which means you can use the content, the language content, wherever you want. If you want to have the root URL in one language and a sub-directory for another language, that's perfectly fine. If you want to use URL parameters, that works fine as well. When it comes to country targeting, we do want to have a general kind of bigger split when it comes to the website. We want to see things like sub-directories or sub-domains or even separate domains with all of the content in there being targeted for that specific country. We do allow things like having the website in general target one country and a sub-directory targeting a different country. That would work as well. But in your case, if you're just talking about different language content, you can use whatever URL format you want. And we can pick that up. So we try to recognize the language on a per-url basis. The hreflang links between those pages help us to understand which version we can swap out when that makes sense. But that's really totally up to you how you want to split that up. Thanks, John. What if the same product is on different language pages? Do you need to place all the goods on one page? Or can you filter the pages for different requests? I think we went through this briefly as well. All right. John, there was another question I had submitted on the main page. It's a site. It's called zipmap.net. It's kind of one of the sites where if you click on it, click a couple of pages deep or whatever, it's just purely a map. There's no content really on it. So we were kind of wondering how this site would rank so well with essentially no content. That's, you know. I don't know. It's an interesting setup. OK. You can kind of click through and see where the zip code is or the countries and the counties and cities. There really isn't any content that I can see. It's a good site. So that's why I wonder sometimes when we were doing image-based kind of infographics and, well, they were more like interactive. We were hoping that we could rely on images. But you said that this might work. And then we see this site that's empty. I don't know. I don't know. Maybe they've just been around for a really long time. They've been kind of built up their value over time. But it does seem like something where you could imagine if they put more effort into it to actually create good content for these individual kind of different layers and levels of information, they could probably get a lot more out of it. But maybe they're OK with the way that the site is currently shown. Hard to say. Seems like someone found the right idea at the right time and put all of this together and managed to get things, I don't know, set up at the right time. I don't know.  So if you look for something like that, let's zip code a bunch of sites that have similar information. Right. But they're the only ones that, you know, relatively speaking, do well, I think. You know, it's from my limited view. Yeah. I don't know. Looking at the site, it seems like they've just been doing this for a really long time. They probably have a fast site, good data. I don't know. Do you find that the changes you guys make now are increasingly incremental? Or do you find that they're not so? It's more like a high level theory question, not so much. I think it depends on the different areas. So when it comes to general search, there's, I suspect there are a lot of areas where you could say, well, you could argue which one of these is better, or you could say sometimes the search results, you can't clearly say this is the correct answer for this type of query. But there's still a lot of queries that we get where we essentially focus too much on keywords, for example. And then if we understood the query better, we would be able to figure out which pages actually make sense for this. So that's something where when talking with the search teams, they're like, well, we're always busy. We're not just tweaking knobs and trying to change the number slightly. We're really trying to come up with new algorithms that look at these problems significantly in new ways. And part of that, I think, also comes from the fact that we see so many new queries every day. So I think it's still on the order of 15% queries every day that we get are completely new. We haven't seen them before. It used to be 50%, wasn't it? I mean, a long time ago. I don't know. I don't know. Maybe 20 or something. But still, it's something where at least, I don't know, from a personal point of view, I'd guess, well, how many different ways can you hit a keyboard to enter queries? It's still surprising. But people search in different ways over time. And that's something that you also see when you talk with younger kids when they're searching. When you see how they use Google, they're typing the whole question into Google.  But they're typing this whole question into Google. And those are the kind of things where just focusing on the keywords doesn't really make sense. But rather, you need to understand what it is that they're looking for and then provide an answer for that. So those are the things where, sorry? Go ahead. I was going to say maybe in 10 years as machine learning and AI get better, it'll be solved rather easily, I guess. I don't think it'll ever be solved. People will always have unique ways of asking for questions. But it's also something where more and more trying to understand what the content is actually on a page helps us quite a bit. So someone is searching for, I don't know, 10 best places to go fishing in the summer. It's like Google could theoretically understand, well, these are pages about fishing resorts or fishing areas, and these are places that people have really liked over time. So maybe we can pull together 10 places and present those to people or even simple things like, I don't know, 10 deepest lakes. That's something where you would expect, well, there's numbers around the pages. So theoretically, we could be able to do that. But it's still a really hard problem. All right. Always something that keeps us busy. All right, I think we kind of made it through the end. I'll definitely set up the next set of Hangouts. So if anything comes up, feel free to add questions there. Also, feel free to post in the Webmaster Help Forum if there's something that can help with. I have one more question. Whoops. Or, of course, feel free to contact us on Twitter or on Google+, if anything happens to be more urgent. All right, thank you all for joining. And I wish you all a great weekend. Have a great weekend. Bye-bye.


Today we're going to create this really easy eye makeup look. Yes it is 10 steps but each step is really quick, easy and great for beginners and you can swap out the colors and pick whichever color that you want to create a completely different look each time but using the same steps. That's why I love this look. But before we begin if you're new here to the makeup chair channel and you enjoy makeup videos then I might suggest clicking the subscribe button below and turning on the bell for notifications and if you're already subscribed then thank you and welcome back. Now let's get started creating this look.  This is great to really show off your eye colors especially if you're using the opposite shade on their color wheel but a neutral spotlight eye like this also works on most colors but do let me know what your eye color is and share what makes them pop but if you're not sure you can definitely let me know and I'll try and help you figure that out. Now with all that said let's start with step number one and that's priming the eyelids. Now I already primed my eyelids but as you can see I'm already starting to get a few creases. If I went straight in with the eyeshadow I would actually end up setting the creases in place so use your fingertips or a damp sponge to tap them out if you see them forming already and then before they have a chance to reform go in with a sheer neutral eyeshadow but you just want to avoid the lower center lid where this spotlight is going to be. This will prevent those creases from forming again and it means that everything else is going to go on so much smoother. Step number two is take any matte vibrant eyeshadow on a fluffy brush. You want to apply this on the outer edge of the eye up into the crease and then down to the inner corner of the eye kind of like a rainbow shape. Now this shadow needs to be matte and you only want to apply a sheer layer so you can go for something a little bit more vibrant but you just want to apply a sheer wash and this is also going to be our highest eyeshadow so we're going to be working below this as we move on. Step number three take a shadow that's deeper and duller than the previous shadow on a fluffy brush and apply this in exactly the same way but this time we're starting a little bit lower than before. Use the rainbow analogy again and just imagine that this is the next color on your rainbow. This will create a tight seal around the center of the lid where the spotlight is going to be placed so keep repeating the same shape outer edge high into the crease down to the inner corner of the eye and these two shadows should pretty much blur and blend together. Don't worry if you're not getting too much definition at this point just remember to keep the center of the lid free of any shadow. For the next step pick up your darkest eyeshadow and apply this with a smaller brush. We need to be a little bit more careful with this step because we are getting really low and very close to the center of the lid so remembering to keep the center of the lid free of any color you're going to very slowly build up the depth applying a little bit at a time. Now don't worry if it looks a little bit too harsh because the next step will fix that but just make sure you're getting a good amount of depth on that outer edge bring it into the crease and then to the inner edge. Now I like the outer edge to be a little bit stronger than the inner edge but that's just my personal preference. Step number six take this same shadow that you used for step number three on a fluffy brush and blend this around the edges of the previous shadow. What this will do is keep the depth while adding a soft kind of a blur alternatively you can use the shadow from step number two instead but it's totally up to you and a pro tip for this step is to hold the brush a little further down on the handle. We want a very soft gentle wash and blend so by holding the brush a little further down the handle it just means we're going to have less pressure on the brush which will just mean that we have a sheer amount of pigment and we'll get a softer blend. Step number seven take your spotlight shadow and apply this to the center of the lid. Now I like to layer my spotlight so I start off with this golden shade which is lighter than any of the other shades that we've used so far but then what I do is I take an even lighter shadow and just apply it directly in the center of the spotlight and this will just create the illusion of more depth and then you should end up with something that looks like this. For a step number eight I added a touch of glitter to the center of the lid and I love these eyeliners because they go on so easy and they also stay in place all day. I just applied a touch directly in the middle and then just cleaned up around my eyes, applied my face makeup and I do have a video on that if you want to check out the link above. I then applied my mascara and some falsies and then there you go. Ten steps to a spotlight eye. You can adjust this to work for your eye color, you can adjust how deep and how dark you want to go. I love a spotlight eye and I also have a video on my top three makeup tricks to bring your eye makeup to an even higher level so you can go and check that one out too. And to my spoonies I just have to say I am struggling. I'm having a really bad flare up and whenever I feel like this I always share it because you can feel very alone when you're having a flare up or even if you're just worried about something or you're trying to deal with something your mind can feel like a very lonely place to be but I promise you you are not alone. I am not alone. We are alone together which means that we have company and I want to send spoons to anyone who needs some and I want to tell you that I am right there with you and I want to tell you to be kind to yourself and I hope that I see you in a video really soon and I also must say I'm sorry for not posting the wedding pictures like I mentioned on my Instagram I will tomorrow I'll show you my dress even though I got my period a week early so the dress is like tight. When me and Davey had so much fun it was really lovely wedding. It was a little bit more private so I'm not going to share too much about it but I'll share a couple of different things and I will see you guys in a video really soon. Be kind to yourself.


The optimal enzymatic cocktail for hydrolyzing AFEX-pre-treated corn stover consists of a combination of two xylinases, LX3 and LX4, and three cellulases, Cbhi, Cbh2 and Egi, at a mass ratio of 25 to 75. Additionally, the addition of 0.6 mg per G-glucon of xylosidase, Lx, and 0.6 mg per G-glucon of arabinofuranosidase, LARB, increases the monomeric xylosyield by 20%, while the addition of 0.8 mg per G-glucon of glucuranidase, LGL, further increases the xylosyield by another 20%. Furthermore, this cocktail has been shown to reduce the total enzyme loading required for equivalent yields when compared to Accelerace 1000, a commercially available enzyme cocktail. This article was authored by Hermannson Spencer, Ushiro, Chanda Wachishi P.S., and others.


Hey guys, how you doing? This is your boy, Rich, and I have some big news for you. Namaste MD announces acquisition of 28,000 registered users representing a 48% muffling increase and 23,000 downloads of the UpiStrain Journal. Namaste Technologies is pleased to announce that the company has acquired over 28,000 registered users through Namaste MD Inc. and that the UpiStrain Journal, Upi.com, has now been downloaded over 23,000 times. The Namaste MD app is available on iOS and Android devices and online on NamasteMD.com. Namaste MD is an online platform which provides free access to medical cannabis consultations through secure video conferencing. The UpiStrain Journal collects user-generated data on cannabis strains and their impact on various medical conditions. Namaste MD's recent growth is attributed to an increase in organic traffic and patient referrals and represents a 48% increase from the previous month. That is a huge number, people. A 48% increase in one month? Namaste MD connects patients with licensed producers including the company's own subsidiary, Canmar Inc., to purchase medical cannabis products. The company anticipates further growth of the Namaste MD platform and has expanded its network of healthcare consultants to meet demand. The company also intends on submitting the app to the Apple and Google Play stores in the UK where it will leverage its existing database of over 500,000 users to develop a similar model to its Canadian market. Namaste is continuously looking to expand its platform in other regions where telemedicine and cannabis become legalized with over 1.5 million customers globally and Namaste operating in over 20 countries, the company will have a competitive advantage in emerging markets. The company is also pleased to report that its cannabis journaling app, UpiStrain Journal, has been downloaded on over 23,000 devices. Data collection through Upi will drive machine learning algorithms that will be used in tandem with cannabis-strain data to provide patients with enhanced strain recommendations. By adding value for medical patients in an online environment, the company anticipates achieving a lower cost per patient acquisition, higher conversion rates, increased revenue, and provide a better user experience. I told you Namaste was a beast. This isn't a category of too big to fail. This is a global giant. The company's goal is to offer a fully integrated and truly unbiased online marketplace for medical cannabis. I love it! With a diverse selection of products where user feedback through Upi, better strain recommendations, and an emphasis on customer service provide an exceptional user experience. The overall platform guides patients from consultation through prescription and ordering from CanMart within the same day. CanMart has been processing and shipping orders with next day delivery and will soon be integrated with its partner, Pineapple Express. I love it! Huge company to offer same-day delivery in the GTA area. Wow! That's the greater Toronto area. That is a huge market. This is going to generate so much revenue for Namaste. Wow! Management commentary. Sean Dullinger, President CEO of Namaste, comments. We are proud to be at the point where we can have someone place an order within an hour of being seen by a nurse practitioner, which we believe to be the best turnaround time in the industry. Unbelievable. These guys are first movers. Our goal is to streamline the process of acquiring medical documentation and accessing medical cannabis through an online marketplace and in offering the best user experience possible. We're looking forward to launching same-day delivery with Pineapple Express and on continued growth. We have received positive feedback from CanMart patients and will continue to optimize the platform and add new features to bring value to our patients. This is incredible. About Namaste Technologies, Namaste Technologies is the everything cannabis store. Namaste operates the largest global e-commerce platform with cannabis e-commerce platform with over 30 websites and 20-plus countries under various brands. Namaste's product offering through its subsidiaries includes vaporizers, glassware, accessories, CBD products and medical cannabis in the Canadian market. Namaste has developed and acquired innovative technology platforms including NamasteMD.com and in May 2018, the company acquired a leading e-commerce AI and machine learning company, Find-A-Fee AB. Find-A-Fee uses artificial intelligence algorithms to optimize and personalize a consumer's on-site buying experience. Namaste is focused on leveraging its cutting-edge technology to enhance the user experience throughout its platform. Namaste will continue to develop and acquire innovative technologies which will provide value to the company and to its shareholders as well as a broader cannabis market. I love this news. What do you think about this news? Please, if you like this news, smash the like button. Comment down below. Share this video everywhere. 28,000 registered users growing by 48% in one month? Where is it going to be a month from now and a year from now and five years from now? These guys are positioned to explode. Now remember, Rich TV Live is strictly for education, entertainment purposes. Always do your due diligence. Always do your research. If you would like to get featured on Rich TV Live, holler at your boy. You can reach me at RichTVLive at gmail.com. Find all the breaking news in the cannabis sector and beyond right here under news. Find all the tools I use every day for stocks investing.com. Bar chart, trading view, NASDAQ, TSX, OTC markets. Just to name a few tools that I use every single day. Into crypto, we got all crypto tools. You want to join our secret stock picks group? Right here, it's called Amino. Join it. Slack, Discord, and all of our social media is right there. Absolutely free. Thank you guys for all your support. I love you guys. Smash the like button. Comment down below. Share the video everywhere. Remember, if I win and you win, we all win. It's true. What do you think about this? I want to know your opinion. I love this news. This is a company that is going places and it's going places fast. Holler at your boy. If you're not winning, you're not watching. This is your boy Rich and I'm out. Peace.


So I just watched the trailer of the Bachelorette, but I do have a story time. Wow, it's such a perfect day to like play top golf It's the exact color I get almost every time I get my nails done.  I'm not really sure where we're going yet I just don't really want to spend money And I feel like if we go to the mall then I'll want to buy something and I mean honestly if we go anywhere There's still shops everywhere and I also don't really want to eat super unhealthy So the options are very limited because usually the things we do include like eating out cool places It is almost three o'clock and I think we're gonna head out soon, but I definitely need to eat something here I also just uploaded a new vlog right here. It's a Mother's Day one So if you haven't watched it yet, check it out. I just watched the trailer of the Bachelorette Who's excited for this season's Bachelorette? I am. I don't know why but I didn't really like Rachel on next season But in the trailer she looks like way like cooler. I don't know I think I'll actually like her season hopefully because I hated Nick next season I really was pissed I used the Bachelorette So hopefully it's good this season question for you guys Do you like watching the Bachelor or the Bachelorette? I feel like it's more interesting to watch the Bachelor because girls drama is like actual drama, but boys drama It looks so like forced if that makes sense because like guys usually don't really have drama So we don't really know what we're doing yet We were this close to having a plan to go to the Braves game But then we check the tickets and they're like $22 without fees and stuff Hi guys, it's May 19th It's 4 o'clock 2 p.m. I'm so not like you already know me Sorry, I've been vlogging much Which is so busy like I suppose to score for you guys you have no idea a big project going on I'm not gonna tell anyone about We're going to the Avalon now we're gonna get an Avalon, am I gonna Antico instead of Whole Foods? Oh, yeah, we said we were gonna pizza. I did Tomorrow we're going to this Taco Festival ATL Margarita and Taco Festival But we can't drink so we're just getting tacos. Guys, look at this. Yeah, see your hair make up pretty nice And I cool My hair was like disgusting so I really had no other choice but to braid it to you But I do have a story time. So you guys know I'm an Amazon freak I literally buy everything on Amazon now and so I was buying one of my books for my summer classes and some other like pens and stuff like that some random stuff and I Accidentally sent it to my sorority house And I didn't find out that until like literally like two days after it said delivered because like I thought my dad got the mail or something But then I was like, okay, where is it the only other place? It could be is not at my house and some other address So of course it was at my sorority house and like usually it's delivered at my sorority house or To the UCF Mail Center and I was so lucky because it got delivered to the Mail Center and they were actually able to like forward it to me Free of charge, which I thought was like so nice and so cool I'm so thankful because I thought my package was gonna get stolen and that I would have to like buy those things again Which was like in total like $40. So I was like Please please please have my mail But yeah, so I'm very lucky that they had it. Oh man. That was a good story time. I fell asleep I Got a new job. They went to the Topgolf is They're gonna want in Orlando so I'm gonna get free Topgolf there too. No way. Yeah, they're still building it Oh, yeah, I think I remember that actually, but it's like downtown I think. Yeah, it's a bar then. Yeah, so I can go I work at Topgolf.  They're really nice. You can take me out on dates now right now I have money Not yet. I'm still training So we decided to go to Topgolf because well actually Ryan doesn't have this free card unfortunately But like $30 on my old card that I never spent before I got my employee card So we're gonna make use of that because we were passing it and we were like wow It's a chill perfect day to like play Topgolf and it doesn't look that busy. So hopefully we can So hopefully we can get a very quick. Yeah, you lost to a girl We're gonna walk around maybe get some food. Babe, what what are you getting that? Yeah, you think so Is that a theory that you have? I Think I'm gonna get this one because this is really cute and Ryan's gonna get the camo one Kind of looks like a book cover that you just like cut up But I found my favorite nail polish this is the exact color I get almost every time I get my nails done It's called do you take lay away? Pretty and my nails are so bad right now. I'm gonna like paint them right when I get home ratchet It's over the top. I would get this Should I? What's the same color you have on your nail? I know it's the same color. I want my toes. Well, not actually. You already have them obviously Not exactly. Okay. I'm getting over the top. Can do you take lay away?   I've always wanted one Ryan's having a water break after a tough five minute photo session We're at Rusan's Melton Can I get some sushi fixin? I got Calamari Like the sushi roll Calamari cuz it's really good and then I got the spicy tuna It's fried calamari. It's not that good. I'm totally good. I got spicy tuna and gejimaki You don't want to overload


Hi. Today, we will cover how to search in sociological abstracts. This database is one of the top places to look for scholarly research in sociology-related areas. It's a great resource for topics as wide-ranging as environmental sociology, criminology, social work, race and ethnic studies, women and gender studies, and social justice. To begin searching, we can use the search box on the main page to enter a few search terms, such as gender stereotypes and toys. Now we are on the results page, and we have almost 800 results. On the left side of the screen, there are more options for refining our results. First, we can check the box to limit our results to only articles from scholarly journals. Next, we can limit our results to only display articles that are peer-reviewed. If we're looking for recent research, we can limit the publication date by jogging the slider or entering a custom date range. Now that we've narrowed down our results, let's take a closer look. When you're getting to know a topic, it can be useful to scroll through a couple of pages of search results. This can help you discover new angles on your topic, new keywords, or ways you might want to broaden or narrow your search. If an article tile catches your eye, click the tile to learn more about it. If a full text copy is available in the database, you'll be brought to a page where you can view it. But before you do that, click the abstract slash details tab above the PDF. Now you can skint through the abstract, subjects, authors, and other publication details to determine if the article is relevant to your interests. You can even click the references tab at the top of the page to check out the sources the article cites. On the right side of the page, you can email a copy of the article to yourself or generate a citation in the most recent edition of APA or ASA style. You'll want to double check the citations to make sure they are correct. Finally, if the database has a full text of the article, you can click download PDF to save your own copy. If sociological abstracts doesn't have a full text option, click the check for full text on the top right of the abstract page to find the article in another one of our databases. Make sure to click the button to open the article in a new tab, then find the PDF full text option. If you need more help, you can always ask a librarian.


Hey there everybody. Welcome back to a new video in quarantine with the slackens. I'm Rick the slacken I'm so much like and we're still here Still here here before you and we'd like to talk about a question that we got from a few actually a few couples asked this question about Their spouse not really taking the quarantine seriously if we do want to share a little bit about what yeah Let's just say it's a husband. That's not taking it seriously. So Maybe he's not watching his hands as as much as you would like to see or he's going out and about grocery shopping or just Driving or I don't know if he's an essential employee and he's going to work And then when he comes home, you're concerned or maybe he's not even working and he's just not really taking it seriously He's going for a run. He's going to do this and then when he comes home You're worried about having to sanitize everything and you don't obviously want him to infect everyone in the house And it's a real concern because on the one hand, you might be coming across like a nag and you feel like you're complaining and being nitpicky But the same time this virus has proven to be very contagious So all family members and that these these quarantine and social distancing requirements have proven to be effective right and even if you don't pass it on to your family if you're going out in public and they're elderly people or people who will come In contact with elderly people or people who are at risk who supposed to be staying home. Anyway, but you just never know So you really your decision is impacting many people, right? So how can you communicate that to your spouse without Coming across like a panic or a nag so he or she can take it seriously So we're gonna we're gonna role play a little bit like a made-up scenario Yeah, we'll just take a minute. It won't be long We'll just show you some with suggestions for how we think it might be more helpful to share your feelings with your partner If it hasn't worked thus far, but I'm gonna be the person that's resisting the quarantine rules Cuz I tend to resist rules as it is and Shlomo who's a great role follower will be the one who has the concern with me Right and we're gonna kind of do something that you can learn and learn and take for yourself I mean if you really want to learn a real structured way of communication and that we teach couples in the dialogue process That's for there are other resources for that But just kind of doing this on your own what you can do and apply the best you can to maybe make it a little bit safer For your spouse to be able to hear your concerns. I'm gonna just show you that Rift but do you have a moment? I wanted to share something with you Yeah Well, I'm really worried about you going out and about during this quarantine No, we're not supposed to really go anywhere and there's nothing really we need out out of the house and we can get basically everything we need online So I really would prefer that you not go out and concerned about the safety your safety the safety of others and Our family I mean you don't know what's gonna happen I mean you could go out there and pick it up and nobody knows about it for two weeks It's not like you feel it right away. So it's a very scary scary kind of thing. I Guess I just don't see what the big deal is like I'm not breathing on anyone They're not breathing on me. I'm not touching doorknobs. I'm washing my hands Like going outside for a run and then coming back like it's not that big of a deal. It's outside I don't really see what the big deal is. Well, I guess more like still going to stores like the grocery store for example Things like that, right, but we do need groceries at times Right, I mean we could get them online Yeah, I guess so you just feel like it's not a big deal because you're trying to take all the precautions that you need Yeah Well, I don't know if there's anything that you could do to kind of just just to help me because I'm really anxious about it And I really just I don't feel comfortable if you're not going out for anything That's the central and if you want to go walk around the block or run That's fine But in terms of going into a store where that where you're going to get potentially come in contact with other people They can't always remember every single second that we're going to touch the door or not It's just easier like if I know that You're home and you're safe That will be better Okay, that makes sense So is that something we can kind of work on and be happy to work to think about like what we can do to make it easier You know for you to be able to Yeah, because I need a break like I can't just be with everybody on top of me all the time So I definitely do need help with that So we can think about yeah, maybe we can brainstorm together ways that we can Give you what you need, but also make sure that we're all safe and protected Okay So you'll notice slow mo did a few things there one is he made an appointment with me to talk He said it was only going to be a minute because I didn't want to be tied down as you could see When I said I only had a minute to talk so he asked for an appointment to talk He let me know it was only going to be a couple minutes Um and then he shared personally why it was important to him Out of you know love for his family Rather than you know complaining and blaming me and giving examples of instances. I didn't listen I mean can you feel guilty? Right, right So and I also Validated your concerns instead of just We're running them and are doing with you right and that that was helpful because you know the person that's going out a lot Obviously doesn't want to feel suffocated by being in the house with everybody there And that's probably what they're feeling and so Acknowledging that and then like he said could we come up with some strategies for how to give you that space? So you don't feel like everybody's on top of you But still be part of the quarantine process that was helpful to someone like me who feels you know suffocated and pressured Trying to get your partner like on the same team and working together with you You know as opposed to something you're imposing on them I think that's good. We'd love to hear your feedback after watching the video If this was helpful not helpful how your spouse reacted any tweaks Um that you might need for your unique situation What you can do is you can you can actually text us 4 4 3 5 7 0 7 5 9 8 that will be a real quick way we can respond to you in your needs right now Wait stay safe and better not to go out And thanks for watching if you have any questions, please feel free to text us again 4 4 3 5 7 0 7 5 9 8 We'd love to create the next video for you based on your specific situation. Take care. Take care. Bye. Bye


So, hello. My name is Michael Stahl and I work for Red Heart and this talk is about automated testing in the LibreOffice project. Okay, so a bit of an overview, so first a little bit of introduction about what the topic is and the second part is about all of the various different kind of tests that developers can run every day on every build to check that they do not add new regression bugs. And then at the end we will have a short look at some even more obscure tests. So why automated testing? So in LibreOffice we have in every release something like on the order of 10,000 commits and we change something like a million lines of code every release. And the obvious question is if we do that many changes, how do we avoid introducing new bugs, introducing regressions? And a substantial part of our overall strategy to avoid that is to do automated testing. So basically our goal is that the developers find any potential bug that they introduce before they push their buggy changes to the repository. And so part of that is that also the developers also have to be able and willing to write the tests themselves. So we can avoid the worst case scenario because we don't really have a test organization or anything like that. So the next question then is what requirements do we have for tests? So for unit tests the first requirement is that we want to be able to use standard unit test libraries. We want to use the standard libraries that developers may already be familiar even if they haven't contributed to LibreOffice before. And we also want to be able to run all of the tests as part of the standard build. We don't want any developers to have to learn how to use any extra tool with a complicated UI or whatever to run the test. The developer has to be able to just do a make check and then all of the tests run automatically. And if the tests are all successful then they don't produce any output and if any test fails then it should be very obvious what exactly has failed. So the next requirement is we want to have reliable tests. So it's not very useful to have tests that fail randomly 1% of the time when you run them because that will then train developers to avoid running the test and to not trust the result of the test and that's obviously a bad scenario that we want to avoid. Also the tests have to run quickly. So we don't want developers to wait 10 hours for the test result because then they won't run them every day. And the next requirement is that we want to have a good defect localization from test failure. So if a test fails it should be relatively obvious what exactly has failed and where the code in the office code is exactly that has triggered the failure and where to look for the bug effectively that was introduced. And the last requirement that we have is that we want the test to be debuggable if it fails. So it should be easy to get the test to run inside of a debugger and so that the developer can easily investigate and find out what problem was introduced. So now we continue with the various different kinds of tests that we have currently and the first category of tests is the CPP unit tests. These are implemented in C++ and they use the standard CPP unit library. And actually currently this library CPP unit is maintained by Markus Mohr who is a very prolific LibreOffice contributor and has actually written large numbers of unit tests with CPP unit and has also written various different basically frameworks for writing more tests. So it's a huge achievement there. And these tests run in the same process, in process. So basically you have a single process that executes both the test code and the office code that is being tested and that makes the tests easier to debug. So we have various different kinds of CPP unit tests and so basically at the top level categorization we have unit tests the simplest ones are a simple test for a single C++ class and then we have tests that test a single unit component via its API and then at a bit of a higher level we have integration tests, test several components together or maybe an entire application like Writer. And there are many different kinds of these. I couldn't possibly list them all and there are some particular interesting kinds like we have these filter crash tests which are a bit notorious because what they do is they essentially load a bunch of test documents and then we check if we didn't crash loading them and these are all documents that were created to demonstrate previous security issues. The problem with that is that various antivirus products will then complain about these files so we actually store them encrypted in the Git repository and decrypt them, they are testing and that is why you should disable antivirus products during a build because they cause spurious build failures effectively or you can use a configure option to disable these tests. And yeah, filter test I will talk about in a bit and then at the highest level we have a whole system test effectively that is the smoke test which is only nominally a CPU unit test because the actual test code is loaded from a document and it's actually a basic macros and this test does a bit of very high level stuff like it also installs an extension and whatnot so now let's have a look a bit at the filter tests we have lots and lots of these and they basically all work in the same way they import a test file and then they check that some property in the file was imported correctly and then they export the file again and import it again and then we check the same properties again to check that they were round tripped correctly and we can also with these tests validate that the written files are valid ODF or valid OXML files if you install these extra validators yes, we do have a tinderbox that uses the validation yes, you will get a mail the next day I think I think it's not a fast tinderbox but yeah so this is a very confusing graph where I've tried to investigate basically the story here is the CPP unit tests are a growth industry we have the blue line in the chart is the number of make files and you can invoke every one of these individually if you for example have to debug one of these tests and the blue line uses the scale on the right so we have currently more than 200 make files and then the smaller bars the bars use the scale on the left and the smaller bars are the number of CPP unit test functions and the larger bars are the number of individual assertions each assertion checks one particular condition so as you can see we had some tests already initially in 3.3 but we add lots and lots of these tests over time so the next category of tests is the J unit test and these are not surprisingly implemented in Java and they use the Java standard testing library which is JUnit so I found two different kinds of these tests basically one of them is simply unit tests for the Uno Java language binding and these actually run in process and then we have the so called complex tests which actually run out of process how does that work the test code so basically to run the test we invoke Java with the JUnit test and then that launches a separate S-office process that is a whole LibreOffice instance and sets up a remote Uno protocol communication between the Java side and the Office side and then the test function calls go over the remote connection and the result values go back and there are two different subcategories of the complex test so you have some of them, a lot of them test a single component so basically these are sort of like unit tests and then there are also a few that test an entire application and create lots of different things and test them together so what is the growth situation with the JUnit test as you can see actually in the beginning from 3.3 to 3.5 that is a measurement error because as it turns out we didn't actually write new tests there but the tests were previously in some custom test framework and they were converted to JUnit but since then there were not very many of these tests added so it's basically more or less it stays constant so the next category of tests is the Uno API tests and these are very much unloved by developers they live in the QA-DEF-OOO module these are also implemented in Java but they do not use JUnit they use a custom testing framework they also run out of process via the remote Uno protocol and these tests are very notorious for having a very obscure test code where it's hard to figure out where the actual test code lives that is being executed and how the test environment has been set up for a particular test and so on and also another problem these tests suffer from is that they are essentially black box tests written generically against a Uno interface and so they are not very thorough tests and they do not take specifics of a particular implementation into account and all of these are essentially unit tests of a single Uno component so how does the growth look like? basically there is no growth nobody is adding new tests here actually the numbers here are not really comparable to the other graphs that's why I've used different colors because there are several mechanisms to disable these tests and some of them are disabled so it's very hard to find out statically which of these are actually run and which are disabled so I actually grabbed through the log file to generate this data and what is being plotted here is the actual Uno interfaces that are being tested and the actual number of components that are being tested but what you can see is that the number is essentially constant the only change there at the end is that somebody split up the make files and that was only done to make the test run faster essentially so the last kind of tests that we have are the Python tests and these are implemented in Python and then they use the standard 1 I'm not sure if it's the standard but the standard library for testing in Python that is called unit test and these tests actually run in process and basically they are a very recent addition and mostly the work of Dawid Ostrovsky so we have two different kinds of these so for the PyUno language binding there are some unit tests and then we have also a unit test for basically various things in writer that are essentially similar to the same thing done in JUnit just in Python and we don't actually have many of them because they are relatively recent the first one was added in 4.1 and I'm not actually sure about the things I found in earlier releases actually are should investigate that I guess and we currently have eight make files for these and less than 50 test functions so really not all that much so now we have seen the four different kinds of tests and this is just a bit of an overview so you can quickly compare how many of each we have relatively so with the PyUno API interface is somewhat different measurement so what you can clearly see is that we have more CPP unit tests than everything else combined but we still have relatively many of these unit API interface tests so now a very interesting question is now that we have seen these different kinds of tests how well or badly do they meet the requirements that we have seen so first I should mention the first row is the historic VCL test tool and as you can see from how well or how badly it meets our requirements we actually removed this test infrastructure several years ago very early in the project and yeah this basically is an explanation why and now for the requirements so basically except for the unit API test every kind of test uses a standard testing library and we can run everything with make check so that's nice and so basically our CPP unit tests that are actual unit tests are sort of the best case for the project because they are reliable because they test only a very small unit and they run very quickly and if one of these fails then you know very well where you need to investigate because the unit that is being tested is very small and they are also debuggable we have infrastructure in the build system to quickly run a single test inside of GB or within Visual Studio so that is working nicely and sort of at the other end of the scale for CPP unit tests we have the filter tests which well they have also the advantage they are easily debuggable and they are fast but there have been some issues with the reliability of these tests so what can happen is that you write a test and it runs successfully on Linux and it fails for unknown reasons on Windows or it fails on Mac or it fails on... it runs successfully on one Windows tinderbox and it fails on a different Windows tinderbox or it sometimes randomly fails we've seen cases like this and yeah basically the problem here and also the reason for the poor defective localization of these tests is that the unit they are testing is too much so too big when importing a file the data passes through various different layers for example for an RTF file it goes through RTF tokenizer then through the domain mapper then through writers you know API implementation in the writer core and if something goes wrong anywhere you don't know where exactly it went wrong and so debugging a test failure does take some time and that's not really ideal so the next category is the complex unit tests and yeah these are also quite fast and if they are really unit tests then they provide good defect localization when they fail but they also have problems with reliability but these are different problems here basically these problems come from the out of process nature of these tests because they use remote unicalls they run into the problem that the implementation in LibreOffice itself has lots and lots of threading issues and so you can get rather non-detamistic results at times and yeah that may lead to spurious test failures and yeah also the out of process nature makes them very difficult to debug because well you have two processes so where do you attach your debugger you need two debuggers and yeah it's complicated and so the next category is the unit API tests and in addition to the reliability problems that the complex tests have these have some more problems especially some of the tests that are for accessibility related interfaces are notorious for spurious failures that nobody has been able to track down yet but we haven't deleted these tests because for many things they are the only tests that we have so we don't want to give up the coverage and it used to be that these tests were also quite full of delays and wait statements but I think somebody has recently converted all of those with the new VCL main loop improvements so that they wait for idle and so they should be running faster nowadays although I haven't measured it and also when it comes to defect localizations these are not good because of the obscure test code so if you have a test failure it's not easy to find out where the actual test code that has failed even lives and so that's another problem then for the Python tests so far they have proved to be reliable but since we have only very few of them now I wouldn't trust that so we don't really know if we had as many as we have the other categories if they would still be reliable but in terms of performance they are good and they provide good defect localization and when it comes to debugability they are somewhat between the CPP unit tests and the J unit tests the good thing is that they run in the same process and the bad thing is that you have two different languages you have the test written in Python and the implementation that is being tested is written in C++ so that creates a bit of a problem but GDB at least has a couple of interesting helpers that allow you to print the Python backtrace and that sort of thing while you are debugging but I don't think that an equivalent for Visual Studio exists so yeah, it's not ideal so much for the requirements now a bit of a short aside one thing that actually helps with the test is just using assertions in the product code if you want to check that some the state you are in is actually valid and that sort of thing and input parameters are valid because all of these assertions if they fail they will call a board and that will crash your test process and that is then effectively a test failure but the problem with that is of course that if the test hasn't been specifically written to exercise this part of the code then you don't actually necessarily know where the problem is going to be and yeah, assertions we have basically started with that in 3.4 or 3.5 something like that and we have added quite a lot of them over time so it's good to see that so now that we have all the tests it would be interesting to know how good the coverage of the test is so how much of the code is being executed during the test and in order to do that we use special builds with GCC options that do instrumentation for test coverage and then we run this Elkoff tool which creates some nice web pages out of the resulting data and that is I think it's run daily or maybe weekly I'm not sure and you can go to this Elkoff.libraffes.org web page and look at the nice results and see what areas are being tested and which not and I think all of this is thanks to Martin Hirst who did the scripting work and whatnot to get this up and running so what does that look like unfortunately I found only four historic data points for this and this looks a bit weird because why they are not equally distant from each other is because the dates when these results were archived are not equally distant from each other oh it's in Jenkins I should have looked there yeah well, disregard the graph no but seriously so what you can see on the left scale is the number of lines of code and the blue ones are the lines that were executed during the test and the red ones are the total lines which are a bit more than 2 million and it's less than other figures you may have seen reported because this is only the lines that have actual statements in them not empty brace or something like that lines and the blue line is the coverage in percent and we started out with like 38% and now we are something like 42-43% so the general trend is in the right direction so the next thing I wanted to just quickly mention is that so that was all the tests that were running by a make check in addition to that we have a bit more sort of complicated tests that we do run regularly but they take a bit longer so it's more of a manual process one of them is the so-called crash testing where we import and export a huge pile of tens of thousands of documents and there is a separate talk about that at this conference and then we have a performance test which is using car grant to profile certain things and that can be run by the make perf check target and this is also somewhere run automatically probably with Jenkins and so you can go to this website three or four hours they take and you can look at this website and look at the nice graphs of the results and see if we have become slower somewhere so this is thanks to Matus and Laurent who apparently did the work there so basically that was the talk and the lesson of the talk is clear you should all go out and write more tests because we don't have enough coverage yet and in fact instead of listening to my talk you should have written a test instead that would have been vastly more useful so yeah, thanks any questions? because there is a cert, is that a cert, do you have a cert? well, it depends, so yeah, also a cert and dbg-assert are essentially deprecated the question was which sort of assertion should we use in the code and the best way to assert something is with the standard c-assert macro and that has the benefit that if the assertion fails then it will actually abort the process and that will mean that developers who do their debug builds with assertions enabled will notice that and they will hopefully investigate it and then there are various other legacy assert macros like dbg-assert and dbg-assert and these are pretty much all deprecated and these basically just print out something on the standard error that assertion failed and everybody ignores that and it's not that helpful but there is a use case still for that sort of thing is when you have some condition that you want to check which is often an error but you can't be sure it's an error and then there is something equivalent and that is the new SAAL, what's it called, SAAL-worn and yeah, so that is the non-deprecated equivalent to Ozil Ensure and what not How do you write a plug-in to convert almost dbg-assert to SAAL? The problem with the easy hack to get rid of them is that some of them should be true asserts while some of them should be SAAL-worns and no compiler or normal automatic or no easy hack or set-all which should be which so this is a hard hack actually If you check with debugging an error and see if you check with war about all the places where assertions and debokers are produced and so on and then de-reference happens you get a list of all the cases around these non-reserts which should really be our result and then if you go to the rest of the group you can get a list of the legacy asserts that you can use so this is your list and check which one even if it's individual you can get this one out So you use that to test So are you interested to try this? So this test can happen if you have five conditions in the old surf because I've been hearing for quite a while now that there is all those things because some of them may be real assert which today they don't actually assert anyway we refrain from getting rid of them and keep those things around forever so at some point we might decide that none of them are real asserts for the few that borrow will put them back eventually Yeah, the issue is if you see a SAAL-worn you assume that it's not supposed to be a real assert whereas as you see and also ensure you see that it's some legacy old stuff and you know that whoever wrote that didn't think about the question Go together and reintroduce the one that makes sense or start by making who's an assert and who's a debug failure? So I thought I think we are very late so I think we should stop this discussion now