Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JQuery]+[AJAX]+[PHP]+[SEO] - jak to ugryźć?, Czyli jak w to wszystko wpleść SEO
organista18
post 7.05.2010, 16:00:03
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


Witam wszystkich, w tematyce SEO jestem zupełnie zielony i chciałem aby moja stronka zaczęła być znacząca dla wyszukiwarek.

Schemat mojej strony:
- jest sobie plik index.html w którym są trzy pozycje menu, pod każdą pozycją menu jest link w postaci <a href="#" id="o_mnie">. Do całości pliku index.html jest podłączone jQuery, które jest odpowiedzialne za ładowanie podstrony z odpowiednim artykułem (w tym wypadku read_article.php? z parametrem który jest nazwą artykułu) do diva "tekst", a robi to w taki sposób:

  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function() {
  4. $(".tekst").hide();
  5. $(".tekst").load("inc_start.php", function()
  6. {
  7. $(".loader").fadeOut("slow");
  8. $(".tekst").fadeIn("slow");
  9. $(".tekst").slideDown("slow");
  10. });
  11.  
  12. $("#o_mnie").click(function()
  13. {
  14. $(".tekst").fadeOut("slow");
  15. $(".loader").fadeIn("slow");
  16. $(".tekst").load("read_article.php?cat=o_mnie", function()
  17. {
  18. $(".loader").fadeOut("slow");
  19. $(".tekst").fadeIn("slow");
  20. });
  21.  
  22. });
  23.  
  24. $("#projekty").click(function()
  25. {
  26. $(".tekst").fadeOut("slow");
  27. $(".loader").fadeIn("slow");
  28. $(".tekst").load("read_article.php?cat=projekty", function()
  29. {
  30. $(".loader").fadeOut("slow");
  31. $(".tekst").fadeIn("slow");
  32. });
  33.  
  34. });
  35. });
  36. </script>


- jest sobie plik read_article.php któremu w parametrze cat przekazuję nazwę artykułu, który ma wyciągnąć z bazy danych, ten plik jest ładowany do diva "start" w pliku index.html.
dodam jeszcze że całość pliku php wygląda tak:

  1.  
  2. <?php
  3.  
  4. include("_safe/inc_config.php");
  5.  
  6. $d = $_GET['cat'];
  7. $query = mysql_query("SELECT * FROM arts WHERE name = ".$d."");
  8.  
  9. while($rekord = mysql_fetch_array($query))
  10.  
  11. {
  12.  
  13. $tytul = $rekord[1];
  14.  
  15. $tresc = $rekord[2];
  16.  
  17. $kategoria = $rekord[4];
  18.  
  19. $data = $rekord[5];
  20.  
  21. $autor = $rekord[3];
  22.  
  23. }
  24.  
  25. echo '<h2 class="topTitle">'.$tytul.'</h2>';
  26.  
  27. echo '<div class="topContent"><p>'.$tresc.'</p></div>';
  28.  
  29. ?>


Teraz stronka składa się tylko z dwóch plików (nie licząc biblioteki jQuery). Moje pytanie jest następujące: jak w to wszystko wpleść SEO, czy takie rozwiązanie jest zgodne z SEO i przyjazne dla przeglądarek? Jeżeli nie, to jak zrobić aby było przyjazne? Zależy mi na dynamice strony - dwa pliki, a nie na kilkudziesięciu, każdy z inną nazwą, przyjazną dla przeglądarki. Mam nadzieję że koledzy i koleżanki rozumieją o co mi chodzi.

Przeszukałem pod tym kątem google, ale milczy, znajduję tylko 10 zasad dobrego SEO, ale jak już pisałem - to dla stron statycznych, a co z dynamicznymi jak w moim przypadku powyżej?
Zapraszam do dyskusji.

Ten post edytował organista18 7.05.2010, 16:02:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
tehaha
post 7.05.2010, 17:31:17
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


a jaka to różnica, czy strona jest statyczna czy dynamiczna? skrypt php generuje taki sam kod html jak by był ręcznie napisany, zasady SEO są te same, a tak na marginesie jak wkładasz do zapytania zmienną pochodzącą z url to zawsze używaj funkcji mysql_real_escape_string()
Go to the top of the page
+Quote Post
erix
post 7.05.2010, 18:16:45
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
jak w to wszystko wpleść SEO, czy takie rozwiązanie jest zgodne z SEO

