Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Ajax & Google] Prawidłowe pozycjonowanie wraz z dynamiczną stroną, Jak pogodzić pozycjonowanie z dynamicznym Ajaxem
Sztef89
post 26.08.2011, 17:57:15
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Witam,

Jestem w trakcie realizacji jednego portalu, ten jednak ze względu na zasobożerność chciałbym wykonać głównie opierając się na Ajaxie.

Mój pomysł jest taki:

zawartość strony <div id="zaw"></div> będzie dynamiczna i do tego diva będą ładowane dane.
Każdy wpis wraz z ze swoimi danymi (obrazki, tekst, przyciski) będzie ładowany dynamicznie do tego diva.

Przy takim rozwiązaniu pojawia się kilka problemów:
1. Użytkownik nie może podzielić się linkiem do tego wpisu (adres w przeglądarce cały czas jest taki sam)
2. Google nie zindeksuje takiego wpisu bo nie obsługuje JS.

Aby pozbyć powyższych problemów wpadłem na taki pomysł:
Do każdego wpisu będzie generowany link i będzie można go skopiować. Po wejściu pod link odpowiednia funkcja wygeneruje odpowiednie metatagi, tytuł strony, zawartość strony itp.

I teraz mam takie pytanie: Czy takie rozwiązanie zapewni poprawne indeksowanie danego wpisu ? Bo jak widzicie Google bot sam nie zdobędzie linków do wszystkich wpisów (zwykłe strony html google bot odwiedza na zasadzie "drzewa") aby je zindeksować, trzeba mu w tym pomóc... tylko jak ?
Go to the top of the page
+Quote Post
konole
post 26.08.2011, 22:08:48
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Od razu przy przejściu twórz linki w sposób www.domena.pl/#/534-tytul-artykulu

Poszukaj w Google pod "hash links"
Go to the top of the page
+Quote Post
Sztef89
post 27.08.2011, 01:02:33
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Cytat(konole @ 26.08.2011, 23:08:48 ) *
Od razu przy przejściu twórz linki w sposób www.domena.pl/#/534-tytul-artykulu

Poszukaj w Google pod "hash links"


Ok, napisałeś jak mam tworzyć linki do każdego wpisu ale moje pytanie brzmiało trochę inaczej smile.gif

Na razie myślę nad takim rozwiązaniem:
1. Użytkownik klika na link np na głównej stronie
2. Zawartość czyli ten środkowy div zostaje wyczyszczony i na jego miejsce wgra się kod html do wpisu który kliknął
3. Wpis będzie zawierał przycisk lub pole z wygenerowanym linkiem.
4. Użytkownik otwiera wpis z linku (index.php?wpis=32849) skrypt odczytuje z bazy tytuł strony, metatagi itp. - czyli normalne wczytanie strony.

Ad2. Podczas wczytywania wpisu takie rzeczy jak: tytuł strony, link, metatagi itp nie zmieniają się.

Czy takie rozwiązanie będzie najbardziej efektywne ? Rozumiem, że te hash links służą do tego co napisałem w punkcie nr 4 ?
Nie mam żadnego doświadczenia w tym temacie (ajax & pozycjonowanie go). W sumie projekt jest mocno związany z moją praca inżynierską i bardzo zależy mi na rozwiązaniu tego problemu. Zresztą na pewno to przyda się przyszłym pokoleniom smile.gif

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
konole
post 27.08.2011, 15:32:36
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Hash linki mógłbyś traktować jako normalne linki.

