Skip to content

SEO-Optimierung durch Prerendering #5

@AlexanderMandera

Description

@AlexanderMandera

Durch die Nutzung von PhantomJS kann man solange auf den HTML-Content warten, bis ein bestimmter Flag gesetzt wird, z.B. bis alle SocketIO-Daten geladen, so stellt man sicher, dass jeder Crawler die asynchron geladenen Daten bekommt.

Beispielcode für PhantomJS:

var page = require('webpage').create();
page.open('http://localhost:3000/', function() {
    var seconds = 0;
    console.log("Waiting for render...");
    setInterval(function() {
        var rendered = page.evaluate(function() {
           return document.rendered;
        });
        if(rendered) {
            console.log("Rendered content:");
            console.log(page.content);
            phantom.exit();
        } else {
            seconds++;
            console.log("Waiting for render since " + seconds + " seconds...");
        }
    }, 1000);

    setTimeout(function() {
        phantom.exit();
    }, 30000);
});

Man könnte z.B. child-process und den Stream des Prozesses nutzen, um dann den vorgerenderten Content der Website zu erhalten.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions