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=$">link</a>
Żądany adres URL to http://example.com/page?foo=$
, 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=&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&
w adresie URL.
Prawdopodobnie masz na myśli„ w adresie URL, w kodzie HTML ”? Ponieważ gdybyś zakodował encję HTML &
z &
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&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żywaszsitemap.xml
, musisz zakodować zwykły ampersand jako&
. Znaczenie zakodowanego znaku ampersand to nadal zwykły znak ampersand. Jeśli chcesz pominąć większość kodowania, użyjsitemap.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 &
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&color=blue (remove this one)
Komentarze
- Czy możemy użyć example.com/shoes?order=1& color = blue jako rzeczywisty adres URL, aw mapie witryny jako ( example.com/shoes?order=1 & amp; color = blue .
- Tak, możesz o ile ' to główny link. Oznacza to, że ' jest głównym adresem URL używanym w linkowaniu wewnętrznym, a wartość treści dla użytkowników jest wyższa niż adres URL bez parametrów.