I am trying to use spiderable on Modulus but nothing seems to work. I have tried the following packages without any success.
dfischer:phantomjs + ongoworks:spiderable:
spiderable: phantomjs failed: Error: Command failed:
at ChildProcess.exithandler (child_process.js:658:15)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:766:16)
at Process.ChildProcess._handle.onexit (child_process.js:833:5)
stderr:
dfischer:phantomjs + spiderable:
spiderable: phantomjs failed: Error: Command failed: Can't open '/dev/stdin'
at ChildProcess.exithandler (child_process.js:658:15)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:766:16)
at Process.ChildProcess._handle.onexit (child_process.js:833:5)
stderr: Can't open '/dev/stdin'
I know that this is not exactly what you wanted to read but : don’t use spiderable. Specially on Modulus. It’s painful to configure properly and it can be harmful for your server. If you have more than a few pages pages (let’s say more than 500 ; if you have blog posts, comments or things like that, you are quickly going to that kind of numbers), search engines, social networks and others are going to crawl you site several times per minutes. Spiderable take 5 to 15 seconds to render your page (mostly waiting for connections and datas). You don’t want that to happen on your server, And you want to cache the result of the page generation.
once the page has been rendered by their server, they cache it (in an s3 bucket I think). So the page will be serve in 5 to 50 milliseconds to the crawlers. They will like it a lot
it’s free up to 250 pages
I use the statup plan : up to 20.000 pages with a 7 days cache freshness, it’s 15$ / month. It will take three years to cost more than the three hours you will loose configuring spiderable on Modulus. (depending on how much you charge per hour).
@Everhusk When I say this is a 5 minutes setup, I’m not exaggerating.
1 - you create an account at https://prerender.io/account (the longest part)
2 - you copy your token here : https://prerender.io/install-token
3 - you add the corresponding package from atmosphere : meteor add dfischer:prerenderio
4 - you add your token server side (I choose the js way over the setting way : prerenderio.set('prerenderToken', 'YOUR_TOKEN'));
And, that’s it.
( For me, this is all temporary. I will go full SSR with flow router and react as soon as the solution is production ready. But in my opinion, prerender is the best solution at the moment.)