На ваш странный вопрос ответ простой - чем меньше CSS, JS, HTML и картинки, тем быстрее. А что значит 300 000 знаков? 300 килобайт? Если в минифицированном виде, то имхо многовато.
Точно так же, как вы определяете, что сайдбар должен скроллиться, можно определить момент, когда он должен остановиться. Примерно так: scrollTop - sidebar.height - footer.height.
Это, конечно, оффтоп и к вопросу не имеет отношения, но соглашусь с dimonchik2013: сайт должен в течении нескольких секунд составить у потенциального заказчика "правильное" мнение, что он пришел туда, куда нужно. По ссылке автора я долгое время не мог определиться куда мне все-таки смотреть, чтобы понять туда ли я попал. Когда же у меня в голове немного шум поутих, я начал читать текст (нах он там?) и у меня возникло стойкое ощущение, что я это уже где-то читал. Ах да, это было лет 10-15 назад. В те времена было много подобных сайтов частников и мелких веб-студий, которые взахлеб рассказывали, какие они крутые и почему заказчик не может обойтись без сайта. Ну, блин, заказчик УЖЕ пришел на этот сайт и он УЖЕ хочет заказать сайт, следовательно, ему не нужно лишний раз говорить о том, что ему нужен сайт. Его нужно лишь подтолкнуть к тому, чтобы он заказал именно у вас, а не у конкурента. Обилие текста (причем не самого хитрого и с ошибками) - не самый лучший способ. Люди не любят читать. Заказчик хочет получить ответы на вопросы: сделают ли тут то, что мне надо и так, как мне надо и сколько это будет стоить. Причем ответ на последний вопрос, как это ни странно, не нужно давать прямо, путем размещения стоимости услуг - заказчик сам составит примерную оценку, взглянув на сам сайт и на портфолио и эта оценка в 99% бывает достаточно точной. Вот зайду я на тот же design.ru и сразу вижу, что тут дорого (не призываю воспринимать как эталон). Можно указать лишь нижнюю планку. К чему это все? Да к тому, что автору, вместо того, чтобы думать о SEO, нужно для начала причесать свой продукт. Никто не пойдет чинить сапоги к сапожнику без сапог.
Станислав, ясно, значит первый раз я не совсем правильно интерпретировал вопрос. Но тогда встречный вопрос: на вашем скрине видно, что, к примеру, в первом ряду есть три картинки, при этом самая левая из них меньше, чем остальные две, которые одинакового размера. Как понять, в каком соотношении должны быть ширина всех картинок в этом ряду? Они все должны быть одинаковой ширины? То бишь формула: доступнаяШирина / количествоКартинок = ширинаКартинки?
в общем, не важно. Когда вы переходите в своем реакт-приложении по ссылке, то браузер никакой запрос на сервер не отправляет, поскольку все страницы находятся на стороне клиента. Однако, есть одно но: что будет, если нажать в браузере F5? В таком случае браузер обратится к серверу, чтобы получить HTML-страницу, в которой уже на стороне клиенте будет рендерится реакт-приложение. К примеру, находимся мы по урлу /news, нажали на ссылку, перешли на урл /news/1. Теперь, если нажать F5, браузер отправит на сервер запрос типа GET /news/1, но поскольку у вас в экспрессе нет такого роута, то и возвращается 404 ошибка.