Skip to content

SEO-Optimierung durch Prerendering #5

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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