Google AMP: A Rant

The day Google did what that large bottomed lady failed to do.

Google AMP, or rather, the Google AMP Cache, is rolling out to users right now. It’s been in use for Google News searches for a little while, but now general Google searches are becoming infected by it, and there’s no way to turn it off.

The intention of the AMP project is noble enough: Make mobile pages work faster. On the webmaster side of the project, some work needs to be done in order to make mobile versions of their pages AMP compliant. For many folk, this is little more than triggering a plugin for their CMS, but for those who code sites a little closer to the metal, there are specific AMP HTML pages to create and check. You know how HTML5 and the likes of Bootstrap helped unify devices, so they only need a single page regardless of screen type or viewport size? Well, it seems AMP reverses that.

I don’t pretend to understand it all. But I don’t need to in order to find faults with Google AMP Cache. What this does, is (as the name implies) cache AMP pages. It rolls them up and spits them out quickly to your phone when you access them.

The Google AMP Cache is a proxy-based content delivery network for delivering all valid AMP documents. It fetches AMP HTML pages, caches them, and improves page performance automatically. When using the Google AMP Cache, the document, all JS files and all images load from the same origin that is using HTTP 2.0 for maximum efficiency.

(That’s from here)

Which would be good, only it isn’t. When you use Google on your mobile device to search now, AMP pages are preferred in the results list so generally appear at the top – even if the content is “better” on a non-AMP page. When you tap the link, you get Google’s cache of the page, and herein lie most of the issues.

It’s cached, so inherently isn’t necessarily the newest content. You also don’t get the correct link from the page – the URL bar shows a Google URL. For example, instead of:

you get

If you then decide to pass this link on to someone not on a mobile device, then you end up passing on the AMP’d link instead, only it doesn’t work. Just copy and paste that second link into your desktop web browser URL bar and see. Not only do you not get taken to the page, you get sent to a page of search results for which the top match isn’t even the correct site 1:

google amp
In fact, at the time of writing for this example, NONE of the sites in ANY of the results are the correct one.

It’s even worse than that. Without hacking apart the AMP Cache URL, you can’t even find a link to the correct “real” page to pass on or save. The cached pages also tend to strip out certain content, such as adverts or input forms. This may be a bonus, or may be because of the ineptitude of the webmaster, but it doesn’t matter either way: Content is not served up correctly and that is a problem.

But things are worse still. Because the Google AMP Cache is, by their own definition, “a proxy-based content delivery network” it can be used to bypass web filters and restrictions. Page blocked by your school? Just access the AMP Cache version of it on your mobile device. In fact, you’ll bypass the filter automatically and inadvertently, potentially breaching an acceptable use policy.

The worst bit of all? You can’t turn it off. There’s no switch in your browser or your Google account settings. You can block access to (or, or other country specific variations), but that stops search from working properly. You can ask webmasters to disable AMP support, but there are so many using it now that isn’t going to happen. I do wonder if many webmasters were hoodwinked into this: They saw the benefits of AMP, so embraced it, and now Google have screwed them over by forcing the cache and breaking their content. How does advert revenue work now for those people, if the adverts are cached? Clickthroughs and hits? Did webmasters realise this was the endgame, because when I looked into AMP a while back for WordPress I certainly didn’t. Is there a legal issue with Google AMP Cache essentially cloning your content and serving it up from their server? It’s a mess.

And what if you do manage to convince a webmaster to turn it off? What happens then? This: 404s everywhere. That’s Google’s answer.

The situation now is that mobile search, via Google, is effectively broken just so we can get a page on the screen a few milliseconds faster. This is not progress.


  1. Note that it’s Google who redirected to this search – I didn’t stupidly just put the URL in the search box!

Things That Google Thinks Are Other Things

In the past, I’ve shown you some of the miscategorisation that Google’s software does with photos, detecting they’re cars and stuff when they’re not. It’s time for some more.

Photos that Google thinks are cars, Part 2

Vehicle. Four wheels. How hard can it be?

Remember when Google Photos mis-recognised a load of my photos as cars? It was hilarious, right? Well, things haven’t improved. The other day they rescanned them all or something and suddenly, I’ve a whole new gallery of not-cars to share! How exciting/tedious.

How you found me in 2015

Searching… searching… searching… Nothing Here.

I haven’t done this for a couple of years, but I thought I’d have a look at the search terms people used to find this blog, my gaming diary, and my main site.

My Blog

Seems The Prize Directory has been up to their old tricks, as the top three search terms in 2015 all referenced them in various permutations. More than half of the rest of the list reference them too.

Second to that are assorted searches for upgrading your 3DS SD card. I’m pleased my guide is so popular! Some even searched for “deKay 3DS transfer”.

Lower down the list, there are searches leading to my guide on how to swap the audio output on RetroPie, inject Windows updates in a .wim file for distribution, and stuff about EyeTV streaming.

My Gaming Diary

(Which is here, in case you didn’t know)

Far and away, the most popular search term last year for my Gaming Diary was “princess nom nom”. That free, simple, but somewhat endearing clicker game (without much clicking) that you can find here. Perhaps I’m one of very few people to have written about it.

After that, generic searches for “gaming diary” and “lego games” were common, and then there’s a big stream of things with very few hits each – “titan souls vita”, “nintendo wii repair guitar whammy bar spring diy”, and “super mario 3d world fairy”. Some people were looking for help with specific games (“last window key music box”, “american sk8land old school gaps”). And then… some odd stuff:

