PINQ - Interrogated datasets. Fasettsökning. Inline Facet Index JQuery UI Slider Patch: Konfigurera en omdirigering

( "query": ( "och": [ ( "terms": ("land": ["be", "fr")) ), ( "terms": ("category": ["böcker", "filmer") "]) ) ] ) )

För räknare kan vi använda de inbyggda aggregaten från Elasticsearch. Var och en av de två aspekterna lagras som ett fält i indexet, så vi kan använda termaggregering i vart och ett av dessa fält. Aggregeringen returnerar en räknare för värdet på detta fält.

( "query": ( "och": [ ( "terms": ("land": ["be", "fr")) ), ( "terms": ("category": ["böcker", "filmer") "]) ) ] ), "aggregations": ( "länder": ( "terms": ("fält": "land") ), "kategorier": ( "termer": ("fält": "kategori") ) ) )

Om du skulle köra den här frågan skulle du märka att räknarna är inaktiverade. De två icke-utvalda länderna, Portugal och Brasilien, har ett antal 0. Även om det finns faktiska resultat om vi vill välja dem (på grund av ELLER-kanten). Detta beror på att Elasticsearch som standard utför sina aggregationer på resultatuppsättningen. Det betyder att om du väljer Frankrike så kommer de andra landsfiltren att få poängen 0 eftersom resultatuppsättningen bara innehåller objekt från Frankrike.

För att fixa detta måste vi instruera Elasticsearch att utföra aggregeringen på hela datamängden och ignorera frågan. Vi kan göra detta genom att definiera våra kluster som globala.

( "query": ( "och": [ ( "terms": ("land": ["be", "fr")) ), ( "terms": ("category": ["böcker", "filmer") "]) ) ] ), "aggregations": ( "all_products": ( "global": (), "aggregations": ( "countries": ( "terms": ("fält": "land") ), " kategorier": ( "termer": ("fält": "kategori") ) ) ) ) )

Om vi ​​bara gjorde det skulle våra räknare alltid vara desamma eftersom de alltid skulle räkna med hela datamängden, oavsett våra filter. Våra aggregat måste bli lite mer komplexa, för att detta ska fungera måste vi lägga till filter till dem. Varje aggregering måste räkna med en datauppsättning med alla filter tillämpade utom sina egna. Så aggregeringen för konto i Frankrike räknas på datamängden med kategorifiltret tillämpat, men inte landsfiltret:

( "query": ( "och": [ ( "terms": ("land": ["be", "fr")) ), ( "terms": ("category": ["böcker", "filmer") "]) ) ] ), "aggregations": ( "all_products": ( "global": (), "aggregations": ( "countries": ( "filter": ( "and": [ ( "terms": () "category": ["böcker","filmer"]) ) ] ), "aggregations": ( "filtered_countries": ( "terms": ("fält": "land") ) ), "kategorier": ( "filter": ( "och": [ ( "terms": ("land": ["be","fr"]) ) ] ), "aggregations": ( "filtered_categories": ( "terms": (" field": "kategori") ) ) ) ) ) ) )

( "tog": 153, "timed_out": false, "_shards": ( "total": 5, "successful": 5, "failed": 0 ), "träffar": ( "total": 3, "max_score ": 0, "träffar": ["..."] ), "aggregations": ( "alla_produkter": ( "doc_count": 21, "filtrerade kategorier": ( "doc_count": 13, "categories": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "key": "movies", "doc_count": 6 ), ( "key": "music", "doc_count": 4 ), ( "key": "books", "doc_count": 3 ) ] ) ), "filtred_countries": ( "doc_count": 15, "countries": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "key": "fr", "doc_count": 6 ), ( "key": "br", "doc_count": 4 ), ( "key": "be", "doc_count": 3 ), ( "key": "pt", "doc_count": 2 ) ] ) ) ) ) )

yii2 ramverk

$terms = QueryHelper::terms("categories.name" , "min kategori" ); $nested = QueryHelper:: kapslad ("string_facet" , QueryHelper:: filter ([ QueryHelper:: term ("string_facet.facet_name" , [ "value" => $id , "boost" => 1 ] ), QueryHelper:: term ("string_facet.facet_value", ​​[ "value" => $värde, "boost" => 1 ] ), ] ) ); $filter = QueryHelper:: should ($nested ) ;

Facetterad navigering är ett problem för alla e-handelssajter. Ett för stort antal sidor som används för olika varianter av samma element utgör ett hot mot sökningens effektivitet. Detta kan negativt påverka SEO och användarupplevelse. Vad är facetterad navigering och hur man kan förbättra den, berättade experter från SEO Hacker-bloggen.

Facetterad navigering: definition

Denna typ av navigering finns vanligtvis i sidofälten på e-handelssajter, innehåller filter och facetter – alternativ som användaren konfigurerar efter önskemål. tillåter kunder i onlinebutiker att söka efter en önskad produkt med en kombination av attribut som kommer att filtrera produkter tills användarna hittar det de behöver.

Aspekter och filter är olika. Här är skillnaden:

  • Fasetter är indexerade kategorier. De hjälper till att förfina produktlistorna och fungerar som en förlängning av huvudkategorierna. Fasetter tillför ett unikt värde för varje val användaren gör. Eftersom aspekterna är indexerade måste de skicka relevanta signaler till sökmotorn, för att säkerställa att sidan innehåller alla viktiga attribut.

  • Filter används för att sortera och förfina objekt i listor. De är nödvändiga för användare, men inte för sökmotorer. Filter indexeras inte eftersom de inte ändrar innehållet på sidan, de sorterar den bara i en annan ordning. Detta resulterar i att flera webbadresser har duplicerat innehåll.

Potentiella problem

Varje möjlig fasettkombination har sin egen unika URL. Det kan orsaka vissa problem när det gäller SEO. Här är de viktigaste:

  • Duplicerat innehåll.
  • Spendera en budget på skanning.
  • Eliminera länkskillnader.

När din webbplats växer ökar också antalet dubbletter av sidor. Inkommande länkar kan gå till olika dubblerade sidor. Detta minskar värdet av länkar och begränsar sidrankningsmöjligheter.

Det ökar också sannolikheten för kannibalisering. nyckelord. Flera sidor försöker ranka för samma sökord, vilket resulterar i mindre stabila och lägre rankningar. Detta problem skulle kunna undvikas om varje sökord endast riktade in sig på en enda sida.

Lösningar för facetterad navigering

När du väljer en lösning på problemet med facetterad navigering, tänk på ditt slutmål: öka antalet indexerade sidor eller minska antalet sidor som du inte vill ska indexeras. Här är några lösningar som kan vara till hjälp för dig:

AJAX

Om du använder AJAX skapas ingen ny URL när användaren klickar på en aspekt eller ett filter. Eftersom det inte kommer att finnas unika webbadresser för alla möjliga kombinationer av aspekter, elimineras problemet med duplicerat innehåll, sökordskannibalisering och utgiftsindexeringskostnader.

AJAX kan bara vara effektiv innan lanseringen av en e-handelssida. Det används inte för att lösa problemen med redan befintliga resurser. Dessutom kräver denna metod vissa utgifter från din sida.

noindex-tagg

Noindex-taggen används för att tala om för bots att utesluta en viss sida från indexet. Därför kommer det inte att visas i Googles sökresultat. Detta minskar mängden duplicerat innehåll som visas i index och sökresultat.

Detta kommer inte att lösa problem med genomsökningsbudgeten eftersom bots fortfarande kommer att besöka din sida. Det hjälper inte heller att distribuera länkvärde.

rel=kanoniskt attribut

Med detta attribut berättar du för Google att du har en huvudsida att indexera och rangordna, och att alla andra innehållsversioner från den sidan bara är dubbletter som inte behöver indexeras.

Sofia Ibragimova

Innehållsmarknadsförare

Om samma sida på din webbplats kan nås från flera webbadresser, kommer sökmotorernas sökrobotar att behandla varje webbadress som en separat sida. Bots kommer att bestämma att innehållet på din webbplats inte är unikt, och detta kommer att påverka rankningen negativt och sänka din position i SERP. För att undvika detta, specificera den kanoniska huvudsidan genom att infoga följande teckensekvens i HEAD-blocket:

Du kan använda kanoniska sidor för att lösa problemet med duplicerat innehåll, och delningslänken kommer att slås samman med din huvudsida. Men det finns en chans att bots fortfarande kommer att genomsöka dubbletter av sidor, och detta är ett slöseri med genomsökningsbudget.

Robots.txt

Genom att stänga vissa sidor från indexering kan du uppnå bra resultat. Det är enkelt, snabbt och pålitligt sätt. Det är mest praktiskt att ställa in ett anpassat alternativ för att specificera alla möjliga kombinationer av fasetter och filter som du vill blockera. Inkludera den i slutet av varje webbadress du vill dölja (http://helsidesadress/robots.txt) eller använd Robots-metataggen i HEAD-området i sidkoden.

När du ändrar webbadressen måste du komma ihåg att det tar 3-4 veckor för robotar att märka dessa förändringar och reagera på dem.

Även här finns vissa problem. Värdet på länkarna kommer att vara begränsat, och även den blockerade webbadressen kan indexeras på grund av närvaron av externa länkar.

Google Search Console

Detta är ett utmärkt sätt att tillfälligt åtgärda dina problem medan du arbetar med att bygga ett bättre och mer användarvänligt navigationssystem. Du kan använda konsolen Google Sök för att tala om för sökmotorer hur de ska genomsöka din webbplats.

  • Logga in konto konsolen och välj avsnittet "Scanning" (Crawl):

  • Klicka på knappen "URL-parametrar":

  • Ange effekten av var och en av dina parametrar på sidan och hur Google ska behandla dessa sidor.

Kom ihåg att den här metoden endast döljer duplicerat innehåll från Googles sökrobotar. Bing- och Yahoo-sidor kommer fortfarande att dyka upp.

Hur man förbättrar facetterad navigering

Låt oss kort överväga alla metoder som låter dig skapa den korrekta facetterade navigeringen:

  • Använder AJAX
  • Ta bort eller dölj länkar till kategorier eller filtrera sidor som inte har något innehåll.
  • Tillåt indexering av vissa kombinationer av aspekter som har en hög sökvolym av trafik
  • Etablera webbplatshierarki genom brödsmulor i kategorier och underkategorier.
  • Skapa kanoniska (huvudsidor) för duplicerat innehåll.
  • Konsolidering av indexeringsegenskaper från komponentsidor till hela raden med sidmarkering med rel = "nästa" och rel = "föregående" .

Slutsats

Var och en av de nämnda lösningarna har sina fördelar och nackdelar. Det finns ingen universell lösning, allt beror på detaljerna i ditt företag och det specifika fallet. Optimerad facetterad navigering gör att din webbplats kan rikta in sig på ett bredare urval av sökord. För att undvika risker, se till att navigeringen inte bara uppfyller kraven för sökrobotar, utan även är bekväm med tanke på användarupplevelsen.

En modern person försöker lägga mindre och mindre tid på inköp. Långsamma produktkataloger stöter bort kunder, butiken tappar kunder och en del av vinsten. Gör din webbutik mer attraktiv med teknik fasetterad Facetterad – d.v.s. fördefinierad. Sök. Skapa facettindex och avsevärt påskynda sökningen efter produkter och arbetet med hela katalogen.

Notera: Den facetterade sökmotorn är tillgänglig från version 15.0.1 av modulen Informationsblock och integrerad med komponent Komponent- detta är en programkod designad i ett visuellt skal som utför en specifik funktion för vilken modul som helst för att visa data i den offentliga delen. Vi kan bädda in detta kodblock på webbplatssidor utan att skriva kod direkt. smart filter Komponenten förbereder ett filter för att välja från infoblocket och visar filterformuläret för att filtrera element. Komponenten måste anslutas före katalogobjektets utmatningskomponent, annars kommer listan med artiklar inte att filtreras. Komponenten är standard, ingår i moduldistributionssatsen och innehåller tre mallar: .standard, visuell_horisontell och visual_vertical. (De sista två mönstren stöds inte och lämnas av kompatibilitetsskäl.)

visuell redaktör komponenten är placerad längs vägen Innehåll > Katalog > Smart Filter.

Komponenten tillhör modulen Informationsblock.

Läs mer om fasetterad sökning

Låt oss skapa facettindex i några enkla steg:

Behöver jag återskapa fasetterade index?

Fasettindex återskapas automatiskt eller så måste du återskapa dem manuellt, beroende på de åtgärder som utförs:

Automatiskt Lade till nya eller redigerade befintliga Produkter.
skapa inte nya fastigheter.
Manuellt Systemet kommer att uppmana dig med ett meddelande högst upp på sidorna
administrativ avdelning.
Lagt till nytt eller redigerat katalogsektioner.
När du lägger till en ny egenskap eller tar bort en egenskap från smart filter.
Vid lossning av gods till exempel från 1C, om godset skapa nya fastigheter.

Facetterad sökning förbättrar arbetet med produktkatalogen. För att använda den behöver du:

  1. Skapa fasetterade index för produktkatalogen;
  2. Håll utkik efter en varning om behovet av att manuellt bygga om index.

I dagens lektion kommer vi att försöka återskapa en simulerad fasetterad (facetterad) sökning med hjälp av Javascript. Jag menar att du redan vet vad facetterad sökning är genom att läsa den här handledningen, annars googla den eller kolla Amazon eller min demo.

Först behöver vi github.com/eikes/facetedsearch-biblioteket. Ladda ner den och inkludera filen facetedsearch.js i vårt projekt. Vi kommer också att behöva biblioteken jQuery och Underscore.

Varning: Jag förstår att JQ inte längre är en kaka, men med det som det vanliga syntaktiska sockret kan du skära det i mer välbekanta bibliotek eller vanilj JS.

Så först, låt oss göra en enkel markering med anslutna beroenden:

dokumentera

// Det är här vi kommer att mata ut de facetterade filtren
// Och här kommer våra element

Nu måste vi beskriva inställningarna för vår applikation och skapa en mall för att visa arrayelement som vi kommer att sortera med hjälp av fasetter:

Tja, skapa faktiskt själva JSON-arrayen med element som ska visas i vår facetterade sökning i JS:

Var items = [ ( "firstname": "Mary", "efternamn": "Smith", "imageURL": "http://lorempixel.com/150/150/cats/2", "description": "Sed Ea Amet. Stet Voluptua. Nonumy Magna Takimata ", "category": "Mouse", "language": ["Smalltalk", "XSLT"], "continent": "Africa"​), ( "firstname": "Patricia ", "lastname": "Johnson", "imageURL": "http://lorempixel.com/150/150/cats/3", "description": "Ut Takimata Sit Aliquyam Labore Aliquyam Sit Sit Lorem Amet. Ipsum Rebum ." , "category": "Lion", "continent": "Nordamerika"), ... ];

Given array Jag skulle lägga den i en separat JS-fil som skulle bildas dynamiskt, från databasen till exempel.

Det är allt, vi får facetterad sökning i JavaScript och vi kan anpassa den. Därefter tillhandahåller jag den översatta dokumentationen för biblioteket, där du kan titta på triggers du behöver.

Dokumentation

Funktioner

De två funktionerna exporteras till jQuery-namnområdet.

facetelize Används för att initiera en fasetterad sökning med de givna inställningarna.

facetUpdate Kan användas om du vill ändra facettsökningsstatus utifrån.

Objektinställningar

artiklar: En uppsättning artiklar som ska filtreras och sorteras under processen.

fasetter: Ett objekt vars nycklar motsvarar elementnycklar och värden är rubriken för denna aspekt. Objekt kommer att filtreras baserat på vilket värde de har för dessa nycklar.

orderByOptions: Liknar fasetter, förutom att dessa nyckel/värdepar endast används för sortering. När RANDOM-tangenten är aktiverad kan resultaten slumpas.

facetSelector: Detta är väljaren som används för att hitta DOM-noden från vilken facetfiltren väljs.

resultSelector: Detta är väljaren som används för att hitta DOM-noden där resultaten visas.

resultTemplate: En sträng som används av mallmotorn Underscore för att rendera varje element från objektmatrisen. Följande attribut läggs till för varje element som också kan användas i en mall: batchItemNr , batchItemCount , och totalItemCount .

state: Detta objekt sparar de aktuella filtren, sorterar: currentResult och andra. Du kan tillhandahålla en orderBy-sträng eller ett filterobjekt för att förkonfigurera dem.

enablePagination: Boolean för att aktivera paginering och "ladda in mer"-knappen, sant som standard.

pagineringCount: Om paginering är aktiverat, ställer in antalet objekt per sida, standard är 50.

facetSortOption: Använd den här funktionen för att ändra ordningen på facettelement. Tar ett objekt där nycklarna motsvarar fasettnamnen och -värdena till en rad fasettvärden, som kan ordnas i den ordning du vill se dem. Det här exemplet kommer att sortera kontinenterna i en annan ordning, element som inte ingår i arrayen kommer att läggas till i alfabetisk ordning:

FacetSortOption: ("kontinent": ["Nordamerika", "Sydamerika"))

Det finns flera fler mallar, se facetedsearch.js källkod för att se alla tillgängliga val mall.

Utvecklingen

Du kan binda till vissa händelser som ska skicka meddelanden när någon åtgärd har ägt rum. För att göra detta använder vi händelsesystemet jQuery:

facetuicreated: Du kan binda den här funktionen till DOM-elementet settings.facetSelector som ska meddelas när användargränssnittet har skapats.

facetedsearchresultupdate: Du kan binda den här funktionen till settings.resultSelector DOM-elementet för att meddelas om uppdateringsresultaten.

facetedsearchfacetclick: Denna händelse utlöses när en fasett klickas och aktiveras på elementet settings.facetSelector. Som får facett-ID som argument.

facetedsearchorderby: Denna händelse utlöses när sorteringselementet klickas på elementet settings.facetSelector. Den tar emot ID-ordern som ett argument.

$(settings.resultSelector).bind("facetedsearchresultupdate", function()( // gör något, kanske ));

I den här artikeln (webmasternivå - avancerad), kommer vi att prata om, korsar varandra på olika sätt, den så kallade. facetterad navigering. För att förenkla assimileringen av materialet rekommenderar jag att gå igenom Wikipedia-artikeln "Fasettklassificering" och publikationer om engelska språket(men med bilder!) "Designa bättre facetterad navigering för dina webbplatser".

Facetterad navigering filtrerad efter färg eller prisklass kan vara till hjälp för dina besökare, men ofta skadlig för sökningen genom att skapa flera adresskombinationer med duplicerat innehåll. På grund av dubbletter sökmotorer de kommer inte att snabbt kunna skanna webbplatsen efter innehållsuppdateringar, vilket därför påverkar indexeringen. För att minimera detta problem och hjälpa webbansvariga att göra facetterad navigering sökvänlig vill vi:

Perfekt för användare och Google-sökning

Rensa vägen till produkter/artikelsidor:

Representerar webbadressen för kategorisidan:
http://www.example.com/category.php?category=gummy-godis

Representerar en webbadress för en specifik produkt:
http://www.example.com/product.php?item=svensk-fisk

Oönskade dubbletter orsakade av facetterad navigering

Samma sida är tillgänglig från olika webbadresser:

Kanonisk sida



URL: example.com/product.php? objekt=svensk-fisk

Dubblettsida



URL:example.com/product.php? item=svensk-fisk&category=gummy-godis&pris=5-10


kategori=gummy-godis&smak=surt&pris=5-10

Fel:

  • Det är inte logiskt för Google, eftersom användare sällan söker efter [$9:55 marmelad].
  • Det är inte vettigt för sökrobotar att hitta samma föremål ("fruktsallad") från överordnade kategorisidor (antingen "Gummi" eller "Sour Gummy").
  • En negativ poäng för webbplatsägaren, eftersom indexeringsförfrågningar späds ut med flera versioner av samma kategori.
  • En negativ poäng för webbplatsägaren, eftersom det är en värdelös och onödig börda i bandbredd webbplats
Tomma sidor:


URL: example.com/category.php? kategori=gummy-godis&smak=surt&pris=över 10

Fel:

  • Felaktig kod för sökmotorer (i det här fallet ska sidan ge koden 404)
  • Tom sida för användare


Sämsta (osökvänliga) lösningar på facetterad navigering

Exempel #1: Icke-standardparametrar används i URL:en: kommatecken och parenteser, istället för nyckel=värde&:

  • example.com/category? [ kategori:gummy-godis ][ sort:price-low-to-high ][ sid:789 ]
  • example.com/category?category , gummigodis , sort , lowtohigh , sid , 789
Hur:
example.com/category? category=gummy-candy&sort=låg-till-hög&sid=789

Exempel #2: Använda kataloger eller filsökvägar snarare än alternativ i värdelistor som inte ändrar innehållet på sidan:
example.com/c123/s789/product?svensk-fisk
(där /c123/ är kategorin, /s789/ är sessions-ID, vilket inte ändrar innehållet på sidan)

Bra beslut:

  • exempel.com /gummy-candy/ product?item=svensk-fisk&sid=789(katalogen, /gummy-candy/, ändrar innehållet på sidan på ett meningsfullt sätt)
Den bästa lösningen:
  • example.com/product?item=swedish-fish& kategori=gummy-godis&sid=789 (URL-parametrar ger mer flexibilitet för sökmotorer att avgöra hur man genomsöker effektivt)
Det är svårt för sökrobotar att skilja användbara värden (t.ex. "gummy-candy") från värdelösa värden (t.ex. "SESSIONID") när dessa värden placeras direkt i länkvägen. Å andra sidan ger URL-parametrar flexibiliteten för sökmotorer att snabbt kontrollera och avgöra när ett givet värde inte kräver sökrobotåtkomst till alla varianter.

Vanliga värden som inte ändrar innehållet på sidan och bör listas som URL-parametrar inkluderar:

  • Sessions-ID
  • ID-spårning
  • Referensidentifierare
  • Tidsstämplar
Exempel #3: Konvertera användargenererade värden (möjligen oändliga) till URL-parametrar som är genomsökningsbara och indexerbara men värdelösa för sökning.
Använda mindre data som genererats av webbplatsanvändare (som longitud/latitud eller "dagar sedan") i genomsökta och indexerade webbadresser:
  • example.com/hitta-en-läkare? radius=15&latitude=40,7565068&longitude=-73,9668408
  • example.com/article?category=health& dagar-sedan=7
Hur:
  • example.com/hitta-en-läkare? stad=san-francisco&kvarter=soma
  • example.com/articles?category=health& datum=10 januari 2014
Istället för att låta användaren generera värden för att generera genomsökningsbara webbadresser (vilket resulterar i oändliga möjligheter med mycket litet värde för besökarna), är det bättre att publicera en sidkategori för de mest populära värdena, och ytterligare information kan inkluderas för att göra sidan mer värdefull än vanlig söksida med resultat. Alternativt kan du överväga att placera användargenererade värden i en separat katalog och sedan använda robots.txt för att inaktivera genomsökning från den katalogen.
  • exempel.com /filtrering/ hitta-en-läkare?radius=15&latitude=40.7565068&longitude=-73.9668408
  • exempel.com /filtrering/ artiklar?category=health&days-ago=7
Och i robots.txt:
Användaragent: *
Inte godkänna: /filtrering/

Exempel #4. Lägga till URL-parametrar utan logik.

  • exempel.com /gummy-candy/lollipops/gummy-candy/ gummi-godis/produkt?svensk-fisk
  • exempel.com/produkt? katt=gummy-godis&cat=lollipops&cat=gummy-godis&katt=gummi-godis&artikel=svensk-fisk
Bra beslut:
  • example.com /gummy-candy/ product?item=svensk-fisk
Den bästa lösningen:
  • exempel.com/produkt? item=svensk-fisk&category=gummy-godis
Främmande URL-parametrar ökar bara dubbleringen, och som ett resultat av detta genomsöks och indexeras webbplatsen mindre effektivt. Därför är det nödvändigt att bli av med onödiga URL-parametrar och regelbundet rensa bort skräplänkar innan du genererar nya URL:er. Om många parametrar behövs för användarsessionen är det möjligt att dölja informationen i cookies, snarare än att ständigt lägga till värden, som katt=gummy-godis&katt=lollipops&katt=gummy-godis& ...

Exempel #5: Föreslå ytterligare förbättringar (filtrering) när det finns nollresultat.

Dåligt:
Tillåt användare att välja filter när det finns null-objekt att förfina.


Förfining till en sida med noll resultat (till exempel pris=över-10), vilket frustrerar användare och orsakar onödiga förfrågningar till sökmotorer.

Hur:
Skapa länkar endast när det finns element för användaren att välja. Om resultatet är noll, markera länken som "grå" (dvs. oklickbar). För att ytterligare förbättra användbarheten kan du överväga att inkludera en indikator för antal objekt bredvid varje filter.


Det är inte tillåtet att visa en sida med noll resultat (till exempel pris=över 10), plus att det är förbjudet för användare att göra onödiga klick, och sökmotorer genomsöker inte detta användbar sida.

Undvik onödiga webbadresser och minimera besökarutrymmet genom att generera webbadresser endast när produkter är tillgängliga. Detta hjälper till att hålla användarna engagerade på din webbplats (färre klick på bakåtknappen när ingen produkt hittas), minska antalet möjliga webbadresser som sökmotorerna känner till. Dessutom, om sidan inte bara är "tillfälligt slut i lager" utan sannolikt inte kommer att innehålla relevant information, överväg att ge den en 404-svarskod. På 404-sidan kan du designa ett användbart meddelande för användare med fler navigeringsalternativ eller en sökruta så att användare kan hitta relaterade produkter.

För nya webbplatser vars webbansvariga överväger att implementera facetterad navigering finns det flera alternativ för att optimera genomsökningen (samlingen av adresser på din webbplats som är kända för Googlebot) av unika innehållssidor och minska sökmotorindexering av dubbletter av sidor (konsolidering av indexeringssignaler).

Bestäm vilka URL-parametrar som krävs för att sökmotorer ska kunna genomsöka varje enskild innehållssida (dvs. bestäm vilka parametrar som krävs för att skapa minst en klicksökväg till varje objekt). Obligatoriska parametrar kan inkludera artikel-id , kategori-id , sida etc.

Bestäm vilka parametrar som kommer att vara användbara för besökare med deras frågor, och vilka som är mer sannolikt att orsaka dubbelarbete vid genomsökning och indexering. I exemplet med konfektyr (marmelad) kan URL-parametern "smak" vara värdefull för användare med frågorna i exemplet smak=surt . Det är dock logiskt att betrakta "pris"-parametern som orsakar onödig dubbelarbete kategori=gummy-godis&smak=surt& pris=över-10 . Andra vanliga exempel:

  • Värdefulla parametrar för sökmotorer: artikel-id , kategori-id , namn , varumärke ...
  • Onödiga parametrar: session-id , prisklass ...
Överväg att implementera ett av flera konfigurationsalternativ för webbadresser som innehåller onödiga parametrar. Se bara till att "onödiga" URL-parametrar verkligen inte krävs för att genomsöka av sökrobotar eller för att användaren ska hitta varje enskild produkt!

Alternativ 1: och interna länkar

Markera alla onödiga webbadresser med . Detta kommer att minska arbetskostnaderna sökrobot och förhindra att skanningshastigheten sjunker. Du måste hantera genomsökning globalt genom robots.txt (översättarens anmärkning: se artikel "").
Använd attributet rel="canonical" för att separera sidor för sökindexet från sidor som inte behövs där (till exempel på sidan pris=5-10 du kan skriva attributet rel="canonical", som anger kategorin för all sur marmelad example.com/category.php?category=gummy-candies&taste=sour& sida=alla ).

Alternativ 2: Robots.txt och Disallow

Webbadresser med onödiga parametrar ingår i katalogen /filtering/, som kommer att stängas i robots.txt (förbjud disallow). Detta gör att alla sökmotorer endast kan genomsöka "korrekt" inlänk (innehåll) på webbplatsen, men kommer att blockera genomsökning av oönskade webbadresser på en gång. Till exempel ( example.com/category.php?category=gummy-godis), om de värdefulla parametrarna var artikel, kategori och smak, och sessions-id och pris var överflödiga, skulle webbadressen för smak vara:
example.com/category.php?category=gummy-candies& smak=surt, men alla onödiga parametrar, såsom pris, kommer URL:en att inkludera i en fördefinierad katalog - /filtering/:
exempel.com /filtrering/ category.php?category=gummy-candies&price=5-10,
som sedan kommer att förbjudas via robots.txt:
Användaragent: *
Disallow: /filtering/

Alternativ 3: Separata värdar

Se till att bästa lösningarna, som anges ovan (till exempel för onödiga adresser) gäller fortfarande. Annars har sökmotorer redan bildat en stor länkmassa i indexet. Således kommer ditt arbete att vara inriktat på att minska ytterligare tillväxt. onödiga sidor ses med google robot och konsolidering av indexeringssignaler.

Använd parametrar med standardkodning och nyckel=värdeformat.

Se till att värden som inte ändrar innehållet på sidan, såsom sessions-ID:n, implementeras som nyckel=värde, inte kataloger.

Tillåt inte klick och generera webbadresser när det inte finns några element att filtrera.

Lägg till logik i URL-parametermappning: ta bort onödiga parametrar istället för att lägga till värden hela tiden (undvik till exempel att generera en länk så här: example.com/product?cat=gummy-candy&cat=lollipops &cat=gummy-candy&item=svensk-fisk).

Lagra värdefulla parametrar i webbadressen genom att lista dem först (eftersom webbadresser är synliga i sökresultat) och mindre relevanta parametrar sist (som sessions-ID).
Undvik denna länkstruktur: example.com/category.php? session-id=123&tracking-id=456&category=gummy-godis&smak=surt
Justera URL-inställningarna i Verktyg för webbansvariga om du har en klar förståelse för hur länkar på din webbplats fungerar.

Se till när använder JavaScript för dynamisk kontroll innehåll (sortera/filtrera/dölj) utan att uppdatera webbadressen, det finns riktiga webbadresser på din sida som har sökvärde, såsom huvudkategorier och produktsidor som är genomsökningsbara och indexerbara. Försök att inte bara använda hemsida(dvs en webbadress) för hela din webbplats, och genom JavaScript för att dynamiskt ändra innehållet i navigeringen - detta kommer tyvärr att ge användarna endast en webbadress i sökningen. Se också till att prestandan inte påverkas av dynamisk infiltrering den värsta sidan, eftersom det kommer att hindra användaren från att arbeta med webbplatsen.

Förbättra indexeringen av olika sidor med samma innehåll genom att ange attributet rel="canonical" på den privilegierade versionen av sidan. Attributet rel="canonical" kan användas inom en eller flera domäner.

Optimera indexeringen av "paginerat" innehåll (t.ex. page=1 och page=2 från kategorin "gummy candies") genom (antingen):

  • Lägg till ett rel="canonical"-attribut till en serie sidor som anger den kanoniska kategorin med parametern "view-all" (t.ex. page=1, page=2 och page=3 från kategorin "gummy candies" med rel=” kanoniskt” på category=gummy-candies&page=all), se till att sidan är relevant för användare och laddas snabbt.
  • Använd pagineringsmarkering rel="next" och rel="prev" för att ange förhållandet mellan enskilda sidor (se artikeln "Paginaton with rel="next" och rel="prev" ") .
Inkludera endast kanoniska länkar i webbplatskartor.