Меня связывает с проектом Google’s Accelerated Mobile Pages (AMP) долгая история, но вчера чаша терпения переполнилась.

Я зашёл в Twitter (в Safari на iPhone 6) и заметил, что кто-то сослался на мой сайт, поставив ссылку AMP. Я ответил и указал настоящую ссылку, но когда нажал на неё, то меня перенаправило обратно на версию AMP моей страницы.


Я скопировал ссылку, сгенерированную Twitter, и заметил, что она выглядит так:

https://t.co/6drRK5Cugz?amp=1

Обратите внимание на amp=1 в ссылке. Когда на неё нажимаешь, она возвращает такую HTML-страницу:

<head>
    <noscript>
        <meta http-equiv="refresh" 
            content="0;URL=https://www.alexkras.com/simple-guide-to-finding-a-javascript-memory-leak-in-node-js/amp/" 
        />
    </noscript>
    <title>https://www.alexkras.com/simple-guide-to-finding-a-javascript-memory-leak-in-node-js/amp/</title>
</head>
<script>
window.opener = null;
location
    .replace(`https:\/\/www.alexkras.com\/
        simple-guide-to-finding-a-javascript-memory-leak-in-node-js        /amp\/`)
</script>

Единственное предназначение этой страницы — перенаправить читателя на версию AMP.

Мои проблемы с AMP как издателя


Когда проект AMP появился, я воспринял его оптимистично. Его целью было сделать веб быстрее, а я уважаю такую цель.

Что мне ОЧЕНЬ не понравилось как издателю — это то, что Google кэшировал контент AMP и выдавал его из своего собственного кэша и под собственным доменным именем. В результате, ссылки выглядели так:

https://www.google.com/amp/www.bbc.co.uk/news/amp/39130072

Другими словами, вместо выдачи контента с BBC.co.uk, он поставлялся с Google.com.

У такого подхода есть несколько проблем:

  1. Он «заманивает» пользователей на Google. Если человек нажмёт “x” на верхнем скриншоте, его отправят обратно к результатам поиска Google. Нормальный редирект отправил бы пользователя на реальный сайт BBC, увеличивая шансы, что он останется на том сайте. Вместо этого AMP делает проще для пользователей вернуться на Google. Это функциональность, которая в браузере всегда доступна по кнопке «Назад». Это плохо для издателей, но скорее всего неуместно и для самих пользователей.
  2. Он делает систему уязвимой для злоупотреблений. Например, фейковые новости при публикации через AMP могут показаться достоверными неподготовленному читателю, поскольку они поставляются с Google.com — очень уважаемого домена.

Как ни странно, это НЕ то, что делает Twitter

Думаю, что Twitter исходит из предположения, что контент в формате AMP лучше для пользователей. По этой причине они просто пытаются оказать пользователям услугу и доставить контент в наилучшем формате.

Мои проблемы с AMP как пользователя


AMP состоит из трёх компонентов: HTML, библиотека JavaScript и кэш. В предыдущем разделе я говорил о своих претензиях к кэшу. Преимущетво кэша, как объяснили мне разработчики Google AMP, в том, что он позволяет Google (или любой другой платформе) осуществлять предварительную загрузку контента для пользователя. Когда пользователь нажимает на ссылку AMP, Google может вывести результат практически мгновенно, поскольку он уже получен в фоновом режиме.

И опять, как ни странно, Twitter не использует этот кэширующий слой. Twitter предполагает, что мобильные пользователи предпочитают читать отрендеренный в формате AMP контент, даже если он не был предзагружен в кэш.

Для меня проблема в том, что мне не нравится читать контент AMP. Есть много мелких вещей, которые меня реально раздражают в AMP.

Например:

Неудобная прокрутка


На iPhone AMP переназначает дефолтную прокрутку в браузере. В результате скроллинг на страницах AMP как будто отсутствует.

Трудно делиться ссылками


AMP затрудняет обмен ссылками на оригинальный контент.

Вместо того, чтобы просто перейти в адресную строку и скопировать ссылку, пользователю нужно нажать специальную кнопку, чтобы увидеть оригинальный URL. Затем пользователю нужно нажать на оригинальный URL, подождать редиректа и скопировать его из адресной строки вверху.

Примечание: Какой бы она ни была неудобной, но кнопка с оригинальной ссылкой — большой шаг вперёд в интерфейсе AMP. Изначально пользователям приходилось вручную удалять часть https://www.google.com/amp/ из адреса.

