npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

localizejs-seo

v0.1.6

Published

Localize.js SEO prerendering middleware for Node.js

Downloads

18

Readme

Localize SEO for Node.js

Node.js middleware that provides full SEO support for Node.js apps using Localize. This middleware detects requests from search engine bots and crawlers, and replies with prerendered HTML via our hosted prerendering API.

Questions? We're happy to help. Email us!.

Installation

Install via npm

npm install localizejs-seo --save

Add the Localize SEO middleware to your server:

var localizejsSEO = require('localizejs-seo');

app.use(localizejsSEO.middleware({
  rootDomain: 'http://yourwebsite.com'
}));

Include this middleware early in your application - before your application routes are created.

API

var localizejsSEO = require('localizejs-seo');
localizejsSEO.middleware(options)

Creates the Localize SEO middleware. Accepted options:

  • rootDomain Required. The root domain of your website. For example, http://yourwebsite.com
  • version Optional. Cache version. Localize caches prerendered HTML for a number of hours. You can clear this cache immediately by changing the version when you deploy and update to your application. version can be a number or string like an application ID or git commit ID.
  • prerenderAllRequests Optional. When true, all requests are prerendered, not just requests from robots. Only useful for testing and debugging - do not activate in production.
  • shouldPrerenderOverride Optional. A function that overrides our internal shouldPrerender function. When this function returns true, the middleware will activate and prerender the route.

How it works

When a request is made to your server using this middleware, here's what happens:

  1. Middleware checks if request is a GET request. If not, next() is called and the middleware is bypassed.
  2. Middleware checks if request is made from a search engine bot or crawler (like Googlebot). If not, next() is called and the middleware is bypassed.
  3. When a GET request is made to your website by a search engine bot or crawler, the middleware makes a request to our prerendering API for the prerendered HTML of the page that was requested.
  4. The prerendered HTML is received from the localizejs.com API and delivered to the search engine crawler for indexing.

This is a hosted prerendering service, meaning that the prerendering of your page and caching is offloaded to our servers.

Performance:

There are two built in layers of caching. We use Redis on our server to cache your HTML, and the reply is sent through the Amazon Cloudfront CDN to ensure extremely low latency response no matter where your server is (typically less than 20-50ms for a cached request).

Contribute

Forks and pull requests welcome!

TODO

  • Add request timeout
  • Add tests

Author

Localize. For support, email [email protected].