SEO хостинга Firebase для SPA

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

Используя такую ​​службу, как http://prerender.io

Вы заметите, что здесь представлены различные правила конфигурации сервера, которые демонстрируют этот прокси: https://prerender.io/getting-started#install-it

Используя https://www.firebase.com/docs/hosting/guide/url-redirects-rewrites.html поддерживает ли Firebase такой уровень сложности?

Например - как мне реализовать эту конфигурацию nginx с помощью правил перезаписи Firebase:

server {
    listen 80;
    server_name example.com;

    root   /path/to/your/root;
    index  index.html;

    location / {
        try_files $uri @prerender;
    }

    location @prerender {
        #proxy_set_header X-Prerender-Token YOUR_TOKEN;

        set $prerender 0;
        if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest") {
            set $prerender 1;
        }
        if ($args ~ "_escaped_fragment_") {
            set $prerender 1;
        }
        if ($http_user_agent ~ "Prerender") {
            set $prerender 0;
        }
        if ($uri ~ "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent)") {
          set $prerender 0;
        }

        if ($prerender = 1) {
            rewrite .* /$scheme://example.com$request_uri? break;
            proxy_pass http://service.prerender.io;
        }
        if ($prerender = 0) {
            rewrite .* /index.html break;
        }
    }
}

В качестве примечания - я думаю, что это здорово, что у вас, ребята, теперь есть поддержка для таких вещей, как:

"rewrites": [ {
  "source": "**",
  "destination": "/index.html"
}]

Но найти это на самом деле решает только полдела, с которой сталкивается SPA.


person Dan Kanze    schedule 02.09.2014    source источник
comment
Спасибо, Дэн! Кстати, это похоже на обратную связь, более подходящую для [email protected] или списка рассылки. Есть ли здесь конкретный вопрос, который следует решить, используя формат вопросов и ответов SO?   -  person Kato    schedule 02.09.2014
comment
@Kato Да, ха-ха, можно ли реализовать правила прокси, которые можно увидеть в примерах шаблонов, которые я связал, с помощью вашего механизма правил перезаписи? Я обновил вопрос, чтобы сделать его более ясным.   -  person Dan Kanze    schedule 02.09.2014
comment
К сожалению, это немного выходит за рамки текущих правил перезаписи. Я попрошу одного из наших гуру хостинга зайти сюда и проверить.   -  person Kato    schedule 02.09.2014
comment
@Kato Спасибо. Если это невозможно, мне интересно узнать о следующих шагах, которые можно запросить в качестве дополнительной функции - будь то использование более сложных правил перезаписи или использование вашей собственной службы предварительной обработки / кеширования - эта проблема, вероятно, удерживает многих людей от использования вашей хостинговой платформы. просто потому, что SEO по-прежнему имеет решающее значение для большинства SPA.   -  person Dan Kanze    schedule 03.09.2014
comment
Я тоже боролся с этим, и в конечном итоге мне пришлось отказаться от хостинга Firebase и перейти на Divshot. Они делают Prerender действительно простым "из коробки": docs.divshot.com/services/prerender < / а>   -  person Dustin    schedule 10.11.2014


Ответы (2)


Разработчик ядра Firebase здесь

Firebase объявила о базовой поддержке SEO, которая позволяет ему работать с роботом Googlebot на ng-conf 2015 в марте. См. эту презентацию для объявления.

Firebase по-прежнему стремится работать с инструментами предварительного рендеринга, такими как prerender.io и Brombone, в какой-то момент, чтобы предоставить еще более сложные варианты для SEO. Но это должно «просто работать», если вы обновитесь до последней версии клиента Firebase (2.2.4 на момент публикации).

person jwngr    schedule 12.05.2015
comment
Рождественское желание - надеемся на полную поддержку (поисковые системы, отличные от Google, теги Facebook OpenGraph, карточки Twitter и т. д.), а не только поисковую систему Google. - person JisuKim82; 24.12.2015
comment
Привет, @jacobawenger, есть ли новости по этому поводу? SPA, размещенный на firbase, плохо работает с такими инструментами, как slack или fb. Какие инструменты или плагины мы можем добавить? - person Dvid Silva; 09.06.2017
comment
Ознакомьтесь с firebase.googleblog.com/2017/06/. - person jwngr; 10.06.2017
comment
Привет, сейчас 2018 год. Есть ли какие-нибудь обновления о том, как подключить prerender.io к приложению vue js? Я буквально ищу в Интернете решение - person iSaumya; 16.09.2018
comment
@jwngr есть ли дальнейшие обновления по этому поводу? Можно / нужно ли использовать такой плагин, как prerender.io, для SPA, размещенных на Firebase? - person mesqueeb; 20.09.2019

По состоянию на 10 октября 2014 г. Firebase официально заявляет «нет»: https://github.com/firebase/firebase-tools/issues/33.

Альтернативой является хостинг Divshot. Они предлагают решение Prerender, которое очень легко реализовать: http://docs.divshot.com/services/prerender < / а>

person Dustin    schedule 10.11.2014
comment
Есть ли у кого-нибудь отзывы от Firebase по пререндеру? - person t3__rry; 22.04.2016