Я готов пройти через эти трудности, потому что мне не нравится читать контент AMP и потому что я хочу убедиться, что доверяю верному источнику по этой ссылке. Уверен, что большинство пользователей не производят всех этих шагов. Они просто копируют полную ссылку AMP, вроде https://www.google.com/amp/www.bbc.co.uk/news/amp/39130072, и делятся ею. Моя жена, например, постоянно присылает мне такие ссылки. Для меня действительно удивительно, что большие издатели не обеспокоены этим фактом настолько же, насколько я.

Контент AMP обычно разделён на части


Вспомните времена, когда нам приходилось загружать WAP-страницы — специальные веб-страницы, которые создавались для мобильных устройств. Подписка на AMP для издателя — это словно возвращение в те времена. Вместо использования адаптивного дизайна (когда одна версия сайта хорошо работает на всех устройствах) издатели вынуждены поддерживать две версии каждой страницы — обычную версию для устройств большего размера и мобильных телефонов, которые не используют Google, а также версию AMP.

Преимущество технологии AMP в том, что она накладывает жёсткие ограничения на контент, тем самым гарантируя его быструю загрузку. Проблема такого подхода заключается в том, что в AMP попадает не весь контент. Например, комментарии часто удаляются.

Я также заметил, что загрузка изображений в AMP глючит. AMP пытается загрузить изображение только когда оно попадает в область видимости для пользователя, а изначально отображается белый квадрат. По моему опыту, часто происходит так, что белый квадрат там и остаётся вместо изображения.

Есть много других маленьких нюансов для разных сайтов. Например, комментарии Reddit (очень важная часть сайта) кэшируются в AMP. В результате, новые комментарии, которые видны в десктопной версии Reddit, не отображаются в версии AMP, пока кэш для этой страницы не обновится.

AMP обязателен для пользователей


Издатель сам решает, хочет ли он добавить поддержку AMP для своего сайта. А вот пользователи не имеют возможности отключить AMP.



Было бы замечательно, если бы Google предоставлял пользователю настройки с возможностью отключить результаты рендеринга AMP. К сожалению, даже если они добавят такую опцию, это не сильно поможет в условиях, когда Twitter или Facebook поддерживают AMP на сервере.

Почему я изначально подключил AMP для своего сайта


Я изначально подключил AMP для своего сайта только по одной причине — хорошее место результатах поиска Google.

Незадолго до появления AMP компания Google объявила, что будет опускать в выдаче сайты, которые недостаточно быстро отображаются на мобильных устройствах. У моего веб-сайта был адаптивный дизайн, но я не был уверен, что он достаточно оптимизирован для мобильных устройств. Поэтому, когда я узнал о наличии плагина AMP для WordPress, то сразу подключил его. И хотя Google официально заявила, что поддержка AMP не влияет на место в результатах поиска, я решил, что она не помешает.

Ещё одним преимуществом AMP для ранжирования в поиске было то, что только сайты с поддержкой AMP отображались в функции «карусели» на сайте Google. Хотя мой сайт вряд ли попадёт в «карусель», но такая возможность должна быть важной для крупных издателей.



Она распространяется


Я подумал об отключении AMP, когда впервые узнал, что Google загружает мой сайт из кэша, но передумал по двум основным причинам:

  1. Я хотел сохранить позиции в поиске.
  2. Я хотел оставить AMP как опцию для тех читателей, кому это нужно.

Чего я не понимал до истории с Twitter, так это того, что активируя AMP я тем самым разрешаю другим сайтам выбирать, как они хотят ссылаться на мой контент.

Менее двух недель назад я написал следующее:

«У меня нет проблем с самой библиотекой AMP. Меня не волнует, что Facebook Instant Articles или Pinterest используют AMP».

Как я ошибался. Я думал, что меня это не волнует, пока не увидел свою ссылку в Twitter с указанием рендеринга в формате AMP.

Пользователям это не нужно


Несколько недель назад кто-то в Twitter обвинил меня в том, что я не люблю AMP, потому что у меня «привилегия» быстрого интернета. Хотя у меня и вправду быстрый интернет, не думаю, что использовал бы AMP даже на медленном соединении. Я бы скорее отключил JavaScript в браузере (может быть, даже изображения, если всё действительно настолько плохо). Это может работать не для всех сайтов, но мой сайт рендерится и кэшируется на стороне сервера. Пользователям нужно всего лишь скачать немного HTML, чтобы увидеть любую страницу. Зачем заставлять их скачивать библиотеку AMP JavaScript?

Конечно, у нас есть AMP, потому что Google хочет, чтобы пользователи видели рекламу, которая практически отсутствует при отключенном JavaScript. Я тоже хочу, чтобы пользователи видели рекламу (рекламу Google, между прочим), так я оплачиваю расходы на сервер. Тем не менее, я радостью позволю человеку на плохом соединении отказаться от этой части сделки.

