search considerations for react based content

29
Search Considerations for React Based Content A look at the implications of using React for web content Pete Wailes Chief Software Architect [email protected]

Upload: pete-wailes

Post on 16-Apr-2017

105 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Search Considerations for React Based Content

Search Considerations for React Based ContentA look at the implications of using React for web content

Pete WailesChief Software [email protected]

Page 2: Search Considerations for React Based Content

Easy part!

Page 3: Search Considerations for React Based Content

renderToStringReactDOM.renderToString(React.createElement(App, props))

Page 4: Search Considerations for React Based Content

renderToStringapp.get('/', function(req, res) { res.render('index.ejs', { reactTitle: JsonData.home.title, reactSection: '', reactDescription: JsonData.home.description, reactOutput: ReactDOM.renderToString( React.createElement(FMttM, JsonData.home ) ) })})

Page 5: Search Considerations for React Based Content

More complex stuff…

Page 6: Search Considerations for React Based Content

Stateful Content

Page 7: Search Considerations for React Based Content

Tabs & CarouselsTwo types of stateful content controls:

1. className: ‘active’2. var content = this.renderTab(this.props.data[this.state.activeItem])

Page 8: Search Considerations for React Based Content

CSS Controlled

Page 9: Search Considerations for React Based Content

CSS− Less weight given to content

− But still gets some weight

Use Cases:

− Booking options (flight, flight + car…)− Fast secondary navigation (accordions…)− Related data (stocks, bonds, currencies…)

Page 10: Search Considerations for React Based Content

Render Controlled

Page 11: Search Considerations for React Based Content

Render− Unrendered tabbed content doesn’t exist, so doesn’t get indexed

Use Cases:

− Useful but repetitive data (T&Cs, returns info…)− Image galleries− Lightboxes

Page 12: Search Considerations for React Based Content

AMP

Page 13: Search Considerations for React Based Content

Accelerated Mobile Pageshttps://www.ampproject.org/

Page 14: Search Considerations for React Based Content

AMP− Mobile-optimised content− Google AMP Cache (global CDN)− Custom components

Page 15: Search Considerations for React Based Content

Example<amp-video width=400 height=300 src=“foo.mp4" poster=“poster.jpg"> <div fallback> <p>Your browser doesn’t support HTML5 video</p> </div> <source type="video/mp4" src="foo.mp4"> <source type="video/webm" src="foo.webm"></amp-video>

Page 16: Search Considerations for React Based Content

PWA

Page 17: Search Considerations for React Based Content

Progressive Web Appshttps://developers.google.com/web/progressive-web-apps/

Page 18: Search Considerations for React Based Content

PWA− HTML5 + JS + Service Workers + App Shell Architecture

− Offline first page experience

Page 19: Search Considerations for React Based Content

Service Workers?

Page 20: Search Considerations for React Based Content

Service Workers− Browser > network > server > network > browser

− Service workers intercept between the browser & network

Page 21: Search Considerations for React Based Content

App Shell Architecture?

Page 22: Search Considerations for React Based Content

Application Shell Architecture− Minimum HTML, CSS & JS to render something

− On load, if we have cache, even with no connection, we can render something

Page 23: Search Considerations for React Based Content

Offline First

Page 24: Search Considerations for React Based Content

Offline First− Pass-through caching with service workers

− Cache all the things

− Assume no connection, render app shell, load content via connection if available

Page 25: Search Considerations for React Based Content

Takeaways

Page 26: Search Considerations for React Based Content

Use renderToString

Page 27: Search Considerations for React Based Content

Create AMP versions of content

Page 28: Search Considerations for React Based Content

PWA for future-proofing

Page 29: Search Considerations for React Based Content

Questions?

Pete WailesChief Software [email protected]