Максим Павловский Twitter: @paulousky

advertisement
Максим Павловский
http://www.maxpaulousky.com/
Twitter: @paulousky
Поискóвая оптимизация;
Поискóвый запрос;
Поискóвое слово;
Поискóвые системы
Новый орфоэпический словарь русского языка.
Произношение. Ударение. Грамматические
формы / Т.Ф. Иванова. – 2-е изд., стереотип., –
М.: Рус. яз.–Медиа, 2005. – XIV, 893, [5] c.
Если сайта нет в поисковой системе, то
найти его так же трудно, как обнаружить
метеорит размером со спичечную головку
Большая часть трафика сайта
генерируется поисковыми системами;
Когда не знаешь где искать, используешь
поисковую систему;
Трафик ≡ доход.
Трафик моего блога www.maxpaulousky.com
Данные загружаются динамически с
сервера;
Данные предоставляются только в
момент выполнения клиентского кода;
Поисковые системы не могут
обрабатывать не HTML код
Реализация доступа к содержимому
посредством прямых ссылок (Deep
linking);
Создание карты сайта (Sitemap) для
поисковых систем; www.sitemaps.org
Предоставление данных для индексации
поисковыми системами;
SEO Оптимизация Silverlight приложений,
построенных на базе MVVM паттерна
//Global.asax.cs
//Определяем отображение Url на физические
//страницы:
private void RegisterRoutes(RouteCollection
routes){
routes.MapPageRoute(“all-vacancies”,
“all-vacancies”, "~/Default.aspx“, false);
routes.MapPageRoute(“vacancies-in{region}”, “vacancies-in-{region}”,
"~/Default.aspx“, false);
routes.MapPageRoute(“vacancy-{id}”,
“vacancy-{id}”, "~/Default.aspx“, false);
}
//App.xaml
//Определяем соответствие Url в Siverlight:
<Nav:UriMapper x:Key="uriMapper">
<Nav:UriMapping Uri="/all-vacancies"
MappedUri="/View/Module.xaml?module=Dashboar
dModule"/>
<Nav:UriMapping Uri="/vacancies-in{region}”MappedUri="/View/Module.xaml?module
=DashboardModule&region={region}"/>
<Nav:UriMapping Uri="/vacancy-{id}"
MappedUri="/View/Module.xaml?module=DetailsM
odule&id={id}"/>
</Nav:UriMapper>
//Module.xaml.cs
//Когда пользователь переходит по ссылке
protected override void OnNavigatedTo
(NavigationEventArgs e){
//Получаем имя модуля
string moduleParam =
NavigationContext.QueryString["module"];
//Загружаем и отображаем его
ShowModule(moduleParam);
}
//Sitemap.ashx.cs
public void ProcessRequest(HttpContext
context){
XElement root = new XElement("urlset");
root.Add(CreateAllVacanciesElement());
root.Add(CreateRegionVacanciesElements());
root.Add(CreateVacancyByIdElements);
context.Response.Write(root.ToString());}
//Default.aspx
<asp:GridView ID="VacanciesGridView"
runat="server" DataSourceID="VacanciesDDS“
AutoGenerateColumns="true“ />
<cc1:DomainDataSource ID="VacanciesDDS"
runat="server”
DomainServiceTypeName="SLJobBoardSEO.Web.Vac
anciesDomainService” />
//Default.aspx.cs
switch(((Route)RouteData.Route).Url)
{
//получаем параметры запроса из текущего Route
case Defines.RoutingNames.VacanciesByRegion:
//Указываем метод для получения данных
VacanciesDDS.QueryName="LoadVacanciesByRegion";
//Передаём параметры для получения данных
VacanciesDDS.QueryParameters.Add(
RouteData.Values.First().Key, //region
RouteData.Values.First().Value.ToString());
break;
}
Microsoft TechDays
http://www.techdays.ru
Основы SEO http://bit.ly/SeoBasics;
Siverlight Job Board Seo Demo
http://bit.ly/SLJBSeo;
Реализация SEO для Siverlight от Брэда
Абрамса http://bit.ly/AbramsSeo;
Пример интеграции Siverlight Navigation и
MVVM от Джереми Ликнесса
http://bit.ly/NavigationPrism
Прочее: http://bit.ly/SLSeoIlluminate,
http://bit.ly/6TipsSeo, http://bit.ly/SLSeoCP
Download