В любом случае, для проверки своей теории я открыл Chrome Developer Tools, чтобы придушить своё соединение до максимально медленного варианта, и отключил JavaScript. Я открыл статью на своём сайте, и она загружалась три секунды. Я попытался использовать поиск Google, и он оказался ошеломительно быстрым, но там не было никаких ссылок AMP. Конечно не было, ведь они показываются только при включенном JavaScript.

Я снова включил JavaScript (сохранив низкой сетевую скорость) и попытался поискать какой-нибудь контент AMP. Заняло более 10 секунд просто загрузить «карусель» с новостями.

Как и ожидалось, статический контент (без JavaScript) по-прежнему на высоте.

Пожалуйста, высказывайтесь


Впервые я написал о своих опасениях насчёт AMP девять месяцев назад. Та статья привлекла некоторое внимание на Hacker News, и ребята с отдела Google AMP активно участвовали в обсуждении на Hacker News и в комментариях к моей статье. Они даже зашли настолько далеко, что пригласили меня на обед, чтобы лучше узнать о моих опасениях.

Две недели назад я написал похожую статью под названием «Пожалуйста, сделайте Google AMP необязательным». Он получил намного больше внимания на Hacker News, чем первоначальная статья (вошёл в Топ-300 постов за всю историю), но по-прежнему никак не повлиял на позицию разработчиков Google AMP.

Возможно, сотрудники Google AMP осознали, что они совсем немного выиграют, если прислушаются к маленькой части сообщества разработчиков, которым не нравится AMP. Они знают, что мы в меньшинстве, и мы не их целевая аудитория. Моя мама и моя жена не ходят на Hacker News. Они не знают, что такое AMP и не особенно озабочены проблемами открытого веба.

В то же время в Google много инженеров, для которых открытый веб важен. Меня действительно удивляет, что я не слышу их высказываний против AMP. Могу предположить, что этот проект получил благословение на самом верху, так что политически опасно гнать волну.

Однако те из нас, кому не по душе AMP, должны сражаться.

У вас есть сайт WordPress? Отключите AMP или не включайте его, если он отключен.

Вы работаете на издателя, у которого включена поддержка AMP? Попробуйте объяснить своему работодателю опасности AMP, как он может терять трафик и узнаваемость бренда.

Вы просто веб-разработчик? Попробуйте делать более быстрые сайты и избегайте перегрузки скриптами. Есть множество справочных ресурсов, которые помогут справиться с этой задачей (например, см. заметки с Chrome Dev Summit). Будет проще бороться с AMP, если большинство сайтов будут быстро загружаться, даже на слабых соединениях.

Решение отключить AMP пришло не сразу. К счастью, отключить его на WordPress было почти так же просто, как и подключить. Достаточно просто дезактивировать плагин. Менее чем через 24 часа Google прекратил показывать версию AMP моего сайта в своих результатах поиска.

Дополнение. Здесь я записал конкретные шаги, которые сделал, включая установку редиректа для старых ссылок AMP: https://www.alexkras.com/how-to-disable-amp-on-wordpress/.
Поделиться с друзьями
-->

Комментарии (25)


  1. torrie
    30.06.2017 09:45

    Не написал ничего про монетизацию. В конечном итоге ведь всё делается ради заработка. Если позиции сайта улучшились/стал больше зарабатывать, значит amp — хорошо, иначе — выключить, нельзя помиловать.


    1. serg_p
      30.06.2017 11:11
      +3

      не всё для зароботка — есть ещё и просто пользователи


  1. habradante
    30.06.2017 11:36
    +2

    Откуда монетизация, если показ идет с сайта гугла?


    1. dumistoklus
      30.06.2017 12:38

      Есть специальные теги для просмотра рекламы от сетей, которые добавили свой код в репозитарий AMP. Вот их список


    1. kenny_gomel
      30.06.2017 13:25
      +2

      Получается же, что AMP не будет нормально работать с метрикой, аналитикой и просто будет уменьшать трафик на сам сайт?
      Есть тут сеошники, которые продвигали сайты с AMP?
      P.S. И по логике ведь Google учитывает AMP при ранжировании (просмотры, переходы и т.д.)


      1. kobiak
        03.07.2017 00:38

        по сколько AMP от гугла, то там изначально есть поддержка google-analytics + запилили поддержку из tag-manager, но да, со сторонними аналитиками не работает, точнее можно через iframe.


  1. norlin
    30.06.2017 12:32
    -4

    Так и не понял, в чём проблема. В AMP версии нет какого-то контента? Ну так исправьте свой сайт, чтоб он отдавал весь нужный контент. Сделайте поддержку правильных хэдеров для кеширования, ETag, вот это всё. Наверняка гугл будет обновлять свой кеш при необходимости.


    1. TimsTims
      01.07.2017 17:09

      > исправьте свой сайт, чтоб он отдавал весь нужный контент
      APM выдаёт ограниченный контент. Например комментарии в него не впихнёшь никак.


  1. dumistoklus
    30.06.2017 13:07
    +7

    Конечно, AMP — это вредная технология.

    Единственное зачем она нужна издателю — показываться в результатах поиска Гугла повыше.

    Единственное зачем она нужна пользователю — моментальное отображение страницы, после перехода на AMP ссылку.

    AMP сайты не грузятся быстрее, грузятся они столько же времени. А по ссылкам не из гугла, они грузятся с тех же самых серверов, что и обычный сайт. И перегоняют столько же данных, сколько и обычный сайт, а иногда даже больше. Просто AMP страницы загружаются в браузере еще до того как пользователь кликнул по ссылке в поиске. С таким же успехом, Гугл может предзагружать любой другой сайт. Именно для реализации предзагрузки в HTML придумали preload и prefetch.

    Но в появлении AMP виноват не Гугл. Создатели AMP хотели решить проблему перегруженности сайтов, которые скачивают по нескольку десятков мегабайт данных, выполняют плохо написанные скрипты и связаны с сомнительными рекламными сетями. И эту проблему создали непосредственно авторы сайтов, издатели, вебмастера.

    В погоне за изучением пользователей они накрутили такое количество трекинговых инструментов, что они значительно замедляют страницу. Они накрутили такое количество рекламы, что это делает невозможным просмотр основного контента сайта. Они пишут не оптимизированные скрипты, из-за которых устройства виснут.

    Но никто не скажет про себя «Да, это я виноват, что контент с моих сайтов отдается медленно» или «Да, это я нанял плохих разработчиков», «Да, это я засунул много рекламных сетей». Нет, все мы говорим «AMP отпугивает с моего сайта посетителей», «У меня бюджет», «С этой рекламы наибольший доход, а мне надо кормить семью».

    Гугл виноват в том, что манипулирует создателями сайтов и пользователями, чтобы продвинуть технологию, в которой он главный. Но причиной этому стали именно мы. Мы — создатели сайтов — дали повод использовать нас в продвижении продуктов, которые не являются решением никаких проблем.


    1. BananaBobby
      30.06.2017 19:29

      Где вариант «Да, это у меня надо запустить фичу быстрее, заоптимизурем потом»? :)


    1. Nikelandjelo
      01.07.2017 00:24
      +2

      AMP сайты не грузятся быстрее, грузятся они столько же времени.


      У вас есть данные подтверждающие это? Как раз с ампом сайты должны быстрее грузится. Амп сильно ограничивает число js который можно использовать на сайте и просто физически сложно сделать сайт, который будет медленно грузится на ампе. Вы же сами дальше пишете
      В погоне за изучением пользователей они накрутили такое количество трекинговых инструментов, что они значительно замедляют страницу.


      Да, если аккуратно откалибровать сайт, то он будет быстрее ампа. Амп разработчики как раз это и утверждают, но если у вас нет кучи высококвалифицированных разработчиков, которые будут заниматься оптимизацией, то амп как раз хорошо подходит. На нем просто сложно написать медленный сайт.


  1. mixa4634_1
    30.06.2017 13:25

    И правильно. Половина сайтов с телефона нечитаема.


  1. Goodkat
    30.06.2017 19:55

    Мне как пользователю не нравится AMP по всем тем же причинам, что перечислил автор статьи, но есть у него одно большое преимущество: сейчас всё больше сайтов отказываются показывать контент требуя отключить адблокер, но в AMP пока всё ОК :)


    1. TaHKucT
      30.06.2017 23:12
      +2

      Но это требование можно отключить через адблок


  1. algotrader2013
    01.07.2017 17:54

    С точки зрения пользователя рассуждаю так: можно представить всеобщий треш, когда все сайты с пейволами/требованиями регистрации, адаптации под мобильный телефон нет, окантовка контента полностью из баннеров, стоит десяток жучков, а сам сайт — это помесь из нескольких js фреймворков, причем без минификации и вебпака. Ну, и сервер где-то в Африке стоит с серьезными проблемами, как с производительностью, так и шириной и загруженностью канала. Пусть это будет оценка 1*. И есть всеобщее благо, когда отличная легковесная мобильная версия, которая даже не требует js для полноценного отображения, и разумеется, на стороне клиента есть прелоад, все красиво и быстро. Пусть это будет 5*.

    Лично я рассматриваю амп, как некий компромисс, что-то вроде «давайте сделаем 4*, но для всех, и всем будет почти хорошо, ну и вебмастерам даже не так то много и делать придется». В самом деле, почему бы и нет. Как альтернатива, гугл мог бы просто сказать: вот список из 25 нефункциональных требований, кто не выполнил, то добро пожаловать на сотую страницу в выдаче. Тогда бы всем вебмастерам пришлось нехило попотеть, нанимать дорогих программистов, платить за мощные cервера и CDN, и так далее. А так просто плагин на WP установить. В чем проблема то? Есть ли альтернатива получить хотя бы 3* в среднем?

    PS: еще бы пиктограмму замочка возле ссылок с пейволами в выдаче гугла…


  1. Scf
    01.07.2017 23:39

    AMP *в теории* должно быть быстрее, т.к. хтмл хостится на CDN гугла, у которого есть датацентры во всех регионах мира.


  1. alexeisirotkin
    03.07.2017 09:11
    +1

    У Гугла вообще все прекрасно. Берут под свое крыло бредосервис PageSpeed, насаждают ssl, рекомендуют подключать AMP. В итоге просто забирают себе весь контент + делятся статистикой со своими партнерами. Молодцы. И все это под красивыми воззваниями делать сайты быстрее.
    Какая-то сторонняя статистика гуглу не нужна. В целом, современный сайт должен располагаться на серверах гугла, иметь статистику гугла и подключаться к куче серверов, которые нужны гуглу.


  1. Slams
    04.07.2017 13:04
    +1

    После подключения AMP:

    1. Время на сайте и количество просмотров страниц на пользователя.
    2. Уменьшилась вовлеченность (комментарии/шары/etc)
    3. Упал доход
    4. Позиции никак не изменились.
    5. Возросло время и затраты на поддержку сайта.


    Отключил через полтора месяца и никак не жалею.


  1. Smalll
    04.07.2017 14:33

    Кнопка закрыть работает вполне логично. Как раз было бы странно, если нажав на крестик, ожидая вернуться обратно к поиску, ты попадаешь на сайт компании BBC, который грузится заметно медленнее оптимизированных страниц. В конце концов есть логотип, клик по которому, вероятно и выполняет функцию редиректа.

    Вспомните как вы читаете новости. Вы загуглили интересующую новость, прочли её, перешли в другой источник, прочли там и так случайное число итераций.

    Ты используешь АМП и получаешь первое место в выдаче, это ведь хорошо. Откажешься от АМПа и твой сайт всё равно будет ниже выдачи тех сайтов, которые используют АМП. Логика вроде простая, не понимаю этих слёз и страданий.


    1. sumanai
      04.07.2017 17:01

      Ты используешь АМП и получаешь первое место в выдаче, это ведь хорошо.

      Гугл где-то гарантирует первое место, если используется АМР?


      1. Smalll
        05.07.2017 10:12

        Не гарантирует, это, конечно грубо сказано, но АМП — по сути оптимизированная страница, а гугл заявил, что отдаст предпочтение сайтам с быстрой загрузкой. При прочих равных АМП это дополнительная возможность попасть в топ, получить иконку, привлекательный снипет и выделить свой сайт в выдаче.

        Даже если сайт не попал в топ выдачи, АМП всё равно великолепен, потому что показывает прокрутку по сайту со списком релевантных запросу новостей, что опять таки увеличивает привлекательность снипета и даёт возможность ознакомиться с похожими запросу новостями.


        1. sumanai
          05.07.2017 18:22

          AMP- это ограничения. Вполне возможно всё это реализовать самому и даже сделать быстрее, так как вместо обобщённого фреймворка можно написать свой, строго заточенный под конкретный сайт.


    1. serg_p
      04.07.2017 17:06

      У СЛОЖНОПОДЧИНЁННЫХ натур — логика и страдания уживаются одновременно. Понимать мало чего — или вселенная.


  1. odissey_nemo
    05.07.2017 15:06

    Как хорошо жить и не знать ничего про Google, AMP, смартфоны. Надо будет и кнопочный телефон выбросить. Пока требуют носить с собой корпоративную симку, это затруднительно. Но как только, так сразу.


  1. lipton_ice_tea
    06.07.2017 13:20

    А еще, если AMP-версия сайта располагается на поддомене — то Яндекс может ее проиндексировать как обычные страницы, т.к. не понимает кроссдоменный каноникал. В итоге это создает трудности в продвижении основных страниц в Яндексе =)