While installing Discourse on a free tier instance in a Google Cloud Compute Instance, I was following this discourse install tutorial with only minor adjustments:
- Used Ubuntu 20.04 LTS minimal
- Standard Disk (default is Balanced)
- e2.micro instance
However, when I was waiting for Step 9 to complete (after running
./discourse-setup) and everything being built, it would fail with an ESOCKETTIMEDOUT error related to
yarn. The last message that tries to run is
[ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'.
Here’s what is going wrong. Yarn has a default timeout that is fine if you are using the minimum recommended for Discourse, but with a micro instance, it takes too long. To fix this, you have to manually edit one of the install scripts that runs for the new Docker container Discourse is building.
On April 21, 2015, Google started demoting search rankings for websites that were not mobile-friendly. Prior to that date, I updated 11 of 12 websites I run. The big one, NovelRank, was going to take much longer and be much more complicated, so it missed the deadline.
Well, on September 1st, the redesign was completed and released. However, as you can see in the image above, the story still isn’t over. Even though it’s been 2 weeks since the redesign, Google took ~7 days to update to the new link structure (dropped .php) in search results. It also has only identified 15% of pages that previously had mobile errors as fixed. Needless to say, it’s going to be a few more weeks until the benefits (or rather, the removal of penalties) are actually reflected across the entire website in the eyes of the major search engines.
So be warned, that delay means that when you think you’re done, the search engines of the world may not see it that way for weeks after. You’re already behind, so don’t delay on getting your sites mobile-friendly. I personally love Bootstrap, if you want a recommendation for a responsive design framework.
Update: Sept 21, 2015
Mobile errors dropped dramatically, down to 89 total (8% of the original). So, after 3 weeks the vast majority of the mobile-friendly redesign was absorbed into Google’s knowledge of the site. I expect that by the end of the month the number will be zero or a single digit total.
Update: November 3, 2015
After seeing 5 pages with mobility issues for lingering pages not rechecked by Google’s crawler for the last month, the number is finally 0. For most sites it would have been done by the 1 month mark, but for a larger site (thousands or tens-of-thousands of pages like mine) it took 2 months to get a 100% seal of mobile approval.
It seems that markup is getting more and more important on the web today, especially if you want your pages to show up just right when your visitors click that magical share button. To that end, here is a quick sample of what I stick at the top of every HTML page before I ever get to the body tag.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>PAGE NAME | SITE NAME</title>
<meta itemprop="name" content="PAGE NAME | SITE NAME"/>
<meta property="og:title" content="PAGE NAME | SITE NAME"/>
<meta property="og:site_name" content="PAGE NAME | SITE NAME"/>
<meta name="keywords" content="LIST 5-8 KEYWORDS HERE" />
<meta name="description" content="THIS SHOULD BE YOUR DESCRIPTION; LESS THAN 160 CHARACTERS." />
<meta itemprop="description" content="THIS SHOULD BE YOUR DESCRIPTION; LESS THAN 160 CHARACTERS."/>
<meta property="og:description" content="THIS SHOULD BE YOUR DESCRIPTION; LESS THAN 160 CHARACTERS."/>
<meta property="og:url" content="http://www.WEBSITE.com/HTMLFILENAME.htm"/>
<meta property="og:image" content="http://www.WEBSITE.com/IMAGENAME.jpg"/>
<meta itemprop="image" content="http://www.WEBSITE.com/IMAGENAME.jpg"/>
<meta name='viewport' content='width=930, initial-scale=1, maximum-scale=1, user-scalable=1' />
<meta name="author" content="Mario Lurig - http://mariolurig.com/" />
<link rel='stylesheet' href='MYCSSFILE.css' type='text/css' />
The very first line is for IE9 compatibility, forcing it to display things properly (I believe any doctype declaration will work). The remaining lines are self-explanatory with one exception: the viewport option decides how your page will look in a mobile browser upon first load.
You can double-check what Facebook sees (or refresh the cache) using their debug tool.
The focus here is to understand when to leverage Facebook Ads vs Google Adwords for your online advertising. While both command very large audiences, and both can also command a large Cost Per Click (CPC), the way each service approaches an audience is very different.
Adwords allows you to specify keywords for your searches. While you can be broad with your searches so they compete whenever those words exist within any search query, you can also specify exact matches via surrounding the keywords in double-quotations “”. This also you to hyper-target your ads to that search audience, and also allows you to get a lower CPC price. You are competing with anyone who has ads running for either those same exact matches, or loose matches that incorporate the keywords you use. If you are fishing for some long-tail advertising (maybe as research for Search Engine Optimization tweaks), Google Adwords is the way to go.
While Facebook now offers the ability to specify a ‘category’ for your audience, the primary method of limiting the results is by specifying pages or groups that individuals may ‘Like’ or be a part of, allowing you to target a t-shirt about NPR to an audience that ‘Likes’ NPR’s fan page. Sounds fantastic, right? Sure, if you are willing to pay for it. The reason is that Facebook is driven primarily by the demographic information it makes configurable in the ads you design. When advertisers are trying to entice males into a dating site, or 18-24 year olds to play a video game, they aren’t using the ‘category’ or ‘pages/groups’ limitations, and since they are use to paying a lot of money for these highly competitive advertising areas, their bids are going to blow yours out of the water. You have to match their price just to be seen, even if you are going to be more relevant to a particular user.
I consider this a major flaw in the way Facebook prioritizes ads. It benefits their bottom line, not their audience. I actually believe that if they improved this methodology to focus on benefiting their users over advertisers, that a larger number of advertisers will come on-board to take advantage of these focused groups, spend less money overall, but the financial gains for Facebook will be made up in shear volume. Currently, I’m limited in the amount of Facebook advertising I do for these reasons.
Do you want demographics? Go to Facebook. Do you want to target very specific words or ideas? Go to Google Adwords.
Just building the ‘next killer website’ is useless if nobody knows about it. That’s where the marketing comes in. I’ve switched gears recently to start diving back into online advertising. Previously, I had limited success spending Google’s money after given a $50 credit to test out the service. I figured, if nothing came of it, then nothing lost; it wasn’t my money. However, this time around, aside from spending $50 of Facebook’s money (more on that in another post), it was my money going towards the effort. So, it was time to get serious.