Jeśli z wyłączonym JS nie jesteś w stanie się dostać do tej treści = niezgodne z SEO.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
organista18
post 7.05.2010, 18:30:04
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


Cytat(erix @ 7.05.2010, 19:16:45 ) *
Jeśli z wyłączonym JS nie jesteś w stanie się dostać do tej treści = niezgodne z SEO.

To strony napisane przy pomocy AJAX-a są z góry przekreślone przez SEO? czy może wystarczy mieć sam plik read_article.php i robot poprzez dopasowywanie sobie odpowiednich parametrów do tego read_article.php (np read_article.php?cat=omnie) sam wyciągnie dane i skonstruuje link?
Go to the top of the page
+Quote Post
tehaha
post 7.05.2010, 18:46:04
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Strona nie powinna opierać się na AJAX'ie, AJAX to taki dodatek, który ma zwiększać usability, i brak obsługi javascript nie powinien paraliżować strony, najlepiej jest zrobić tak, że najpierw robisz sobie stronę normalnie w pełni działającą w php a na końcu dodajesz AJAXA tam gdzie tylko zechcesz

//jak ty to sobie wyobrażasz, że robot będzie sobie coś dopasowywał? bo nie zrozumiałem tej kwestii, robot nie widzi kodu php, tylko wygenerowany kod html

Ten post edytował tehaha 7.05.2010, 18:49:02
Go to the top of the page
+Quote Post
organista18
post 7.05.2010, 19:07:50
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


No tak sobie wyobrażałem winksmiley.jpg.

Kiepsko to widzę, chciałbym, żeby podstrony ładowały się bez przeładowywania całości, a tu jednak widzę lipa.

A można zrobić coś takiego jak mapę strony w osobnym pliku i wtedy odnośniki w tej mapce odnośniki do strony głównej z gotowym zapytaniem?
Go to the top of the page
+Quote Post
tehaha
post 7.05.2010, 19:22:50
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


możesz dowolnie wstawiać AJAXA nic nie stoi na przeszkodzie, tylko najpierw zrób tak żeby bez AJAXA strona też działała
Go to the top of the page
+Quote Post
erix
post 7.05.2010, 19:25:13
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
To strony napisane przy pomocy AJAX-a są z góry przekreślone przez SEO? czy może wystarczy mieć sam plik read_article.php i robot poprzez dopasowywanie sobie odpowiednich parametrów do tego read_article.php (np read_article.php?cat=omnie) sam wyciągnie dane i skonstruuje lin

Piszesz najpierw zwykłą stronę, która działa bez JS, potem dopalasz to tylko przez AJAX. I tak zawsze się pisało, aby było zgodne z SEO.

Cytat
A można zrobić coś takiego jak mapę strony w osobnym pliku i wtedy odnośniki w tej mapce odnośniki do strony głównej z gotowym zapytaniem?

No tak, ale jak sobie wyobrażasz później prezentację tego w wynikach wyszukiwania? W jaki sposób ktoś dotrze do konkretnej podstrony?

Wpisz sobie w przeglądarce link z mojej stopki bez subdomeny, kiedyś pisałem coś takiego, to będziesz miał zasadę działania.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
organista18
post 7.05.2010, 19:33:16
Post #9





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


Rozumiem. To teraz inaczej. Wywalam ajaxa, zostaje tylko plik read_article.php
Jak już wspomniałem będzie wyświetlał artykuły wg zadanego zapytania, mam rozumieć że google nie zaindeksuje sobie tego pliku w takich postaciach: read_article.php?id=1, read_article.php?id=2, itp ?
Go to the top of the page
+Quote Post
tehaha
post 7.05.2010, 19:37:57
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie takie strony nie są indeksowane, musisz stworzyć przyjazne linki , żeby np. zamiast read_article.php?id=1 było arytkul,1.html, poczytaj o mod_rewrite i "przyjazne linki"/ "friendly url"

Ale to nie działa tak, że robot same sobie próbuje jakieś kombinacje linków: robot wchodzi na stronę index , i dalej podąża linkami jeżeli masz na stronie index linki do artykułów np. artykul,1.html, artykul,2.html tp robot wejdzie na te linki i zindeksuje te podstrony

Ten post edytował tehaha 7.05.2010, 19:40:25
Go to the top of the page
+Quote Post
organista18
post 7.05.2010, 19:40:35
Post #11





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


