{"id":20681,"date":"2021-06-14T10:13:46","date_gmt":"2021-06-14T08:13:46","guid":{"rendered":"https:\/\/nprofit.net\/pl\/?p=20681"},"modified":"2021-06-14T10:13:46","modified_gmt":"2021-06-14T08:13:46","slug":"react-vs-seo","status":"publish","type":"post","link":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/","title":{"rendered":"React vs SEO"},"content":{"rendered":"\n<p>React.js jest jednym z najpopularniejszych framework\u00f3w do tworzenia aplikacji internetowych. Pozwala programi\u015bcie rozwin\u0105\u0107 skrzyd\u0142a i osi\u0105gn\u0105\u0107 niczym nieograniczone efekty. Niestety, powoduje on te\u017c du\u017co problem\u00f3w, kt\u00f3re nie maj\u0105 pozytywnego wp\u0142ywu na SEO. W tym artykule chcia\u0142bym przedstawi\u0107 niedogodno\u015bci zwi\u0105zane z pozycjonowaniem strony stworzonej w tej technologii oraz to, w jaki spos\u00f3b mo\u017cesz ich unika\u0107 lub je rozwi\u0105za\u0107, aby stworzy\u0107 witryn\u0119 opart\u0105 na React.js, kt\u00f3ra znajdzie si\u0119 na wysokiej pozycji w wynikach wyszukiwania. Aby zacz\u0105\u0107 temat pozycjonowania takich stron, zaczn\u0119 od tego, w jaki spos\u00f3b dzia\u0142aj\u0105 boty Googla.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Prze\u0142\u0105cznik Spisu Tre\u015bci\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #003366;color:#003366\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #003366;color:#003366\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Jak_dzialaja_boty_Google\" >Jak dzia\u0142aj\u0105 boty Google?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Najczestsze_problemy_z_indeksowaniem_stron_opartych_na_Reactjs\" >Najcz\u0119stsze problemy z indeksowaniem stron opartych na React.js<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Powolny_proces_indeksowania\" >Powolny proces indeksowania<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Bledy_w_kodzie\" >B\u0142\u0119dy w kodzie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Wyczerpanie_budzetu_na_indeksowanie\" >Wyczerpanie bud\u017cetu na indeksowanie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#Co_zrobic_zeby_strona_JavaScript_byla_lepiej_pozycjonowana\" >Co zrobi\u0107, \u017ceby strona JavaScript by\u0142a lepiej pozycjonowana?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Jak_dzialaja_boty_Google\"><\/span>Jak dzia\u0142aj\u0105 boty Google?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Do pozycjonowania stron internetowych Google u\u017cywa bot\u00f3w, kt\u00f3re przechodz\u0105 przez witryny. Tworz\u0105c stron\u0119, mo\u017cna podj\u0105\u0107 decyzj\u0119, w jaki spos\u00f3b powinny si\u0119 po niej porusza\u0107, nale\u017cy w tym celu umie\u015bci\u0107 odpowiednie regu\u0142y w pliku robots.txt. Pierwszym krokiem wykonywanym przez boty jest zaindeksowanie podstron widniej\u0105cych na Twojej witrynie. W trakcie tego procesu robot Google analizuje tre\u015b\u0107 strony i stara si\u0119 j\u0105 zrozumie\u0107 oraz zapisuje j\u0105 w indeksie Googla, kt\u00f3ry jest ogromn\u0105 baz\u0105 danych zawieraj\u0105c\u0105 informacje o wszystkich stronach internetowych. Nast\u0119pny krok to obs\u0142uga rankingu u\u017cywanego w momencie wyszukiwania frazy przez u\u017cytkownika przegl\u0105darki. Wtedy Google przechodzi do swojego indeksu i wyszukuje najtrafniejsze wyniki dla danego zapytania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Najczestsze_problemy_z_indeksowaniem_stron_opartych_na_Reactjs\"><\/span>Najcz\u0119stsze problemy z indeksowaniem stron opartych na React.js<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Powolny_proces_indeksowania\"><\/span>Powolny proces indeksowania<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Proces skanowania i indeksowania strony opartej na HTML jest o wiele mniej skomplikowany od skanowania strony opartej na React.js, co pozwala na szybsze jej indeksowanie. Por\u00f3wnajmy te dwa procesy. Oto jak wygl\u0105da uproszczony proces dotycz\u0105cy strony opartej na HTML w kilku krokach:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Google bot pobiera pliki HTML.<\/li><li>Wycina linki znajduj\u0105ce si\u0119 w kodzie, by m\u00f3c przetwarza\u0107 kilka stron naraz.<\/li><li>Robot pobiera pliki CSS.<\/li><li>Wszystkie pliki odsy\u0142a do systemu indeksuj\u0105cego Caffeine.<\/li><li>Ten system ostatecznie indeksuje nasz\u0105 stron\u0119.<\/li><\/ol>\n\n\n\n<p>Jak mo\u017cemy zauwa\u017cy\u0107, proces ten jest w miar\u0119 prosty oraz szybki do wykonania. Zupe\u0142nie inaczej jest z kodem JavaScript. Sp\u00f3jrzmy na proces indeksowania strony opartej na tej technologii:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Tak jak w poprzednim przypadku Google bot w pierwszym kroku pobiera pliki HTML.<\/li><li>Nast\u0119pnie pobiera pliki CSS oraz JavaScript.<\/li><li>Kolejnym krokiem jest analiza, kompilowanie oraz wykonanie kodu JavaScript strony przez WRS (Web Rendering Service).<\/li><li>WRS pobiera dane z zewn\u0119trznego API oraz bazy danych.<\/li><li>Dopiero po z\u0142o\u017ceniu ca\u0142ej strony system mo\u017ce znale\u017a\u0107 nowe linki i doda\u0107 je do kolejki indeksowania.<\/li><\/ol>\n\n\n\n<p>Powy\u017cszy proces jest o wiele bardziej z\u0142o\u017cony oraz skomplikowany, co nie sprzyja szybkiemu indeksowaniu strony i ostatecznie wp\u0142ywa na jej pozycjonowanie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bledy_w_kodzie\"><\/span>B\u0142\u0119dy w kodzie<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>W przeciwie\u0144stwie do HTML przetwarzanie b\u0142\u0119d\u00f3w w JavaScript jest o wiele bardziej rygorystyczne i nawet najmniejsza liter\u00f3wka lub b\u0142\u0105d sk\u0142adniowy mog\u0105 skutecznie uniemo\u017cliwi\u0107 zaindeksowanie strony przez boty. Dzieje si\u0119 tak dlatego, \u017ce parser JavaScript ca\u0142kowicie odrzuca kod zawieraj\u0105cy jakikolwiek b\u0142\u0105d. Wystarczy, aby napotka\u0142 znak w nieoczekiwanym miejscu \u2013 wymusza wtedy zatrzymanie analizy bie\u017c\u0105cego skryptu oraz wy\u015bwietla SyntaxError. Je\u015bli do takiego b\u0142\u0119du dojdzie w momencie, gdy robot Googla jest na stronie, zobaczy on pustk\u0119 i zaindeksuje j\u0105 jako stron\u0119 bez tre\u015bci, czego lepiej unika\u0107.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wyczerpanie_budzetu_na_indeksowanie\"><\/span>Wyczerpanie bud\u017cetu na indeksowanie<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Czym jest bud\u017cet na indeksowanie? To maksymalna liczba stron, kt\u00f3re roboty wyszukiwarek mog\u0105 zaindeksowa\u0107 w okre\u015blonym czasie. Problem z JavaScript polega na zbyt d\u0142ugim oczekiwaniu przez Google na za\u0142adowanie, przeanalizowanie i wykonanie skrypt\u00f3w. Ale co oznacza to dla nas? Ni mniej, ni wi\u0119cej tyle, \u017ce je\u015bli skrypty na stronie b\u0119d\u0105 za wolne, bot wyczerpie bud\u017cet przed zaindeksowaniem witryny i j\u0105 opu\u015bci, co ostatecznie wp\u0142ynie negatywnie na pozycj\u0119 strony w wynikach wyszukiwania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Co_zrobic_zeby_strona_JavaScript_byla_lepiej_pozycjonowana\"><\/span>Co zrobi\u0107, \u017ceby strona JavaScript by\u0142a lepiej pozycjonowana?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Jednym ze sposob\u00f3w jest zastosowanie renderowania wst\u0119pnego. Jest to wyj\u015bcie dobre pod wieloma wzgl\u0119dami w momencie, gdy roboty Googla nie mog\u0105 poprawnie renderowa\u0107 stron. Do renderowania wst\u0119pnego u\u017cywamy tak zwanych pre-render\u00f3w, kt\u00f3re generuj\u0105 statyczn\u0105 wersj\u0119 naszej strony w HTML i to j\u0105 podsy\u0142aj\u0105 botom, gdy te wchodz\u0105 na nasz\u0105 witryn\u0119. Rozwi\u0105zanie to ma zar\u00f3wno swoje zalety, jak i wady. Do tych pierwszych mo\u017cemy zaliczy\u0107 fakt, \u017ce programy do renderowania wst\u0119pnego wykonuj\u0105 wszystkie nowoczesne skrypty JavaScript i przekszta\u0142caj\u0105 je na kod HTML, implementacja wymaga minimalnej modyfikacji kodu, a mo\u017cliwe nawet, \u017ce wcale nie b\u0119dzie to konieczne. S\u0105 te\u017c wady, z kt\u00f3rymi trzeba si\u0119 liczy\u0107, wybieraj\u0105c t\u0119 opcj\u0119. Nie jest to na pewno rozwi\u0105zanie dedykowane stronom, kt\u00f3re cz\u0119sto zmieniaj\u0105 swoj\u0105 tre\u015b\u0107, w takim przypadku Google mo\u017ce uzna\u0107, \u017ce pr\u00f3bujemy zamaskowa\u0107 przed jego botami zawarto\u015b\u0107 strony i skutecznie uprzykrzy nam proces pozycjonowania takiej witryny. Kolejnymi minusami s\u0105:<\/p>\n\n\n\n<p>&#8211; czas trwania renderowania wst\u0119pnego, kt\u00f3ry jest zale\u017cny od rozmiar\u00f3w witryny i mo\u017ce trwa\u0107 bardzo d\u0142ugo,<\/p>\n\n\n\n<p>&#8211; fakt, \u017ce us\u0142ugi wst\u0119pnego renderowania nie s\u0105 darmowe,<\/p>\n\n\n\n<p>&#8211; konieczno\u015b\u0107 wykonania wst\u0119pnego renderowania za ka\u017cdym razem, gdy dochodzi do zmian na stronie.<\/p>\n\n\n\n<p>Drugim sposobem na pozbycie si\u0119 problem\u00f3w zwi\u0105zanych z pozycjonowanie strony opartej na JavaScript\/ React.js jest wykorzystanie do renderowania witryny serwera zamiast klienta. Czym r\u00f3\u017cni si\u0119 renderowanie po stronie serwera od renderowania po stronie klienta? Renderowanie po stronie klienta oznacza, \u017ce zar\u00f3wno przegl\u0105darka, jak i robot Googla otrzymuj\u0105 przy wej\u015bciu na stron\u0119 pliki \u2013puste lub z niewielk\u0105 zawarto\u015bci\u0105, nast\u0119pnie JavaScript pobiera i wy\u015bwietla reszt\u0119 zawarto\u015bci u\u017cytkownikowi na ekranie. Ju\u017c tak prosta i podstawowa interpretacja tego zagadnienia prowadzi nas do wniosk\u00f3w, \u017ce renderowanie po stronie klienta nie sprzyja SEO, poniewa\u017c boty przy tak znikomej ilo\u015bci danych, jak\u0105 otrzymaj\u0105, albo zaindeksuj\u0105 jej ma\u0142\u0105 cz\u0119\u015b\u0107, albo nie zrobi\u0105 tego wcale, co zdecydowanie utrudni proces pozycjonowania strony internetowej. I tu pojawia si\u0119 rycerz na bia\u0142ym koniu w postaci renderowania po stronie serwera. Co otrzymujemy, stosuj\u0105c to rozwi\u0105zanie? Dzi\u0119ki zastosowaniu tego renderowania roboty Googla otrzymuj\u0105 pliki HTML z ca\u0142\u0105 zawarto\u015bci\u0105, co pozwala im na ich poprawne zaindeksowanie i uzyskanie przez witryn\u0119 wy\u017cszych pozycji w przegl\u0105darce.<\/p>\n\n\n\n<p>Podsumowuj\u0105c, pozycjonowanie witryn opartych na React.js wcale nie wi\u0105\u017ce si\u0119 z wielkimi niedogodno\u015bciami. Wystarczy tylko zapobiec im ju\u017c podczas procesu tworzenia strony, co pozwoli zaoszcz\u0119dzi\u0107 mn\u00f3stwo czasu. Wszystkie problemy zwi\u0105zane z t\u0105 technologi\u0105 s\u0105 do rozwi\u0105zania i warto cz\u0119sto stawi\u0107 im czo\u0142a w celu uzyskania pi\u0119knej, dobrze dzia\u0142aj\u0105cej witryny z wieloma fantastycznymi dodatkami, na kt\u00f3re pozwala nam React.js.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React.js jest jednym z najpopularniejszych framework\u00f3w do tworzenia aplikacji internetowych. Pozwala programi\u015bcie rozwin\u0105\u0107 skrzyd\u0142a i osi\u0105gn\u0105\u0107 niczym nieograniczone efekty. Niestety, powoduje on te\u017c du\u017co problem\u00f3w, kt\u00f3re nie maj\u0105 pozytywnego wp\u0142ywu na SEO. W tym artykule chcia\u0142bym przedstawi\u0107 niedogodno\u015bci zwi\u0105zane z pozycjonowaniem strony stworzonej w tej technologii oraz to, w jaki spos\u00f3b mo\u017cesz ich unika\u0107 lub [&hellip;]<\/p>\n","protected":false},"author":33,"featured_media":20682,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-20681","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-techniczne-wskazowki"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>React vs SEO - Blog NPROFIT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React vs SEO - Blog NPROFIT\" \/>\n<meta property=\"og:description\" content=\"React.js jest jednym z najpopularniejszych framework\u00f3w do tworzenia aplikacji internetowych. Pozwala programi\u015bcie rozwin\u0105\u0107 skrzyd\u0142a i osi\u0105gn\u0105\u0107 niczym nieograniczone efekty. Niestety, powoduje on te\u017c du\u017co problem\u00f3w, kt\u00f3re nie maj\u0105 pozytywnego wp\u0142ywu na SEO. W tym artykule chcia\u0142bym przedstawi\u0107 niedogodno\u015bci zwi\u0105zane z pozycjonowaniem strony stworzonej w tej technologii oraz to, w jaki spos\u00f3b mo\u017cesz ich unika\u0107 lub [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\" \/>\n<meta property=\"og:site_name\" content=\"NPROFIT\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-14T08:13:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1604\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kamil Meloch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil Meloch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\"},\"author\":{\"name\":\"Kamil Meloch\",\"@id\":\"https:\/\/nprofit.net\/pl\/#\/schema\/person\/492a4bd1caea5bd01f62b82259a2a2ef\"},\"headline\":\"React vs SEO\",\"datePublished\":\"2021-06-14T08:13:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\"},\"wordCount\":1121,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nprofit.net\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg\",\"articleSection\":[\"Techniczne wskaz\u00f3wki\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\",\"url\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\",\"name\":\"React vs SEO - Blog NPROFIT\",\"isPartOf\":{\"@id\":\"https:\/\/nprofit.net\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg\",\"datePublished\":\"2021-06-14T08:13:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage\",\"url\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg\",\"contentUrl\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg\",\"width\":2560,\"height\":1604,\"caption\":\"Guys playing knights and fighting. Warrior roles, costumes, capes, sword, shields. Flat vector illustration. Battle, arguing, game concept for banner, website design or landing web page\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/nprofit.net\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React vs SEO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nprofit.net\/pl\/#website\",\"url\":\"https:\/\/nprofit.net\/pl\/\",\"name\":\"NPROFIT\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/nprofit.net\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nprofit.net\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nprofit.net\/pl\/#organization\",\"name\":\"NPROFIT\",\"url\":\"https:\/\/nprofit.net\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/nprofit.net\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2025\/07\/bigLogo.png\",\"contentUrl\":\"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2025\/07\/bigLogo.png\",\"width\":323,\"height\":50,\"caption\":\"NPROFIT\"},\"image\":{\"@id\":\"https:\/\/nprofit.net\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/nprofit.net\/pl\/#\/schema\/person\/492a4bd1caea5bd01f62b82259a2a2ef\",\"name\":\"Kamil Meloch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/nprofit.net\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dda8e1db765b01ccd0975338276d079222334104e8a6feea36cedac7965fef91?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dda8e1db765b01ccd0975338276d079222334104e8a6feea36cedac7965fef91?s=96&d=mm&r=g\",\"caption\":\"Kamil Meloch\"},\"url\":\"https:\/\/nprofit.net\/pl\/blog\/author\/kamil-meloch\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"React vs SEO - Blog NPROFIT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/","og_locale":"pl_PL","og_type":"article","og_title":"React vs SEO - Blog NPROFIT","og_description":"React.js jest jednym z najpopularniejszych framework\u00f3w do tworzenia aplikacji internetowych. Pozwala programi\u015bcie rozwin\u0105\u0107 skrzyd\u0142a i osi\u0105gn\u0105\u0107 niczym nieograniczone efekty. Niestety, powoduje on te\u017c du\u017co problem\u00f3w, kt\u00f3re nie maj\u0105 pozytywnego wp\u0142ywu na SEO. W tym artykule chcia\u0142bym przedstawi\u0107 niedogodno\u015bci zwi\u0105zane z pozycjonowaniem strony stworzonej w tej technologii oraz to, w jaki spos\u00f3b mo\u017cesz ich unika\u0107 lub [&hellip;]","og_url":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/","og_site_name":"NPROFIT","article_published_time":"2021-06-14T08:13:46+00:00","og_image":[{"width":2560,"height":1604,"url":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg","type":"image\/jpeg"}],"author":"Kamil Meloch","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Kamil Meloch","Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#article","isPartOf":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/"},"author":{"name":"Kamil Meloch","@id":"https:\/\/nprofit.net\/pl\/#\/schema\/person\/492a4bd1caea5bd01f62b82259a2a2ef"},"headline":"React vs SEO","datePublished":"2021-06-14T08:13:46+00:00","mainEntityOfPage":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/"},"wordCount":1121,"commentCount":0,"publisher":{"@id":"https:\/\/nprofit.net\/pl\/#organization"},"image":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage"},"thumbnailUrl":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg","articleSection":["Techniczne wskaz\u00f3wki"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/","url":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/","name":"React vs SEO - Blog NPROFIT","isPartOf":{"@id":"https:\/\/nprofit.net\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage"},"image":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage"},"thumbnailUrl":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg","datePublished":"2021-06-14T08:13:46+00:00","breadcrumb":{"@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#primaryimage","url":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg","contentUrl":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2021\/06\/Guys-playing-knights-and-fighting-scaled-1.jpg","width":2560,"height":1604,"caption":"Guys playing knights and fighting. Warrior roles, costumes, capes, sword, shields. Flat vector illustration. Battle, arguing, game concept for banner, website design or landing web page"},{"@type":"BreadcrumbList","@id":"https:\/\/nprofit.net\/pl\/blog\/react-vs-seo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/nprofit.net\/pl\/"},{"@type":"ListItem","position":2,"name":"React vs SEO"}]},{"@type":"WebSite","@id":"https:\/\/nprofit.net\/pl\/#website","url":"https:\/\/nprofit.net\/pl\/","name":"NPROFIT","description":"","publisher":{"@id":"https:\/\/nprofit.net\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nprofit.net\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/nprofit.net\/pl\/#organization","name":"NPROFIT","url":"https:\/\/nprofit.net\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/nprofit.net\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2025\/07\/bigLogo.png","contentUrl":"https:\/\/nprofit.net\/pl\/wp-content\/uploads\/2025\/07\/bigLogo.png","width":323,"height":50,"caption":"NPROFIT"},"image":{"@id":"https:\/\/nprofit.net\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/nprofit.net\/pl\/#\/schema\/person\/492a4bd1caea5bd01f62b82259a2a2ef","name":"Kamil Meloch","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/nprofit.net\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dda8e1db765b01ccd0975338276d079222334104e8a6feea36cedac7965fef91?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dda8e1db765b01ccd0975338276d079222334104e8a6feea36cedac7965fef91?s=96&d=mm&r=g","caption":"Kamil Meloch"},"url":"https:\/\/nprofit.net\/pl\/blog\/author\/kamil-meloch\/"}]}},"_links":{"self":[{"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/posts\/20681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/comments?post=20681"}],"version-history":[{"count":0,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/posts\/20681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/media\/20682"}],"wp:attachment":[{"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/media?parent=20681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/categories?post=20681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nprofit.net\/pl\/wp-json\/wp\/v2\/tags?post=20681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}