Mam mapę witryny (przesłaną do Google w celu zindeksowania ), w którym dodam adresy URL zawierające znak „&” (&). Ponieważ w mapie witryny & musi być zmieniony kodem ucieczki, zamieniłem & na & w adresach URL w mapa witryny. Rzeczywiste adresy URL moich stron zawierają tylko &.

Ponieważ jestem nowy w Google webmasterach i SEO, chciałbym wiedzieć, czy ta różnica ampersand w adresie URL i mapie witryny powodować każdy problem. Czy moje strony zostaną zindeksowane? To może wydawać się pytaniem na poziomie noob, ponieważ mogę uzyskać dostęp do witryny po zastąpieniu & słowem & w adresie URL. Jednak każda pomoc na tym froncie będzie bardzo mile widziana.

Komentarze

  • W której części adresu URL używasz znaku ampersand?
  • @ MrWhite Przekazuję kilka parametrów w adresie URL i oddzielam te parametry za pomocą znaku ampersand do oddzielnych parametrów

Odpowiedź

jeśli ta różnica ampersand w adresie URL i mapie witryny spowoduje jakiś problem.

tl; dr Żaden problem, ponieważ adresy URL są takie same.

Ponieważ w mapie witryny & musi zostać zmieniony znak zmiany znaczenia, zamieniłem & na &

Twoja mapa witryny jest dokumentem XML. Podobnie jak w przypadku każdego dokumentu XML, wartości danych muszą być zapisane w postaci zakodowanej w formacie XML. Znak & jest znakiem specjalnym (sam oznacza początek jednostki XML) i dlatego musi być zakodowany, aby zanegować jego specjalne znaczenie. To jest tylko sposób, w jaki dane są przechowywane wewnątrz dokumentu XML .

Gdy dokument XML jest czytany przez parser XML, wartości danych są dekodowane zdekodowane em>, z powrotem do rzeczywistej wartości. Tak więc & staje się & po odczytaniu dokumentu XML.

Zatem adres URL formularza /page?foo=1&bar=2 przechowywany wewnątrz dokumentu XML jest identyczny z adresem URL /page?foo=1&bar=2 w dokumencie HTML5 .

Moje rzeczywiste adresy URL stron zawierają tylko &

W HTML5 jest to całkowicie OK, pod warunkiem, że nie ma dwuznaczności. Jednak w HTML4.1 (i wcześniejszych) trzeba było poprawnie zakodować encję HTML & jako & w źródle HTML kod dla prawidłowego HTML. Jednak przeglądarki są bardzo tolerancyjne i Twój dokument HTML najprawdopodobniej nadal „działałby”.

W HTML5 musisz tylko zakodować element HTML-entity & w przypadku niejasności. Weźmy następujący wymyślony przykład. Chcemy przekazać literał „& dolar;” w foo parametrze adresu URL.

<!-- In an HTML document (WRONG) --> <a href="/page?foo=&dollar;">link</a> 

Żądany adres URL to http://example.com/page?foo=&dollar;, jednak powyższa kotwica HTML powoduje wysłanie użytkownika do http://example.com/page?foo=$ – co nie jest intencją. Aby uzyskać pożądany wynik, element & musi być zakodowany w formacie HTML, aby zanegować jego specjalne znaczenie, w wyniku czego otrzymamy następujący (poprawny) kod HTML:

<!-- In an HTML document (CORRECT) --> <a href="/page?foo=&amp;dollar;">link</a> 

Zawsze bezpieczniej jest konsekwentne kodowanie encji HTML & w kodzie HTML- dokument. Jeśli generujesz treść za pośrednictwem systemu CMS, powinno to nastąpić automatycznie.

Jestem w stanie uzyskać dostęp do witryny po zastąpieniu & z &amp; w adresie URL.

Prawdopodobnie masz na myśli„ w adresie URL, w kodzie HTML ”? Ponieważ gdybyś zakodował encję HTML & z &amp; w pasku adresu przeglądarki (na przykład), tj. poza kontekstem HTML, nie uzyskasz oczekiwanych rezultatów. Na przykład, jeśli wpiszesz bezpośrednio w pasku adresu przeglądarki:

/page?foo=1&amp;bar=2 

Wtedy otrzymasz dwa parametry adresu URL [foo] => 1 i [amp;bar] => 2, co oczywiście nie jest zamiarem.

Komentarze

  • TL; DR: adres URL zawiera zwykły znak ampersand (&), ale jeśli używasz sitemap.xml, musisz zakodować zwykły ampersand jako &amp;. Znaczenie zakodowanego znaku ampersand to nadal zwykły znak ampersand. Jeśli chcesz pominąć większość kodowania, użyj sitemap.txt format.

Odpowiedź

Adresy URL uwzględnione w mapie witryny muszą być zgodne z tagiem standard RFC-3986 . Jak można przeczytać w oficjalnym przewodniku Google , & należy poprzedzić znakiem &amp; więc jesteś gotowy.

Niemniej jednak, po przesłaniu mapy witryny za pośrednictwem Google Searh Console, będziesz mógł wiedzieć, czy wystąpił problem z przesłanymi adresami URL.

Na wszelki wypadek powinieneś uwzględniać tylko końcowe adresy URL, co oznacza, że być może są jakieś parametry, których możesz uniknąć. Na przykład:

 - https://example.com/shoes (good one) - https://example.com/shoes?order=1&amp;color=blue (remove this one) 

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *