Sådan finder du JavaScript-fejl der blokerer intern links rendering
Hvorfor JavaScript kan skjule interne links for søgemaskiner
Google kan rendrere JavaScript, men det betyder ikke, at alle JavaScript-baserede links automatisk er lige gode til crawling. Ifølge Google Search Centrals vejledning om crawlbare links er det mest robuste mønster stadig almindelige a-elementer med en gyldig href-attribut. Hvis et internt link kun bliver udløst via klik-events på div, span eller button, eller hvis href først bliver sat sent i en JavaScript-proces, øges risikoen for, at linket ikke bliver behandlet som forventet.
Fejlen ligger ikke altid i selve linket. En JavaScript-undtagelse højere oppe i renderingskæden kan stoppe komponenter, navigation eller produktkort, før de indsætter links i DOM’en. Derfor skal fejlsøgning fokusere på både markup, netværkskald, rendering og konsolfejl. Det er også vigtigt at skelne mellem tre niveauer: en faktisk blokering af crawlbare links, en svag implementering som stadig kan fungere, og en ren kvalitetsanbefaling uden tydelig SEO-konsekvens.
Typiske symptomer på at interne links ikke bliver rendreret korrekt
- Navigationspunkter eller produktlinks findes visuelt på siden, men mangler som a href i rendered HTML
- Links bliver først indsat efter brugerinteraktion, for eksempel scroll, hover eller klik på en filterknap
- JavaScript-fejl i browserkonsollen opstår før navigation, relaterede produkter eller kategoriblokke indlæses
- Google Search Console viser lav opdagelse af dybere undersider trods tydelig intern navigation for brugere
- Lighthouse eller DevTools rapporterer fejl i konsollen, manglende ressourcer eller scriptfejl
- Single-page applications ændrer URL og indhold, men linkstrukturen i kildekoden er meget tynd
Hvad Google faktisk anbefaler for links
Googles dokumentation om JavaScript SEO basics og crawlbare links peger på et enkelt princip: hvis du vil gøre links lette at forstå og følge, skal de være rigtige hyperlinks. Det vil sige a-elementer med en href, der peger på en URL. Google nævner også i blogindlægget Frequently asked questions about JavaScript and links, at links kan være JavaScript-forstærkede, men at strukturen stadig bør være standardiseret og robust.
Det betyder i praksis, at denne type implementering normalt er mere sikker for SEO end klikbaseret navigation uden href. Hvis JavaScript fejler, bør brugeren og søgemaskinen helst stadig kunne se og følge linket. Det er et godt eksempel på progressiv forbedring: basisfunktionaliteten ligger i HTML, og JavaScript tilføjer ekstra adfærd ovenpå.
Godt mønster:
Træningssko
Mere risikabelt mønster:
Træningssko
Også risikabelt:
Træningssko
En praktisk fejlsøgningsmetode i fem trin
1. Bekræft om linket findes i den rendrerede DOM
Start i Chrome DevTools. Åbn siden, højreklik og vælg Inspicer. Brug Elements-panelet og søg efter den URL eller ankertekst, du forventer at finde. Det afgørende spørgsmål er ikke kun, om linket ses visuelt, men om der faktisk findes et a-element med href i DOM’en efter rendering. Hvis et menupunkt ligner et link i brugerfladen, men kun består af et span eller et button-element, er det et teknisk tegn på, at crawlbarheden kan være svagere.
Sammenlign også med View Source. Hvis linket findes i den oprindelige HTML, er det generelt mere robust. Hvis det kun opstår sent i DOM’en efter scripts, er det ikke nødvendigvis et problem, men det gør løsningen mere følsom over for JavaScript-fejl, race conditions og blokerede ressourcer.
2. Gennemgå Console for fejl, der stopper rendering
Åbn Console-panelet og genindlæs siden. Kig især efter uncaught exceptions, failed network requests, MIME-fejl, CORS-problemer og scripts, der ikke kan parses. Chrome Lighthouse fremhæver også konsolfejl under best practice-diagnostik i dokumentationen Browser errors were logged to the console. En enkelt fejl i en komponent eller et bundlet script kan forhindre efterfølgende kode i at køre, og hvis den kode skulle opbygge intern navigation, forsvinder linkene effektivt fra den rendrerede side.
Eksempel på fejlmønster:
Uncaught TypeError: Cannot read properties of undefined (reading 'items')
at renderCategoryGrid (...)
Mulig SEO-konsekvens:
Hvis renderCategoryGrid også indsætter omkring produktkort eller underkategorier, bliver de links aldrig oprettet.
Brug også fanen Issues i DevTools, som samler visse problemer mere overskueligt. Se Chromes dokumentation om Issues: Find and fix problems. Den erstatter ikke manuel debugging, men den kan hjælpe med hurtigt at finde ressourcer eller sikkerhedsproblemer, som påvirker rendering.
3. Kontroller Network for scripts og API-svar
Mange interne links bliver genereret fra API-data, især i headless løsninger, facetterede produktlister og JavaScript-baserede menuer. I Network-panelet bør du filtrere på JS, XHR og Fetch og genindlæse siden. Se efter 404, 500, timeout, blokerede requests eller JSON-svar uden de nødvendige URL-felter. Hvis en menu-API returnerer labels, men ikke destinationer, kan frontend ende med klikbare elementer uden rigtige href’er.
Her er det nyttigt at skelne mellem årsag og symptom. Manglende links i DOM’en kan være et frontendproblem, men rodårsagen kan ligge i et fejlet endpoint, forkert cache, en deploy-fejl eller en environment-variabel, der peger på forkert API. SEO-løsningen er derfor ikke altid at ændre markup først; ofte skal datakilden stabiliseres.
4. Brug rendered HTML og URL-inspektion i Search Console
Google Search Console er nyttig til at kontrollere, om Google sandsynligvis ser siden anderledes end du gør i browseren. Med URL-inspektion kan du teste en URL og undersøge den rendrerede sideversion. Hvis centrale interne links mangler i den rendrerede HTML eller i skærmbilledet, er det et stærkt signal om, at rendering eller ressourcetilgængelighed fejler for Googlebot.
Search Console er ikke et komplet DOM-debuggingværktøj, men det er værdifuldt som verifikation. Hvis dine udviklerværktøjer viser, at links kun opstår efter lang forsinkelse, brugerinteraktion eller fejlbehæftede requests, og Search Console samtidig viser begrænset rendering, har du et mere troværdigt grundlag for at prioritere problemet som SEO-relevant.
5. Bekræft konsekvensen i crawling og opdagelse
Det sidste trin er at afgøre, om problemet faktisk påvirker opdagelse og crawling. Se på interne linkmønstre, crawlstatistik og indekseringssignaler i Search Console. Googles dokumentation om fejlfinding af crawling errors kan hjælpe med at strukturere analysen. Hvis sider kun findes via svagt rendrerede JavaScript-links, kan de blive opdaget senere eller mere ustabilt. Hvis de derimod også ligger i XML-sitemap, brødkrummer, HTML-navigation og produktlister på serversiden, er risikoen mindre.
Konkrete fejltyper og hvordan de løses
Links indlæses kun efter klik eller scroll
Hvis underkategorier eller produkter først får href efter brugerinteraktion, bør du overveje server-rendering eller i det mindste at levere de vigtigste links i initial HTML. For SEO-kritiske sektioner er det en mere robust løsning end at vente på events, som søgemaskiner ikke nødvendigvis udfører på samme måde som brugere.
Link-komponenten renderer uden href ved fejl i data
I komponentbaserede frameworks ses ofte mønstre, hvor et link kun bliver korrekt, hvis bestemte props findes. Hvis URL mangler i data, renderes der måske et tomt eller ugyldigt element. Løsningen er defensiv rendering: vis enten et korrekt fallback-link eller undlad elementet tydeligt og log fejlen. Et halvt opbygget pseudo-link er dårligere end en kontrolleret fallback.
JavaScript-fejl i tredjepartskode stopper navigationen
Cookiebannere, tracking-scripts, filtre og widgets kan udløse fejl, der påvirker hele JavaScript-kæden. Isolér tredjepartsscripts, indlæs dem asynkront hvor muligt, og sørg for at kritisk navigation ikke afhænger af dem. Hvis hovedmenu eller interne produktlinks bryder sammen på grund af marketing- eller UI-plugins, er det både et driftsproblem og et SEO-problem.
Praktiske eksempler i WordPress og WooCommerce
På WordPress- og WooCommerce-sites opstår problemet ofte i temaer, page builders, AJAX-filtre og JavaScript-drevne megamenuer. En produktside eller kategoriside kan visuelt fungere fint, men filtreringspluginet kan erstatte produktgrid’et med HTML-fragmenter, hvor produktkort mangler rigtige links, eller hvor fejl i JavaScript stopper opdateringen. Det er især vigtigt på store kataloger, hvor intern linkstruktur og produktopdagelse hænger tæt sammen med kategori- og filteroplevelsen.
Hvis du arbejder med WooCommerce-filtre og store kataloger, kan relaterede performance- og forespørgselsproblemer også forværre rendering og timeouts. Se også Når WooCommerce produktfiltre gør store kataloger langsomme. Og hvis du vil sætte arbejdet ind i en bredere produkt-SEO-sammenhæng, kan SEO-Optimering af webshop produkter være relevant.
En praktisk WordPress-tilgang er at teste siden med standardtema eller midlertidig deaktivering af det mistænkte plugin i et stagingmiljø. Hvis links pludselig findes som almindelige a href i DOM’en, har du indsnævret fejlen. Tjek derefter om løsningen kræver ændring i template, JavaScript-komponent eller plugin-konfiguration.
Sådan prioriterer du fundene korrekt
- Høj prioritet: vigtige interne links findes ikke som crawlbare a href efter rendering
- Høj prioritet: JavaScript-fejl stopper menu, kategorilister, produktkort eller pagination
- Mellem prioritet: links findes, men bliver indsat sent og ustabilt via scripts
- Mellem prioritet: fallback mangler, selv om Google ofte stadig kan rendrere løsningen
- Lavere prioritet: kosmetiske konsoladvarsler uden effekt på links, DOM eller netværkskald
Det centrale er at dokumentere sammenhængen mellem fejl og konsekvens. En konsolfejl er ikke automatisk et SEO-problem. Men hvis du kan vise, at fejlen betyder, at href ikke bliver rendreret, at rendered HTML mangler vigtige interne links, og at de berørte sider opdages dårligere, har du et klart teknisk SEO-case.
En kort arbejdsgang til hverdagsbrug
- Find den side, hvor interne links mistænkes at mangle
- Kontrollér i DevTools Elements, om der findes a-elementer med gyldige href’er
- Genindlæs med åben Console og notér JavaScript-fejl
- Brug Network til at finde fejlede scripts eller API-kald
- Sammenlign med rendered HTML i Search Console URL-inspektion
- Bekræft om problemet rammer vigtige linktyper som menu, kategorier, pagination eller relaterede produkter
- Ret årsagen, ikke kun symptomet, og test igen
Når denne metode bruges konsekvent, bliver JavaScript-fejl omkring intern linking lettere at afgrænse. Målet er ikke at fjerne al JavaScript fra sitet, men at sikre, at søgemaskiner kan se og følge de interne links, der bærer informationsarkitektur, crawlstier og opdagelse af vigtige sider.
Kilder og yderligere læsning
- SEO Link Best Practices for Google | Google Search Central | Documentation | Google for Developers
- Understand JavaScript SEO Basics | Google Search Central | Documentation | Google for Developers
- Frequently asked questions about JavaScript and links | Google Search Central Blog | Google for Developers
- Browser errors were logged to the console | Lighthouse | Chrome for Developers
- Issues: Find and fix problems | Chrome DevTools | Chrome for Developers
- Troubleshoot Google Search Crawling Errors | Google Search Central | Documentation | Google for Developers
Kategorier
- AI & Automatisering (3)
- Joomla (2)
- Kode (6)
- Online markedsføring (2)
- SEO (8)
- Tech (2)
- Webshop (12)
- Website (5)
- WordPress (9)
Denne side er skrevet af
Simon B. H. Christensen
Tlf: 6168 3536