Filtre som bare finnes bak et klikk
Et filter en agent ikke kan uttrykke som en adresse, finnes ikke for den. Årsaken er nesten alltid den samme: filtervalget havner aldri i URL-en.
Publisert
Dette er den vanligste blokkerende feilen vi finner: en liste en agent ikke får filtrert, sortert eller bladd seg gjennom fra start til slutt, fordi ingen av delene har en adresse den kan be om.
Kunden spurte om «vanntett jakke i str. L under 3000 kroner». Katalogen din har alle tre delene. Agenten kommer likevel ikke fram til dem.
Hvorfor
En agent klikker ikke. Den henter en adresse, leser svaret, og henter en adresse til. Alt den skal kunne gjøre, må derfor ha en adresse.
Et fasettfilter bygget som knapper som endrer tilstand i nettleseren har ingen adresse. Sorteringen som ligger i en nedtrekksmeny og sender en fetch bak kulissene har ingen adresse. «Vis flere»-knappen som legger på 24 produkter til har ingen adresse. For deg som ser på skjermen er alt dette åpenbart tilgjengelig. For agenten finnes det ikke.
Vi ser tre varianter, i denne rekkefølgen:
- Filteret setter ingen adresse. Tilstanden ligger bare i minnet til nettleseren. Kopierer du adressefeltet og åpner det i et nytt vindu, er du tilbake til ufiltrert liste. Det er den enkleste testen som finnes.
- Filteret setter en adresse, men serveren ignorerer den. Adressen ser riktig ut, men innholdet settes sammen av et skript etterpå. En agent som henter adressen får den ufiltrerte listen.
- Fasettene har ingen navn en agent kan forstå.
?f1=42er en gyldig adresse, men ingenting i den forteller at dette er «farge» eller «størrelse». En agent kan ikke gjette hvilken parameter som betyr «vanntett».
Vi ser også det motsatte av et filter: apotek1.no svarte likt på hver adresse vi prøvde, og kategorinavnene i navigasjonen hadde ingen href i det hele tatt. Da finnes det ingen vei inn i katalogen som er noe annet enn å klikke.
Slik sjekker du
Den korteste testen tar tretti sekunder og krever ingen verktøy:
- Åpne en kategoriside i nettleseren.
- Sett på to filtre og en sortering.
- Kopier adressen fra adressefeltet.
- Lim den inn i et privat vindu.
Får du den samme filtrerte listen, er du i orden. Får du den ufiltrerte listen, eller en adresse uten spor av valgene dine, har du feilen.
Så gjentar du testen slik en agent gjør det:
curl -sL "https://dinbutikk.no/jakker/?farge=svart&storrelse=l" \
| grep -oiE "<a [^>]*href=\"[^\"]*jakke[^\"]*\"" | wc -l
Får du et tall som er like stort med og uten parameterne, blir filteret ikke brukt på serveren.
Til slutt: se etter fasettlenkene i kildekoden.
curl -sL https://dinbutikk.no/jakker/ | grep -oE "href=\"[^\"]*(farge|storrelse|filter)[^\"]*\"" | head -20
Ingen treff betyr at fasettene dine bare finnes i JavaScript.
Hva du gjør
- Legg filtertilstanden i adressen. Hver kombinasjon av valg skal ha sin egen adresse som gir den samme listen når den åpnes kaldt. Dette er én endring, og den løser mesteparten av problemet.
- La hver fasett være en ekte
<a href>. Da kan agenten oppdage hvilke valg som finnes ved å lese siden, i stedet for å måtte gjette parameternavn. - Gi parameterne navn på et språk et menneske kan lese.
?farge=svarter selvforklarende.?f1=42er ikke det. - Bygg den filtrerte listen på serveren. Adressen skal ikke bare eksistere; den skal gi riktig innhold i første svar.
- La paginering være lenker.
?side=2som en<a href>er nok. «Vis flere» som bare finnes som en knapp, gjør resten av katalogen usynlig. - Ikke sett
noindexpå fasettsidene som faktisk betyr noe. Det er vanlig å sperre alle fasettkombinasjoner for å unngå duplikater. Da stenger du samtidig den ene siden agenten skulle landet på.
Ett forbehold vi legger på oss selv: vi kjører ikke JavaScript, så når et merket kontrollelement ikke koker ned til noen adresse, slutter vi oss til at det er JS-bare. Det er en slutning om koden, ikke et bevis for at filtreringen feilet, og vi rapporterer det som en advarsel, ikke som en blokkering.
Slik ser du at det ble bedre
Ta den samme adressen med to filtre og en sortering, og hent den med curl uten nettleser. Du skal se de riktige produktnavnene og prisene i ren tekst, i den rekkefølgen sorteringen tilsier, og en lenke til neste side. Klarer du det, klarer en agent oppgaven kunden ga den.
Det går an. kicks.no legger 61 oppmerkede produkter på hver listeside. Da vi testet det for hånd 8. august 2026, fant både ChatGPT og Claude et produkt og prisen på det umiddelbart.
Hvor tallene kommer fra
Observasjonene om apotek1.no og kicks.no ble gjort for hånd 8. august 2026, mot nettstedenes egne sider. Det skanneren vår måler i dag, er smalere enn det denne artikkelen beskriver: den teller merkede knapper og valg som ikke koker ned til verken en URL eller et skjema, og rapporterer det som en advarsel. Den forsøker ikke å løse kundens oppgave.