1. Użytkownik klika na link np na głównej stronie, zmienia się adres z index.php na index.php/#wpis-32849 bez przeładowania
2. Zawartość czyli ten środkowy div zostaje wyczyszczony i na jego miejsce wgra się kod html do wpisu który kliknął dzięki działaniu JavaScript (AJAX)
3. Ten punkt nie jest już potrzebny, link został wygenerowany wcześniej.
4. Użytkownik otwiera wpis z linku (index.php/#wpis=32849) skrypt odczytuje z bazy tytuł strony, metatagi itp. - czyli normalne wczytanie strony.

Ten post edytował konole 27.08.2011, 15:33:20
Go to the top of the page
+Quote Post
Sztef89
post 27.08.2011, 23:12:57
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Wreszcie zrozumiałem o co chodzi, chodzi o coś takiego: http://swashata.50webs.com/sample.htm biggrin.gif (to w sumie istniało od początku HTMLa oneeyedsmiley02.png )
Tylko teraz pojawia się problem, jestem początkujący w jQuery i nie wiem jak użyć tych haszy aby zmieniały mi diva... a nie przesuwały stronę jak w powyższym linku... masz może jakiś przykład ? cokolwiek ?


Dzięki za pomoc ! nerdsmiley.png

//EDIT//
Przeszukując google dowiedziałem się, że to się nie nazywa hash link smile.gif więcej wyników wyszukiwania jest poda "anchor link". Jak znajdę to napiszę... a na razie proszę o pomoc smile.gif

//EDIT//
Znalazłem co szukałem ! smile.gif Ciekawi mnie dlaczego te rozwiązanie jest tak mało popularne w polskim Internecie...
Jeszcze pozostaje kwestia SEO tego rozwiązania. Ale dzięki za doprowadzenie mnie do tego rozwiązania ! Bez ciebie nadal bym siedział nad tym problemem wink.gif

Miłej lektury:
http://yensdesign.com/2008/11/creating-aja...hor-navigation/
http://www.softwaredeveloper.com/features/...ay-nice-061907/

PS. Dla ciekawostki dodam, że z tego rozwiązania korzysta Google w swoich produktach, np. w usłudze gmail smile.gif

Pozostaje teraz pytanie:

Jak pozycjonować każdy wpis wyświetlony tym sposobem ?

Bez JS wejście pod link www.example.com/index.php#aaaaa23d kończy się niepoprawnym wczytaniem strony... :/

Ten post edytował Sztef89 27.08.2011, 22:03:00
Go to the top of the page
+Quote Post
Rid
post 27.08.2011, 23:24:38
Post #6





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


No jak link dynamiczny tworzony za pomocą JQ,JS,Ajax to nie ma co się dziwić ,że bez obsługi js(z wyłączoną js) nie działa.
Można obsłużyć wyjątek wyłączonej javy poprzez:
  1.  
  2. header("Location: "http://www.moja_strona_oblugujaca_wyjatek_wylaczanej_javy.com");
  3.  


albo
  1. header("HTTP/1.0 404 Not Found");
  2.  


Oczywiście w noscript można pisać sobie własne funkcje(co dusza zapragnie) ,ja ukazałem taki przykład.

Ten post edytował Rid 27.08.2011, 23:32:40
Go to the top of the page
+Quote Post
Sztef89
post 28.08.2011, 11:38:14
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Dzięki za wskazówkę!

Widzę, że nawet dobra porada ale przy takim rozwiązaniu można sobie zrobić problem. Google banuje strony, które mają dwie wersje serwisu. Jest spowodowane tym, że spamerzy specjalnie ukrywają dobrze wypozycjonowaną stronę, a użytkownikowi pokazują spreparowaną... z tego względu google rozdaje takim stronom bany.

I teraz widać, że mamy tylko 3 rozwiązania (jeżeli są inne to napiszcie):
- nie robić strony dynamicznej ale mieć możliwość bezpiecznego pozycjonowania
- zaryzykować i zrobić 2 wersje serwisu z JS i bez JS
- zrobić stronę tylko opartą na JS i pogodzić się z tym, że będzie mało wypozycjonowana

Zalety web 2.0:
- mniejsze obciążenie serwera
- szybsze ładowanie stron
- większa wygoda dla użytkownika
- można by wiele pisać... same zalety!

Czytałem, że Google pracuje nad rozwiązaniem problemu pozycjonowania na stronach web 2.0. Niestety nie wiadomo kiedy wprowadzi poprawki. Web 2.0 to przyszłość, dlatego Google musi coś zrobić w tym temacie. A do tej pory musimy sobie jakoś radzić...

//EDIT//

Wpadłem na pomysł jak rozwiązać ten problem ale niestety pomysł nie wypalił...:

Jeżeli w php dałoby się odczytać np taki link: http://www.example.com/index.php#wpis-13423
to można by zrobić przekierowanie gdy JS jest wyłączone, na przykład w taki sposób jak @up napisał, czyli używając <noscript></noscript>.
Niestety php jest w stanie odczytać cały link bez tego co jest po #, ponieważ ten znacznik wykonuje się po stronie użytkownika/przeglądarki :/

Tylko jak odczytać ten znacznik nie używając JS ?

Czuję że dobrze kombinuje ale nadal jestem daleko od rozwiązania problemu...

Ten post edytował Sztef89 28.08.2011, 14:38:09
Go to the top of the page
+Quote Post
ShadowD
post 28.08.2011, 16:24:14
Post #8





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


hmm, chyba się nie da, nie wiem jak sprawa wygląda z htaccess może on widzi ten ciąg i pozwoli go jakoś przepisać?

Nie wiem gdzie, ale nie dawno czytałem jak się tego sprawy rozwiązuje i rozwiązanie było dosyć czasochłonne, ale działało z googlem i user nie był świadomy, funkcjonowało to właśnie na linkach z #, po nim była ścieżka. Google wedle jakiś opisanych zasad widząc taki link usuwał # i szło dalej na jakiś tam link - dzięki temu wiedziało jak podstrona wyglądała, całość była w 100% legalna i wspierana, były jakieś założenia o braku różnic pomiędzy treścią podstron, najlepiej jak wyglądały identycznie. Nie wiem tylko czy strona końcowa podstawiana dla google nie miała być okrojona do treści modyfikowanej czy właśnie do całości.

Pomysłem poradzenia sobie z takim problemem, była by strona bez js, a do niej dodać kod podmieniający linki na +#, jeśli js-off strona działa bez problemu a z js korzysta z podmienionych linków, i podmienia części strony tak by były identyczne jak i bez, czyli strony wyglądają w 100% tak samo, ale są doczytywane kawałkami. Coś takiego chyba nie było by widziane źle, w końcu wygląda identycznie, a działa podobnie.

Na pewno któryś z userów forum wie gdzie taki art się pokazał, wydaje mi się że to było coś na blogu z planety, ale nie dam sobie głowy uciąć. Temat bardzo ciekawy i może ktoś nas nakieruje dalej, mam nadzieję że pomogłem też trochę!

Ten post edytował ShadowD 28.08.2011, 16:31:38


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
Sztef89
post 28.08.2011, 21:42:22
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Czyli co jak zrobię dwie metody wywołania strony i obie metody będą się różnić tym, że jedna generuje metatagi i tytuł strony a druga nie. I takie coś przejdzie w wyszukiwarce Google ? Zakładając, że wygląd samej strony będzie dokładnie taki sam (dla użytkownika jedyna zmiana to tytuł strony).
Niestety nie wiem jak bardzo Google tępi za robienie "podwójnych" stron, spamerem nie jestem i nie będę ale jakbym dostał bana to bym się wkurzył biggrin.gif

Mam drugi pomysł ! A wywodzi się z wypowiedzi @ShadowD smile.gif

JavaScript obsługuje wyrażenia regularne. Prawda ? smile.gif Więc można by zrobić tak:
1. Wyłączone JS
a.) linki generowane są bez haszy czyli np <a href="index.php?wpis-21344">link</a>
b.) po kliknięciu normalnie przeładowuje się strona...

