Frames toegankelijk maken voor zoekmachines

Een veel voorkomend probleem bij oudere websites (en ja: ook nog bij nieuwe websites) is het gebruik van frames. Hoe zit dat nu met zoekmachines en frames: wat is nou echt de grote drempel en hoe los je dat op een simpele manier op.

Frames zijn eigenlijk een manier om in een browser meerdere browsers tegelijkertijd te openen. Je kunt dus in 1 venster meerdere pagina's tegelijkertijd laten zien. Veelal wordt dit gebruikt om zo een titelbalk, een menubalk en een gedeelte content te laten zien. Maar, hoe gaan zoekmachines hier dan mee om?

structuur-met-frames.gifAllereerst heb ik geprobeerd een simpel schema te maken waarin te zien is hoe een spider door een site kan lopen. Het gaat hier om een kleine site met een frameset bestaande uit 3 frames. De spider kan via de frames alle pagina's bereiken maar ziet geen structuur in de site en kan maar via 1 pad naar de meeste pagina's toe. wat nou als de spider binnenkomt op pagina 4? Hij kan niet verder omdat op pagina 4 geen links staan naar andere pagina's. In realiteit zullen er altijd wel een paar links staan maar hou er rekening mee dat je dit nooit zeker weet en dat je structuur niet echt transparant is.

Om direct een goed voorbeeld te schetsen van een duidelijke structuur heb ik structuur-zonder-frames.gifeen site met 5 pagina's in schema gebracht. Omdat het menu op elke pagina staat kan een spider vanaf elke pagina naar elke pagina. Dus het maakt niet uit waar hij begint, hij kan overal komen. Dit is de mooiste situatie omdat je duidelijkheid geeft aan de spider. Bij grotere websites is het niet te doen om links op te nemen naar alle pagina's maar door een site op te delen in bijvoorbeeld categorieën kan je een heleboel van dit soort structuren maken die je onderlink weer linkt.

Dan nu de oplossing voor de site met frames: zorg ervoor dat je net zo'n structuur creëert als bij de site zonder frames. Dit doe je door in het bovenste schema de Topbalk, het Menu en de Frameset weg te denken en tussen de overige pagina's een linkstructuur te maken. Dit kan heel simpel door op elke pagina onderaan in een footer tekstlinks te maken naar de andere pagina's, dat is een veelgebruikte en goede manier om een alternatief te bieden voor een niet te spideren Flash menu. Gewone bezoekers zullen het menu uit je frameset gebruiken en spiders het menu in de footer. Uiteindelijk zal de spider de structuur tussen de pagina's net zo zien als het onderste schema en de frameset als een soort splash pagina waar hij doorheen moet. Nog geen ideale situatie, maar wel een snelle manier om je frames-probleem gemakkelijk te verlichten.

Click to activate social bookmarks

 

