[Ajax & Google] Prawidłowe pozycjonowanie wraz z dynamiczną stroną, Jak pogodzić pozycjonowanie z dynamicznym Ajaxem |
[Ajax & Google] Prawidłowe pozycjonowanie wraz z dynamiczną stroną, Jak pogodzić pozycjonowanie z dynamicznym Ajaxem |
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 ? |
|
|
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%) |
Od razu przy przejściu twórz linki w sposób www.domena.pl/#/534-tytul-artykulu
Poszukaj w Google pod "hash links" |
|
|
27.08.2011, 01:02:33
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 6.12.2010 Ostrzeżenie: (0%) |
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 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 Z góry dziękuję za pomoc. |
|
|
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%) |
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 |
|
|
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 (to w sumie istniało od początku HTMLa )
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 ! //EDIT// Przeszukując google dowiedziałem się, że to się nie nazywa hash link więcej wyników wyszukiwania jest poda "anchor link". Jak znajdę to napiszę... a na razie proszę o pomoc //EDIT// Znalazłem co szukałem ! 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 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 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 |
|
|
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: albo 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 |
|
|
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 |
|
|
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 |
|
|
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ł Mam drugi pomysł ! A wywodzi się z wypowiedzi @ShadowD JavaScript obsługuje wyrażenia regularne. Prawda ? 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 - Jak to zrobić ? Banalnie prosto! 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 Czuję coś, że to nie do końca dobry pomysł... czekam na to co Wy o tym myślicie Ten post edytował Sztef89 29.08.2011, 00:52:41 |
|
|
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 |
|
|
31.08.2011, 11:41:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 6.12.2010 Ostrzeżenie: (0%) |
Ciekawy link dla następców: http://code.google.com/intl/pl/web/ajaxcra...ng-started.html Mylnie twierdziłem, ze Google olewa Web 2.0 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 ! |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 15:16 |