Привет.
У меня сайт на asp.net 3.5 и iis7 и используеться viewstate.
Для SEO сайта попросили сместить код viewstate на странице в самый низ.
Тоесть на странице есть параметр <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="[много кода....]
Ктото подскажет как его сместить в низ страницы?
Здравствуйте, Duke_Nuken, Вы писали:
D_N>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>Для SEO сайта попросили сместить код viewstate на странице в самый низ. D_N>Тоесть на странице есть параметр <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="[много кода....] D_N>Ктото подскажет как его сместить в низ страницы?
У меня есть глубокое подозрение, что только ручками. Т.е. сделать свой HttpModule и там фильтровать после того, как отработал запрос, содержимое сгенерированной страницы.
Здравствуйте, Duke_Nuken, Вы писали:
D_N>Привет. D_N>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>Для SEO сайта попросили сместить код viewstate на странице в самый низ. D_N>Тоесть на странице есть параметр <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="[много кода....] D_N>Ктото подскажет как его сместить в низ страницы?
Можно перейти на ASP.NET MVC — там нет вьюстейта в принципе (ибо и стейта-то в общем-то нету)...
Здравствуйте, Duke_Nuken, Вы писали:
D_N>Привет. D_N>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>Для SEO сайта попросили сместить код viewstate на странице в самый низ.
А объяснили каким образом положение viewstate влияет на seo?
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Duke_Nuken, Вы писали:
D_N>>Привет. D_N>>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>>Для SEO сайта попросили сместить код viewstate на странице в самый низ. G>А объяснили каким образом положение viewstate влияет на seo?
G>Почему-то есть подозрение что никаким.
есть такое мнение: Google only indexes the first (n) bytes of the page
там приводится ссылки как опустить вниз viewstate
Здравствуйте, cadet354, Вы писали:
C>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, Duke_Nuken, Вы писали:
D_N>>>Привет. D_N>>>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>>>Для SEO сайта попросили сместить код viewstate на странице в самый низ. G>>А объяснили каким образом положение viewstate влияет на seo?
G>>Почему-то есть подозрение что никаким. C>есть такое мнение: C>Google only indexes the first (n) bytes of the page
Или чушь или поправили. гугль нормально codeplex индексирует, а там вначале 40кб вьюстейта.
Здравствуйте, gandjustas, Вы писали:
G>А объяснили каким образом положение viewstate влияет на seo? G>Почему-то есть подозрение что никаким.
У меня штатовские партнеры (их сайт) и у них есть какието концы в гугле.
Вообщем как они мне сказали что есть 2 сайта и на одном будет куча невразумительного
текста (например, ViewState кода) и потом слово "VIAGRA", а на другом сначала "VIAGRA",
а потом все остальное то гугл выдает второй сайт, как более ролевантный. Это вроде логично.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>У меня есть глубокое подозрение, что только ручками. Т.е. сделать свой HttpModule и там фильтровать после того, как отработал запрос, содержимое сгенерированной страницы.
Совершенно верно. Вьюстейт выводится методом Page.RenderViewStateFields при вызове его из BeginFormRender. Порядок вызова BeginFormRender зашит в RenderChildren. Если бы не internal на всём, то можно было бы заоверрайдить RenderChildren, но увы.
В принципе, ничего особенно военного тут нету — поскольку общая длина останется той же, можно схитрить и передвинуть viewstate прямо в буфере.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Duke_Nuken, Вы писали:
D_N>Привет. D_N>У меня сайт на asp.net 3.5 и iis7 и используеться viewstate. D_N>Для SEO сайта попросили сместить код viewstate на странице в самый низ. D_N>Тоесть на странице есть параметр <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="[много кода....] D_N>Ктото подскажет как его сместить в низ страницы?
Его двигать вниз нельзя.
1) Есть куча людей которые начинают жать на кнопки на странице не дожидаясь пока она вся загрузится.
2) Вьюстейт это стандартный механизм WebForms для поддержания состояния страницы (что понятно из названия ) и малейшее его изменение на клиенте без участия в этом сервера приводит к падению страницы с ошибкой.
3) Даже если и возможно долго шаманя и призывая на помощь духов разместить вьюстейт внизу страницы — люди из первого пункта завалят вас жалобами что "сайт падает постоянно".
Варианта у вас 2:
1) Постаратся поменьше использовать вьюстейт или не использовать вообще. (Если вы его уже повсемесно используете — то скорее всего это у вас не выйдет, или займет недопустимо большое время на оптимизацию всего сайта)
2) Вообще не отдавать ViewState клиенту а хранить его всегда на сервере. Тоесть вы забираете весь вьюстейт у страницы и сохраняете например в БД перед отправкой страницы клиенту (уже с пустым __VIEWSTATE хидден полем). А при посттбеке отдаете странице ее ViewState из базы. Механизм очень прозрачен и все остальные контролы вышего сайта вообще ничего не заметят и смогут по прежнему пользоваться ViewState. Вот статья для ознакомления: http://blogs.msdn.com/alikl/archive/2008/01/02/basic-sample-how-to-keep-asp-net-viewstate-on-the-server.aspx (Всего то переопределить 2 метода в базовой странице — самый оптимальный вариант по моему.
А еще через какоето время вам начнут ныть что ClientID длинные
Но это совсем другая история...