22 thoughts on “Frames toegankelijk maken voor zoekmachines

  1. Hallo,

    Ik bouwde tot nu toe websites met inline frames omdat de site dan een vast formaat kan behouden en het tekstgedeelte daarbinnen afgekaderd kan scrollen. Maar deze sites worden inderdaad moeilijk 'gespiderd' wat betreft de zog. deep links.
    De gegeven oplossing klinkt goed, maar krijg je dan niet het probleem dat bv google alleen die frame laat zien ipv de frameset?

  2. Ja, dat is inderdaad het geval. En hiervoor zou je een \'inframe script\' kunnen gebruiken. Dat script kijkt of de frameset om de pagina heen staat, zo niet: dan de frames er omheen plaatsen. Op die manier kun je rechtstreekse dieplinks maken naar een betreffende pagina, het script plaatst vervolgens automatisch een frameset om je pagina heen.

    Er zijn wel voorbeelden te vinden van dit soort scripts, mocht je er niet uitkomen laat dat dan even weten en ik help je er mee.

  3. Beste André,

    ik ben al een tijdje op zoek naar een werkend Inframe script. Heb onderandere getracht het schript van http://www.mastercode.nl/altijdframes/ werkend te krijgen, maar als enig script leek, kreeg ik redelijk wat foutmeldingen.
    Ik weet dat http://www.marktplaats.nl ook iets dergelijks gebruikt en in de source van de frameset heb ik een stukje code gevonden wat er bij hoort, maar op de onderliggende pagina's van marktplaats, staan dusdanig veel scripts, dat ik niet kan herleiden welk script bij het script van de frameset hoort.
    Ik hoor heel graag van je !
    Alvast bedankt voor de moeite

  4. Ik heb nooit problemen gehad met websites met frames. Ze werden allemaal geindexeerd zonder problemen. De meeste negatieve informatie over frames zijn vooroordelen en kloppen niet (of zijn makkelijk op te vangen).

    Het enige probleem is dat iemand vanuit de zoekmachine op een framepagina kan komen. Dat lost je op met een javascriptje die hem dan weer naar de hoofdpagina stuurt als de pagina niet in een frame staat.

    Ik ben ondertussen overgestapt op iframes omdat dit makkelijker werkt dan een frameset.

    Verder kun je in het noframes gedeelte links naar alle subpagina's plaatsen.

    Behalve iframes heb ik nog geen enkel alternatief kunnen vinden voor frames. Dus dat enkel de inhoud ververst als je van pagina wiselt (en niet het menu en de titel). En het menu en de titel netjes blijven staan en niet uit beeld scrollen als je scrollt.

  5. @Marcel: als je dat werkelijk nog gelooft raad ik je aan je verder in de materie te verdiepen. Je mist een linkstructuur, je hebt geen hiërarchie in de site, mensen kunnen niet dieplinken mensen kunnen niet bookmarken. Er zitten zoveel nadelen aan frames, daar is ook genoeg over te vinden in de zoekmachines.

    En alternatieven? Wat denk je van een layer (<div>) met de CSS eigenschap "overflow" op "auto". Daarmee kun je ook een scrollbaar vlak maken die ook nog eens zoekmachine vriendelijk is en waar de titel blijft staan.

  6. André,

    Dat zijn vooroordelen.
    Voor hierarchie heb je een menu. Al kan het voor de ontwerper wat onoverzichtelijk worden met heel veel frames. Maar daar heb alleen ik last van als ontwerper, de gebruiker en de zoekmachine niet (sitemap, noframes gedeelte).
    Gebruik van iframes scheelt dan al ten opzichte van gewone frames. Is ook de enige manier om bijvoorbeeld een rekenmodule van een andere site te integreren.

    Als ik een framespagina bookmark en ik bezoek hem later via favorieten dan krijg ik precies de website zoals ik hem voor me had. Dus exact met de subframes die ik toen voor me had. Dus bookmarken werkt gewoon prima. Als je je wat beter had verdiept in de materie dan had je dat geweten.

    Deeplinken kun je oplossen met een scriptje. Al heb ik persoonlijk liever dat iedereen via de voordeur (de beginpagina) binnekomt dus als iemand via een zoekmachine op eensubpagina komt dan wordt hij automatisch naar de beginpagina geredirect.

    Zoekmachines is geen probleem. Ik heb in het verleden een website gehad die het zelfs zonder trucjes prima te vinden was. Via Google kwam ik makkelijk op subpagina's.
    Toen had ik nog niet eens een sitemap, links in noframe gebieden enz. gebruikt. Als je het goed bouwt dan is er geen enkel probleem voor de zoekmachine.
    verigens heb ik liever een website die vriendelijk is voor de gebruiker dan voor de zoekmachine als ik moet kiezen.

    Waarom zou ik moeilijk doen met div's als het makkelijk kan met een iframe?

    Persoonlijk vindt ik het trouwens zeer netjes staan als in de titelbalk alleen de domeinnaam blijft staan en niet met tig code er achter. Mocht iemand direct willen linken dan klikt hij gewoon rechts op het frame en kiest 'eigenschappen', dan zie je de URL. En als je site zeer overzichtelijk is en je bent er met 1 of 2 klikken vanaf het hoofdscherm is het niet nodig om direct te linken.

    Ik vindt het bijzonder irritant als ik scroll op een pagina en het menu en de titel gaan het beeld uit. En als je wisselt van pagina dan veranderd alleen het iframe en de rest blijft staan. Het is zeer irritant als dan de hele pagina weer opnieuw moet laden (incl. menu en titel bovenin). En als je bijvoorbeeld gebruik maakt van een animatie bovenin dan zal die bij elke klik weer opnieuw beginnen.
    Die DIV methode is mij niet bekend, is misschien interessant om eens naar te kijken. Zal ik echter alleen gebruiken als ik daarmee exact hetzelfde resultaat kan bereiken en het me niet meer werk kost.
    Ik heb die techniek echter nog nooit gezien. Wel eens een javascript menu gezien dat in je beeld blijft staan als je scrollt (maar met irritante vertraging).

    Groeten,

    Marcel

  7. Dan maar even arrogant: de materie waar jij het over hebt is al jaren mijn vak. Zaken als alle links in de noframes, dezelfde url's in de adresbalk, alle bezoekers via de homepage leiden, niet herladen van het menu, deeplinken met een scriptje zijn ECHT 100% DRIEDUBBEL EN DWARS verleden tijd. Discussies over dit onderwerp werden 4 tot 6 jaar geleden gevoerd.

    Ja, een sitemap met 1000 links er op naar alle pagina's in een site zal er inderdaad voor zorgen dat een zoekmachine bij al je pagina's komt. Maar omdat er geen hiërarchie en structuur aanwezig is kan Google geen onderlinge relaties bepalen. Geen linkteksten onderling naast elkaar leggen en geen enkele structuur qua onderwerpen kunnen zien. Pagerank kan niet goed verdeeld worden via de structuur, pagerank kan niet goed op een subpagina komen. Mensen met javascript naar de homepage leiden heet cloaken, daar zijn de zoekmachine niet heel blij mee.

    Jij praat alsof je met feiten komt, maar als je de materie door zou lezen zou je zelf ook inzien dat je huidige inzichten ietwat verouderd zijn. Niet dat ik je aan wil vallen, maar wat JIJ persoonlijk misschien ideaal vind geldt voor velen niet. Het internet in zijn huidige vorm werkt zo niet meer. Waarom denk je dat bijna alle sites frames verbannen hebben? Waarom zouden ze nette leesbare URL's gebruiken ipv een statische niet veranderende URL. Waarom zouden ze een structuur in de site aanbrengen?

  8. Marcel: Ik ken André verder niet maar hij heeft wel helemaal gelijk, in alle opzichten. (Althans, wat dit betreft natuurlijk...) Werken met frames is niet gebruiksvriendelijk en zoekmachinevriendelijk, dat zal elke professionele webbouwer beamen.

  9. Hoi,

    Ik kwam een tijdje geleden een website tegen met de nadelen van frames. Misschien wel interessant voor sommige mensen. Al is de topic behoorlijk oud.

  10. For fuck's sake Marcel... dit meen je toch niet?

    "Al heb ik persoonlijk liever dat iedereen via de voordeur (de beginpagina) binnekomt dus als iemand via een zoekmachine op eensubpagina komt dan wordt hij automatisch naar de beginpagina geredirect."

    Waarom zou je iemand in godsnaam willen redirecten naar de homepage als diegene binnenkomt op een relevante link waar die persoon op heeft GEZOCHT? Dit is niet alleen cloaking wat Andre zegt, maar ook nog eens HELE slechte usability van je website.

    Daarnaast heb je vast een uberbrowser want als je een frameset wil bookmarken, bookmarked hij 9 van de 10 keer gewoon de root domain en kom je daarna op de homepage.

    Ik zou maar heel snel gaan kijken naar DIVjes want frames is gewoon nostalgie. Dat wordt alleen nog gebruikt door My First Website r-tards die in MS Frontpage lopen te knutselen....

  11. Zoals Martijn al deels aanhaalt: Ik zie een mooie tegenspraak in de mooie woorden van Marcel:

    "dus als iemand via een zoekmachine op eensubpagina komt dan wordt hij automatisch naar de beginpagina geredirect"

    en

    "heb ik liever een website die vriendelijk is voor de gebruiker dan voor de zoekmachine"

    Een bezoeker die klikt op een resultaat in een zoekmachine omdat hij daar informatie verwact die hij zoekt. Jij stuurt 'm echter naar een pagina waar hij niet wil zijn. Lekker gebruikersvriendelijk en in ogen van zoekmachines een vorm van cloaking 🙂

  12. @ André (en andere mensen die een antwoord hebben;)

    Oke, ik heb netjes geleerd dat frames evil zijn. Maar hoe zit het met frame redirects voor verschillende domeinnamen? (dus bijvoorbeeld site op domein.nl en vanaf domein.com een frame redirect naar domein.nl)

    Gelden dan dezelfde frame nadelen voor domein.com? Hoe kijkt Google naar dit soort domeinen? En welke methode van redirecten is eventueel zoekmachinevriendelijker?

    Alvast bedankt voor jullie kennis

  13. André,

    Ik heb ook enkele problemen met een site met frames en wel het volgende: De site is opgebouwd uit 6 frames (in frontpage) waarvan er 3 statisch zijn en 3 dynamisch (de inhoud verandert). Door middel van dhtml worden er via 1 link 3 pagina's tegelijk geopend en in de desbetreffende frames gezet. Volgens mij krijg ik hier het probleem dat een inframe script niet gaat werken omdat de 3 juiste pagina's tegelijk moeten worden geopend terwijl alleen de ene pagina in het frame wordt geplaatst. Hiermee kom ik bij het volgende probleem: Ik gebruik nu redirects om losse pagina's te redirecten naar het index file dus de pagina die de gebruiker wil krijgt hij niet. Daarnaast kunnen de zoekmachiines de site niet indexeren omdat in elke pagina een redirect staat. Overigens heb ik wel een sitemap waarin alle documenten gelinkt worden dus elke pagina is bereikbaar ware het niet dat er een redirect in staat. Voor het indexeren moet ik dus de redirect kwijt en er moeten op hetzelfde moment 3 pagina's tegelijk geladen kunnen worden.

  14. Het inladen van 3 pagina's is eigenlijk geen probleem, hiervoor moet je de redirect code aanpassen. Maar feit blijft dat het allemaal met javascript gebeurd en de zoekmachines hier nog steeds niets van snappen.
    Het redirecten doe je ook met javascript? Dan is dit geen probleem voor de indexatie, zoekmachines lezen geen javascript.

    Zijn de frames echt nodig? Kun je niet een simpele WordPress installatie doen zodat je de site met een CMS kunt beheren ipv met Frontpage?

  15. André,

    Mijn redirect script ziet er als volgt uit:

    Ik heb met een lynx browser geprobeerd om alle links die in mijn sitemap staan te benaderen, maar hierbij loop ik vast op de redirect. Volgens mij is dit met zoekmachines ook zo, want een andere site van mij die zonder redirects werkt wordt wel goed geïndexeerd. Het grootste probleem is dus de redirect, is daarvoor een alternatief te bedenken?

    Het aanroepen van de 2/3 pagina's doe ik nu overigens met het volgende script:

    en dan aanroepen met <a href="index2.html">

  16. André,

    Ik zie dat de code niet in de reaktie wordt geplaatst, daarom heb ik de code in de reprly mail gezet.

    Jaap

  17. André,

    Ik doe pogingen om mijn site beter in Google te krijgen. Ben makkelijk te vinden, maar ondanks, dat ik honderden pagina's heb (die elk automatisch hun frame laden) belandt men bij Google alleen op de eerste pagina. Hoe kan ik er voor zorgen, dat men op de juiste pagina terecht komt?

  18. Yorick, daar kan ik heel kort over zijn: dump je frames 😉

    Je hebt nu 3 bestanden die je met een frameset samenbrengt: top, links en content. In plaats van dat je dat met een frameset doet kun je ook eenvoudig in je content bestanden met PHP de header en footer includen.

    In jouw geval wordt home.html dan home.php en die begint met <?php include 'kop.html' ?>. In die kop.html staan dan de boven- en linkerkant van je site.

Comments are closed.