Адна з праблем пры перамяшчэнні логікі вашага прыкладання з бэкэнд (Rails, Django ці іншае) да новай мяжы вэб-фреймворкаў JS, такіх як AngularJS і EmberJS, - гэта тое, як вы можаце зрабіць іх SEO-дружалюбнымі, бо гэтыя JavaScript-прыкладанні адпраўляюцца ў браўзэр. Вашым вэб-серверам у якасці 200 ОК, незалежна ад таго, калі пасля загрузкі прыкладання старонка, якая прадстаўлена, не знойдзена, альбо мае пэўныя метатэгі, такія як назва і апісанне.
Гэта, напрыклад, як выглядае раздзел HEAD тыповага кутняга прыкладання HTML:
1 2 3 4 5 6 7 8 9 10 <head> <meta charset = "utf-8"> <title> {{pageTitle}} </title> <meta name = "keywords" content = "{{metaKeywords}} "> <meta name =" description "content =" {{metaDescription}} "> <link type =" image / x-icon "data-ng-href =" https://example.org/favicon.ico "rel = "ярлык значок"> <link rel = "styleheet" href = "https://example.org/screen.css"> </head>
Як бачыце, загаловак старонкі, які SE, як Google, выкарыстоўваюць Google у якасці асноўнага тэксту на індэксаваных старонках, з'яўляецца простым запаўняльнікам для зменнай, якая прыходзіць пасля загрузкі і выканання ўласнай логікі. гэта:
Такім чынам, як вы будзеце пераканацца, што пошукавыя сістэмы сапраўды ўбачаць постпрацаваны HTML, а не першы, які будзе адпраўлены з вашага сервера?
У вас ёсць, па меншай меры, некалькі розных рашэнняў, якія выкарыстоўваюць адну і тую ж аснову.
Пасля таго, як баіцца, плашч - гэта адзіны спосаб
Практыка плашч шмат гадоў пакаралі пошукавымі сістэмамі, але аказалася адобрана Google калі ў вас ёсць прыкладання на аснове JS.
У асноўным гэта складаецца ў тым, каб служыць пошукавай машыне іншую версію, якая ўжо была адлюстравана, а не той, якую вы служыце звычайнаму наведвальніку, які павінен запускаць JS Framework у браўзэры.
Працоўны працэс вельмі просты: замест таго, каб служыць вэб-серверам ваш традыцыйнае прыкладанне, якое вы маглі б служыць звычайнаму карыстачу, у выпадку, калі бот вы проста перасылае запыт іншаму прыкладанню , якое будзе запытваць першапачатковую старонку, пачакайце яго рэндэрынгу праз безгаловы браўзэр, як PhantomJS а затым адправіць поўна адрэндаванае змесціва боту:
Гэта вельмі просты спосаб эфектыўнага ўкаранення SEO у JS-прыкладаннях, і гэта можа быць дасягнута з дапамогай некалькіх інструментаў, а не пісаць самастойна.
BromBone
BromBone гэта паслуга, якая скануе вашу карту сайта, стварае здымак, які адлюстроўвае HTML, захоўвае яго на Amazon (як мяркуецца, S3 ) і пазбаўляе вас ад болю налады прыкладання SEO-праграмнага забеспячэння самастойна.
У асноўным ён дзейнічае як прыкладанне SEO, якое відаць на малюнку, але замест таго, каб адлюстроўваць старонкі на лету, ён робіць гэта, гледзячы на вашу карту сайта: як толькі бот трапляе ў вэб-сервер, вы можаце праксісаваць яго на старонку BromBone так, каб яна атрымала фактычны адказ ад сервера.
Хоць паслуга ёсць вельмі даступны спадзявацца на карту сайта, гэта крыху хітры, таму што, ну ... што адбудзецца, калі ў вас ёсць новыя старонкі, якія не ўключаны ў карту сайта?
Пасля ўключэння гэтага патрабавання мы, у Намши, вырашылі выбраць нешта яшчэ.
Prerender
Prerender гэта як SaaS, так і бібліятэка з адкрытым зыходным кодам які prerendrs старонкі на лета, выкарыстоўваючы PhantomJS і некаторыя іншыя добрыя хітрыкі служыць правільным кодам стану і загалоўкам HTTP .
Адзіны недахоп пры рэндэрынгу на лету - гэта тое, што бота прыйдзецца пачакаць крыху больш часу, каб атрымаць адказ, і гэта можа прывесці да пакарання пошукавымі сістэмамі: рашэнне вельмі простае, бо вы проста можаце разагрэць прэзент. Кэш па сваім меркаванні, націснуўшы URL-адрасы, якія вы хочаце кэшаваць. Для абнаўлення кэша Prerender дазваляе рабіць POST-запыты, каб:
- GET-запыт на http://prerender.example.org/http://example.org/foo.html будзе папярэдне размяшчаць старонку на лету, каб вы маглі кэшаваць будучыя запыты сапраўднымі ботамі.
- POST-запыт на http://prerender.example.org/http://example.org/foo.html абнавіць папярэдне змест
Prerender дае вам крыху большую свабоду ў параўнанні з Brombone, але гэта патрабуе ад вас працы ўручную, па меншай меры, калі вы хочаце запусціць яго на ўласных серверах, не выкарыстоўваючы іх рашэнне ў якасці SaaS; у любым выпадку, іх рэжымы цэнаўтварэння ёсць вельмі даступны таксама.
Што я буду выкарыстоўваць?
У цэлым, добра, што ў 2014 годзе мы, нарэшце, можам сказаць, што стварэнне JavaScript-праграм для дружалюбных SEO больш не з'яўляецца праблемай!
О адбудзецца, калі ў вас ёсць новыя старонкі, якія не ўключаны ў карту сайта?Што я буду выкарыстоўваць?