2. Włączone JS
a.) Odpowiednia funkcja JS zamienia linki na linki z haszem czyli w naszym przykładzie z "index.php?wpis-21344" na "#wpis-21344"
b.) Po kliknięciu w link otwiera się dynamicznie smile.gif
- Jak to zrobić ? Banalnie prosto! smile.gif
document.body.innerHTML = document.body.innerHTML.replace(/href="index.php?/, 'href="#');
Poprawka:
document.body.innerHTML = document.body.innerHTML.replace(/href="index.php\?/g, 'href="#');
i to wklejamy w $(document).ready(function() { });


Problem jaki na razie zauważyłem to, że będą dwa linki do tej samej podstrony jeden z haszem drugi z php - ale chyba nie da się tego raczej pogodzić... No i jak jakaś osoba, która ma włączone JS da linka innej z wyłączonym JS to ta druga osoba ujrzy stronę główną zamiast tej właściwej... No ale można wyświetlić alerta tej osobie aby włączyła JS wink.gif

Czuję coś, że to nie do końca dobry pomysł... czekam na to co Wy o tym myślicie smile.gif

Ten post edytował Sztef89 29.08.2011, 00:52:41
Go to the top of the page
+Quote Post
ShadowD
post 30.08.2011, 21:59:51
Post #10





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Ciekawy link dla następców: http://code.google.com/intl/pl/web/ajaxcra...ng-started.html


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
Sztef89
post 31.08.2011, 11:41:50
Post #11





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

Ostrzeżenie: (0%)
-----


Cytat(ShadowD @ 30.08.2011, 22:59:51 ) *


Mylnie twierdziłem, ze Google olewa Web 2.0 wstydnis.gif Po doczytaniu wszystkiego mamy dwa (prawidłowe) sposoby tworzenia dynamicznych stron:
Hijax - czyli robienie dwóch wersji stron, to co napisałem w poprzednim poście w 100% będzie odpowiadać robotom googla,
HTML Snapshot - czyli mechanizm Googla umożliwiający indeksowanie ajaxa. Polecam przeczytać ten poradnik od początku czyli: http://code.google.com/intl/pl/web/ajaxcra...learn-more.html

W sumie to tyle w tym temacie ! Dziękuję za pomoc, a nowym użytkownikom życzę powodzenia ! nerdsmiley.png
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 15:16