• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed System wyświetlania postów na stronie www

Object Storage Arubacloud
0 głosów
207 wizyt
pytanie zadane 20 sierpnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
zamknięte 20 sierpnia 2020 przez Bakkit

Witam.

Postanowiłem napisać sobie coś w rodzaju bloga. Wyglądało by to tak, że osoba wchodzi na stronę www gdzie jest lista postów, po kliknięciu w post przenosi ją na stronę gdzie może przeczytać go całego.

Teraz rodzi się pewien problem. Tworzenie podstrony pod każdy post byłoby głupie ze względu na to, że tych postów po roku może być tysiące ( zamierzam go prowadzić w dużej grupie osób ). Rozwiązaniem może być stworzenie jednej strony, na której wczytywałby się post z bazy na podstawie danych zawartych w linku ( GET ). Wydaje się to dobre pod kontem redundancji kodu, lecz co wtedy z SEO? Nie pogorszy to wyniku wyszukiwań?

Pozdrawiam!

komentarz zamknięcia: Rozwiązanie problemu.

1 odpowiedź

+1 głos
odpowiedź 20 sierpnia 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 20 sierpnia 2020 przez Bakkit
 
Najlepsza
Tak, wczytanie z bazy to jak najbardziej słuszny pomysł.

Jeśli chodzi o linki to bez problemu można zrobić ich przepisywanie. Czyli np. post.php?id=5 zamienić na /post/5. Co więcej, w bazie można też trzymać opisową część linka - np. "to-jest-tytul-posta", a następnie we wspomnianym wcześniej przepisywaniu użyć tego zamiast liczby. Pojawia się wtedy kwestia unikalności linka, albo musi być unikalny albo zawierać jeszcze dodatkowo np. id, aby było wiadomo o którego posta na pewno chodzi. Tym sposobem możesz uzyskać normalny adres w rodzaju /post/to-jest-tytul-posta.

Jeszcze innym podejściem, które jest teraz spotykane w większości aplikacji, jest robienie routingu po stronie kodu, a na serwerze skierowanie każdego wywołania na aplikację (każdego z wyjątkiem faktycznie istniejących plików). Dzięki temu cała decyzja o tym co zrobić zapada po stronie aplikacji, tam jest zdefiniowane dla jakiego adresu co ma zrobić. Serwer tylko zawsze kieruje do aplikacji, jakiegoś jednego pliku wejściowego. Takie rozwiązanie jest też używane we frameworkach, np. w Symfony czy Laravelu.
komentarz 20 sierpnia 2020 przez Bakkit Dyskutant (7,600 p.)
Dziękuję za odpowiedź! Chyba nie do końca zrozumiał Pan mój wątek, głównie chodzi mi o SEO.
1
komentarz 20 sierpnia 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
No zapytałeś o ewentualny problem z SEO, gdy strona będzie ładowana z bazy. Założyłem (może mylnie), że chodzi Ci głównie o link, który domyślnie przy użyciu GET będzie wyglądał brzydko (np. właśnie post.php?id=5), dlatego napisałem że w linku można też umieścić jakiś tekst, który będzie opisywał co jest na danej stronie i jeszcze ładnie to przepisać, czyli powinno to być dobre dla SEO. Jeśli nie chodziło tylko o link to co jeszcze? Treść całej strony generujesz i dostosowujesz na podstawie danych posta z bazy, sam to napisałeś, więc myślałem że wiesz.

PS niepotrzebnie "pan" :)
komentarz 20 sierpnia 2020 przez Bakkit Dyskutant (7,600 p.)
Hmm, najwyraźniej nie do końca rozumiem jak działa SEO.

Dajmy na to: mam podstronę gdzie jest artykuł. Podstrona jest zrobiona na ten zły sposób, czyli wygenerowana "ręcznie" wraz z zawartością artykułu. Robot w przeglądarce normalnie będzie mógł odczytać, że taka strona istnieje i ewentualnie wyświetlić ją na liście wyszukiwań użytkownikowi.

W przypadku gdzie artykuł jest wczytywany z bazy to strona jest generowana przez użytkownika. Jak robot google uzna, że taka strona istnieje, skoro istnieje tylko jej część statyczna ( nagłówek, stopka, nawigacja itd ) a sama zawartość artykułu dopiero zostanie wczytana gdy użytkownik wejdzie na stronę?

 

Może wcześniej nie doprecyzowałem, ale artykuły na stronie będą o różnej tematyce, przez co chciałbym aby np. gdy użytkownik wpisał frazę związaną z Java to przeniosło go do artykułu odnośnie Javy, a gdy fraza byłaby związana z samorozwojem to również na odpowiedni artykuł.
2
komentarz 20 sierpnia 2020 przez Tomek Sochacki Ekspert (227,510 p.)
Dla google ważne jest aby w pierwszym response poszedł html z tekstem artykułu. Nie ma znaczenia w jaki sposób wygenerujesz html, liczy się tylko to, co serwer wypluje jako html do sparsowania przez przegladarke.

Obecnie coraz lepiej google radzi sobie tez z js client side, ale jednak co ssr tk ssr :)
komentarz 20 sierpnia 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
Bardziej wydaje mi się, że nie do końca rozumiesz jak działa PHP (albo chodzi o coś bardziej frontendowego i wybrałeś złą kategorię). PHP jest językiem backendowym i klient nie dowie się i nie ma wpływu na to, co zrobi PHP (za wyjątkiem rzeczy zaprogramowanych oczywiście). Bez znaczenia jest czy zapytanie wyśle przeglądarka użytkownika, Google, jakiś napisany skrypt czy jeszcze inny klient - PHP po prostu wykona to co ma zaprogramowane i odpowie (chyba że sam stworzysz jakieś warunki). Odpowiedzieć może kodem HTML albo czymkolwiek innym.

Wystarczy więc, że w PHP zrobisz generowanie takiej strony (kodu HTML) z danym postem - dostosujesz ją tak, jak sobie zamarzysz. Możesz dla każdego artykułu ustawiać inny title, mety, treści, a nawet i w ogóle generować całkowicie inny kod HTML na każdą podstronę. Google czy przeglądarka po prostu dostaną odpowiedź i nie mają pojęcia o tym czy na backendzie to jest fizyczny plik HTML czy może tam jest PHP, który przygotował kod HTML i odesłał. Po prostu nadeszła odpowiedź z serwera, a co ją wysłało to generalnie nie bardzo interesuje klienta, który wysłał żądanie.

Inną sytuacją są rzeczy doczytywane w JavaScript na frontendzie. Wtedy faktycznie, jeśli zrobisz coś takiego, że ktoś będzie załóżmy klikał przycisk na stronie, w tym momencie zostanie wysłane zapytanie do serwera w tle (Ajax) i JS wstawi dynamicznie odpowiedź na stronę, to Google sobie z tym nie poradzi - prawdopodobnie nie wykona kodu JS i nie zobaczy tej treści, którą wstawia JS. Na to też są oczywiście rozwiązania, bo można robić i całe aplikacje SPA np. w Vue czy React i po zastosowaniu SSR też można wyszukiwarkom zwrócić jakąś odpowiedź wygenerowaną przez serwer, ale wydaje mi się, że nie pytałeś aż o takie rzeczy.
komentarz 20 sierpnia 2020 przez Bakkit Dyskutant (7,600 p.)
Bardzo dziękuję za szczegółowy opis, wszystko zrozumiałem.

Podobne pytania

0 głosów
2 odpowiedzi 176 wizyt
pytanie zadane 8 lutego 2019 w PHP przez stanlejoss Nowicjusz (120 p.)
0 głosów
1 odpowiedź 163 wizyt
pytanie zadane 12 lutego 2023 w PHP przez PiotrekPoznan Początkujący (250 p.)
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 12 lutego 2021 w PHP przez Chris Black Początkujący (330 p.)

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...