WooCommerce: Cum să schimbați structura permalink
Publicat: 2021-09-28
Structura de permalink WooCommerce poate părea neobișnuită pentru noii veniți. Acele părți /product/ și /product-category/ ale URL-ului sunt caracteristici distinctive binecunoscute, dar unii experți nu sunt de acord că aceasta este cea mai convenabilă modalitate de a gestiona permalink-urile din punct de vedere SEO.
Un gând popular este de a păstra întotdeauna structura URL-ului cât mai simplă posibil și de a elimina orice părți inutile ale acesteia. Nu trebuie să credeți pe cuvântul acelor experți sau pe mine, deoarece ghidul oficial de la Google sugerează evitarea adreselor URL lungi cu parametri inutile.
Deci, ce înseamnă asta exact pentru constructorii de magazine WooCommerce?
În primul rând, bazele de adrese URL precum /shop/ , /product-category/ și /product/ pot fi considerate inutile, deoarece Google știe cum să definească paginile de magazin și produse fără a fi nevoie să le specifice în interiorul adresei URL.
Și probabil că nu doriți să creați o percepție falsă a profunzimii site-ului pentru crawler-uri, astfel încât aceștia să nu evalueze acele pagini mai puțin decât ar trebui să fie. Din nou, un precept binecunoscut – paginile mai apropiate de folderul principal (domeniul) sunt mai semnificative pentru motoarele de căutare.
Dacă sunteți de acord cu astfel de afirmații, ar fi util să înțelegeți cum să reproiectați structura permalink în WooCommerce. Așa că citește înainte pentru a afla despre asta.
Care este structura de permalink WooCommerce implicită?
Să vedem cum funcționează permalinkurile acum și ce putem face pentru a le face mai ușor de utilizat.
Există câteva lucruri pe care trebuie să vă asigurați că le indicați atunci când creați setări de permalink:
- baza categoriei de produse (care este /product-category/ în mod implicit)
- baza de etichete de produs ( /product-tag/ implicit)
- baza paginii produsului (ar putea fi /produs/ , /shop/ sau orice altă bază personalizată)
Nu aveți cum să lăsați aceste opțiuni necompletate sau să utilizați aceleași ( /shop/ , de exemplu) pentru ambele permalink-uri. Bazele de produse, categorii și etichete ar trebui să fie unice pentru a nu provoca conflicte între taxonomii, postări și pagini.
Deci, adresele URL implicite pentru paginile magazinului pot fi următoarele:
- Pentru paginile categoriei: site.com/ product-category /category-slug
- Pentru paginile de etichete: site.com/ product-tag /tag-slug
- Pentru paginile produselor : site.com/product/product-slug
În timp ce este perfect pentru paginile de etichete (probabil aveți nevoie de o bază pentru a defini diferența dintre categorii și colecții), poate fi redundantă utilizarea acestor baze pentru adresele URL ale paginilor de categorii și produse.
De ce să luați în considerare modificarea permalink-urilor implicite
Uneori, utilizatorii WooCommerce îndeamnă să scape de bazele /product-category/ și /product/ sau să manipuleze structura URL standard în alte moduri. Se întâmplă din două motive importante:
- Ei doresc să vadă URL-uri simple și clare , care pot beneficia și din punct de vedere SEO
- În cazul trecerii de la un alt CMS la WP\Woo și dorința de a păstra aceeași structură URL
Este discutabil dacă eliminarea acelor părți ale URL-ului vă poate îmbunătăți rezultatele SEO. Dar acesta este cel mai popular motiv pentru care oamenii se gândesc chiar să strice structura implicită de permalink a WooCommerce.
Există câteva surse respectate care ne spun cum să structurăm permalink-urile și de ce sunt mai bune adresele URL mai scurte – factorii de clasare în motoarele de căutare Backlinko (punctul #10), cele mai bune practici Moz pentru structurarea URL-urilor (punctele #6 și #11).
În cazul în care începeți un site web nou, este sigur să rulați astfel de experimente și să vedeți cum vă ajută SEO. În timp ce schimbarea permalink-urilor pe un site web deja bine stabilit ar putea fi o afacere riscantă. Îmi voi explica în continuare preocupările.
În ceea ce privește modificarea permalink-urilor pentru a se potrivi cu vechile URL-uri ale site-ului, pe de altă parte, acest lucru pare rezonabil și vă lasă mai multe șanse să nu vă afectați istoricul SEO.
Cum să eliminați /product-category/ și /product/ din permalink-urile WooCommerce
Următoarele metode sunt sigure de utilizat pe site-uri web noi atunci când nu trebuie să vă jucați cu redirecționările 301 pentru a-i determina pe utilizatorii și crawlerele să știe că adresa URL a fost schimbată.
Primul lucru pe care trebuie să-l faceți este să mergeți la Setări WP > Legături permanente și să defilați la „ Baza categoriei de produse ” și să scrieți „”. (punct) ca bază personalizată.
Apoi, inserați acest fragment în fișierul functions.php:
add_filter( 'request', function( $vars ) {
global $wpdb;
if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
$slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
$exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
if( $exists ){
$old_vars = $vars;
$vars = array('product_cat' => $slug );
if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
$vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
if ( !empty( $old_vars['orderby'] ) )
$vars['orderby'] = $old_vars['orderby'];
if ( !empty( $old_vars['order'] ) )
$vars['order'] = $old_vars['order'];
}
}
return $vars;
});
Apoi adăugați un filtru pentru a elimina /product/ base de la adresa URL a paginii de produs:
function na_remove_slug( $post_link, $post, $leavename ) {
if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {
return $post_link;
}
$post_link = str_replace( '/product/', '/', $post_link );
return $post_link;
}
add_filter( 'post_type_link', 'na_remove_slug', 10, 3 );
function change_slug_struct( $query ) {
if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
return;
}
if ( ! empty( $query->query['name'] ) ) {
$query->set( 'post_type', array( 'post', 'product', 'page' ) );
} elseif ( ! empty( $query->query['pagename'] ) && false === strpos( $query->query['pagename'], '/' ) ) {
$query->set( 'post_type', array( 'post', 'product', 'page' ) );
// We also need to set the name query var since redirect_guess_404_permalink() relies on it.
$query->set( 'name', $query->query['pagename'] );
}
}
add_action( 'pre_get_posts', 'change_slug_struct', 99 );
Fragmentele au fost preluate din discuția acestui StackOverflow și păreau să funcționeze bine pentru majoritatea utilizatorilor, cu excepția unor cazuri:

- Adresele URL tradiționale vor răspunde cu o eroare 404. Deci, dacă aveți acele pagini indexate anterior, asigurați-vă că ați creat redirecționări 301 către paginile corespunzătoare.
- Este posibil să nu funcționeze cu paginarea sau să provoace probleme cu filtrele, în funcție de tema și pluginul pe care îl utilizați.
Cum să configurați reguli avansate de permalink-uri cu Permalink-uri personalizate pentru WooCommerce
Chiar dacă WooCommerce în documentația lor ne avertizează cu privire la eliminarea /product/ , /product-category/ sau /shop/ din adresele URL, puteți căuta linkuri permanente personalizate pentru extensia WooCommerce în cadrul pieței lor oficiale. Vă oferă cea mai sigură modalitate de a modifica opțiunile implicite de permalink pentru categorii și pagini de produse.
Câteva variante de permalink-uri pentru paginile de categorii sunt disponibile aici:
Numai categoria slug înseamnă pur și simplu eliminarea /product-category/ din toate adresele URL, părăsind domeniul + categorie slug.
Calea completă înseamnă eliminarea /product-category/ și adăugarea slug-ului categoriei părinte (dacă categoria are unul) înaintea slug-ului categoriei corespunzătoare.
Există, de asemenea, mai multe opțiuni pentru paginile de produse:
Numai slug-ul de produs va elimina orice parte excesivă a adresei URL și va lăsa numai domeniul + slug-ul de produs.
Produsul slug cu numele categoriei va crea cea mai populară versiune a adresei URL a produsului: domeniu + categorie slug + produs slug .
Calea completă funcționează în același mod ca și opțiunea #2, cu o excepție – extinde adresa URL cu categoria părinte slug dacă categoria nativă de produse are una.
Acest plugin elimină problemele de paginare și filtrare, funcționează independent de tema dvs. și vă protejează de posibilele consecințe generate de crawler.
Singurul lucru de care trebuie să aveți grijă când schimbați aceste permalink-uri sunt adresele URL duplicat. Verificați de două ori dacă nu aveți pagini sau tipuri de postări cu aceleași erori ca și categorii sau produse. Dacă găsiți unele, asigurați-vă că schimbați acele melci în unice pentru a evita duplicatele.
Cum să adăugați extensii precum .html la adrese URL
Sincer, nu știu dacă există beneficii sau defecte în a face acest lucru din punct de vedere SEO. Dar mulți oameni cer asta, așa că nu putem ignora acest subiect.
Probabil că principalul motiv pentru care ați putea căuta o soluție pentru aceasta este migrarea de la un alt CMS . Dacă decideți să treceți de la o altă platformă la WooCommerce, este posibil să doriți să replicați vechile adrese URL (de exemplu, cele cu .html la sfârșit).
Desigur, puteți folosi redirecționările 301 pentru a informa pe toată lumea despre noile dvs. URL-uri, dar observăm adesea o scădere banală a traficului și a pozițiilor SERP după ce umplem un site web cu o grămadă de redirecționări 301 de ceva timp. Probabil că nu are nimic de-a face cu redirecționările în sine, deoarece, așa cum spune Google, acestea nu mai penalizează PageRank pentru utilizarea redirecționărilor.
Dar, din cauza altor motive legate de migrarea conținutului, noua interfață de utilizare și șansele de linkuri întrerupte, este posibil să nu doriți să riscați și să încercați să recreați aceleași adrese URL pe care le aveați.
Permalink-urile personalizate pentru WooCommerce vă oferă șansa de a adăuga orice extensie la sfârșitul adresei URL, fie că este .html, .php., .htm sau orice aveți nevoie:
Cum să evitați problemele SEO după schimbarea permalink-urilor
Partea dificilă a modificării adreselor URL sunt duplicatele de conținut, erorile 404 și redirecționările.
Când manipulați adresele URL de pe un site web recent creat fără nicio înregistrare pentru domeniul, rangul paginii și adresele URL din indexul Google, atunci nu aveți de ce să vă faceți griji. Vă puteți simți liber să efectuați experimente și să alegeți orice combinație de permalink care vă place.
Dar când vine vorba de modificarea permalink-urilor pe un site web cu istoric și poziții SERP de înaltă calitate , ar trebui să verificați cu atenție acești patru piloni:
- Există pagini, postări, taxonomii, tipuri de postări personalizate sau alte entități posibile cu același slug ca și categoriile sau paginile de produse? Dacă găsiți unele, luați în considerare schimbarea melcilor cu altele unice pentru a evita conflictele.
- Accesați consola dvs. de căutare Google și verificați dacă există pagini cu 404 de răspunsuri. Dacă găsiți câteva linkuri rupte , ar trebui să scanați fișierul sitemap.xml pentru ele sau pentru orice alte pagini de site, unde puteți plasa manual linkuri vechi.
- În cazul în care există o șansă de a putea fi găsite în continuare adrese URL vechi undeva, asigurați-vă că includeți eticheta „rel=canonical” . Acest lucru este necesar pentru ca crawlerele să știe ce pagină să crediteze pentru conținut, iar apoi Google nu vă va pedepsi pentru crearea de duplicate.
- Nu uitați de redirecționări 301 în niciun caz. Este esențial pentru vizitatorii site-ului, precum și pentru crawler-uri. După ce modificați permalinkurile, cele vechi nu vor mai fi accesibile, astfel încât toată lumea, inclusiv crawlerele, va primi erori 404 când le vizitează. Dacă ați schimbat permalinkurile cu scriptul, aș recomanda instalarea pluginului de redirecționare pentru a gestiona redirecționările .
Dar poți dormi bine: Permalink-urile personalizate pentru WooCommerce vor crea redirecționări 301 și „rel=canonical” pentru adresele URL vechi odată ce vei modifica structura permalink-urilor. Și, de asemenea, împreună cu pluginul Yoast, vor genera o nouă hartă a site-ului în numele dvs., cu adrese URL corespunzătoare.
Concluzie
WooCommerce ne avertizează cu privire la consecințele modificării permalink-urilor – încetinirea site-ului și conflictele URL. Dar având în vedere că acea declarație a fost făcută cu mult timp în urmă și de atunci, au verificat acest plugin premium care face exact acel lucru, poate că WooCommerce s-a răzgândit cu privire la chestiunea permalink-urilor.
V-ar ajuta SEO?
Ei bine, asta e o întrebare mai complexă. Unii cercetători spun că da; unii experți SEO recomandă reducerea numărului de foldere în calea către produse și categorii și crearea de adrese URL mai scurte. Dar vă las această decizie în seama dumneavoastră. În cele din urmă, nu există un adevăr absolut când vine vorba de SEO.
Și dacă alegi să încerci, cum să o faci în siguranță?
Dacă construiți un site web nou, puteți alege orice metodă doriți - adăugarea fragmentelor de cod sau instalarea pluginului, ambele par să fie sigure. Nu uitați să verificați dacă totul este în poziție în sitemap.xml și dacă există comentarii pe partea consolei de căutare Google.
Dacă aveți în vedere manipulări asupra permalink-urilor de pe un site existent, vă recomand cu tărie să utilizați pluginul verificat. Probabil că nu doriți să tentați soarta și să dați peste cap link-uri rupte, conținut duplicat sau să creați accidental o buclă de redirecționare.
Plugin-ul vă poate acoperi toate nevoile, iar suportul disponibil pe WooCommerce.com vă va ajuta să faceți față problemelor potențiale. Deoarece permalink-urile sunt cruciale pentru SEO, va fi un coșmar să rămâi singur cu o astfel de problemă.