# localizejs-seo

> Localize.js SEO prerendering middleware for Node.js

Latest version **0.1.6** (published 2015-11-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install localizejs-seo
pnpm add localizejs-seo
yarn add localizejs-seo
bun add localizejs-seo
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.6 |
| Published | 2015-11-17 |
| First published | 2015-03-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.6 |
| Dependencies | 1 |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| Author | Brandon Paton |
| Maintainers | paton |
| Keywords | translate, translation, localization, i18n, l18n, localizejs, localize.js, prerender, seo, zombie, seo |

## Links

- npm: https://www.npmjs.com/package/localizejs-seo
- Repository: https://github.com/localizejs/node-localizejs-seo
- Issues: https://github.com/localizejs/node-localizejs-seo/issues
- npm.io page: https://npm.io/package/localizejs-seo

## Dependencies (1)

- [request](https://npm.io/package/request.md) 2.65.0

## Alternatives

- [messageformat](https://npm.io/package/messageformat.md) — 329.7K weekly downloads
- [@mintlify/scraping](https://npm.io/package/@mintlify/scraping.md) — 294.8K weekly downloads
- [@mintlify/previewing](https://npm.io/package/@mintlify/previewing.md) — 209.5K weekly downloads
- [@mintlify/prebuild](https://npm.io/package/@mintlify/prebuild.md) — 209.5K weekly downloads
- [@mintlify/link-rot](https://npm.io/package/@mintlify/link-rot.md) — 206.3K weekly downloads

## Recent versions

- 0.1.6 (latest) — 2015-11-17
- 0.1.5 — 2015-11-17
- 0.1.4 — 2015-03-15
- 0.1.3 — 2015-03-14
- 0.1.2 — 2015-03-14

## README

Localize SEO for Node.js
===============

Node.js middleware that provides full SEO support for Node.js apps using [Localize](https://localizejs.com). 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](https://localizejs.com/?modal=misc/support)!.

Installation
----------

Install via [npm](https://www.npmjs.org/package/localizejs-seo)

    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](https://localizejs.com). For support, email [support@localizejs.com](mailto:support@localizejs.com).

---
_Source: https://npm.io/package/localizejs-seo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