Erix, dokładnie o takie coś mi chodzi. Widziałem że masz link właśnie w taki sposób: <a href="?newsID=3">... i pojawia Ci się źródło w miejscu div id="content", a na mojej stronce tam jest poprostu pusto, a treść w przeglądarce widać...

U mnie wygląda to tak: http://www.omt-reklama.pl/ efekt jest taki jak u Ciebie, ale chciałbym, żeby działało to z SEO.
Go to the top of the page
+Quote Post
tehaha
post 7.05.2010, 19:44:05
Post #12





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


ten ajax możesz sobie zostawić ale zrób tak, że jak nie ma javascript to strona się przeładuje i normalnie wyświetli treść strony, bo teraz po wyłączeniu javascript strona nie działa
Go to the top of the page
+Quote Post
organista18
post 8.05.2010, 08:11:55
Post #13





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


A możesz mi powiedzieć w jaki sposób to zrobić? Bo teraz mam linki w stylu: <a href="#" id="costam"></a> a jak w piszę adres w miejsce "#", to przestanie mi dzialać jQuery...
Go to the top of the page
+Quote Post
tehaha
post 8.05.2010, 10:05:40
Post #14





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie wiem dokładnie jak to się robi w jquery musiałbym pokombinować, ale w javascript robiło się tak, żeby funkcja zwracała false, wtedy link nie przeładowywał strony:
  1. <script>
  2. function load_content()
  3. {
  4. //function
  5. return false;
  6. }
  7. </script>
  8. <a href="strona.html" title="" onclick="java script: return load_content()">strona</a>


więc musisz zrobić coś analogicznego, może wystarczy samo dopisanie return false; w każdej części po załadowaniu treści. Ewentualnie możesz też po załadowaniu strony podmienić atrybut href dla tych linków z menu:

  1. $("#onas").attr('href', '#');

wtedy bez javascript zostaną zwykłe linki
Go to the top of the page
+Quote Post
erix
post 8.05.2010, 10:26:57
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
a jak w piszę adres w miejsce "#", to przestanie mi dzialać jQuery...

Cytat
więc musisz zrobić coś analogicznego, może wystarczy samo dopisanie return false; w każdej części po załadowaniu treści. Ewentualnie możesz też po załadowaniu strony podmienić atrybut href dla tych linków z menu:

Jak już klepiecie w jQuery, to korzystajcie z mechanizmów, które udostępnia. onclick i jakiekolwiek zdarzenia podpinane liniowe są passe.

  1. <a href="porn.html" id="asd">google</a> <!-- tak, wredny jestem ;d -->

i kod dla jQ:
[JAVASCRIPT] pobierz, plaintext
  1. $(function(){
  2. $('#asd').click(function(e){
  3. e.preventDefault();
  4.  
  5. // ajax load
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext


Cytat
mam rozumieć że google nie zaindeksuje sobie tego pliku w takich postaciach: read_article.php?id=1, read_article.php?id=2, itp ?

Cytat
nie takie strony nie są indeksowane, musisz stworzyć przyjazne linki , żeby np. zamiast read_article.php?id=1 było arytkul,1.html, poczytaj o mod_rewrite i "przyjazne linki"/ "friendly url"

Jak to mawiają, BULLSHIT: http://googlewebmastercentral.blogspot.com...tatic-urls.html

Generalnie, aby stronę wypasić musisz podejść do tego w ten sposób: zrób najpierw wersję taką, jakbyś klikał normalne linki, bez AJAX, czy nawet JS. Wtedy strona będzie indeksowalna. Potem stwórz sobie jakiś front controller (czy cokolwiek w tym stylu), co zwróci strone w żądaniu pozbawioną szkieletu/szablonu. Czyli np. dodajesz jakiś parametr do URL albo sprawdzasz user-agent w żądaniu.

No i podpinasz się pod linki w podobny sposób, jaki podałem. Tylko że korzystając z identyfikatorów będzie to nieco mozolne i mało elastyczne, ale selektory dostępne w jQuery chyba sobie sam znajdziesz. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
organista18
post 19.08.2010, 09:58:52
Post #16





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 22.07.2009

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


Dziękuję za odpowiedzi winksmiley.jpg Problem rozwiązany.
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: 14.08.2025 - 11:49