“akiba’s trip undead & undressed girls naked”
“king of all cosmos swimsuit edition”
“playstation home coy pose”

Perhaps the most confusing of all, was “dekay for monkey game”. No idea.

My Lofi-Gaming Site

(Which is here)

Sadly, I’ve not updated my main site in quite a while, but my NES PC article is still very popular, according to the search terms. Most of the rest of the searches are about emulation or the Time Top Gameking.

And two people searched for “emulation xxx picture”. Erm.

Photos that Google thinks are food

Wait, Google – I can’t eat that!

A while back, I posted some pictures I’d taken that Google Photos had helpfully categorised as cars. Well, it’s not just cars that Google doesn’t understand – it seems the search giant now wants me to eat these things. Urgh.

Photos that Google thinks are cars

Google Photos is a relatively new product from Google, at least in it’s no-longer-Google+ shackled form. It’s pretty good, in terms of some of the syncing and organising it does, and I’m a fan of how it makes animations from photos it thinks are quite similar – in particular, “burst mode” photos.

One of it’s “magic” features is how, when you search your photos, it automatically detects things in them and adds them to albums based on that content. Some are obvious, like locations, and some are a bit more clever, like Flowers or Playgrounds. There’s also one for “Legos” which, although it manages to correctly detect Lego models, uses the incorrect label “Legos”, which doesn’t exist as a word. The plural of Lego is Lego, of course.

However, the “Cars” grouping in my set of photos is… somewhat wrong. Sure, there are a handful of cars (and a few buses, tractors, a JCB and some toy cars – including Lego ones – all of which I’ll give a pass as they’re similar at least), but these? These are not even nearly cars.

Exporting routes from Endomondo (and using them in Google Maps)

I love Endomondo, but one thing it doesn’t do is let you export routes you’ve created and use them in other applications and things like Google Earth and Google Maps.

Sure, you can export workouts as both tcx and gpx files, but that means you need to have actually cycled the route first before you can export it. In my route planning, I like to create the rough route in Endomondo, then stick that in Google Maps and look for nearby pubs and stuff, editing the original route if needed (you need pub stops, right?), and usually it’s when I haven’t cycled the route that I need to do this.

So I found a way of doing it. Basically, you draw the route, then manually create a workout – attaching the route in the process. You can then export this workout and stick it into Google Maps:

Of course, if you want to use Google Earth, just drag the gpx file into that without uploading it anywhere. You also might want to delete the workout you just created from Endomondo so it doesn’t screw up your stats!

Managed network install of Google Chrome Frame

If you’re locked into using Internet Explorer on your network, for whatever reason, you’ll probably find that there are some websites that simply don’t work properly, and ask you to install a “modern browser” like Firefox or Chrome.

Thing is, allowing other browsers on your network is fraught with technical support issues, especially if you use other systems that insist on only working properly in IE (like some Sharepoint stuff). You can’t rely on users to always use the right browser for the right task.

We had this problem recently, as we wanted to start using the excellent Codecademy but it blows raspberries at IE users and tells them to go away. My first thought was to install Chrome, but for the reasons already given (and the fact the more-easily-locked-down Portable Apps version doesn’t work from a network share) I didn’t really want to do that.

My next suggestion was Chrome Frame. It’s an extension for Internet Explorer which you can configure to replace the IE HTML renderer with, so although the web pages open in IE, they’re actually rendered by Chrome. This means that, to the user, there’s only one browser. Of course, it needs to be configured to only trigger Chrome’s renderer for those sites you need it for, rather than all sites, otherwise you may as well just replace IE with Chrome completely.

There are two issues here then – how to deploy Chrome Frame on a network, and how to configure it centrally to only trigger when needed.

Deploying Chrome Frame

Luckily, Google provide a useful MSI package of Chrome Frame here. You can roll this out in a group policy like other MSIs, or run it on each machine either manually or with a script. Unfortunately, it tries to update itself when you do so and invariably (if you’re in an internet-restricted environment like a school) will hang for ages then probably crash. You can stop this, however.

To do this, you’ll need an MSI property editor such as the free Orca (which you can find here) and open the Chrome Frame MSI in it. In the Tables column, choose Property, and then the right-hand pane right click and choose Add Row. Enter the Property field as NOGOOGLEUPDATEPING and the value as 1. Click OK and save the MSI. Now you can deploy it!

Configuring Chrome Frame

The best way of doing this is with a new group policy. Firstly, download the Google Chrome ADM/ADMX files from here (you want the Zip file, not the Mac stuff, obviously). If you’re using the ADMX files, you’ll need to copy them to %systemroot%\PolicyDefinitions before the group policy editor will see them. ADM files can just be opened as normal with “Add/Remove templates”.

These group policy files will actually let you configure all sorts of things for Chrome as well, but some of the settings are specific to Chrome Frame. In particular, you want to look at:

User > Configuration > Policies > Admin Templates > Google > Google Chrome > Default HTML renderer for Google Chrome Frame

The first setting, Default HTML renderer, determines whether web pages are rendered by the host browser (i.e. IE) or Chrome by default. For my purposes, I wanted IE to render except on certain pages, so chose Host.

The other settings are the exception sites to the above. Since I have Host as the default, I only need to configure the Always render in Chrome Frame options. You do this by providing URL patterns to match.

For example, I want all of Codecademy to render in Chrome Frame, so chose ** as my pattern. See here for more pattern examples.

Remember to assign this new group policy to your users, and once Chrome Frame has rolled out, you should find your chosen sites now render in Chrome!